The grants part composes the bus's user list with the composer the controller uses (ADR 0547 §5), copied rather than moved: the controller is not changed and keeps its own until it loses the lease. Left out: the bus client, the broker's address from the environment and the client's two methods; the lease's two subjects are copied in. One table test holds the copy to four meshes' lists and the server golden, written by the controller's own internal/broker from the same fixtures (testdata/controller-user-lists.json).
13 lines
1.1 KiB
Go
13 lines
1.1 KiB
Go
// Package buscompose is the bus's composer: who may say what on the bus, as the user list and the server configuration
|
|
// the bus loads, derived from the mesh's records (Users, WithPasswords, ComposeAccounts, Compose), with the grants,
|
|
// streams, state and logs it composes them from.
|
|
//
|
|
// **A copy of the controller's internal/broker, composer half** (issue 1377, novox/hq ADR 0547 §5), taken at
|
|
// mesh-controller 7cd4d18b: the bus client (jetstream.go), the broker's address from the environment (broker.go, onnats.go
|
|
// but its one constant) and the two methods on that client are left out; the lease's two subjects are copied in
|
|
// (nats.go). The controller keeps its own copy, unchanged, until it loses its lease at ADR 0547's third milestone, so
|
|
// for that time two composers state who may say what and must say the same: TestTheCopiedComposerComposesAsTheControllers
|
|
// holds this copy to lists the controller's own code wrote from the same fixtures. A change to what is granted is made
|
|
// here and, while the controller composes, in the controller's copy too, never in one alone.
|
|
package buscompose
|