diff --git a/format/seat-definition.schema.json b/format/seat-definition.schema.json index b27097f..2c64151 100644 --- a/format/seat-definition.schema.json +++ b/format/seat-definition.schema.json @@ -83,7 +83,7 @@ "items": { "$ref": "#/$defs/message" }, - "description": "published on mesh.seat..., the token event unless the family names its own" + "description": "published on mesh.seat..event." }, "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" } } }, diff --git a/go/seats/containerimageregistry/contract.go b/go/seats/containerimageregistry/contract.go index 4037d21..8d53626 100644 --- a/go/seats/containerimageregistry/contract.go +++ b/go/seats/containerimageregistry/contract.go @@ -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 diff --git a/go/seats/gopackageregistry/contract.go b/go/seats/gopackageregistry/contract.go index d63ad9b..9b6d148 100644 --- a/go/seats/gopackageregistry/contract.go +++ b/go/seats/gopackageregistry/contract.go @@ -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 diff --git a/go/seats/meshbroker/contract.go b/go/seats/meshbroker/contract.go index c188609..63e9044 100644 --- a/go/seats/meshbroker/contract.go +++ b/go/seats/meshbroker/contract.go @@ -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 { diff --git a/go/seats/meshbroker/contract_test.go b/go/seats/meshbroker/contract_test.go index 49861f6..03c1f9c 100644 --- a/go/seats/meshbroker/contract_test.go +++ b/go/seats/meshbroker/contract_test.go @@ -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\"}", diff --git a/go/seats/npmpackageregistry/contract.go b/go/seats/npmpackageregistry/contract.go index 0f60980..8758751 100644 --- a/go/seats/npmpackageregistry/contract.go +++ b/go/seats/npmpackageregistry/contract.go @@ -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 diff --git a/go/seats/ociartifactregistry/contract.go b/go/seats/ociartifactregistry/contract.go index be4ab7d..1eb950d 100644 --- a/go/seats/ociartifactregistry/contract.go +++ b/go/seats/ociartifactregistry/contract.go @@ -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 diff --git a/go/seats/operatorchannel/contract.go b/go/seats/operatorchannel/contract.go index 7e96e3e..104afe6 100644 --- a/go/seats/operatorchannel/contract.go +++ b/go/seats/operatorchannel/contract.go @@ -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 diff --git a/seats/mesh-broker/fixtures/events.json b/seats/mesh-broker/fixtures/events.json index c6167bd..374448d 100644 --- a/seats/mesh-broker/fixtures/events.json +++ b/seats/mesh-broker/fixtures/events.json @@ -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", diff --git a/seats/mesh-broker/seat.json b/seats/mesh-broker/seat.json index 167b3d7..4cea764 100644 --- a/seats/mesh-broker/seat.json +++ b/seats/mesh-broker/seat.json @@ -251,9 +251,7 @@ ], "family": { "name": "mesh-broker.events", - "max-age-days": 30, - "max-mib": 256, - "token": "said" + "max-age-days": 7 }, "provisions": [ { diff --git a/ts/src/mesh-broker.ts b/ts/src/mesh-broker.ts index bb3d52c..b43ba38 100644 --- a/ts/src/mesh-broker.ts +++ b/ts/src/mesh-broker.ts @@ -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 {