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).
39 lines
1.5 KiB
Go
39 lines
1.5 KiB
Go
package buscompose
|
|
|
|
import (
|
|
"git.novox.be/novox/mesh-sdk/go/membership"
|
|
"git.novox.be/novox/mesh-sdk/go/process"
|
|
)
|
|
|
|
// The membership the mesh issues an assignment (novox/hq ADR 0160), its subject, its stream, the bare address and the
|
|
// pin are mesh-sdk's, public so that a module's program outside this Go module, the route proxy, reads them too
|
|
// (novox/hq ADR 0480 clause 4, issue 1633). This package keeps no second copy: what follows only names them where the
|
|
// controller already did.
|
|
type (
|
|
Membership = membership.Membership
|
|
Served = membership.Served
|
|
SeatServed = membership.SeatServed
|
|
StateIssued = membership.StateIssued
|
|
LogIssued = membership.LogIssued
|
|
Worker = membership.Worker
|
|
SeatTraffic = membership.SeatTraffic
|
|
KindHeld = membership.KindHeld
|
|
StreamIssued = membership.StreamIssued
|
|
HeardIssued = membership.HeardIssued
|
|
WaitIssued = membership.WaitIssued
|
|
)
|
|
|
|
// AssignmentsStream holds every assignment's membership, the newest per subject.
|
|
const AssignmentsStream = membership.AssignmentsStream
|
|
|
|
var (
|
|
// MembershipSubject is where an assignment's own membership is published.
|
|
MembershipSubject = membership.Subject
|
|
// CredentialIn reads the user and password out of a bus address, and the address without them.
|
|
CredentialIn = membership.CredentialIn
|
|
// BareAddress is a bus address with any credential stripped.
|
|
BareAddress = membership.BareAddress
|
|
// PinnedToFingerprint accepts exactly the certificate with this SHA-256 and no other.
|
|
PinnedToFingerprint = process.PinnedToFingerprint
|
|
)
|