Variable: SEEDED_BUNDLES
constSEEDED_BUNDLES:object
Defined in: packages/contracts/src/authorization.ts:91
The bundles the setup engine seeds (D1.8, D2.10). Bundles are not editable and no
route creates one; bootstrap.apply carries these, and identity stores them.
ENTITY_ADMINruns an organisation: its subjects, persons and grants, and from slice 3 its identifier (D3.7, PO3.8). Admitting the entity was the governing act; holding its own keys is not, so the entity's own administrator creates, publishes and updates the identifier. It holds nothing of the trust tree, so whoever administers an entity cannot admit one.ORGANIZATION_CLIENTis a machine client's, slice 0's authority.TRUST_ANCHOR_ADMINgoverns the tree (17 section 4.2): apply, admit, approve publication and read. Delegation narrows, so only a holder can grant it.ACCREDITATION_OFFICERputs an organisation forward and reads the outcome, and may not admit or publish (17: "record a decision", not "publish the statement").SOLE_ADMINisENTITY_ADMINandTRUST_ANCHOR_ADMINtogether, for a deployment where one person runs and governs: the local and CI stacks, and 17's small deployment. It exists because identity allows one active grant per person per organisation (3a C1). A production answer file does not grant it; it keeps the duty split with a separate governing account.
Both governance bundles hold subject.read because accreditation.apply reads the
organisation through identity.subject.get as the request's own actor (D2.1), and
identity checks that permission first.
Each list is spelled out rather than derived from PERMISSION_CODES, so that a code added to the catalogue joins no bundle by accident.
Changing a list here changes seeded data. identity refuses a seeded bundle that
exists with other permissions (bootstrap.bundle_differs), and the engine sends every
bundle on every run. The four identifier.* codes joined ENTITY_ADMIN and
SOLE_ADMIN in slice 3's contracts step, inside the window in which no persistent
environment holds the bundles: the Dev host does not exist, and local and CI stacks
are reset (pnpm stack:reset). That window closes with the Dev host. The next
widening of a seeded bundle needs the bundle-migration decision first.
Type Declaration
ACCREDITATION_OFFICER
readonlyACCREDITATION_OFFICER: readonly ["accreditation.apply","accreditation.read","entity-statement.read","subject.read"]
ENTITY_ADMIN
readonlyENTITY_ADMIN: readonly ["subject.create","subject.read","person.create","person.read","grant.create","grant.read","grant.revoke","identifier.create","identifier.read","identifier.publish","identifier.update"]
ORGANIZATION_CLIENT
readonlyORGANIZATION_CLIENT: readonly ["subject.create","subject.read"]
SOLE_ADMIN
readonlySOLE_ADMIN: readonly ["subject.create","subject.read","person.create","person.read","grant.create","grant.read","grant.revoke","accreditation.apply","accreditation.admit","accreditation.publish","accreditation.read","entity-statement.read","identifier.create","identifier.read","identifier.publish","identifier.update"]
TRUST_ANCHOR_ADMIN
readonlyTRUST_ANCHOR_ADMIN: readonly ["accreditation.apply","accreditation.admit","accreditation.publish","accreditation.read","entity-statement.read","subject.read"]