SD-M2b: mesh-broker's events on the shared events stream, 7 days

The lead's ruling of 13:0x replaces 12:5x's said-subject: mesh-broker's events follow every seat, on
mesh.seat.mesh-broker.event.<event> in the shared events stream, 7 days; the bus module keeps a longer history on a
stream of its own module. So every seat family is that stream filtered to the seat's subjects: a definition says 7
days and no cap of its own, and the reader refuses anything else.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
This commit is contained in:
2026-11-04 12:53:19 +01:00
parent c62ce1c309
commit 96b7eeeaf7
11 changed files with 57 additions and 81 deletions
+3 -21
View File
@@ -83,7 +83,7 @@
"items": {
"$ref": "#/$defs/message"
},
"description": "published on mesh.seat.<seat>.<token>.<name>, the token event unless the family names its own"
"description": "published on mesh.seat.<seat>.event.<name>"
},
"family": {
"type": "object",
@@ -97,26 +97,8 @@
"type": "string"
},
"max-age-days": {
"type": "integer",
"minimum": 1
},
"max-mib": {
"type": "integer",
"minimum": 1
},
"token": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$",
"not": {
"enum": [
"event",
"accept",
"tool",
"call",
"proof"
]
},
"description": "the subject's word after the seat's name, event when absent: a family kept in a stream of its own names another, outside the shared events stream's mesh.seat.*.event.>"
"const": 7,
"description": "the shared events stream's age: a seat's events ride it, filtered to the seat's subjects"
}
}
},
+1 -1
View File
@@ -35,7 +35,7 @@ func Events() []string {
return []string{EventPublished, EventRefused, EventRemoved, EventHeld, EventReleased}
}
// Family is where the seat's events are kept.
// Family is where the seat's events are kept: the shared events stream, filtered to the seat's subjects.
const (
Family = "container-image-registry.events"
FamilyMaxAgeDays = 7
+1 -1
View File
@@ -29,7 +29,7 @@ func Events() []string {
return []string{EventPublished, EventRefused, EventRemoved}
}
// Family is where the seat's events are kept.
// Family is where the seat's events are kept: the shared events stream, filtered to the seat's subjects.
const (
Family = "go-package-registry.events"
FamilyMaxAgeDays = 7
+11 -15
View File
@@ -39,42 +39,38 @@ func Events() []string {
return []string{EventCreated, EventRefused, EventDrifted, EventDriftCleared, EventFull, EventFullCleared, EventOrphaned, EventRecreated, EventDropped}
}
// Family is where the seat's events are kept.
// Family is where the seat's events are kept: the shared events stream, filtered to the seat's subjects.
const (
Family = "mesh-broker.events"
FamilyMaxAgeDays = 30
FamilyMaxMiB = 256
FamilyMaxAgeDays = 7
)
// FamilySubjects is what the family's own stream takes, outside the shared events stream's subjects.
const FamilySubjects = "mesh.seat.mesh-broker.said.>"
// SubjectCreated is where created is published.
const SubjectCreated = "mesh.seat.mesh-broker.said.created"
const SubjectCreated = "mesh.seat.mesh-broker.event.created"
// SubjectRefused is where refused is published.
const SubjectRefused = "mesh.seat.mesh-broker.said.refused"
const SubjectRefused = "mesh.seat.mesh-broker.event.refused"
// SubjectDrifted is where drifted is published.
const SubjectDrifted = "mesh.seat.mesh-broker.said.drifted"
const SubjectDrifted = "mesh.seat.mesh-broker.event.drifted"
// SubjectDriftCleared is where drift-cleared is published.
const SubjectDriftCleared = "mesh.seat.mesh-broker.said.drift-cleared"
const SubjectDriftCleared = "mesh.seat.mesh-broker.event.drift-cleared"
// SubjectFull is where full is published.
const SubjectFull = "mesh.seat.mesh-broker.said.full"
const SubjectFull = "mesh.seat.mesh-broker.event.full"
// SubjectFullCleared is where full-cleared is published.
const SubjectFullCleared = "mesh.seat.mesh-broker.said.full-cleared"
const SubjectFullCleared = "mesh.seat.mesh-broker.event.full-cleared"
// SubjectOrphaned is where orphaned is published.
const SubjectOrphaned = "mesh.seat.mesh-broker.said.orphaned"
const SubjectOrphaned = "mesh.seat.mesh-broker.event.orphaned"
// SubjectRecreated is where recreated is published.
const SubjectRecreated = "mesh.seat.mesh-broker.said.recreated"
const SubjectRecreated = "mesh.seat.mesh-broker.event.recreated"
// SubjectDropped is where dropped is published.
const SubjectDropped = "mesh.seat.mesh-broker.said.dropped"
const SubjectDropped = "mesh.seat.mesh-broker.event.dropped"
// Binding is the binding a module receives in its membership for one entry (ADR 0595 §1, §7).
type Binding struct {
+18 -18
View File
@@ -17,24 +17,24 @@ func TestFixtures(t *testing.T) {
decode func([]byte) (any, error)
subjectIs *regexp.Regexp
}{
{name: "created on the seat's subject", subject: "mesh.seat.mesh-broker.said.created", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v CreatedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.said\\.created$")},
{name: "refused on the seat's subject", subject: "mesh.seat.mesh-broker.said.refused", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}",
decode: func(b []byte) (any, error) { var v RefusedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.said\\.refused$")},
{name: "drifted on the seat's subject", subject: "mesh.seat.mesh-broker.said.drifted", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}",
decode: func(b []byte) (any, error) { var v DriftedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.said\\.drifted$")},
{name: "drift-cleared on the seat's subject", subject: "mesh.seat.mesh-broker.said.drift-cleared", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v DriftClearedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.said\\.drift-cleared$")},
{name: "full on the seat's subject", subject: "mesh.seat.mesh-broker.said.full", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v FullEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.said\\.full$")},
{name: "full-cleared on the seat's subject", subject: "mesh.seat.mesh-broker.said.full-cleared", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v FullClearedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.said\\.full-cleared$")},
{name: "orphaned on the seat's subject", subject: "mesh.seat.mesh-broker.said.orphaned", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v OrphanedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.said\\.orphaned$")},
{name: "recreated on the seat's subject", subject: "mesh.seat.mesh-broker.said.recreated", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}",
decode: func(b []byte) (any, error) { var v RecreatedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.said\\.recreated$")},
{name: "dropped on the seat's subject", subject: "mesh.seat.mesh-broker.said.dropped", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}",
decode: func(b []byte) (any, error) { var v DroppedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.said\\.dropped$")},
{name: "created on the seat's subject", subject: "mesh.seat.mesh-broker.event.created", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v CreatedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.event\\.created$")},
{name: "refused on the seat's subject", subject: "mesh.seat.mesh-broker.event.refused", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}",
decode: func(b []byte) (any, error) { var v RefusedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.event\\.refused$")},
{name: "drifted on the seat's subject", subject: "mesh.seat.mesh-broker.event.drifted", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}",
decode: func(b []byte) (any, error) { var v DriftedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.event\\.drifted$")},
{name: "drift-cleared on the seat's subject", subject: "mesh.seat.mesh-broker.event.drift-cleared", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v DriftClearedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.event\\.drift-cleared$")},
{name: "full on the seat's subject", subject: "mesh.seat.mesh-broker.event.full", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v FullEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.event\\.full$")},
{name: "full-cleared on the seat's subject", subject: "mesh.seat.mesh-broker.event.full-cleared", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v FullClearedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.event\\.full-cleared$")},
{name: "orphaned on the seat's subject", subject: "mesh.seat.mesh-broker.event.orphaned", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v OrphanedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.event\\.orphaned$")},
{name: "recreated on the seat's subject", subject: "mesh.seat.mesh-broker.event.recreated", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}",
decode: func(b []byte) (any, error) { var v RecreatedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.event\\.recreated$")},
{name: "dropped on the seat's subject", subject: "mesh.seat.mesh-broker.event.dropped", given: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}", wire: "{\"asked\":{\"max-mib\":64},\"bus-name\":\"mesh-knowledge_ledger\",\"fill\":{\"bytes\":2048,\"cap\":67108864,\"count\":10},\"held\":{\"max-mib\":64},\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"storage-type\":\"ledger\",\"template\":\"ledger\",\"why\":\"the bus refused it\"}",
decode: func(b []byte) (any, error) { var v DroppedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-broker\\.event\\.dropped$")},
{name: "create one entry", subject: "", given: "{\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"options\":{\"max-mib\":64},\"storage-type\":\"ledger\",\"template\":\"ledger\"}", wire: "{\"local-name\":\"ledger\",\"module\":\"mesh-knowledge\",\"options\":{\"max-mib\":64},\"storage-type\":\"ledger\",\"template\":\"ledger\"}",
decode: func(b []byte) (any, error) { var v CreateInput; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil},
{name: "drop on the operator's warrant", subject: "", given: "{\"local-name\":\"old\",\"module\":\"mesh-knowledge\",\"warrant\":\"w-1\",\"why\":\"the operator approved the drop\"}", wire: "{\"local-name\":\"old\",\"module\":\"mesh-knowledge\",\"warrant\":\"w-1\",\"why\":\"the operator approved the drop\"}",
+1 -1
View File
@@ -29,7 +29,7 @@ func Events() []string {
return []string{EventPublished, EventRefused, EventRemoved}
}
// Family is where the seat's events are kept.
// Family is where the seat's events are kept: the shared events stream, filtered to the seat's subjects.
const (
Family = "npm-package-registry.events"
FamilyMaxAgeDays = 7
+1 -1
View File
@@ -33,7 +33,7 @@ func Events() []string {
return []string{EventPublished, EventRefused, EventRemoved, EventHeld, EventReleased}
}
// Family is where the seat's events are kept.
// Family is where the seat's events are kept: the shared events stream, filtered to the seat's subjects.
const (
Family = "oci-artifact-registry.events"
FamilyMaxAgeDays = 7
+1 -1
View File
@@ -34,7 +34,7 @@ func Events() []string {
return []string{EventDecided}
}
// Family is where the seat's events are kept.
// Family is where the seat's events are kept: the shared events stream, filtered to the seat's subjects.
const (
Family = "operator-channel.decided"
FamilyMaxAgeDays = 7
+9 -9
View File
@@ -2,7 +2,7 @@
{
"name": "created on the seat's subject",
"of": "event:created",
"subject": "mesh.seat.mesh-broker.said.created",
"subject": "mesh.seat.mesh-broker.event.created",
"given": {
"module": "mesh-knowledge",
"local-name": "ledger",
@@ -25,7 +25,7 @@
{
"name": "refused on the seat's subject",
"of": "event:refused",
"subject": "mesh.seat.mesh-broker.said.refused",
"subject": "mesh.seat.mesh-broker.event.refused",
"given": {
"module": "mesh-knowledge",
"local-name": "ledger",
@@ -49,7 +49,7 @@
{
"name": "drifted on the seat's subject",
"of": "event:drifted",
"subject": "mesh.seat.mesh-broker.said.drifted",
"subject": "mesh.seat.mesh-broker.event.drifted",
"given": {
"module": "mesh-knowledge",
"local-name": "ledger",
@@ -73,7 +73,7 @@
{
"name": "drift-cleared on the seat's subject",
"of": "event:drift-cleared",
"subject": "mesh.seat.mesh-broker.said.drift-cleared",
"subject": "mesh.seat.mesh-broker.event.drift-cleared",
"given": {
"module": "mesh-knowledge",
"local-name": "ledger",
@@ -96,7 +96,7 @@
{
"name": "full on the seat's subject",
"of": "event:full",
"subject": "mesh.seat.mesh-broker.said.full",
"subject": "mesh.seat.mesh-broker.event.full",
"given": {
"module": "mesh-knowledge",
"local-name": "ledger",
@@ -119,7 +119,7 @@
{
"name": "full-cleared on the seat's subject",
"of": "event:full-cleared",
"subject": "mesh.seat.mesh-broker.said.full-cleared",
"subject": "mesh.seat.mesh-broker.event.full-cleared",
"given": {
"module": "mesh-knowledge",
"local-name": "ledger",
@@ -142,7 +142,7 @@
{
"name": "orphaned on the seat's subject",
"of": "event:orphaned",
"subject": "mesh.seat.mesh-broker.said.orphaned",
"subject": "mesh.seat.mesh-broker.event.orphaned",
"given": {
"module": "mesh-knowledge",
"local-name": "ledger",
@@ -165,7 +165,7 @@
{
"name": "recreated on the seat's subject",
"of": "event:recreated",
"subject": "mesh.seat.mesh-broker.said.recreated",
"subject": "mesh.seat.mesh-broker.event.recreated",
"given": {
"module": "mesh-knowledge",
"local-name": "ledger",
@@ -189,7 +189,7 @@
{
"name": "dropped on the seat's subject",
"of": "event:dropped",
"subject": "mesh.seat.mesh-broker.said.dropped",
"subject": "mesh.seat.mesh-broker.event.dropped",
"given": {
"module": "mesh-knowledge",
"local-name": "ledger",
+1 -3
View File
@@ -251,9 +251,7 @@
],
"family": {
"name": "mesh-broker.events",
"max-age-days": 30,
"max-mib": 256,
"token": "said"
"max-age-days": 7
},
"provisions": [
{
+10 -10
View File
@@ -27,25 +27,25 @@ export const events = {
dropped: "dropped",
} as const;
export const family = { name: "mesh-broker.events", maxAgeDays: 30, maxMiB: 256, subjects: "mesh.seat.mesh-broker.said.>" } as const;
export const family = { name: "mesh-broker.events", maxAgeDays: 7 } as const;
export const createdSubject = "mesh.seat.mesh-broker.said.created";
export const createdSubject = "mesh.seat.mesh-broker.event.created";
export const refusedSubject = "mesh.seat.mesh-broker.said.refused";
export const refusedSubject = "mesh.seat.mesh-broker.event.refused";
export const driftedSubject = "mesh.seat.mesh-broker.said.drifted";
export const driftedSubject = "mesh.seat.mesh-broker.event.drifted";
export const driftClearedSubject = "mesh.seat.mesh-broker.said.drift-cleared";
export const driftClearedSubject = "mesh.seat.mesh-broker.event.drift-cleared";
export const fullSubject = "mesh.seat.mesh-broker.said.full";
export const fullSubject = "mesh.seat.mesh-broker.event.full";
export const fullClearedSubject = "mesh.seat.mesh-broker.said.full-cleared";
export const fullClearedSubject = "mesh.seat.mesh-broker.event.full-cleared";
export const orphanedSubject = "mesh.seat.mesh-broker.said.orphaned";
export const orphanedSubject = "mesh.seat.mesh-broker.event.orphaned";
export const recreatedSubject = "mesh.seat.mesh-broker.said.recreated";
export const recreatedSubject = "mesh.seat.mesh-broker.event.recreated";
export const droppedSubject = "mesh.seat.mesh-broker.said.dropped";
export const droppedSubject = "mesh.seat.mesh-broker.event.dropped";
/** the binding a module receives in its membership for one entry (ADR 0595 §1, §7) */
export interface Binding {