diff --git a/modules/mesh-delivery-forge-bridge/internal/bridge/bridge.go b/modules/mesh-delivery-forge-bridge/internal/bridge/bridge.go index bef1a725..6af03fb1 100644 --- a/modules/mesh-delivery-forge-bridge/internal/bridge/bridge.go +++ b/modules/mesh-delivery-forge-bridge/internal/bridge/bridge.go @@ -15,9 +15,9 @@ import ( "strings" "sync" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/delivery" - "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" ) // ErrUnreadable is wrapped by every error that says an event cannot be turned into a message; it is never diff --git a/modules/mesh-grants/cmd/mesh-grants/asking.go b/modules/mesh-grants/cmd/mesh-grants/asking.go index 59b392c3..9cafb925 100644 --- a/modules/mesh-grants/cmd/mesh-grants/asking.go +++ b/modules/mesh-grants/cmd/mesh-grants/asking.go @@ -5,8 +5,8 @@ import ( "github.com/nats-io/nats.go/jetstream" - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" ) // sayVia says a condition of the part on its own subject, as a module that uses the seat operator-channel may: the diff --git a/modules/mesh-grants/cmd/mesh-grants/seats_main_test.go b/modules/mesh-grants/cmd/mesh-grants/seats_main_test.go new file mode 100644 index 00000000..eaccc4ea --- /dev/null +++ b/modules/mesh-grants/cmd/mesh-grants/seats_main_test.go @@ -0,0 +1,15 @@ +package main + +import ( + "os" + "testing" + + "git.novox.be/novox/mesh-sdk/go/catalogue" + "git.novox.be/novox/mesh-sdk/go/seatlist/seatlisttest" +) + +// TestMain gives catalogue the seat list a host reads (ADR 0636 §1): none is compiled into mesh-sdk. +func TestMain(m *testing.M) { + catalogue.UseSeats(catalogue.SeatsFromDefinitions(seatlisttest.Definitions())) + os.Exit(m.Run()) +} diff --git a/modules/mesh-grants/cmd/mesh-grants/tools.go b/modules/mesh-grants/cmd/mesh-grants/tools.go index 0b140f3e..dc973aad 100644 --- a/modules/mesh-grants/cmd/mesh-grants/tools.go +++ b/modules/mesh-grants/cmd/mesh-grants/tools.go @@ -12,8 +12,8 @@ import ( "git.novox.be/novox/mesh-sdk/go/views" + "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" stdio "git.novox.be/novox/mesh-sdk/go" - "git.novox.be/novox/mesh-sdk/go/handacts" "mesh-grants/internal/grants" ) @@ -247,7 +247,7 @@ func toolsOf(p *grants.Part) []stdio.Tool { // recordHandAct records a person's act through the seat mesh-hand-acts. func recordHandAct(what, why string) error { - _, err := handacts.Recorder{Ask: stdio.Ask}.Record(handacts.Request{What: what, Why: why, Cause: "first-view-again"}) + _, err := meshhandactsclient.Recorder{Ask: stdio.Ask}.Record(meshhandactsclient.Request{What: what, Why: why, Cause: "first-view-again"}) return err } diff --git a/modules/mesh-grants/go.mod b/modules/mesh-grants/go.mod index fb514162..56718814 100644 --- a/modules/mesh-grants/go.mod +++ b/modules/mesh-grants/go.mod @@ -3,9 +3,13 @@ module mesh-grants go 1.26.0 require ( - git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient v0.0.0-20261104174344-ae5266e77639 - git.novox.be/novox/mesh-contracts/go/seats/meshvault v0.0.0-20261104174344-ae5266e77639 - git.novox.be/novox/mesh-contracts/go/seats/operatorchannel v0.0.0-20261104174344-ae5266e77639 + git.novox.be/novox/mesh-contracts/go/seats/meshbroker v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshnodeenroller v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshvault v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient v0.0.0-20261104174344-ae5266e77639 + git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel v0.0.0-20261104174344-ae5266e77639 git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261104174359-05b3e2e1b94f github.com/nats-io/nats-server/v2 v2.11.17 github.com/nats-io/nats.go v1.54.0 diff --git a/modules/mesh-grants/grants_test.go b/modules/mesh-grants/grants_test.go index aac08d80..cd5fbfc5 100644 --- a/modules/mesh-grants/grants_test.go +++ b/modules/mesh-grants/grants_test.go @@ -7,6 +7,7 @@ import ( "encoding/json" "errors" "fmt" + "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" "io/fs" "maps" "os" @@ -21,8 +22,8 @@ import ( "github.com/nats-io/nats.go/jetstream" - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/delivery" "git.novox.be/novox/mesh-sdk/go/membership" @@ -373,7 +374,7 @@ const ( // enrolmentManifest is the holder of mesh-enrolment as the composition needs it (ADR 0587 §1): the claim, its six verbs // and its bucket. enrolmentManifest = `{"module":"mesh-enrolment","version":"1","own-secrets":{"broker":"/var/lib/e/broker"},` + - `"claims":[{"name":"mesh-enrolment","serves":["issue","redeem","confirm","revoke","tokens","again"]}],` + + `"claims":[{"name":"mesh-node-enroller","serves":["issue","redeem","confirm","revoke","tokens","again"]}],` + `"tools":["issue","redeem","confirm","revoke","tokens","again"],"state":[{"name":"enrolments","key-ttl":true}]}` ) @@ -2521,7 +2522,7 @@ func TestGrants(t *testing.T) { } nats, err := buscompose.ReadWantedAccount("a.nats", b.own[grants.StateAccounts]["a.nats"]) if err != nil || nats.URL != "nats://a.mesh:4222" || nats.Fingerprint != "ab" || len(nats.Claims) != 1 || - nats.Claims[0].Seat != catalogue.BrokerSeat || nats.At.IsZero() { + nats.Claims[0].Seat != meshbroker.Seat || nats.At.IsZero() { t.Errorf("a.nats is wanted as %+v (%v)", nats, err) } var readers []string @@ -2623,7 +2624,7 @@ func TestGrants(t *testing.T) { t.Error("a key at asked composed enrol.pi") } } - if lab == nil || !slices.Equal(lab.Publish, []string{"mesh.seat.mesh-enrolment.call.redeem.enrol~lab"}) || + if lab == nil || !slices.Equal(lab.Publish, []string{"mesh.seat.mesh-node-enroller.call.redeem.enrol~lab"}) || !slices.Equal(lab.Subscribe, []string{"_INBOX.enrol.lab.>"}) || lab.AllowResponses { t.Fatalf("enrol.lab: %+v", lab) } diff --git a/modules/mesh-grants/internal/buscompose/buscompose_test.go b/modules/mesh-grants/internal/buscompose/buscompose_test.go index 9697e43e..06d80f97 100644 --- a/modules/mesh-grants/internal/buscompose/buscompose_test.go +++ b/modules/mesh-grants/internal/buscompose/buscompose_test.go @@ -2,6 +2,8 @@ package buscompose import ( "encoding/json" + "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" + "git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshnodeenroller" "maps" "os" "path/filepath" @@ -344,7 +346,7 @@ func TestTheCopiedComposerComposesAsTheControllers(t *testing.T) { // 774/S40/AC1 (ADR 0587 §4, §6, ADR 0590): an enrolling node's user may publish the redeem call in its own name and // nothing else, and subscribe its own inbox alone. t.Run("an enrolling node redeems at the seat alone", func(t *testing.T) { - holder := Seat{Name: catalogue.EnrolmentSeat, Serves: []string{"issue", "redeem", "confirm", "revoke", "tokens", "again"}} + holder := Seat{Name: meshnodeenroller.Seat, Serves: []string{"issue", "redeem", "confirm", "revoke", "tokens", "again"}} { users, err := Users(Records{Nodes: []string{"ace"}, Enrolling: []string{"lab"}, Assigned: map[string][]Declared{"ace": {{Module: "mesh-enrolment", Holds: []Seat{holder}}}}}) @@ -364,7 +366,7 @@ func TestTheCopiedComposerComposesAsTheControllers(t *testing.T) { if err != nil { t.Fatal(err) } - want := []string{"mesh.seat.mesh-enrolment.call.redeem.enrol~lab"} + want := []string{"mesh.seat.mesh-node-enroller.call.redeem.enrol~lab"} if !reflect.DeepEqual(perms.Publish, want) || !reflect.DeepEqual(perms.Subscribe, []string{"_INBOX.enrol.lab.>"}) || perms.AllowResponses { t.Errorf("enrol.lab publishes %v, subscribes %v, answers %v", perms.Publish, perms.Subscribe, perms.AllowResponses) @@ -380,7 +382,7 @@ func TestTheCopiedComposerComposesAsTheControllers(t *testing.T) { // however wide its grant; and its bucket is read by the grants part alone besides it. t.Run("mesh-enrolment alone asks the vault to enrol", func(t *testing.T) { vault := Seat{Name: VaultSeat, Serves: []string{"sign", "enrolment-token", "node-account"}} - holder := Seat{Name: catalogue.EnrolmentSeat, Serves: []string{"issue", "redeem", "confirm", "revoke", "tokens", "again"}} + holder := Seat{Name: meshnodeenroller.Seat, Serves: []string{"issue", "redeem", "confirm", "revoke", "tokens", "again"}} calls := []string{"seat:mesh-vault.enrolment-token", "seat:mesh-vault.node-account", "seat:mesh-vault.sign"} users, err := Users(Records{Nodes: []string{"ace"}, Assigned: map[string][]Declared{"ace": { {Module: "mesh-vault", Holds: []Seat{vault}}, @@ -1093,7 +1095,7 @@ func aLedgerIsWrittenByItsLedgerAccountAlone(t *testing.T) { func theBusModulesProcessKeepsBusState(t *testing.T) { r := Records{Nodes: []string{"a"}, Assigned: map[string][]Declared{"a": { {Module: "node-tools", ToolRunner: true}, - {Module: "nats", SnapshotsTheBus: true, Holds: []Seat{{Name: catalogue.BrokerSeat, Serves: BrokerVerbs(), + {Module: "nats", SnapshotsTheBus: true, Holds: []Seat{{Name: meshbroker.Seat, Serves: BrokerVerbs(), Emits: []string{"created", "refused"}}}, Consumes: []string{"mesh-delivery-indexer.manifest-accepted"}, Uses: []Seat{{Name: "operator-channel", Accepts: []string{"condition"}, Emits: []string{"decided"}, ByCaller: []string{"condition", "decided"}}}, Streams: []ModuleStream{{Module: "nats", Name: "BROKER_EVENTS", Events: []string{"created", "refused"}, MaxAgeDays: 30, MaxMiB: 256}}, diff --git a/modules/mesh-grants/internal/buscompose/busstate.go b/modules/mesh-grants/internal/buscompose/busstate.go index 7b960106..5cf527cb 100644 --- a/modules/mesh-grants/internal/buscompose/busstate.go +++ b/modules/mesh-grants/internal/buscompose/busstate.go @@ -1,6 +1,7 @@ package buscompose import ( + "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" "slices" "sort" "strings" @@ -34,7 +35,7 @@ func BrokerVerbs() []string { } // brokerSeat is the seat mesh-broker as its verbs' subjects name it: held once, for the mesh. -var brokerSeat = Seat{Name: catalogue.BrokerSeat} +var brokerSeat = Seat{Name: meshbroker.Seat} // BrokerVerbSubjects are where the seat's verbs are asked: each verb's tool subject, and its caller-named form (issue // 365). @@ -171,7 +172,7 @@ func busStateKeeperGrants(names []string) []string { func brokerSeatEvents(holds []Seat) []string { var out []string for _, s := range holds { - if s.Name != catalogue.BrokerSeat { + if s.Name != meshbroker.Seat { continue } for _, e := range s.Emits { diff --git a/modules/mesh-grants/internal/buscompose/engine.go b/modules/mesh-grants/internal/buscompose/engine.go index ef1454ce..6e52a6fb 100644 --- a/modules/mesh-grants/internal/buscompose/engine.go +++ b/modules/mesh-grants/internal/buscompose/engine.go @@ -1,8 +1,8 @@ package buscompose import ( - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - "git.novox.be/novox/mesh-sdk/go/catalogue" + nodeengineseat "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" "git.novox.be/novox/mesh-sdk/go/delivery" "git.novox.be/novox/mesh-sdk/go/provisions" ) @@ -11,7 +11,7 @@ import ( // claims it. Its verbs and events are the catalogue's (catalogue.EngineVerbs), read here rather than copied. // EngineSeat is the seat. -const EngineSeat = catalogue.EngineSeat +const EngineSeat = nodeengineseat.Seat // EngineModule is the node-engine's manifest's module name, and EngineActsState its state the acts asked through the // node seat and its own asks are kept in (ADR 0563 §2, §3: "the engine's own state"): the bucket mesh-host_acts, keys diff --git a/modules/mesh-grants/internal/buscompose/nats.go b/modules/mesh-grants/internal/buscompose/nats.go index e8e717d0..e970ecbe 100644 --- a/modules/mesh-grants/internal/buscompose/nats.go +++ b/modules/mesh-grants/internal/buscompose/nats.go @@ -15,13 +15,15 @@ package buscompose import ( "errors" "fmt" + "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" + "git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshnodeenroller" "regexp" "slices" "sort" "strings" "time" - mv "git.novox.be/novox/mesh-contracts/go/seats/meshvault" + mv "git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshvault" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/delivery" ) @@ -399,7 +401,7 @@ var ( // EnrolmentRedeem is the seat mesh-enrolment's verb a joining node-engine calls as enrol. (novox/hq ADR 0587 §4, // §6). -var EnrolmentRedeem = SeatVerb{Seat: catalogue.EnrolmentSeat, Verb: catalogue.EnrolmentVerbRedeem} +var EnrolmentRedeem = SeatVerb{Seat: meshnodeenroller.Seat, Verb: catalogue.EnrolmentVerbRedeem} // EnrolmentRedeemCall is the one subject an enrolment user may publish once it enrols through the seat: redeem, in its // own name. @@ -936,7 +938,7 @@ func PermissionsFor(p Principal) (Permissions, error) { // 3. Seats it holds: full participation. But mesh-broker's acting verbs, which nobody serves on the bus (busstate.go). for _, s := range p.Holds { - if s.Name == catalogue.BrokerSeat { + if s.Name == meshbroker.Seat { s.Serves = withoutActing(s.Serves) } if s.isNewTraffic() { @@ -1035,7 +1037,7 @@ func PermissionsFor(p Principal) (Permissions, error) { pub = append(pub, ownStreamGrants(d.Module, d.Streams)...) for _, s := range d.Holds { // mesh-broker's acting verbs are served by nobody on the bus (busstate.go). - if s.Name == catalogue.BrokerSeat { + if s.Name == meshbroker.Seat { s.Serves = withoutActing(s.Serves) } for _, t := range s.Serves { diff --git a/modules/mesh-grants/internal/buscompose/seats_main_test.go b/modules/mesh-grants/internal/buscompose/seats_main_test.go new file mode 100644 index 00000000..76f0e6f5 --- /dev/null +++ b/modules/mesh-grants/internal/buscompose/seats_main_test.go @@ -0,0 +1,15 @@ +package buscompose + +import ( + "os" + "testing" + + "git.novox.be/novox/mesh-sdk/go/catalogue" + "git.novox.be/novox/mesh-sdk/go/seatlist/seatlisttest" +) + +// TestMain gives catalogue the seat list a host reads (ADR 0636 §1): none is compiled into mesh-sdk. +func TestMain(m *testing.M) { + catalogue.UseSeats(catalogue.SeatsFromDefinitions(seatlisttest.Definitions())) + os.Exit(m.Run()) +} diff --git a/modules/mesh-grants/internal/buscompose/testdata/composed.conf b/modules/mesh-grants/internal/buscompose/testdata/composed.conf index 87436d7c..3893d978 100644 --- a/modules/mesh-grants/internal/buscompose/testdata/composed.conf +++ b/modules/mesh-grants/internal/buscompose/testdata/composed.conf @@ -29,7 +29,7 @@ accounts { ] users = [ { user: "enrol.one", password: "$2a$11$eeeeeeeeeeeeeeeeeeeeee", permissions: { - publish: { allow: ["mesh.seat.mesh-enrolment.call.redeem.enrol~one"] } + publish: { allow: ["mesh.seat.mesh-node-enroller.call.redeem.enrol~one"] } subscribe: { allow: ["_INBOX.enrol.one.>"] } } } { user: "node.one", password: "$2a$11$nnnnnnnnnnnnnnnnnnnnnn", permissions: { diff --git a/modules/mesh-grants/internal/grants/accounts.go b/modules/mesh-grants/internal/grants/accounts.go index 4c93df54..cadbed51 100644 --- a/modules/mesh-grants/internal/grants/accounts.go +++ b/modules/mesh-grants/internal/grants/accounts.go @@ -81,21 +81,17 @@ func manifestOn(in Inputs, node, module string) (catalogue.Manifest, bool) { return m, ok } -// ClaimsOf is a module's claims as its credential carries them: the controller's claimsFor, over the mesh's own seats -// (its seat table is seeded from them): each claim's seat and scope, and the verbs the runtime serves for it, the claim's +// ClaimsOf is a module's claims as its credential carries them: the controller's claimsFor, over the seat list the host reads +// (catalogue.UseSeats, ADR 0636 §1): each claim's seat and scope, and the verbs the runtime serves for it, the claim's // own or every verb the seat promises; a seat the mesh does not define keeps the claim's scope and no verbs. func ClaimsOf(m catalogue.Manifest) []buscompose.ClaimedSeat { if len(m.Claims) == 0 { return nil } - byName := map[string]catalogue.Seat{} - for _, s := range catalogue.DefaultSeats() { - byName[s.Name] = s - } var out []buscompose.ClaimedSeat for _, c := range m.Claims { claimed := buscompose.ClaimedSeat{Seat: c.Name, Scope: c.At()} - if s, known := byName[c.Name]; known { + if s, known := catalogue.SeatNamed(c.Name); known { claimed.Scope = s.Scope claimed.Serves = c.ServesFor(catalogue.Manifest{Tools: catalogue.VerbNames(s.Serves)}) } diff --git a/modules/mesh-grants/internal/grants/bindings.go b/modules/mesh-grants/internal/grants/bindings.go index 47cefce0..ebea3ec4 100644 --- a/modules/mesh-grants/internal/grants/bindings.go +++ b/modules/mesh-grants/internal/grants/bindings.go @@ -3,10 +3,10 @@ package grants import ( "encoding/json" "fmt" + "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" "sort" "strings" - "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/membership" "mesh-grants/internal/buscompose" ) @@ -65,7 +65,7 @@ type Bound struct { // where only its holder publishes, and only while a module holds the seat. The bus module's own stream is its history // for its tool, never what the part hears. func brokerEvent(event string, brokers map[string]bool) (string, bool) { - name, onTheSeat := strings.CutPrefix(event, "mesh.seat."+catalogue.BrokerSeat+".event.") + name, onTheSeat := strings.CutPrefix(event, "mesh.seat."+meshbroker.Seat+".event.") if !onTheSeat || len(brokers) == 0 { return "", false } diff --git a/modules/mesh-grants/internal/grants/consumers.go b/modules/mesh-grants/internal/grants/consumers.go index 4b1a3d8c..b77fae66 100644 --- a/modules/mesh-grants/internal/grants/consumers.go +++ b/modules/mesh-grants/internal/grants/consumers.go @@ -10,8 +10,8 @@ import ( "github.com/nats-io/nats.go/jetstream" - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" "mesh-grants/internal/buscompose" ) diff --git a/modules/mesh-grants/internal/grants/firstviews.go b/modules/mesh-grants/internal/grants/firstviews.go index c1dca071..c9e0fc5b 100644 --- a/modules/mesh-grants/internal/grants/firstviews.go +++ b/modules/mesh-grants/internal/grants/firstviews.go @@ -12,8 +12,8 @@ import ( "sync" "time" - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" "git.novox.be/novox/mesh-sdk/go/delivery" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-grants/internal/grants/full.go b/modules/mesh-grants/internal/grants/full.go index 18e7528a..abd2cfc2 100644 --- a/modules/mesh-grants/internal/grants/full.go +++ b/modules/mesh-grants/internal/grants/full.go @@ -1,8 +1,8 @@ package grants import ( - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" ) // **The fill of a module's kept data is the bus module's** (novox/hq ADR 0595 §6, design 25 § 12.3): its one periodic diff --git a/modules/mesh-grants/internal/grants/grants.go b/modules/mesh-grants/internal/grants/grants.go index baed2bb1..e9a03c65 100644 --- a/modules/mesh-grants/internal/grants/grants.go +++ b/modules/mesh-grants/internal/grants/grants.go @@ -7,8 +7,8 @@ import ( "sort" "strings" - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" "git.novox.be/novox/mesh-sdk/go/delivery" "mesh-grants/internal/buscompose" ) diff --git a/modules/mesh-grants/internal/grants/held.go b/modules/mesh-grants/internal/grants/held.go index 593f66da..89283481 100644 --- a/modules/mesh-grants/internal/grants/held.go +++ b/modules/mesh-grants/internal/grants/held.go @@ -8,8 +8,8 @@ import ( "mesh-grants/internal/buscompose" - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" ) // **A module whose manifest waits or is refused keeps its bus users** (clause 3 of the record on a release's Approve; issue diff --git a/modules/mesh-grants/internal/grants/part.go b/modules/mesh-grants/internal/grants/part.go index 98941663..a23ab3b0 100644 --- a/modules/mesh-grants/internal/grants/part.go +++ b/modules/mesh-grants/internal/grants/part.go @@ -7,13 +7,13 @@ import ( "encoding/hex" "encoding/json" "fmt" + "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" "sort" "strings" "sync" "time" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" - "git.novox.be/novox/mesh-sdk/go/catalogue" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" "git.novox.be/novox/mesh-sdk/go/delivery" "git.novox.be/novox/mesh-sdk/go/membership" "mesh-grants/internal/buscompose" @@ -210,7 +210,7 @@ type Part struct { func (p *Part) keepBrokers(in Inputs) { brokers := map[string]bool{} for module, m := range in.Manifests { - if m.ClaimsSeat(catalogue.BrokerSeat) { + if m.ClaimsSeat(meshbroker.Seat) { brokers[module] = true } } diff --git a/modules/mesh-grants/internal/grants/records.go b/modules/mesh-grants/internal/grants/records.go index 651b68ed..cd5c06ea 100644 --- a/modules/mesh-grants/internal/grants/records.go +++ b/modules/mesh-grants/internal/grants/records.go @@ -2,6 +2,7 @@ package grants import ( "fmt" + "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" "reflect" "slices" "strings" @@ -160,7 +161,7 @@ func declaredFor(m catalogue.Manifest, seats map[string]catalogue.SeatDeclaratio if _, reads := m.OwnSecrets[buscompose.ProvisionerSecret]; reads && m.ClaimsSeat(buscompose.NodeProvisionerSeat) { d.ProvisionsNode = true } - d.SnapshotsTheBus = m.ClaimsSeat(catalogue.BrokerSeat) + d.SnapshotsTheBus = m.ClaimsSeat(meshbroker.Seat) for _, c := range m.Claims { if s, hasAProtocol := seats[c.Name]; hasAProtocol { held := asSeat(s, declarers[s.Name]) diff --git a/modules/mesh-grants/internal/grants/refused.go b/modules/mesh-grants/internal/grants/refused.go index 2c024c29..bff94ec3 100644 --- a/modules/mesh-grants/internal/grants/refused.go +++ b/modules/mesh-grants/internal/grants/refused.go @@ -6,8 +6,8 @@ import ( "sort" "strings" - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" "mesh-grants/internal/buscompose" ) diff --git a/modules/mesh-grants/internal/grants/rootfree.go b/modules/mesh-grants/internal/grants/rootfree.go index e76fbbaa..01e7c6df 100644 --- a/modules/mesh-grants/internal/grants/rootfree.go +++ b/modules/mesh-grants/internal/grants/rootfree.go @@ -3,11 +3,11 @@ package grants import ( "encoding/json" "fmt" + "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" "slices" "sort" "strings" - "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/health" "mesh-grants/internal/buscompose" ) @@ -42,8 +42,8 @@ const EventAccountIssued = "mesh-vault." + buscompose.AccountIssuedEvent // Consumes is every event the part hears, as its manifest's consumes name them. // The seat mesh-broker's created, recreated and dropped are heard as every seat's event, `.` on EVENTS (the // lead's ruling, registry milestone 13:0x), never on the bus module's own stream. -var Consumes = append([]string{EventKeeperRaised, EventKeeperCleared, EventAccountIssued, catalogue.BrokerSeat + "." + BrokerCreated, - catalogue.BrokerSeat + "." + BrokerDropped, catalogue.BrokerSeat + "." + BrokerRecreated}, viewsEvents()...) +var Consumes = append([]string{EventKeeperRaised, EventKeeperCleared, EventAccountIssued, meshbroker.Seat + "." + BrokerCreated, + meshbroker.Seat + "." + BrokerDropped, meshbroker.Seat + "." + BrokerRecreated}, viewsEvents()...) // viewsEvents are the owners' events the part follows its first views by: `.views.`, but the verdicts by // the indexer's manifest-accepted and manifest-refused (VerdictEvents, ADR 0622 §2). diff --git a/modules/mesh-grants/internal/grants/sealed.go b/modules/mesh-grants/internal/grants/sealed.go index 33845137..20668056 100644 --- a/modules/mesh-grants/internal/grants/sealed.go +++ b/modules/mesh-grants/internal/grants/sealed.go @@ -9,8 +9,8 @@ import ( "strings" "time" - occ "git.novox.be/novox/mesh-contracts/go/clients/operatorchannelclient" - oc "git.novox.be/novox/mesh-contracts/go/seats/operatorchannel" + occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" + oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" "git.novox.be/novox/mesh-sdk/go/delivery" "mesh-grants/internal/buscompose" ) diff --git a/modules/mesh-grants/internal/grants/seats_main_test.go b/modules/mesh-grants/internal/grants/seats_main_test.go new file mode 100644 index 00000000..7c6e1b6c --- /dev/null +++ b/modules/mesh-grants/internal/grants/seats_main_test.go @@ -0,0 +1,15 @@ +package grants + +import ( + "os" + "testing" + + "git.novox.be/novox/mesh-sdk/go/catalogue" + "git.novox.be/novox/mesh-sdk/go/seatlist/seatlisttest" +) + +// TestMain gives catalogue the seat list a host reads (ADR 0636 §1): none is compiled into mesh-sdk. +func TestMain(m *testing.M) { + catalogue.UseSeats(catalogue.SeatsFromDefinitions(seatlisttest.Definitions())) + os.Exit(m.Run()) +} diff --git a/modules/mesh-grants/seats_main_test.go b/modules/mesh-grants/seats_main_test.go new file mode 100644 index 00000000..95e44d8c --- /dev/null +++ b/modules/mesh-grants/seats_main_test.go @@ -0,0 +1,15 @@ +package manifest + +import ( + "os" + "testing" + + "git.novox.be/novox/mesh-sdk/go/catalogue" + "git.novox.be/novox/mesh-sdk/go/seatlist/seatlisttest" +) + +// TestMain gives catalogue the seat list a host reads (ADR 0636 §1): none is compiled into mesh-sdk. +func TestMain(m *testing.M) { + catalogue.UseSeats(catalogue.SeatsFromDefinitions(seatlisttest.Definitions())) + os.Exit(m.Run()) +}