Skip to content
Registry StackDocsDevelopment (unreleased)

Base Registry Engine configuration reference

View as Markdown

Look up any key of a file Base Registry Engine (BReg) reads: registry.yaml, modules/<name>/module.yaml, runtime.yaml, and the tooling documents beside a project. To write a project, start from Author a registry project; to deploy one, from Deploy and serve. The grammar is not frozen before v1.0.0 (API stability and versioning).

fields[] is an array item; eventDestinations.* is a map entry whose name you choose. A required key inside an optional object is required only when that object is present. Constraints joined by or are alternatives. Not specified does not mean any value is accepted: the compiler and the runtime also check cross-field rules and references that no table can show.

registry.yaml

Source preview, pre-1.0

Generated from products/breg/generated/authoring/registry-project.schema.json. 777 key paths. Explained in docs/site/src/content/docs/configure/breg.mdx.

Key pathTypeRequiredAccepted valuesConstraints
accessProfilesarrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[]Array itemOne access profile as a project writes it.objectNoNot specifiedNone specified
accessProfiles[].actorKindstringNo
  • agent
  • human
  • service
None specified
accessProfiles[].defaultbooleanNoNot specifiedSchema default, where declared: falseNone specified
accessProfiles[].displayAuthored presentation only; labels never establish identity or authority.objectNoNot specifiedNone specified
accessProfiles[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
accessProfiles[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
accessProfiles[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
accessProfiles[].permissionsWhat the profile may do, grouped by what each permission names. Omit when the profile grants nothing.objectNoNot specifiedSchema default, where declared: {"actions":[],"datasets":[],"proposals":[],"records":[]}None specified
accessProfiles[].permissions.actionsThe actions the profile may invoke: one permission for each action it names.arrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.actions[]Array itemWhat a profile may do with one action. An action has no rows of its own: the row reach of what it touches is written on each target.objectNoNot specifiedNone specified
accessProfiles[].permissions.actions[].actionstringYesNot specifiedNone specified
accessProfiles[].permissions.actions[].operationsarrayYesNot specified
  • uniqueItems: true
accessProfiles[].permissions.actions[].operations[]Array itemCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringNo
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
accessProfiles[].permissions.actions[].resultsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.actions[].results[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.actions[].targetsarrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.actions[].targets[]Array itemobjectNoNot specifiedNone specified
accessProfiles[].permissions.actions[].targets[].recordTypestringYesNot specifiedNone specified
accessProfiles[].permissions.actions[].targets[].rowBoundariesRow reach: unrestricted, or a list of at least one row boundary.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
accessProfiles[].permissions.actions[].targets[].rowBoundaries[]Array itemobjectConditionalNot specifiedNone specified
accessProfiles[].permissions.actions[].targets[].rowBoundaries[].claimstringConditionalNot specifiedNone specified
accessProfiles[].permissions.actions[].targets[].rowBoundaries[].fieldstringConditionalNot specifiedNone specified
accessProfiles[].permissions.actions[].targets[].rowBoundaries[].operatorstringConditional
  • equals
  • in
None specified
accessProfiles[].permissions.datasetsWhat the profile may do with statistical datasets: one permission for each dataset it names.arrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.datasets[]Array itemWhat a profile may do with one statistical dataset.objectNoNot specifiedNone specified
accessProfiles[].permissions.datasets[].datasetThe statistical dataset the permission names.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
accessProfiles[].permissions.datasets[].operationsWhat the profile may do with the dataset. A profile that holds read-live or publish on a dataset with a publisher also holds read-releases.arrayYesNot specified
  • minItems: 1
  • uniqueItems: true
accessProfiles[].permissions.datasets[].operations[]Array itemOne thing a profile may do with a statistical dataset.stringNo
  • publish
  • read-live
  • read-releases
None specified
accessProfiles[].permissions.proposalsarrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.proposals[]Array itemobjectNoNot specifiedNone specified
accessProfiles[].permissions.proposals[].actionstringYesNot specifiedNone specified
accessProfiles[].permissions.proposals[].operationsarrayYesNot specified
  • uniqueItems: true
accessProfiles[].permissions.proposals[].operations[]Array itemstringNo
  • apply
  • cancel
  • edit
  • get
  • get-application-actor
  • get-review-context
  • get-review-status
  • list
  • rebase
  • retry
  • revise
  • submit
None specified
accessProfiles[].permissions.proposals[].ownershipstringNo
  • caller
None specified
accessProfiles[].permissions.proposals[].readableAttachmentsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.proposals[].readableAttachments[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.proposals[].readableContextFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.proposals[].readableContextFields[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.proposals[].readableInputsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.proposals[].readableInputs[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.proposals[].reviewAuthoritystringNoNot specifiedNone specified
accessProfiles[].permissions.proposals[].targetsarrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.proposals[].targets[]Array itemobjectNoNot specifiedNone specified
accessProfiles[].permissions.proposals[].targets[].recordTypestringYesNot specifiedNone specified
accessProfiles[].permissions.proposals[].targets[].rowBoundariesThe rows a permission reaches: the keyword unrestricted, or a list of at least one row boundary.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
accessProfiles[].permissions.proposals[].targets[].rowBoundaries[]Array itemobjectConditionalNot specifiedNone specified
accessProfiles[].permissions.proposals[].targets[].rowBoundaries[].claimstringConditionalNot specifiedNone specified
accessProfiles[].permissions.proposals[].targets[].rowBoundaries[].fieldstringConditionalNot specifiedNone specified
accessProfiles[].permissions.proposals[].targets[].rowBoundaries[].operatorstringConditional
  • equals
  • in
None specified
accessProfiles[].permissions.proposals[].writableAttachmentsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.proposals[].writableAttachments[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.recordsWhat the profile may do with entities: one permission for each entity it names.arrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.records[]Array itemWhat a profile may do with one entity.objectNoNot specifiedNone specified
accessProfiles[].permissions.records[].allowCountbooleanNoNot specifiedSchema default, where declared: falseNone specified
accessProfiles[].permissions.records[].allowDataExportbooleanNoNot specifiedSchema default, where declared: falseNone specified
accessProfiles[].permissions.records[].filterableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.records[].filterableFields[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.records[].lookupsarrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.records[].lookups[]Array itemobjectNoNot specifiedNone specified
accessProfiles[].permissions.records[].lookups[].claimMappingobjectNoNot specifiedSchema default, where declared: {}None specified
accessProfiles[].permissions.records[].lookups[].claimMapping.*Map valuestringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
accessProfiles[].permissions.records[].lookups[].selectorstringYesNot specifiedNone specified
accessProfiles[].permissions.records[].lookups[].valueOriginstringYes
  • request
  • verified-claim
None specified
accessProfiles[].permissions.records[].membershipBoundariesCurrent active membership required for each stored reference key.arrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.records[].membershipBoundaries[]Array itemA one-hop current membership requirement, combined with every other row boundary. The root field and membership key must reference the same entity. The active field is Boolean, and principalField matches the profile's verified principal.objectNoNot specifiedNone specified
accessProfiles[].permissions.records[].membershipBoundaries[].activeFieldstringYesNot specifiedNone specified
accessProfiles[].permissions.records[].membershipBoundaries[].fieldstringYesNot specifiedNone specified
accessProfiles[].permissions.records[].membershipBoundaries[].membershipKeyFieldstringYesNot specifiedNone specified
accessProfiles[].permissions.records[].membershipBoundaries[].membershipRecordTypestringYesNot specifiedNone specified
accessProfiles[].permissions.records[].membershipBoundaries[].principalFieldstringYesNot specifiedNone specified
accessProfiles[].permissions.records[].operationsarrayYesNot specified
  • uniqueItems: true
accessProfiles[].permissions.records[].operations[]Array itemCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringNo
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
accessProfiles[].permissions.records[].provenanceFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.records[].provenanceFields[]Array itemA member of a revision's changeContext a profile may read. Each value is spelled as the member it names is (CFG-NAME-2).stringNo
  • kind
  • reasonCode
  • reasonText
  • sourceReferences
None specified
accessProfiles[].permissions.records[].readPathsarrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.records[].readPaths[]Array itemobjectNoNot specifiedNone specified
accessProfiles[].permissions.records[].readPaths[].allowCountbooleanNoNot specifiedSchema default, where declared: falseNone specified
accessProfiles[].permissions.records[].readPaths[].filterableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.records[].readPaths[].filterableFields[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.records[].readPaths[].pathstringYesNot specifiedNone specified
accessProfiles[].permissions.records[].readPaths[].readableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.records[].readPaths[].readableFields[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.records[].readPaths[].sortableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.records[].readPaths[].sortableFields[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.records[].readableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.records[].readableFields[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.records[].recordTypestringYesNot specifiedNone specified
accessProfiles[].permissions.records[].requireConsentCurrent subject-issued consent required for each row, ANDed.arrayNoNot specifiedSchema default, where declared: []None specified
accessProfiles[].permissions.records[].requireConsent[]Array itemA consent check ANDed into one read permission.objectNoNot specifiedNone specified
accessProfiles[].permissions.records[].requireConsent[].onThe permission entity's field the consent subject references; id is the row's own identity.stringYesNot specifiedNone specified
accessProfiles[].permissions.records[].requireConsent[].recordThe consent-record entity checked.stringYesNot specifiedNone specified
accessProfiles[].permissions.records[].revisionAccessbooleanNoNot specifiedSchema default, where declared: falseNone specified
accessProfiles[].permissions.records[].rowBoundariesRow reach: unrestricted, or a list of at least one row boundary.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
accessProfiles[].permissions.records[].rowBoundaries[]Array itemobjectConditionalNot specifiedNone specified
accessProfiles[].permissions.records[].rowBoundaries[].claimstringConditionalNot specifiedNone specified
accessProfiles[].permissions.records[].rowBoundaries[].fieldstringConditionalNot specifiedNone specified
accessProfiles[].permissions.records[].rowBoundaries[].operatorstringConditional
  • equals
  • in
None specified
accessProfiles[].permissions.records[].sortableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.records[].sortableFields[]Array itemstringNoNot specifiedNone specified
accessProfiles[].permissions.records[].spatialQueriesobjectNoNot specifiedNone specified
accessProfiles[].permissions.records[].spatialQueries.bboxobjectNoNot specifiedNone specified
accessProfiles[].permissions.records[].spatialQueries.bbox.maximumLatitudeSpanDegreesnumberYesNot specifiedNone specified
accessProfiles[].permissions.records[].spatialQueries.bbox.maximumLongitudeSpanDegreesnumberYesNot specifiedNone specified
accessProfiles[].permissions.records[].writableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
accessProfiles[].permissions.records[].writableFields[]Array itemstringNoNot specifiedNone specified
accessProfiles[].principalClaimThe token claim that names the caller. Every profile serves authenticated callers, so every profile names one.stringYesNot specifiedNone specified
accessProfiles[].requesterClientsThe OAuth clients whose tokens may select this profile. Omit to accept every client.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
accessProfiles[].requesterClients[]Array itemstringNoNot specifiedNone specified
accessProfiles[].requiredPurposesThe verified token's purpose must match one listed value. Omit to accept every purpose.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
accessProfiles[].requiredPurposes[]Array itemstringNoNot specifiedNone specified
accessProfiles[].requiredScopesThe scopes the verified token must carry: unrestricted, or a list of at least one scope, all of which must be present.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
  • uniqueItems: true
accessProfiles[].requiredScopes[]Array itemstringConditionalNot specifiedNone specified
accessProfiles[].taskGrantobjectNoNot specifiedNone specified
accessProfiles[].taskGrant.sourceIssuerAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
actionsarrayNoNot specifiedNone specified
actions[]Array itemobjectNoNot specifiedNone specified
actions[].apiNamestringNoNot specifiedNone specified
actions[].commitGuardsobjectNoNot specifiedSchema default, where declared: {"evidence":[],"targets":[]}None specified
actions[].commitGuards.evidencearrayNoNot specifiedSchema default, where declared: []None specified
actions[].commitGuards.evidence[]Array itemobjectNoNot specifiedNone specified
actions[].commitGuards.evidence[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].commitGuards.evidence[].maximumObservationAgeSecondsintegerYesNot specified
  • format: uint64
  • maximum: 300
  • minimum: 1
actions[].commitGuards.evidence[].providerstringYesNot specifiedNone specified
actions[].commitGuards.evidence[].requirementstringYesNot specifiedNone specified
actions[].commitGuards.evidence[].requiresarrayNoNot specifiedSchema default, where declared: []None specified
actions[].commitGuards.evidence[].requires[]Array itemobjectNoNot specifiedNone specified
actions[].commitGuards.evidence[].requires[].atLeastintegerNoNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
actions[].commitGuards.evidence[].requires[].atMostintegerNoNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
actions[].commitGuards.evidence[].requires[].equalsNot specifiedNoNot specifiedNone specified
actions[].commitGuards.evidence[].requires[].equalsFromInputstringNoNot specifiedNone specified
actions[].commitGuards.evidence[].requires[].outputstringYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjectsobjectYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*Map valueobjectNoNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
actions[].commitGuards.evidence[].subjects.*.profilestringYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*.selectorsExact governed selector-profile field map. Every profile field must be present exactly once and no undeclared field is admitted.objectYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*.selectors.*Map valueobjectNoNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
actions[].commitGuards.evidence[].subjects.*.selectors.*.fieldstringConditionalNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*.selectors.*.inputstringYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*.selectors.*.typestringYes
  • input
  • target-field
None specified
actions[].commitGuards.targetsarrayNoNot specifiedSchema default, where declared: []None specified
actions[].commitGuards.targets[]Array itemobjectNoNot specifiedNone specified
actions[].commitGuards.targets[].atLeastintegerNoNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
actions[].commitGuards.targets[].atMostintegerNoNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
actions[].commitGuards.targets[].currentDatestringNo
  • on-or-after
  • on-or-before
None specified
actions[].commitGuards.targets[].equalsA comparison literal: a boolean, a number, or text.boolean | number | stringNoNot specifiedNone specified
actions[].commitGuards.targets[].equalsFromInputstringNoNot specifiedNone specified
actions[].commitGuards.targets[].fieldstringNoNot specifiedSchema default, where declared: ""None specified
actions[].commitGuards.targets[].inputstringYesNot specifiedNone specified
actions[].commitGuards.targets[].isNullRequires the stored value to be unset. Only true is read.booleanNo
  • true
None specified
actions[].commitGuards.targets[].revisionstringNo
  • unchanged
None specified
actions[].consentIssuerWho an action creates consent rows for.stringNo
  • self
  • steward
None specified
actions[].displayobjectNoNot specifiedSchema default, where declared: {}None specified
actions[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
actions[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
actions[].display.titleFieldstringNoNot specifiedNone specified
actions[].evidencearrayNoNot specifiedNone specified
actions[].evidence[]Array itemobjectNoNot specifiedNone specified
actions[].evidence[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].evidence[].maximumObservationAgeSecondsintegerYesNot specified
  • format: uint64
  • maximum: 300
  • minimum: 1
actions[].evidence[].outputsarrayYesNot specifiedNone specified
actions[].evidence[].outputs[]Array itemstringNoNot specifiedNone specified
actions[].evidence[].providerstringYesNot specifiedNone specified
actions[].evidence[].requirementstringYesNot specifiedNone specified
actions[].evidence[].subjectsobjectYesNot specifiedNone specified
actions[].evidence[].subjects.*Map valueobjectNoNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
actions[].evidence[].subjects.*.profilestringYesNot specifiedNone specified
actions[].executionobjectYesNot specifiedNone specified
actions[].execution.modestringYes
  • immediate
  • proposal
None specified
actions[].execution.proposalobjectConditionalNot specifiedNone specified
actions[].execution.proposal.applicationobjectConditionalNot specifiedSchema default, where declared: {"maximumAttempts":3,"mode":"automatic"}None specified
actions[].execution.proposal.application.maximumAttemptsintegerConditionalNot specifiedSchema default, where declared: 3
  • format: uint32
  • maximum: 32
  • minimum: 1
actions[].execution.proposal.application.modestringConditional
  • automatic
  • manual
None specified
actions[].execution.proposal.attachmentsarrayConditionalNot specifiedSchema default, where declared: []None specified
actions[].execution.proposal.attachments[]Array itemobjectConditionalNot specifiedNone specified
actions[].execution.proposal.attachments[].classificationstringConditional
  • internal
  • public
  • restricted
None specified
actions[].execution.proposal.attachments[].contentTypesarrayConditionalNot specifiedNone specified
actions[].execution.proposal.attachments[].contentTypes[]Array itemstringConditionalNot specifiedNone specified
actions[].execution.proposal.attachments[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.attachments[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 16777216
  • minimum: 1
actions[].execution.proposal.attachments[].requiredbooleanConditionalNot specifiedNone specified
actions[].execution.proposal.hooksPost-commit observers of the fixed, value-free Proposal lifecycle event.arrayConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[]Array itemobjectConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].displayAuthored presentation only; labels never establish identity or authority.objectConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handlerWhere a hook's handler runs. The pairing rule: rhai requires script, wasm requires module, url requires destinationId, and each kind requires exactly its own fields and nothing else. abi is required on rhai and wasm and forbidden on url; its value is closed and checked at compile time in [crate::validate_hooks].objectConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.abiFor rhai: The handler ABI the script speaks. For wasm: The handler ABI the module speaks.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.destinationIdKey in the runtime destination binding.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.moduleModule path in the project.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.scriptScript path in the project.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.typestringConditional
  • rhai
  • url
  • wasm
None specified
actions[].execution.proposal.hooks[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.hooks[].transitionsOmit to observe every committed lifecycle transition.arrayConditionalNot specified
  • uniqueItems: true
actions[].execution.proposal.hooks[].transitions[]Array itemstringConditional
  • applied
  • cancelled
  • edited
  • rebased
  • rejected
  • retried
  • review-returned
  • revised
  • started
  • submitted
None specified
actions[].execution.proposal.retentionobjectConditionalNot specifiedNone specified
actions[].execution.proposal.retention.modestringConditional
  • operator-erase
  • retain
None specified
actions[].execution.proposal.reviewobjectConditionalNot specifiedNone specified
actions[].execution.proposal.review.authoritystringConditionalNot specifiedNone specified
actions[].execution.proposal.review.policyobjectConditionalNot specifiedNone specified
actions[].execution.proposal.review.policy.digestA SHA-256 digest: sha256: followed by 64 lowercase hex digits.stringConditionalNot specified
  • pattern: ^sha256:[0-9a-f]{64}$
actions[].execution.proposal.review.policy.idAn identifier another system issues, written exactly as its issuer gives it.stringConditionalNot specified
  • maxLength: 128
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
actions[].execution.proposal.review.policy.versionstringConditionalNot specifiedNone specified
actions[].execution.proposal.review.sourcestringConditionalNot specifiedNone specified
actions[].execution.proposal.review.typestringConditional
  • none
  • required
None specified
actions[].execution.proposal.reviewContextobjectConditionalNot specifiedNone specified
actions[].execution.proposal.reviewContext.fieldsobjectConditionalNot specified
  • maxProperties: 64
actions[].execution.proposal.reviewContext.fields.*Map valueobjectConditionalNot specified
  • propertyNames.maxLength: 64
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[a-z][A-Za-z0-9]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.fieldA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.fieldsarrayConditionalNot specifiedNone specified
actions[].execution.proposal.reviewContext.fields.*.fields[]Array itemstringConditionalNot specifiedNone specified
actions[].execution.proposal.reviewContext.fields.*.inputA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.recordTypeA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.slotA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.typestringConditional
  • changes
  • document
  • input
  • record
None specified
actions[].execution.proposal.reviewContext.idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].inputsarrayNoNot specifiedSchema default, where declared: []None specified
actions[].inputs[]Array itemobjectNoNot specifiedNone specified
actions[].inputs[].apiNamestringNoNot specifiedNone specified
actions[].inputs[].bboxobjectConditionalNot specifiedNone specified
actions[].inputs[].bbox.eaststringConditionalNot specifiedNone specified
actions[].inputs[].bbox.northstringConditionalNot specifiedNone specified
actions[].inputs[].bbox.southstringConditionalNot specifiedNone specified
actions[].inputs[].bbox.weststringConditionalNot specifiedNone specified
actions[].inputs[].classificationstringYes
  • internal
  • public
  • restricted
None specified
actions[].inputs[].displayobjectNoNot specifiedSchema default, where declared: {}None specified
actions[].inputs[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
actions[].inputs[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
actions[].inputs[].display.titleFieldstringNoNot specifiedNone specified
actions[].inputs[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].inputs[].maximumstringConditionalNot specifiedNone specified
actions[].inputs[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
actions[].inputs[].maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
actions[].inputs[].minimumstringConditionalNot specifiedNone specified
actions[].inputs[].minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
actions[].inputs[].onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
actions[].inputs[].precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
actions[].inputs[].requiredbooleanNoNot specifiedSchema default, where declared: falseNone specified
actions[].inputs[].scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
actions[].inputs[].schemaNot specifiedConditionalNot specifiedNone specified
actions[].inputs[].targetstringConditionalNot specifiedNone specified
actions[].inputs[].typestringConditional
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
actions[].inputs[].typeRefA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].inputs[].valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
actions[].inputs[].values[]Array itemstringConditionalNot specifiedNone specified
actions[].inputs[].vocabularystringConditionalNot specifiedNone specified
actions[].planobjectYesNot specifiedNone specified
actions[].plan.capabilitiesarrayConditionalNot specifiedSchema default, where declared: []
  • uniqueItems: true
actions[].plan.capabilities[]Array itemstringConditionalNot specifiedNone specified
actions[].plan.effectsarrayConditionalNot specifiedNone specified
actions[].plan.effects[]Array itemobjectConditionalNot specifiedNone specified
actions[].plan.effects[].cleararrayConditionalNot specifiedSchema default, where declared: []
  • uniqueItems: true
actions[].plan.effects[].clear[]Array itemstringConditionalNot specifiedNone specified
actions[].plan.effects[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].plan.effects[].operationCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringConditional
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
actions[].plan.effects[].setobjectConditionalNot specifiedSchema default, where declared: {}None specified
actions[].plan.effects[].set.*Map valueobjectConditionalNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].plan.effects[].set.*.fromEffectstringConditionalNot specifiedNone specified
actions[].plan.effects[].set.*.fromInputstringConditionalNot specifiedNone specified
actions[].plan.effects[].set.*.valueNot specifiedConditionalNot specifiedNone specified
actions[].plan.effects[].targetobjectConditionalNot specifiedNone specified
actions[].plan.effects[].target.fromInputstringConditionalNot specifiedNone specified
actions[].plan.effects[].target.recordTypestringConditionalNot specifiedNone specified
actions[].plan.functionstringConditionalNot specifiedNone specified
actions[].plan.inputsarrayConditionalNot specifiedNone specified
actions[].plan.inputs[]Array itemstringConditionalNot specifiedNone specified
actions[].plan.refusalsarrayConditionalNot specifiedSchema default, where declared: []None specified
actions[].plan.refusals[]Array itemobjectConditionalNot specifiedNone specified
actions[].plan.refusals[].codestringConditionalNot specifiedNone specified
actions[].plan.refusals[].labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specifiedNone specified
actions[].plan.typestringYes
  • fixed
  • function
None specified
actions[].plan.writesarrayConditionalNot specifiedNone specified
actions[].plan.writes[]Array itemobjectConditionalNot specifiedNone specified
actions[].plan.writes[].fieldsarrayConditionalNot specifiedNone specified
actions[].plan.writes[].fields[]Array itemstringConditionalNot specifiedNone specified
actions[].plan.writes[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].plan.writes[].operationCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringConditional
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
actions[].plan.writes[].targetobjectConditionalNot specifiedNone specified
actions[].plan.writes[].target.fromInputstringConditionalNot specifiedNone specified
actions[].plan.writes[].target.recordTypestringConditionalNot specifiedNone specified
apiVersionstringYes
  • id.registrystack.org/formats/breg/project/v1alpha1
None specified
datasetsarrayNoNot specifiedSchema default, where declared: []None specified
datasets[]Array itemobjectNoNot specifiedNone specified
datasets[].displayobjectNoNot specifiedSchema default, where declared: {}None specified
datasets[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
datasets[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
datasets[].display.titleFieldstringNoNot specifiedNone specified
datasets[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
evidenceProvidersarrayNoNot specifiedNone specified
evidenceProviders[]Array itemobjectNoNot specifiedNone specified
evidenceProviders[].contractsstringYesNot specifiedNone specified
evidenceProviders[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
evidenceProviders[].subjectResolutionstringYes
  • trusted-provider-exact-selector
None specified
functionsarrayNoNot specifiedSchema default, where declared: []None specified
functions[]Array itemobjectNoNot specifiedNone specified
functions[].abistringYes
  • registry.action-plan/v1
None specified
functions[].capabilitiesarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
functions[].capabilities[]Array itemstringNoNot specifiedNone specified
functions[].entrypointstringYesNot specifiedNone specified
functions[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
functions[].limitsobjectNoNot specifiedSchema default, where declared: {"maximumOperations":10000,"maximumOutputBytes":8192}None specified
functions[].limits.maximumOperationsintegerNoNot specifiedSchema default, where declared: 10000
  • format: uint64
  • maximum: 100000
  • minimum: 1
functions[].limits.maximumOutputBytesintegerNoNot specifiedSchema default, where declared: 8192
  • format: uint32
  • maximum: 2097152
  • minimum: 1
functions[].runtimeThe authored action-handler backend. The wasm backend is admitted when this build of the compiler carries the wasm cargo feature, which validates a declared WASM handler module against the platform guest ABI at compile time; without that feature a declared WASM handler is refused with the pinned breg.action.handler-wasm-build-unsupported diagnostic.stringYes
  • rhai
  • wasm
None specified
functions[].sourcestringYesNot specifiedNone specified
kindstringYes
  • BRegProject
None specified
manifestProjectionobjectNoNot specifiedNone specified
manifestProjection.accessProfilestringYesNot specifiedNone specified
manifestProjection.catalogobjectYesNot specifiedNone specified
manifestProjection.catalog.applicationProfilesarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.catalog.applicationProfiles[]Array itemobjectNoNot specifiedNone specified
manifestProjection.catalog.applicationProfiles[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
manifestProjection.catalog.applicationProfiles[].versionstringYesNot specifiedNone specified
manifestProjection.catalog.baseUrlAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
manifestProjection.catalog.conformsToarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.catalog.conformsTo[]Array itemstringNoNot specifiedNone specified
manifestProjection.catalog.descriptionOne plain string, or a mapping from language tag to text.object | stringNoNot specifiedNone specified
manifestProjection.catalog.description.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.catalog.participantIdstringNoNot specifiedNone specified
manifestProjection.catalog.publisherobjectYesNot specifiedNone specified
manifestProjection.catalog.publisher.authorityTypestringNoNot specifiedNone specified
manifestProjection.catalog.publisher.idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
manifestProjection.catalog.publisher.iristringNoNot specifiedNone specified
manifestProjection.catalog.publisher.nameHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringYesNot specifiedNone specified
manifestProjection.catalog.standardsobjectNoNot specifiedSchema default, where declared: {}None specified
manifestProjection.catalog.standards.dcatstringNoNot specifiedNone specified
manifestProjection.catalog.standards.jsonSchemastringNoNot specifiedNone specified
manifestProjection.catalog.standards.shaclstringNoNot specifiedNone specified
manifestProjection.catalog.titleOne plain string, or a mapping from language tag to text.object | stringYesNot specifiedNone specified
manifestProjection.catalog.title.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.classificationCeilingstringYes
  • internal
  • public
  • restricted
None specified
manifestProjection.dataServicesarrayYesNot specifiedNone specified
manifestProjection.dataServices[]Array itemobjectNoNot specifiedNone specified
manifestProjection.dataServices[].conformsTostringNoNot specifiedNone specified
manifestProjection.dataServices[].descriptionOne plain string, or a mapping from language tag to text.object | stringNoNot specifiedNone specified
manifestProjection.dataServices[].description.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.dataServices[].endpointDescriptionstringNoNot specifiedNone specified
manifestProjection.dataServices[].endpointUrlAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
manifestProjection.dataServices[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
manifestProjection.dataServices[].iristringNoNot specifiedNone specified
manifestProjection.dataServices[].servesDatasetsarrayYesNot specifiedNone specified
manifestProjection.dataServices[].servesDatasets[]Array itemstringNoNot specifiedNone specified
manifestProjection.dataServices[].titleOne plain string, or a mapping from language tag to text.object | stringYesNot specifiedNone specified
manifestProjection.dataServices[].title.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.datasetsarrayYesNot specifiedNone specified
manifestProjection.datasets[]Array itemobjectNoNot specifiedNone specified
manifestProjection.datasets[].accessProfilestringNoNot specifiedNone specified
manifestProjection.datasets[].applicableLegislationarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.datasets[].applicableLegislation[]Array itemstringNoNot specifiedNone specified
manifestProjection.datasets[].classificationCeilingstringNo
  • internal
  • public
  • restricted
None specified
manifestProjection.datasets[].conformsToarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.datasets[].conformsTo[]Array itemstringNoNot specifiedNone specified
manifestProjection.datasets[].descriptionOne plain string, or a mapping from language tag to text.object | stringNoNot specifiedNone specified
manifestProjection.datasets[].description.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.datasets[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
manifestProjection.datasets[].iristringNoNot specifiedNone specified
manifestProjection.datasets[].ownerHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
manifestProjection.datasets[].spatialCoveragestringNoNot specifiedNone specified
manifestProjection.datasets[].statusstringNo
  • active
  • completed
  • deprecated
  • under-development
  • withdrawn
None specified
manifestProjection.datasets[].titleOne plain string, or a mapping from language tag to text.object | stringYesNot specifiedNone specified
manifestProjection.datasets[].title.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.datasets[].versionstringNoNot specifiedNone specified
manifestProjection.distributionsarrayNoNot specifiedNone specified
manifestProjection.distributions[]Array itemobjectNoNot specifiedNone specified
manifestProjection.distributions[].accessServicestringNoNot specifiedNone specified
manifestProjection.distributions[].accessUrlAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringNoNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
manifestProjection.distributions[].datasetstringYesNot specifiedNone specified
manifestProjection.distributions[].descriptionOne plain string, or a mapping from language tag to text.object | stringNoNot specifiedNone specified
manifestProjection.distributions[].description.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.distributions[].downloadUrlAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringNoNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
manifestProjection.distributions[].formatstringNoNot specifiedNone specified
manifestProjection.distributions[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
manifestProjection.distributions[].iristringNoNot specifiedNone specified
manifestProjection.distributions[].mediaTypestringNoNot specifiedNone specified
manifestProjection.distributions[].titleOne plain string, or a mapping from language tag to text.object | stringNoNot specifiedNone specified
manifestProjection.distributions[].title.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.entitiesarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.entities[]Array itemobjectNoNot specifiedNone specified
manifestProjection.entities[].conceptUristringNoNot specifiedNone specified
manifestProjection.entities[].descriptionOne plain string, or a mapping from language tag to text.object | stringNoNot specifiedNone specified
manifestProjection.entities[].description.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.entities[].fieldsarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.entities[].fields[]Array itemobjectNoNot specifiedNone specified
manifestProjection.entities[].fields[].conceptsarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.entities[].fields[].concepts[]Array itemstringNoNot specifiedNone specified
manifestProjection.entities[].fields[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
manifestProjection.entities[].fields[].languagestringNoNot specifiedNone specified
manifestProjection.entities[].fields[].relationshipConceptUristringNoNot specifiedNone specified
manifestProjection.entities[].fields[].relationshipRolestringNoNot specifiedNone specified
manifestProjection.entities[].fields[].unitstringNoNot specifiedNone specified
manifestProjection.entities[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
manifestProjection.entities[].identifiersarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.entities[].identifiers[]Array itemobjectNoNot specifiedNone specified
manifestProjection.entities[].identifiers[].fieldstringYesNot specifiedNone specified
manifestProjection.entities[].identifiers[].kindstringYesNot specifiedNone specified
manifestProjection.entities[].titleOne plain string, or a mapping from language tag to text.object | stringNoNot specifiedNone specified
manifestProjection.entities[].title.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.publicServiceobjectYesNot specifiedNone specified
manifestProjection.publicService.idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
manifestProjection.publicService.titleOne plain string, or a mapping from language tag to text.object | stringYesNot specifiedNone specified
manifestProjection.publicService.title.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.vocabulariesarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.vocabularies[]Array itemobjectNoNot specifiedNone specified
manifestProjection.vocabularies[].conceptsarrayNoNot specifiedSchema default, where declared: []None specified
manifestProjection.vocabularies[].concepts[]Array itemobjectNoNot specifiedNone specified
manifestProjection.vocabularies[].concepts[].codestringYesNot specifiedNone specified
manifestProjection.vocabularies[].concepts[].iristringNoNot specifiedNone specified
manifestProjection.vocabularies[].concepts[].labelOne plain string, or a mapping from language tag to text.object | stringNoNot specifiedNone specified
manifestProjection.vocabularies[].concepts[].label.*Map valueHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
manifestProjection.vocabularies[].externalReferencestringNoNot specifiedNone specified
manifestProjection.vocabularies[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
manifestProjection.vocabularies[].schemeIristringYesNot specifiedNone specified
manifestProjection.vocabularies[].versionstringNoNot specifiedNone specified
modulesarrayNoNot specifiedSchema default, where declared: []None specified
modules[]Array itemobjectNoNot specifiedNone specified
modules[].digestA SHA-256 digest: sha256: followed by 64 lowercase hex digits.stringNoNot specified
  • pattern: ^sha256:[0-9a-f]{64}$
modules[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
modules[].versionstringYesNot specifiedNone specified
packageobjectNoNot specifiedNone specified
package.sourceRevisionstringYesNot specifiedNone specified
projectobjectYesNot specifiedNone specified
project.canonicalBaseIristringYesNot specifiedNone specified
project.defaultLanguagestringYesNot specifiedNone specified
project.displayobjectNoNot specifiedSchema default, where declared: {}None specified
project.display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
project.display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
project.display.titleFieldstringNoNot specifiedNone specified
project.idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
project.versionstringYesNot specifiedNone specified
recipientsNamed organizations and frozen groups that consent may be given to.objectNoNot specifiedNone specified
recipients.groupsarrayNoNot specifiedNone specified
recipients.groups[]Array itemA frozen, named list of declared organizations. Groups do not nest.objectNoNot specifiedNone specified
recipients.groups[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recipients.groups[].membersarrayYesNot specifiedNone specified
recipients.groups[].members[]Array itemstringNoNot specifiedNone specified
recipients.groups[].nameHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringYesNot specifiedNone specified
recipients.organizationsarrayNoNot specifiedSchema default, where declared: []None specified
recipients.organizations[]Array itemOne named organization. Its clients are the verified OAuth clients that act for it; an organization with no clients is retired and keeps its code.objectNoNot specifiedNone specified
recipients.organizations[].clientsarrayYesNot specifiedNone specified
recipients.organizations[].clients[]Array itemstringNoNot specifiedNone specified
recipients.organizations[].contactHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringYesNot specifiedNone specified
recipients.organizations[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recipients.organizations[].nameHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringYesNot specifiedNone specified
recordTypesarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessLogSubject-facing record access history, separate from the operational audit.objectNoNot specifiedNone specified
recordTypes[].accessLog.exemptionsAccess profiles whose entries become subject-visible only after a policy delay.objectNoNot specified
  • maxProperties: 64
recordTypes[].accessLog.exemptions.*Map valueDelayed subject disclosure for reads under one access profile.objectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].accessLog.exemptions.*.delayDaysDays after the read when the entry becomes visible to the subject.integerYesNot specified
  • format: uint16
  • maximum: 3649
  • minimum: 1
recordTypes[].accessLog.exemptions.*.reasonBounded policy reason retained and audited with each delayed entry.stringYesNot specified
  • maxLength: 256
  • minLength: 1
recordTypes[].accessLog.exemptions.*.sourceRecordTypeRecord type whose access profile authorizes the read. Omitted for direct reads of the logged record type.stringNoNot specified
  • maxLength: 64
  • minLength: 1
  • pattern: ^[a-z][a-z0-9_-]*$
recordTypes[].accessLog.retentionDaysDays each entry remains available before bounded background erasure.integerNoNot specifiedSchema default, where declared: 90
  • format: uint16
  • maximum: 3650
  • minimum: 1
recordTypes[].accessLog.subjectFieldRequired plaintext string or text field matched to the subject's verified principal.stringYesNot specified
  • maxLength: 64
  • minLength: 1
  • pattern: ^[a-z][a-z0-9_-]*$
recordTypes[].accessLog.trustedIntermediariesVerified intermediary client IDs allowed to forward original requester attribution.arrayNoNot specified
  • maxItems: 64
  • uniqueItems: true
recordTypes[].accessLog.trustedIntermediaries[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfilesModule profile contributions, read through the sentinels a project profile uses.arrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].accessProfiles[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].actorKindstringNo
  • agent
  • human
  • service
None specified
recordTypes[].accessProfiles[].allowCountbooleanNoNot specifiedNone specified
recordTypes[].accessProfiles[].allowDataExportbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].accessProfiles[].defaultbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].accessProfiles[].displayAuthored words for an object without a Record's title-field selection.objectNoNot specifiedNone specified
recordTypes[].accessProfiles[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].accessProfiles[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].accessProfiles[].filterableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].filterableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].accessProfiles[].lookupsarrayNoNot specifiedNone specified
recordTypes[].accessProfiles[].lookups[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].lookups[].claimMappingobjectNoNot specifiedSchema default, where declared: {}None specified
recordTypes[].accessProfiles[].lookups[].claimMapping.*Map valuestringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].accessProfiles[].lookups[].selectorstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].lookups[].valueOriginstringYes
  • request
  • verified-claim
None specified
recordTypes[].accessProfiles[].membershipBoundariesarrayNoNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[]Array itemA one-hop current membership requirement, combined with every other row boundary. The root field and membership key must reference the same entity. The active field is Boolean, and principalField matches the profile's verified principal.objectNoNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].activeFieldstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].fieldstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].membershipKeyFieldstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].membershipRecordTypestringYesNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].principalFieldstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].operationsarrayYesNot specified
  • uniqueItems: true
recordTypes[].accessProfiles[].operations[]Array itemCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringNo
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
recordTypes[].accessProfiles[].principalClaimThe token claim that names the caller. Every profile serves authenticated callers, so every profile names one.stringYesNot specifiedNone specified
recordTypes[].accessProfiles[].provenanceFieldsarrayNoNot specified
  • uniqueItems: true
recordTypes[].accessProfiles[].provenanceFields[]Array itemA member of a revision's changeContext a profile may read. Each value is spelled as the member it names is (CFG-NAME-2).stringNo
  • kind
  • reasonCode
  • reasonText
  • sourceReferences
None specified
recordTypes[].accessProfiles[].readPathsarrayNoNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[].allowCountbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].accessProfiles[].readPaths[].filterableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].readPaths[].filterableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[].pathstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[].readableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].readPaths[].readableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[].sortableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].readPaths[].sortableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].readableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].readableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].requesterClientsThe OAuth clients whose tokens may select this profile. Omit to accept every client.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
recordTypes[].accessProfiles[].requesterClients[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].requireConsentarrayNoNot specifiedNone specified
recordTypes[].accessProfiles[].requireConsent[]Array itemA consent check ANDed into one read permission.objectNoNot specifiedNone specified
recordTypes[].accessProfiles[].requireConsent[].onThe permission entity's field the consent subject references; id is the row's own identity.stringYesNot specifiedNone specified
recordTypes[].accessProfiles[].requireConsent[].recordThe consent-record entity checked.stringYesNot specifiedNone specified
recordTypes[].accessProfiles[].requiredPurposesThe verified token's purpose must match one listed value. Omit to accept every purpose.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
recordTypes[].accessProfiles[].requiredPurposes[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].requiredScopesThe scopes the verified token must carry: unrestricted, or a list of at least one scope, all of which must be present.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
  • uniqueItems: true
recordTypes[].accessProfiles[].requiredScopes[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].accessProfiles[].revisionAccessbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].accessProfiles[].rowBoundariesRow reach: unrestricted, or a list of at least one row boundary.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
recordTypes[].accessProfiles[].rowBoundaries[]Array itemobjectConditionalNot specifiedNone specified
recordTypes[].accessProfiles[].rowBoundaries[].claimstringConditionalNot specifiedNone specified
recordTypes[].accessProfiles[].rowBoundaries[].fieldstringConditionalNot specifiedNone specified
recordTypes[].accessProfiles[].rowBoundaries[].operatorstringConditional
  • equals
  • in
None specified
recordTypes[].accessProfiles[].sortableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].sortableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].spatialQueriesobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].spatialQueries.bboxobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].spatialQueries.bbox.maximumLatitudeSpanDegreesnumberYesNot specifiedNone specified
recordTypes[].accessProfiles[].spatialQueries.bbox.maximumLongitudeSpanDegreesnumberYesNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrantobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrant.permissionsarrayYesNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrant.permissions[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrant.permissions[].collectionstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrant.permissions[].operationsarrayYesNot specified
  • uniqueItems: true
recordTypes[].accessProfiles[].taskGrant.permissions[].operations[]Array itemCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringNo
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
recordTypes[].accessProfiles[].taskGrant.sourceIssuerAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
recordTypes[].accessProfiles[].writableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].writableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessRequirementsMandatory request-access requirements checked against every profile, including module contributions.objectNoNot specifiedNone specified
recordTypes[].accessRequirements.allowedPurposesEvery profile must restrict purpose to a subset of these values. Omit to demand no purpose.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
recordTypes[].accessRequirements.allowedPurposes[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessRequirements.requiredScopesEvery profile must require all these scopes. Requirements never grant access. Omit to demand no scope.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
recordTypes[].accessRequirements.requiredScopes[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessRequirements.rowBoundariesEvery profile must include these exact field, verified-claim, and operator bindings. Omit to demand no row boundary.arrayNoNot specified
  • minItems: 1
recordTypes[].accessRequirements.rowBoundaries[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessRequirements.rowBoundaries[].claimstringYesNot specifiedNone specified
recordTypes[].accessRequirements.rowBoundaries[].fieldstringYesNot specifiedNone specified
recordTypes[].accessRequirements.rowBoundaries[].operatorstringYes
  • equals
  • in
None specified
recordTypes[].apiNamestringNoNot specifiedNone specified
recordTypes[].batchobjectNoNot specifiedNone specified
recordTypes[].batch.maximumBytesintegerYesNot specified
  • format: uint32
  • maximum: 2097152
  • minimum: 1
recordTypes[].batch.maximumItemsintegerYesNot specified
  • format: uint32
  • maximum: 100
  • minimum: 1
recordTypes[].classificationstringNo
  • internal
  • public
  • restricted
Schema default, where declared: "internal"
None specified
recordTypes[].consentRecordDeclares this entity's rows as subject-issued consent decisions that requireConsent permissions check before returning a subject's row.objectNoNot specifiedNone specified
recordTypes[].consentRecord.decisionMaps the adopter's decision codes onto the engine's decision sets.objectYesNot specifiedNone specified
recordTypes[].consentRecord.decision.fieldstringYesNot specifiedNone specified
recordTypes[].consentRecord.decision.givesCodes that give consent.arrayYesNot specifiedNone specified
recordTypes[].consentRecord.decision.gives[]Array itemstringNoNot specifiedNone specified
recordTypes[].consentRecord.decision.refusalsRevoke codes never shown to recipients.arrayNoNot specifiedNone specified
recordTypes[].consentRecord.decision.refusals[]Array itemstringNoNot specifiedNone specified
recordTypes[].consentRecord.decision.revokesCodes that supersede every give on the same key ordered no later.arrayYesNot specifiedNone specified
recordTypes[].consentRecord.decision.revokes[]Array itemstringNoNot specifiedNone specified
recordTypes[].consentRecord.purposeA vocabulary-code field compared with the verified request purpose.stringYesNot specifiedNone specified
recordTypes[].consentRecord.recipientA vocabulary-code field bound to registry-recipients.stringYesNot specifiedNone specified
recordTypes[].consentRecord.scopeA vocabulary-code field bound to registry-consent-scopes.stringYesNot specifiedNone specified
recordTypes[].consentRecord.subjectA reference field naming the protected subject row.stringYesNot specifiedNone specified
recordTypes[].consentRecord.validityValidity of a consent decision. Every give expires within maximumDurationDays.objectYesNot specifiedNone specified
recordTypes[].consentRecord.validity.fromA required timestamp field; a give is active only from this time.stringYesNot specifiedNone specified
recordTypes[].consentRecord.validity.maximumDurationDaysThe longest a give lasts, in whole days of 24 hours: at most 3652, ten years.integerYesNot specified
  • format: uint32
  • maximum: 3652
  • minimum: 1
recordTypes[].consentRecord.validity.untilAn optional timestamp field ending the give earlier than maximumDurationDays.stringNoNot specifiedNone specified
recordTypes[].constraintsarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].constraints[]Array itemobjectNoNot specifiedNone specified
recordTypes[].constraints[].endFieldstringConditionalNot specifiedNone specified
recordTypes[].constraints[].fieldstringConditionalNot specifiedNone specified
recordTypes[].constraints[].fieldsarrayConditionalNot specifiedNone specified
recordTypes[].constraints[].fields[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].constraints[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringNoNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].constraints[].leftstringConditionalNot specifiedNone specified
recordTypes[].constraints[].maximumintegerConditionalNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
recordTypes[].constraints[].minimumintegerConditionalNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
recordTypes[].constraints[].operatorstringConditional
  • greater-than
  • greater-than-or-equal
  • less-than
  • less-than-or-equal
None specified
recordTypes[].constraints[].rightstringConditionalNot specifiedNone specified
recordTypes[].constraints[].scopeFieldsarrayConditionalNot specifiedNone specified
recordTypes[].constraints[].scopeFields[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].constraints[].startFieldstringConditionalNot specifiedNone specified
recordTypes[].constraints[].typestringYes
  • compare
  • int-range
  • temporal-non-overlap
  • unique
  • vocabulary
None specified
recordTypes[].constraints[].valuesarrayConditionalNot specifiedNone specified
recordTypes[].constraints[].values[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].constraints[].whenarrayConditionalNot specifiedNone specified
recordTypes[].constraints[].when[]Array itemobjectConditionalNot specifiedNone specified
recordTypes[].constraints[].when[].fieldstringConditionalNot specifiedNone specified
recordTypes[].constraints[].when[].typestringConditional
  • active-lifecycle
  • field-equals
  • field-is-not-null
  • field-is-null
None specified
recordTypes[].constraints[].when[].valueNot specifiedConditionalNot specifiedNone specified
recordTypes[].derivedarrayNoNot specifiedNone specified
recordTypes[].derived[]Array itemobjectNoNot specifiedNone specified
recordTypes[].derived[].executionstringNo
  • live
Schema default, where declared: "live"
None specified
recordTypes[].derived[].fieldsarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].derived[].fields[]Array itemobjectNoNot specifiedNone specified
recordTypes[].derived[].fields[].apiNamestringNoNot specifiedNone specified
recordTypes[].derived[].fields[].bboxobjectConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].bbox.eaststringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].bbox.northstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].bbox.southstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].bbox.weststringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].classificationstringYes
  • internal
  • public
  • restricted
None specified
recordTypes[].derived[].fields[].displayobjectNoNot specifiedNone specified
recordTypes[].derived[].fields[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].derived[].fields[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].derived[].fields[].display.titleFieldstringNoNot specifiedNone specified
recordTypes[].derived[].fields[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].derived[].fields[].maximumstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
recordTypes[].derived[].fields[].maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
recordTypes[].derived[].fields[].minimumstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
recordTypes[].derived[].fields[].onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
recordTypes[].derived[].fields[].precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
recordTypes[].derived[].fields[].scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
recordTypes[].derived[].fields[].schemaNot specifiedConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].targetstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].typestringYes
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
recordTypes[].derived[].fields[].valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
recordTypes[].derived[].fields[].values[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].vocabularystringConditionalNot specifiedNone specified
recordTypes[].derived[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].derived[].keystringYesNot specifiedNone specified
recordTypes[].derived[].sqlstringYesNot specifiedNone specified
recordTypes[].displayobjectNoNot specifiedSchema default, where declared: {}None specified
recordTypes[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].display.titleFieldstringNoNot specifiedNone specified
recordTypes[].fieldsarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].fields[]Array itemobjectNoNot specifiedNone specified
recordTypes[].fields[].apiNamestringNoNot specifiedNone specified
recordTypes[].fields[].bboxobjectConditionalNot specifiedNone specified
recordTypes[].fields[].bbox.eaststringConditionalNot specifiedNone specified
recordTypes[].fields[].bbox.northstringConditionalNot specifiedNone specified
recordTypes[].fields[].bbox.southstringConditionalNot specifiedNone specified
recordTypes[].fields[].bbox.weststringConditionalNot specifiedNone specified
recordTypes[].fields[].classificationstringYes
  • internal
  • public
  • restricted
None specified
recordTypes[].fields[].displayobjectNoNot specifiedNone specified
recordTypes[].fields[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].fields[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].fields[].display.titleFieldstringNoNot specifiedNone specified
recordTypes[].fields[].encryptedbooleanConditionalNot specifiedSchema default, where declared: falseNone specified
recordTypes[].fields[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].fields[].lookupThe authored blind-index declaration for an encrypted field. Normalization composes in declared order over the canonical string form of the value; unique requests a unique index over the derived blind-index column.objectConditionalNot specifiedNone specified
recordTypes[].fields[].lookup.normalizationarrayConditionalNot specifiedSchema default, where declared: []
  • maxItems: 8
recordTypes[].fields[].lookup.normalization[]Array itemA normalization step applied to the canonical string form of an encrypted value before its blind index is derived. The vocabulary is closed.stringConditional
  • collapse-whitespace
  • lowercase
  • remove-separators
  • trim
  • uppercase
None specified
recordTypes[].fields[].lookup.uniquebooleanConditionalNot specifiedSchema default, where declared: falseNone specified
recordTypes[].fields[].maximumstringConditionalNot specifiedNone specified
recordTypes[].fields[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
recordTypes[].fields[].maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
recordTypes[].fields[].minimumstringConditionalNot specifiedNone specified
recordTypes[].fields[].minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
recordTypes[].fields[].onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
recordTypes[].fields[].patternstringConditionalNot specifiedNone specified
recordTypes[].fields[].precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
recordTypes[].fields[].relationshipobjectConditionalNot specifiedNone specified
recordTypes[].fields[].relationship.inverseNamestringConditionalNot specified
  • pattern: ^[a-z][A-Za-z0-9]*$
recordTypes[].fields[].requiredbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].fields[].scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
recordTypes[].fields[].schemaNot specifiedConditionalNot specifiedNone specified
recordTypes[].fields[].targetstringConditionalNot specifiedNone specified
recordTypes[].fields[].typestringConditional
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
recordTypes[].fields[].typeRefA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].fields[].validTimeRolestringNo
  • valid-from
  • valid-to
None specified
recordTypes[].fields[].valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
recordTypes[].fields[].values[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].fields[].vocabularystringConditionalNot specifiedNone specified
recordTypes[].geojsonobjectNoNot specifiedNone specified
recordTypes[].geojson.geometryFieldstringYesNot specifiedNone specified
recordTypes[].hooksarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].hooks[]Array itemOne declared hook on an entity. The shape is [registry_platform_hooks::HookDeclaration] with trigger and when closed to the vocabulary this compiler validates, and with handler optional. A hook that declares no handler is still recorded in the outbox and delivered nowhere; production compilation refuses that. Entity hooks run after the triggering transaction commits, so phase is written and the compiler refuses any value it cannot run.objectNoNot specifiedNone specified
recordTypes[].hooks[].displayAuthored presentation only; labels never establish identity or authority.objectNoNot specifiedNone specified
recordTypes[].hooks[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].hooks[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].hooks[].handlerGoverned, destination-neutral delivery. destinationId is a key in runtime eventDestinations; the project carries no URL or secret, and deployment configuration may tighten the bounds it binds but cannot supply or widen this authority. Production compilation requires it.objectNoNot specifiedNone specified
recordTypes[].hooks[].handler.abiFor rhai: The handler ABI the script speaks. For wasm: The handler ABI the module speaks.stringConditionalNot specifiedNone specified
recordTypes[].hooks[].handler.destinationIdKey in the runtime destination binding.stringConditionalNot specifiedNone specified
recordTypes[].hooks[].handler.moduleModule path in the project.stringConditionalNot specifiedNone specified
recordTypes[].hooks[].handler.scriptScript path in the project.stringConditionalNot specifiedNone specified
recordTypes[].hooks[].handler.typestringYes
  • rhai
  • url
  • wasm
None specified
recordTypes[].hooks[].idStable hook contract identifier, sent as ce-type. Use a new identifier for a breaking payload change.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].hooks[].phaseWhen the hook runs relative to the triggering transaction.stringYes
  • after
  • before
None specified
recordTypes[].hooks[].principalThe access profile a proposal from this hook is applied under. Optional: a hook that declares none is a non-proposing hook, and a proposal from one is refused and dead-lettered at delivery time. Declaring none is not an authoring error.stringNoNot specifiedNone specified
recordTypes[].hooks[].projectionDeclared field identifiers to include in values. System event metadata is included separately.arrayYesNot specified
  • uniqueItems: true
recordTypes[].hooks[].projection[]Array itemstringNoNot specifiedNone specified
recordTypes[].hooks[].triggerCommitted record change that can produce this hook.stringYes
  • created
  • patched
  • tombstoned
None specified
recordTypes[].hooks[].whenOptional field tests, combined with AND. Omit to run on every matching trigger.objectNoNot specifiedNone specified
recordTypes[].hooks[].when.afterEqualsRequired values after the change. Valid with created and patched triggers.objectNoNot specifiedSchema default, where declared: {}None specified
recordTypes[].hooks[].when.afterEquals.*Map valueA comparison literal: a boolean, a number, or text.boolean | number | stringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].hooks[].when.afterIsNullFields that must be unset after the change. Valid with created and patched triggers.arrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].hooks[].when.afterIsNull[]Array itemstringNoNot specifiedNone specified
recordTypes[].hooks[].when.beforeEqualsRequired values before the change. Valid with patched and tombstoned triggers.objectNoNot specifiedSchema default, where declared: {}None specified
recordTypes[].hooks[].when.beforeEquals.*Map valueA comparison literal: a boolean, a number, or text.boolean | number | stringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].hooks[].when.beforeIsNullFields that must be unset before the change. Valid with patched and tombstoned triggers.arrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].hooks[].when.beforeIsNull[]Array itemstringNoNot specifiedNone specified
recordTypes[].hooks[].when.changedFields whose values must change. Only valid with the patched trigger.arrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].hooks[].when.changed[]Array itemstringNoNot specifiedNone specified
recordTypes[].hooks[].when.typestringYes
  • fields
None specified
recordTypes[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].indexesarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].indexes[]Array itemobjectNoNot specifiedNone specified
recordTypes[].indexes[].fieldsarrayYesNot specified
  • maxItems: 31
recordTypes[].indexes[].fields[]Array itemstringNoNot specifiedNone specified
recordTypes[].indexes[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].mutationModestringYes
  • create-only
  • mutable
None specified
recordTypes[].mutationPolicyobjectNoNot specifiedNone specified
recordTypes[].mutationPolicy.createstringNo
  • direct
  • proposal-required
None specified
recordTypes[].mutationPolicy.patchstringNo
  • direct
  • proposal-required
None specified
recordTypes[].mutationPolicy.tombstonestringNo
  • direct
  • proposal-required
None specified
recordTypes[].primaryDatasetstringYesNot specifiedNone specified
recordTypes[].readPathsarrayNoNot specifiedNone specified
recordTypes[].readPaths[]Array itemobjectNoNot specifiedNone specified
recordTypes[].readPaths[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].readPaths[].routestringYesNot specifiedNone specified
recordTypes[].readPaths[].throughstringYesNot specifiedNone specified
recordTypes[].readPaths[].tostringYesNot specifiedNone specified
recordTypes[].routestringYesNot specifiedNone specified
recordTypes[].selectorProfilesarrayNoNot specifiedNone specified
recordTypes[].selectorProfiles[]Array itemobjectNoNot specifiedNone specified
recordTypes[].selectorProfiles[].fieldsarrayYesNot specifiedNone specified
recordTypes[].selectorProfiles[].fields[]Array itemstringNoNot specifiedNone specified
recordTypes[].selectorProfiles[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].temporalobjectNoNot specifiedNone specified
recordTypes[].temporal.endFieldstringYesNot specifiedNone specified
recordTypes[].temporal.startFieldstringYesNot specifiedNone specified
recordTypes[].tombstonebooleanNoNot specifiedSchema default, where declared: falseNone specified
retiredConsentScopesConsent scope codes of removed gated profiles, kept so existing consent rows still validate. A retired scope matches nothing.arrayNoNot specifiedNone specified
retiredConsentScopes[]Array itemstringNoNot specifiedNone specified
reviewAuthoritiesarrayNoNot specifiedSchema default, where declared: []None specified
reviewAuthorities[]Array itemobjectNoNot specifiedNone specified
reviewAuthorities[].displayobjectNoNot specifiedSchema default, where declared: {}None specified
reviewAuthorities[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
reviewAuthorities[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
reviewAuthorities[].display.titleFieldstringNoNot specifiedNone specified
reviewAuthorities[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
reviewAuthorities[].protocolstringYesNot specifiedNone specified
statisticalDatasetsDeclared count tables computed from governed Registry records.arrayNoNot specifiedNone specified
statisticalDatasets[]Array itemobjectNoNot specifiedNone specified
statisticalDatasets[].dimensionsUnit Record fields used to group counts. Each field must be boolean or vocabulary-code, and each may appear once. period, value, and status are reserved output columns and cannot be dimension field names.arrayYesNot specifiedNone specified
statisticalDatasets[].dimensions[]Array itemstringNoNot specifiedNone specified
statisticalDatasets[].disclosureobjectNoNot specifiedNone specified
statisticalDatasets[].disclosure.minimumCountintegerYesNot specified
  • format: uint64
  • maximum: 9007199254740991
  • minimum: 2
statisticalDatasets[].disclosure.roundingBaseintegerYesNot specified
  • format: uint64
  • maximum: 9007199254740991
  • minimum: 2
statisticalDatasets[].displayAuthored presentation only; labels never establish identity or authority.objectNoNot specifiedNone specified
statisticalDatasets[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
statisticalDatasets[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
statisticalDatasets[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
statisticalDatasets[].periodobjectYesNot specifiedNone specified
statisticalDatasets[].period.fieldDate field on the unit Record that places each row in a period.stringConditionalNot specifiedNone specified
statisticalDatasets[].period.firstPeriodstringYesNot specifiedNone specified
statisticalDatasets[].period.granularitystringYes
  • day
  • month
  • quarter
  • year
None specified
statisticalDatasets[].period.typestringYes
  • flow
  • stock
None specified
statisticalDatasets[].period.validityThe scalar temporal, or a mapping naming the validity fields.object | stringConditional
  • temporal
None specified
statisticalDatasets[].period.validity.fromRequired date field on the unit Record marking the start of validity.stringConditionalNot specifiedNone specified
statisticalDatasets[].period.validity.untilOptional date field marking the end of validity. A missing or null end leaves the row valid until a later bound is stored.stringConditionalNot specifiedNone specified
statisticalDatasets[].populationstringYesNot specifiedNone specified
statisticalDatasets[].unitstringYesNot specifiedNone specified
valueTypesobjectNoNot specifiedSchema default, where declared: {}None specified
valueTypes.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
valueTypes.*.bboxobjectConditionalNot specifiedNone specified
valueTypes.*.bbox.eaststringConditionalNot specifiedNone specified
valueTypes.*.bbox.northstringConditionalNot specifiedNone specified
valueTypes.*.bbox.southstringConditionalNot specifiedNone specified
valueTypes.*.bbox.weststringConditionalNot specifiedNone specified
valueTypes.*.maximumstringConditionalNot specifiedNone specified
valueTypes.*.maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
valueTypes.*.maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
valueTypes.*.minimumstringConditionalNot specifiedNone specified
valueTypes.*.minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
valueTypes.*.onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
valueTypes.*.precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
valueTypes.*.scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
valueTypes.*.schemaNot specifiedConditionalNot specifiedNone specified
valueTypes.*.targetstringConditionalNot specifiedNone specified
valueTypes.*.typestringYes
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
valueTypes.*.valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
valueTypes.*.values[]Array itemstringConditionalNot specifiedNone specified
valueTypes.*.vocabularystringConditionalNot specifiedNone specified
vocabulariesarrayNoNot specifiedSchema default, where declared: []None specified
vocabularies[]Array itemobjectNoNot specifiedNone specified
vocabularies[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
vocabularies[].valuesarrayYesNot specifiedNone specified
vocabularies[].values[]Array itemstringNoNot specifiedNone specified

modules/<name>/module.yaml

Source preview, pre-1.0

Generated from products/breg/generated/authoring/registry-module.schema.json. 714 key paths. Explained in docs/site/src/content/docs/configure/breg.mdx.

Key pathTypeRequiredAccepted valuesConstraints
actionsNamed Actions introduced by this module.arrayNoNot specifiedNone specified
actions[]Array itemobjectNoNot specifiedNone specified
actions[].apiNamestringNoNot specifiedNone specified
actions[].commitGuardsobjectNoNot specifiedSchema default, where declared: {"evidence":[],"targets":[]}None specified
actions[].commitGuards.evidencearrayNoNot specifiedSchema default, where declared: []None specified
actions[].commitGuards.evidence[]Array itemobjectNoNot specifiedNone specified
actions[].commitGuards.evidence[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].commitGuards.evidence[].maximumObservationAgeSecondsintegerYesNot specified
  • format: uint64
  • maximum: 300
  • minimum: 1
actions[].commitGuards.evidence[].providerstringYesNot specifiedNone specified
actions[].commitGuards.evidence[].requirementstringYesNot specifiedNone specified
actions[].commitGuards.evidence[].requiresarrayNoNot specifiedSchema default, where declared: []None specified
actions[].commitGuards.evidence[].requires[]Array itemobjectNoNot specifiedNone specified
actions[].commitGuards.evidence[].requires[].atLeastintegerNoNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
actions[].commitGuards.evidence[].requires[].atMostintegerNoNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
actions[].commitGuards.evidence[].requires[].equalsNot specifiedNoNot specifiedNone specified
actions[].commitGuards.evidence[].requires[].equalsFromInputstringNoNot specifiedNone specified
actions[].commitGuards.evidence[].requires[].outputstringYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjectsobjectYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*Map valueobjectNoNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
actions[].commitGuards.evidence[].subjects.*.profilestringYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*.selectorsExact governed selector-profile field map. Every profile field must be present exactly once and no undeclared field is admitted.objectYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*.selectors.*Map valueobjectNoNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
actions[].commitGuards.evidence[].subjects.*.selectors.*.fieldstringConditionalNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*.selectors.*.inputstringYesNot specifiedNone specified
actions[].commitGuards.evidence[].subjects.*.selectors.*.typestringYes
  • input
  • target-field
None specified
actions[].commitGuards.targetsarrayNoNot specifiedSchema default, where declared: []None specified
actions[].commitGuards.targets[]Array itemobjectNoNot specifiedNone specified
actions[].commitGuards.targets[].atLeastintegerNoNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
actions[].commitGuards.targets[].atMostintegerNoNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
actions[].commitGuards.targets[].currentDatestringNo
  • on-or-after
  • on-or-before
None specified
actions[].commitGuards.targets[].equalsA comparison literal: a boolean, a number, or text.boolean | number | stringNoNot specifiedNone specified
actions[].commitGuards.targets[].equalsFromInputstringNoNot specifiedNone specified
actions[].commitGuards.targets[].fieldstringNoNot specifiedSchema default, where declared: ""None specified
actions[].commitGuards.targets[].inputstringYesNot specifiedNone specified
actions[].commitGuards.targets[].isNullRequires the stored value to be unset. Only true is read.booleanNo
  • true
None specified
actions[].commitGuards.targets[].revisionstringNo
  • unchanged
None specified
actions[].consentIssuerWho an action creates consent rows for.stringNo
  • self
  • steward
None specified
actions[].displayobjectNoNot specifiedSchema default, where declared: {}None specified
actions[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
actions[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
actions[].display.titleFieldstringNoNot specifiedNone specified
actions[].evidencearrayNoNot specifiedNone specified
actions[].evidence[]Array itemobjectNoNot specifiedNone specified
actions[].evidence[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].evidence[].maximumObservationAgeSecondsintegerYesNot specified
  • format: uint64
  • maximum: 300
  • minimum: 1
actions[].evidence[].outputsarrayYesNot specifiedNone specified
actions[].evidence[].outputs[]Array itemstringNoNot specifiedNone specified
actions[].evidence[].providerstringYesNot specifiedNone specified
actions[].evidence[].requirementstringYesNot specifiedNone specified
actions[].evidence[].subjectsobjectYesNot specifiedNone specified
actions[].evidence[].subjects.*Map valueobjectNoNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
actions[].evidence[].subjects.*.profilestringYesNot specifiedNone specified
actions[].executionobjectYesNot specifiedNone specified
actions[].execution.modestringYes
  • immediate
  • proposal
None specified
actions[].execution.proposalobjectConditionalNot specifiedNone specified
actions[].execution.proposal.applicationobjectConditionalNot specifiedSchema default, where declared: {"maximumAttempts":3,"mode":"automatic"}None specified
actions[].execution.proposal.application.maximumAttemptsintegerConditionalNot specifiedSchema default, where declared: 3
  • format: uint32
  • maximum: 32
  • minimum: 1
actions[].execution.proposal.application.modestringConditional
  • automatic
  • manual
None specified
actions[].execution.proposal.attachmentsarrayConditionalNot specifiedSchema default, where declared: []None specified
actions[].execution.proposal.attachments[]Array itemobjectConditionalNot specifiedNone specified
actions[].execution.proposal.attachments[].classificationstringConditional
  • internal
  • public
  • restricted
None specified
actions[].execution.proposal.attachments[].contentTypesarrayConditionalNot specifiedNone specified
actions[].execution.proposal.attachments[].contentTypes[]Array itemstringConditionalNot specifiedNone specified
actions[].execution.proposal.attachments[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.attachments[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 16777216
  • minimum: 1
actions[].execution.proposal.attachments[].requiredbooleanConditionalNot specifiedNone specified
actions[].execution.proposal.hooksPost-commit observers of the fixed, value-free Proposal lifecycle event.arrayConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[]Array itemobjectConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].displayAuthored presentation only; labels never establish identity or authority.objectConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handlerWhere a hook's handler runs. The pairing rule: rhai requires script, wasm requires module, url requires destinationId, and each kind requires exactly its own fields and nothing else. abi is required on rhai and wasm and forbidden on url; its value is closed and checked at compile time in [crate::validate_hooks].objectConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.abiFor rhai: The handler ABI the script speaks. For wasm: The handler ABI the module speaks.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.destinationIdKey in the runtime destination binding.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.moduleModule path in the project.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.scriptScript path in the project.stringConditionalNot specifiedNone specified
actions[].execution.proposal.hooks[].handler.typestringConditional
  • rhai
  • url
  • wasm
None specified
actions[].execution.proposal.hooks[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.hooks[].transitionsOmit to observe every committed lifecycle transition.arrayConditionalNot specified
  • uniqueItems: true
actions[].execution.proposal.hooks[].transitions[]Array itemstringConditional
  • applied
  • cancelled
  • edited
  • rebased
  • rejected
  • retried
  • review-returned
  • revised
  • started
  • submitted
None specified
actions[].execution.proposal.retentionobjectConditionalNot specifiedNone specified
actions[].execution.proposal.retention.modestringConditional
  • operator-erase
  • retain
None specified
actions[].execution.proposal.reviewobjectConditionalNot specifiedNone specified
actions[].execution.proposal.review.authoritystringConditionalNot specifiedNone specified
actions[].execution.proposal.review.policyobjectConditionalNot specifiedNone specified
actions[].execution.proposal.review.policy.digestA SHA-256 digest: sha256: followed by 64 lowercase hex digits.stringConditionalNot specified
  • pattern: ^sha256:[0-9a-f]{64}$
actions[].execution.proposal.review.policy.idAn identifier another system issues, written exactly as its issuer gives it.stringConditionalNot specified
  • maxLength: 128
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
actions[].execution.proposal.review.policy.versionstringConditionalNot specifiedNone specified
actions[].execution.proposal.review.sourcestringConditionalNot specifiedNone specified
actions[].execution.proposal.review.typestringConditional
  • none
  • required
None specified
actions[].execution.proposal.reviewContextobjectConditionalNot specifiedNone specified
actions[].execution.proposal.reviewContext.fieldsobjectConditionalNot specified
  • maxProperties: 64
actions[].execution.proposal.reviewContext.fields.*Map valueobjectConditionalNot specified
  • propertyNames.maxLength: 64
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[a-z][A-Za-z0-9]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.fieldA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.fieldsarrayConditionalNot specifiedNone specified
actions[].execution.proposal.reviewContext.fields.*.fields[]Array itemstringConditionalNot specifiedNone specified
actions[].execution.proposal.reviewContext.fields.*.inputA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.recordTypeA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.slotA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].execution.proposal.reviewContext.fields.*.typestringConditional
  • changes
  • document
  • input
  • record
None specified
actions[].execution.proposal.reviewContext.idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].inputsarrayNoNot specifiedSchema default, where declared: []None specified
actions[].inputs[]Array itemobjectNoNot specifiedNone specified
actions[].inputs[].apiNamestringNoNot specifiedNone specified
actions[].inputs[].bboxobjectConditionalNot specifiedNone specified
actions[].inputs[].bbox.eaststringConditionalNot specifiedNone specified
actions[].inputs[].bbox.northstringConditionalNot specifiedNone specified
actions[].inputs[].bbox.southstringConditionalNot specifiedNone specified
actions[].inputs[].bbox.weststringConditionalNot specifiedNone specified
actions[].inputs[].classificationstringYes
  • internal
  • public
  • restricted
None specified
actions[].inputs[].displayobjectNoNot specifiedSchema default, where declared: {}None specified
actions[].inputs[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
actions[].inputs[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
actions[].inputs[].display.titleFieldstringNoNot specifiedNone specified
actions[].inputs[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].inputs[].maximumstringConditionalNot specifiedNone specified
actions[].inputs[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
actions[].inputs[].maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
actions[].inputs[].minimumstringConditionalNot specifiedNone specified
actions[].inputs[].minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
actions[].inputs[].onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
actions[].inputs[].precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
actions[].inputs[].requiredbooleanNoNot specifiedSchema default, where declared: falseNone specified
actions[].inputs[].scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
actions[].inputs[].schemaNot specifiedConditionalNot specifiedNone specified
actions[].inputs[].targetstringConditionalNot specifiedNone specified
actions[].inputs[].typestringConditional
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
actions[].inputs[].typeRefA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].inputs[].valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
actions[].inputs[].values[]Array itemstringConditionalNot specifiedNone specified
actions[].inputs[].vocabularystringConditionalNot specifiedNone specified
actions[].planobjectYesNot specifiedNone specified
actions[].plan.capabilitiesarrayConditionalNot specifiedSchema default, where declared: []
  • uniqueItems: true
actions[].plan.capabilities[]Array itemstringConditionalNot specifiedNone specified
actions[].plan.effectsarrayConditionalNot specifiedNone specified
actions[].plan.effects[]Array itemobjectConditionalNot specifiedNone specified
actions[].plan.effects[].cleararrayConditionalNot specifiedSchema default, where declared: []
  • uniqueItems: true
actions[].plan.effects[].clear[]Array itemstringConditionalNot specifiedNone specified
actions[].plan.effects[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].plan.effects[].operationCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringConditional
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
actions[].plan.effects[].setobjectConditionalNot specifiedSchema default, where declared: {}None specified
actions[].plan.effects[].set.*Map valueobjectConditionalNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].plan.effects[].set.*.fromEffectstringConditionalNot specifiedNone specified
actions[].plan.effects[].set.*.fromInputstringConditionalNot specifiedNone specified
actions[].plan.effects[].set.*.valueNot specifiedConditionalNot specifiedNone specified
actions[].plan.effects[].targetobjectConditionalNot specifiedNone specified
actions[].plan.effects[].target.fromInputstringConditionalNot specifiedNone specified
actions[].plan.effects[].target.recordTypestringConditionalNot specifiedNone specified
actions[].plan.functionstringConditionalNot specifiedNone specified
actions[].plan.inputsarrayConditionalNot specifiedNone specified
actions[].plan.inputs[]Array itemstringConditionalNot specifiedNone specified
actions[].plan.refusalsarrayConditionalNot specifiedSchema default, where declared: []None specified
actions[].plan.refusals[]Array itemobjectConditionalNot specifiedNone specified
actions[].plan.refusals[].codestringConditionalNot specifiedNone specified
actions[].plan.refusals[].labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringConditionalNot specifiedNone specified
actions[].plan.typestringYes
  • fixed
  • function
None specified
actions[].plan.writesarrayConditionalNot specifiedNone specified
actions[].plan.writes[]Array itemobjectConditionalNot specifiedNone specified
actions[].plan.writes[].fieldsarrayConditionalNot specifiedNone specified
actions[].plan.writes[].fields[]Array itemstringConditionalNot specifiedNone specified
actions[].plan.writes[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
actions[].plan.writes[].operationCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringConditional
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
actions[].plan.writes[].targetobjectConditionalNot specifiedNone specified
actions[].plan.writes[].target.fromInputstringConditionalNot specifiedNone specified
actions[].plan.writes[].target.recordTypestringConditionalNot specifiedNone specified
apiVersionstringYes
  • id.registrystack.org/formats/breg/module/v1alpha1
None specified
dependenciesIdentifiers of modules that must be applied before this module.arrayNoNot specifiedSchema default, where declared: []None specified
dependencies[]Array itemstringNoNot specifiedNone specified
extendRecordTypesAdditive contributions to entities already declared by the project or another module.arrayNoNot specifiedSchema default, where declared: []None specified
extendRecordTypes[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].accessProfilesModule profile contributions, read through the sentinels a project profile uses.arrayNoNot specifiedSchema default, where declared: []None specified
extendRecordTypes[].accessProfiles[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].actorKindstringNo
  • agent
  • human
  • service
None specified
extendRecordTypes[].accessProfiles[].allowCountbooleanNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].allowDataExportbooleanNoNot specifiedSchema default, where declared: falseNone specified
extendRecordTypes[].accessProfiles[].defaultbooleanNoNot specifiedSchema default, where declared: falseNone specified
extendRecordTypes[].accessProfiles[].displayAuthored words for an object without a Record's title-field selection.objectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].filterableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].filterableFields[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].accessProfiles[].lookupsarrayNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].lookups[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].lookups[].claimMappingobjectNoNot specifiedSchema default, where declared: {}None specified
extendRecordTypes[].accessProfiles[].lookups[].claimMapping.*Map valuestringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].accessProfiles[].lookups[].selectorstringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].lookups[].valueOriginstringYes
  • request
  • verified-claim
None specified
extendRecordTypes[].accessProfiles[].membershipBoundariesarrayNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].membershipBoundaries[]Array itemA one-hop current membership requirement, combined with every other row boundary. The root field and membership key must reference the same entity. The active field is Boolean, and principalField matches the profile's verified principal.objectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].membershipBoundaries[].activeFieldstringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].membershipBoundaries[].fieldstringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].membershipBoundaries[].membershipKeyFieldstringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].membershipBoundaries[].membershipRecordTypestringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].membershipBoundaries[].principalFieldstringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].operationsarrayYesNot specified
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].operations[]Array itemCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringNo
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
extendRecordTypes[].accessProfiles[].principalClaimThe token claim that names the caller. Every profile serves authenticated callers, so every profile names one.stringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].provenanceFieldsarrayNoNot specified
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].provenanceFields[]Array itemA member of a revision's changeContext a profile may read. Each value is spelled as the member it names is (CFG-NAME-2).stringNo
  • kind
  • reasonCode
  • reasonText
  • sourceReferences
None specified
extendRecordTypes[].accessProfiles[].readPathsarrayNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].readPaths[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].readPaths[].allowCountbooleanNoNot specifiedSchema default, where declared: falseNone specified
extendRecordTypes[].accessProfiles[].readPaths[].filterableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].readPaths[].filterableFields[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].readPaths[].pathstringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].readPaths[].readableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].readPaths[].readableFields[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].readPaths[].sortableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].readPaths[].sortableFields[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].readableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].readableFields[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].requesterClientsThe OAuth clients whose tokens may select this profile. Omit to accept every client.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].requesterClients[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].requireConsentarrayNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].requireConsent[]Array itemA consent check ANDed into one read permission.objectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].requireConsent[].onThe permission entity's field the consent subject references; id is the row's own identity.stringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].requireConsent[].recordThe consent-record entity checked.stringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].requiredPurposesThe verified token's purpose must match one listed value. Omit to accept every purpose.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].requiredPurposes[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].requiredScopesThe scopes the verified token must carry: unrestricted, or a list of at least one scope, all of which must be present.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].requiredScopes[]Array itemstringConditionalNot specifiedNone specified
extendRecordTypes[].accessProfiles[].revisionAccessbooleanNoNot specifiedSchema default, where declared: falseNone specified
extendRecordTypes[].accessProfiles[].rowBoundariesRow reach: unrestricted, or a list of at least one row boundary.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
extendRecordTypes[].accessProfiles[].rowBoundaries[]Array itemobjectConditionalNot specifiedNone specified
extendRecordTypes[].accessProfiles[].rowBoundaries[].claimstringConditionalNot specifiedNone specified
extendRecordTypes[].accessProfiles[].rowBoundaries[].fieldstringConditionalNot specifiedNone specified
extendRecordTypes[].accessProfiles[].rowBoundaries[].operatorstringConditional
  • equals
  • in
None specified
extendRecordTypes[].accessProfiles[].sortableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].sortableFields[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].spatialQueriesobjectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].spatialQueries.bboxobjectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].spatialQueries.bbox.maximumLatitudeSpanDegreesnumberYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].spatialQueries.bbox.maximumLongitudeSpanDegreesnumberYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].taskGrantobjectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].taskGrant.permissionsarrayYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].taskGrant.permissions[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].accessProfiles[].taskGrant.permissions[].collectionstringYesNot specifiedNone specified
extendRecordTypes[].accessProfiles[].taskGrant.permissions[].operationsarrayYesNot specified
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].taskGrant.permissions[].operations[]Array itemCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringNo
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
extendRecordTypes[].accessProfiles[].taskGrant.sourceIssuerAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
extendRecordTypes[].accessProfiles[].writableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].accessProfiles[].writableFields[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessRequirementsAdd mandatory requirements only when the entity has none; replacing them is refused.objectNoNot specifiedNone specified
extendRecordTypes[].accessRequirements.allowedPurposesEvery profile must restrict purpose to a subset of these values. Omit to demand no purpose.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
extendRecordTypes[].accessRequirements.allowedPurposes[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessRequirements.requiredScopesEvery profile must require all these scopes. Requirements never grant access. Omit to demand no scope.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
extendRecordTypes[].accessRequirements.requiredScopes[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].accessRequirements.rowBoundariesEvery profile must include these exact field, verified-claim, and operator bindings. Omit to demand no row boundary.arrayNoNot specified
  • minItems: 1
extendRecordTypes[].accessRequirements.rowBoundaries[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].accessRequirements.rowBoundaries[].claimstringYesNot specifiedNone specified
extendRecordTypes[].accessRequirements.rowBoundaries[].fieldstringYesNot specifiedNone specified
extendRecordTypes[].accessRequirements.rowBoundaries[].operatorstringYes
  • equals
  • in
None specified
extendRecordTypes[].constraintsarrayNoNot specifiedSchema default, where declared: []None specified
extendRecordTypes[].constraints[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].constraints[].endFieldstringConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].fieldstringConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].fieldsarrayConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].fields[]Array itemstringConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringNoNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].constraints[].leftstringConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].maximumintegerConditionalNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
extendRecordTypes[].constraints[].minimumintegerConditionalNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
extendRecordTypes[].constraints[].operatorstringConditional
  • greater-than
  • greater-than-or-equal
  • less-than
  • less-than-or-equal
None specified
extendRecordTypes[].constraints[].rightstringConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].scopeFieldsarrayConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].scopeFields[]Array itemstringConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].startFieldstringConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].typestringYes
  • compare
  • int-range
  • temporal-non-overlap
  • unique
  • vocabulary
None specified
extendRecordTypes[].constraints[].valuesarrayConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].values[]Array itemstringConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].whenarrayConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].when[]Array itemobjectConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].when[].fieldstringConditionalNot specifiedNone specified
extendRecordTypes[].constraints[].when[].typestringConditional
  • active-lifecycle
  • field-equals
  • field-is-not-null
  • field-is-null
None specified
extendRecordTypes[].constraints[].when[].valueNot specifiedConditionalNot specifiedNone specified
extendRecordTypes[].derivedarrayNoNot specifiedNone specified
extendRecordTypes[].derived[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].derived[].executionstringNo
  • live
Schema default, where declared: "live"
None specified
extendRecordTypes[].derived[].fieldsarrayNoNot specifiedSchema default, where declared: []None specified
extendRecordTypes[].derived[].fields[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].derived[].fields[].apiNamestringNoNot specifiedNone specified
extendRecordTypes[].derived[].fields[].bboxobjectConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].bbox.eaststringConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].bbox.northstringConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].bbox.southstringConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].bbox.weststringConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].classificationstringYes
  • internal
  • public
  • restricted
None specified
extendRecordTypes[].derived[].fields[].displayobjectNoNot specifiedNone specified
extendRecordTypes[].derived[].fields[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
extendRecordTypes[].derived[].fields[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
extendRecordTypes[].derived[].fields[].display.titleFieldstringNoNot specifiedNone specified
extendRecordTypes[].derived[].fields[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].derived[].fields[].maximumstringConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
extendRecordTypes[].derived[].fields[].maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
extendRecordTypes[].derived[].fields[].minimumstringConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
extendRecordTypes[].derived[].fields[].onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
extendRecordTypes[].derived[].fields[].precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
extendRecordTypes[].derived[].fields[].scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
extendRecordTypes[].derived[].fields[].schemaNot specifiedConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].targetstringConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].typestringYes
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
extendRecordTypes[].derived[].fields[].valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
extendRecordTypes[].derived[].fields[].values[]Array itemstringConditionalNot specifiedNone specified
extendRecordTypes[].derived[].fields[].vocabularystringConditionalNot specifiedNone specified
extendRecordTypes[].derived[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].derived[].keystringYesNot specifiedNone specified
extendRecordTypes[].derived[].sqlstringYesNot specifiedNone specified
extendRecordTypes[].fieldsarrayNoNot specifiedSchema default, where declared: []None specified
extendRecordTypes[].fields[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].fields[].apiNamestringNoNot specifiedNone specified
extendRecordTypes[].fields[].bboxobjectConditionalNot specifiedNone specified
extendRecordTypes[].fields[].bbox.eaststringConditionalNot specifiedNone specified
extendRecordTypes[].fields[].bbox.northstringConditionalNot specifiedNone specified
extendRecordTypes[].fields[].bbox.southstringConditionalNot specifiedNone specified
extendRecordTypes[].fields[].bbox.weststringConditionalNot specifiedNone specified
extendRecordTypes[].fields[].classificationstringYes
  • internal
  • public
  • restricted
None specified
extendRecordTypes[].fields[].displayobjectNoNot specifiedNone specified
extendRecordTypes[].fields[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
extendRecordTypes[].fields[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
extendRecordTypes[].fields[].display.titleFieldstringNoNot specifiedNone specified
extendRecordTypes[].fields[].encryptedbooleanConditionalNot specifiedSchema default, where declared: falseNone specified
extendRecordTypes[].fields[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].fields[].lookupThe authored blind-index declaration for an encrypted field. Normalization composes in declared order over the canonical string form of the value; unique requests a unique index over the derived blind-index column.objectConditionalNot specifiedNone specified
extendRecordTypes[].fields[].lookup.normalizationarrayConditionalNot specifiedSchema default, where declared: []
  • maxItems: 8
extendRecordTypes[].fields[].lookup.normalization[]Array itemA normalization step applied to the canonical string form of an encrypted value before its blind index is derived. The vocabulary is closed.stringConditional
  • collapse-whitespace
  • lowercase
  • remove-separators
  • trim
  • uppercase
None specified
extendRecordTypes[].fields[].lookup.uniquebooleanConditionalNot specifiedSchema default, where declared: falseNone specified
extendRecordTypes[].fields[].maximumstringConditionalNot specifiedNone specified
extendRecordTypes[].fields[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
extendRecordTypes[].fields[].maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
extendRecordTypes[].fields[].minimumstringConditionalNot specifiedNone specified
extendRecordTypes[].fields[].minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
extendRecordTypes[].fields[].onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
extendRecordTypes[].fields[].patternstringConditionalNot specifiedNone specified
extendRecordTypes[].fields[].precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
extendRecordTypes[].fields[].relationshipobjectConditionalNot specifiedNone specified
extendRecordTypes[].fields[].relationship.inverseNamestringConditionalNot specified
  • pattern: ^[a-z][A-Za-z0-9]*$
extendRecordTypes[].fields[].requiredbooleanNoNot specifiedSchema default, where declared: falseNone specified
extendRecordTypes[].fields[].scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
extendRecordTypes[].fields[].schemaNot specifiedConditionalNot specifiedNone specified
extendRecordTypes[].fields[].targetstringConditionalNot specifiedNone specified
extendRecordTypes[].fields[].typestringConditional
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
extendRecordTypes[].fields[].typeRefA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].fields[].validTimeRolestringNo
  • valid-from
  • valid-to
None specified
extendRecordTypes[].fields[].valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
extendRecordTypes[].fields[].values[]Array itemstringConditionalNot specifiedNone specified
extendRecordTypes[].fields[].vocabularystringConditionalNot specifiedNone specified
extendRecordTypes[].geojsonobjectNoNot specifiedNone specified
extendRecordTypes[].geojson.geometryFieldstringYesNot specifiedNone specified
extendRecordTypes[].hooksarrayNoNot specifiedSchema default, where declared: []None specified
extendRecordTypes[].hooks[]Array itemOne declared hook on an entity. The shape is [registry_platform_hooks::HookDeclaration] with trigger and when closed to the vocabulary this compiler validates, and with handler optional. A hook that declares no handler is still recorded in the outbox and delivered nowhere; production compilation refuses that. Entity hooks run after the triggering transaction commits, so phase is written and the compiler refuses any value it cannot run.objectNoNot specifiedNone specified
extendRecordTypes[].hooks[].displayAuthored presentation only; labels never establish identity or authority.objectNoNot specifiedNone specified
extendRecordTypes[].hooks[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
extendRecordTypes[].hooks[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
extendRecordTypes[].hooks[].handlerGoverned, destination-neutral delivery. destinationId is a key in runtime eventDestinations; the project carries no URL or secret, and deployment configuration may tighten the bounds it binds but cannot supply or widen this authority. Production compilation requires it.objectNoNot specifiedNone specified
extendRecordTypes[].hooks[].handler.abiFor rhai: The handler ABI the script speaks. For wasm: The handler ABI the module speaks.stringConditionalNot specifiedNone specified
extendRecordTypes[].hooks[].handler.destinationIdKey in the runtime destination binding.stringConditionalNot specifiedNone specified
extendRecordTypes[].hooks[].handler.moduleModule path in the project.stringConditionalNot specifiedNone specified
extendRecordTypes[].hooks[].handler.scriptScript path in the project.stringConditionalNot specifiedNone specified
extendRecordTypes[].hooks[].handler.typestringYes
  • rhai
  • url
  • wasm
None specified
extendRecordTypes[].hooks[].idStable hook contract identifier, sent as ce-type. Use a new identifier for a breaking payload change.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].hooks[].phaseWhen the hook runs relative to the triggering transaction.stringYes
  • after
  • before
None specified
extendRecordTypes[].hooks[].principalThe access profile a proposal from this hook is applied under. Optional: a hook that declares none is a non-proposing hook, and a proposal from one is refused and dead-lettered at delivery time. Declaring none is not an authoring error.stringNoNot specifiedNone specified
extendRecordTypes[].hooks[].projectionDeclared field identifiers to include in values. System event metadata is included separately.arrayYesNot specified
  • uniqueItems: true
extendRecordTypes[].hooks[].projection[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].hooks[].triggerCommitted record change that can produce this hook.stringYes
  • created
  • patched
  • tombstoned
None specified
extendRecordTypes[].hooks[].whenOptional field tests, combined with AND. Omit to run on every matching trigger.objectNoNot specifiedNone specified
extendRecordTypes[].hooks[].when.afterEqualsRequired values after the change. Valid with created and patched triggers.objectNoNot specifiedSchema default, where declared: {}None specified
extendRecordTypes[].hooks[].when.afterEquals.*Map valueA comparison literal: a boolean, a number, or text.boolean | number | stringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].hooks[].when.afterIsNullFields that must be unset after the change. Valid with created and patched triggers.arrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].hooks[].when.afterIsNull[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].hooks[].when.beforeEqualsRequired values before the change. Valid with patched and tombstoned triggers.objectNoNot specifiedSchema default, where declared: {}None specified
extendRecordTypes[].hooks[].when.beforeEquals.*Map valueA comparison literal: a boolean, a number, or text.boolean | number | stringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].hooks[].when.beforeIsNullFields that must be unset before the change. Valid with patched and tombstoned triggers.arrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].hooks[].when.beforeIsNull[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].hooks[].when.changedFields whose values must change. Only valid with the patched trigger.arrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
extendRecordTypes[].hooks[].when.changed[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].hooks[].when.typestringYes
  • fields
None specified
extendRecordTypes[].indexesarrayNoNot specifiedSchema default, where declared: []None specified
extendRecordTypes[].indexes[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].indexes[].fieldsarrayYesNot specified
  • maxItems: 31
extendRecordTypes[].indexes[].fields[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].indexes[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].mutationPolicyobjectNoNot specifiedNone specified
extendRecordTypes[].mutationPolicy.createstringNo
  • direct
  • proposal-required
None specified
extendRecordTypes[].mutationPolicy.patchstringNo
  • direct
  • proposal-required
None specified
extendRecordTypes[].mutationPolicy.tombstonestringNo
  • direct
  • proposal-required
None specified
extendRecordTypes[].readPathsarrayNoNot specifiedNone specified
extendRecordTypes[].readPaths[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].readPaths[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
extendRecordTypes[].readPaths[].routestringYesNot specifiedNone specified
extendRecordTypes[].readPaths[].throughstringYesNot specifiedNone specified
extendRecordTypes[].readPaths[].tostringYesNot specifiedNone specified
extendRecordTypes[].recordTypestringYesNot specifiedNone specified
extendRecordTypes[].selectorProfilesarrayNoNot specifiedNone specified
extendRecordTypes[].selectorProfiles[]Array itemobjectNoNot specifiedNone specified
extendRecordTypes[].selectorProfiles[].fieldsarrayYesNot specifiedNone specified
extendRecordTypes[].selectorProfiles[].fields[]Array itemstringNoNot specifiedNone specified
extendRecordTypes[].selectorProfiles[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
functionsarrayNoNot specifiedSchema default, where declared: []None specified
functions[]Array itemobjectNoNot specifiedNone specified
functions[].abistringYes
  • registry.action-plan/v1
None specified
functions[].capabilitiesarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
functions[].capabilities[]Array itemstringNoNot specifiedNone specified
functions[].entrypointstringYesNot specifiedNone specified
functions[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
functions[].limitsobjectNoNot specifiedSchema default, where declared: {"maximumOperations":10000,"maximumOutputBytes":8192}None specified
functions[].limits.maximumOperationsintegerNoNot specifiedSchema default, where declared: 10000
  • format: uint64
  • maximum: 100000
  • minimum: 1
functions[].limits.maximumOutputBytesintegerNoNot specifiedSchema default, where declared: 8192
  • format: uint32
  • maximum: 2097152
  • minimum: 1
functions[].runtimeThe authored action-handler backend. The wasm backend is admitted when this build of the compiler carries the wasm cargo feature, which validates a declared WASM handler module against the platform guest ABI at compile time; without that feature a declared WASM handler is refused with the pinned breg.action.handler-wasm-build-unsupported diagnostic.stringYes
  • rhai
  • wasm
None specified
functions[].sourcestringYesNot specifiedNone specified
idStable module identifier, referenced by the project's module lock.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
kindstringYes
  • BRegModule
None specified
recordTypesRecord types introduced by this module.arrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessLogSubject-facing record access history, separate from the operational audit.objectNoNot specifiedNone specified
recordTypes[].accessLog.exemptionsAccess profiles whose entries become subject-visible only after a policy delay.objectNoNot specified
  • maxProperties: 64
recordTypes[].accessLog.exemptions.*Map valueDelayed subject disclosure for reads under one access profile.objectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].accessLog.exemptions.*.delayDaysDays after the read when the entry becomes visible to the subject.integerYesNot specified
  • format: uint16
  • maximum: 3649
  • minimum: 1
recordTypes[].accessLog.exemptions.*.reasonBounded policy reason retained and audited with each delayed entry.stringYesNot specified
  • maxLength: 256
  • minLength: 1
recordTypes[].accessLog.exemptions.*.sourceRecordTypeRecord type whose access profile authorizes the read. Omitted for direct reads of the logged record type.stringNoNot specified
  • maxLength: 64
  • minLength: 1
  • pattern: ^[a-z][a-z0-9_-]*$
recordTypes[].accessLog.retentionDaysDays each entry remains available before bounded background erasure.integerNoNot specifiedSchema default, where declared: 90
  • format: uint16
  • maximum: 3650
  • minimum: 1
recordTypes[].accessLog.subjectFieldRequired plaintext string or text field matched to the subject's verified principal.stringYesNot specified
  • maxLength: 64
  • minLength: 1
  • pattern: ^[a-z][a-z0-9_-]*$
recordTypes[].accessLog.trustedIntermediariesVerified intermediary client IDs allowed to forward original requester attribution.arrayNoNot specified
  • maxItems: 64
  • uniqueItems: true
recordTypes[].accessLog.trustedIntermediaries[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfilesModule profile contributions, read through the sentinels a project profile uses.arrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].accessProfiles[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].actorKindstringNo
  • agent
  • human
  • service
None specified
recordTypes[].accessProfiles[].allowCountbooleanNoNot specifiedNone specified
recordTypes[].accessProfiles[].allowDataExportbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].accessProfiles[].defaultbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].accessProfiles[].displayAuthored words for an object without a Record's title-field selection.objectNoNot specifiedNone specified
recordTypes[].accessProfiles[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].accessProfiles[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].accessProfiles[].filterableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].filterableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].accessProfiles[].lookupsarrayNoNot specifiedNone specified
recordTypes[].accessProfiles[].lookups[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].lookups[].claimMappingobjectNoNot specifiedSchema default, where declared: {}None specified
recordTypes[].accessProfiles[].lookups[].claimMapping.*Map valuestringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].accessProfiles[].lookups[].selectorstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].lookups[].valueOriginstringYes
  • request
  • verified-claim
None specified
recordTypes[].accessProfiles[].membershipBoundariesarrayNoNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[]Array itemA one-hop current membership requirement, combined with every other row boundary. The root field and membership key must reference the same entity. The active field is Boolean, and principalField matches the profile's verified principal.objectNoNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].activeFieldstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].fieldstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].membershipKeyFieldstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].membershipRecordTypestringYesNot specifiedNone specified
recordTypes[].accessProfiles[].membershipBoundaries[].principalFieldstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].operationsarrayYesNot specified
  • uniqueItems: true
recordTypes[].accessProfiles[].operations[]Array itemCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringNo
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
recordTypes[].accessProfiles[].principalClaimThe token claim that names the caller. Every profile serves authenticated callers, so every profile names one.stringYesNot specifiedNone specified
recordTypes[].accessProfiles[].provenanceFieldsarrayNoNot specified
  • uniqueItems: true
recordTypes[].accessProfiles[].provenanceFields[]Array itemA member of a revision's changeContext a profile may read. Each value is spelled as the member it names is (CFG-NAME-2).stringNo
  • kind
  • reasonCode
  • reasonText
  • sourceReferences
None specified
recordTypes[].accessProfiles[].readPathsarrayNoNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[].allowCountbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].accessProfiles[].readPaths[].filterableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].readPaths[].filterableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[].pathstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[].readableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].readPaths[].readableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].readPaths[].sortableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].readPaths[].sortableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].readableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].readableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].requesterClientsThe OAuth clients whose tokens may select this profile. Omit to accept every client.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
recordTypes[].accessProfiles[].requesterClients[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].requireConsentarrayNoNot specifiedNone specified
recordTypes[].accessProfiles[].requireConsent[]Array itemA consent check ANDed into one read permission.objectNoNot specifiedNone specified
recordTypes[].accessProfiles[].requireConsent[].onThe permission entity's field the consent subject references; id is the row's own identity.stringYesNot specifiedNone specified
recordTypes[].accessProfiles[].requireConsent[].recordThe consent-record entity checked.stringYesNot specifiedNone specified
recordTypes[].accessProfiles[].requiredPurposesThe verified token's purpose must match one listed value. Omit to accept every purpose.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
recordTypes[].accessProfiles[].requiredPurposes[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].requiredScopesThe scopes the verified token must carry: unrestricted, or a list of at least one scope, all of which must be present.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
  • uniqueItems: true
recordTypes[].accessProfiles[].requiredScopes[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].accessProfiles[].revisionAccessbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].accessProfiles[].rowBoundariesRow reach: unrestricted, or a list of at least one row boundary.array | stringYes
  • unrestricted

No bound

or

  • minItems: 1
recordTypes[].accessProfiles[].rowBoundaries[]Array itemobjectConditionalNot specifiedNone specified
recordTypes[].accessProfiles[].rowBoundaries[].claimstringConditionalNot specifiedNone specified
recordTypes[].accessProfiles[].rowBoundaries[].fieldstringConditionalNot specifiedNone specified
recordTypes[].accessProfiles[].rowBoundaries[].operatorstringConditional
  • equals
  • in
None specified
recordTypes[].accessProfiles[].sortableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].sortableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessProfiles[].spatialQueriesobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].spatialQueries.bboxobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].spatialQueries.bbox.maximumLatitudeSpanDegreesnumberYesNot specifiedNone specified
recordTypes[].accessProfiles[].spatialQueries.bbox.maximumLongitudeSpanDegreesnumberYesNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrantobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrant.permissionsarrayYesNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrant.permissions[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrant.permissions[].collectionstringYesNot specifiedNone specified
recordTypes[].accessProfiles[].taskGrant.permissions[].operationsarrayYesNot specified
  • uniqueItems: true
recordTypes[].accessProfiles[].taskGrant.permissions[].operations[]Array itemCreate records through a durable ingestion run, and nothing else. The grant is enabled only while an operator-opened import authority is open for the entity and profile. It declares no item route and no raw batch route, and change control does not count it as a direct write.stringNo
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • revisions
  • snapshot
  • start
  • tombstone
None specified
recordTypes[].accessProfiles[].taskGrant.sourceIssuerAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
recordTypes[].accessProfiles[].writableFieldsarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].accessProfiles[].writableFields[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessRequirementsMandatory request-access requirements checked against every profile, including module contributions.objectNoNot specifiedNone specified
recordTypes[].accessRequirements.allowedPurposesEvery profile must restrict purpose to a subset of these values. Omit to demand no purpose.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
recordTypes[].accessRequirements.allowedPurposes[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessRequirements.requiredScopesEvery profile must require all these scopes. Requirements never grant access. Omit to demand no scope.arrayNoNot specified
  • minItems: 1
  • uniqueItems: true
recordTypes[].accessRequirements.requiredScopes[]Array itemstringNoNot specifiedNone specified
recordTypes[].accessRequirements.rowBoundariesEvery profile must include these exact field, verified-claim, and operator bindings. Omit to demand no row boundary.arrayNoNot specified
  • minItems: 1
recordTypes[].accessRequirements.rowBoundaries[]Array itemobjectNoNot specifiedNone specified
recordTypes[].accessRequirements.rowBoundaries[].claimstringYesNot specifiedNone specified
recordTypes[].accessRequirements.rowBoundaries[].fieldstringYesNot specifiedNone specified
recordTypes[].accessRequirements.rowBoundaries[].operatorstringYes
  • equals
  • in
None specified
recordTypes[].apiNamestringNoNot specifiedNone specified
recordTypes[].batchobjectNoNot specifiedNone specified
recordTypes[].batch.maximumBytesintegerYesNot specified
  • format: uint32
  • maximum: 2097152
  • minimum: 1
recordTypes[].batch.maximumItemsintegerYesNot specified
  • format: uint32
  • maximum: 100
  • minimum: 1
recordTypes[].classificationstringNo
  • internal
  • public
  • restricted
Schema default, where declared: "internal"
None specified
recordTypes[].consentRecordDeclares this entity's rows as subject-issued consent decisions that requireConsent permissions check before returning a subject's row.objectNoNot specifiedNone specified
recordTypes[].consentRecord.decisionMaps the adopter's decision codes onto the engine's decision sets.objectYesNot specifiedNone specified
recordTypes[].consentRecord.decision.fieldstringYesNot specifiedNone specified
recordTypes[].consentRecord.decision.givesCodes that give consent.arrayYesNot specifiedNone specified
recordTypes[].consentRecord.decision.gives[]Array itemstringNoNot specifiedNone specified
recordTypes[].consentRecord.decision.refusalsRevoke codes never shown to recipients.arrayNoNot specifiedNone specified
recordTypes[].consentRecord.decision.refusals[]Array itemstringNoNot specifiedNone specified
recordTypes[].consentRecord.decision.revokesCodes that supersede every give on the same key ordered no later.arrayYesNot specifiedNone specified
recordTypes[].consentRecord.decision.revokes[]Array itemstringNoNot specifiedNone specified
recordTypes[].consentRecord.purposeA vocabulary-code field compared with the verified request purpose.stringYesNot specifiedNone specified
recordTypes[].consentRecord.recipientA vocabulary-code field bound to registry-recipients.stringYesNot specifiedNone specified
recordTypes[].consentRecord.scopeA vocabulary-code field bound to registry-consent-scopes.stringYesNot specifiedNone specified
recordTypes[].consentRecord.subjectA reference field naming the protected subject row.stringYesNot specifiedNone specified
recordTypes[].consentRecord.validityValidity of a consent decision. Every give expires within maximumDurationDays.objectYesNot specifiedNone specified
recordTypes[].consentRecord.validity.fromA required timestamp field; a give is active only from this time.stringYesNot specifiedNone specified
recordTypes[].consentRecord.validity.maximumDurationDaysThe longest a give lasts, in whole days of 24 hours: at most 3652, ten years.integerYesNot specified
  • format: uint32
  • maximum: 3652
  • minimum: 1
recordTypes[].consentRecord.validity.untilAn optional timestamp field ending the give earlier than maximumDurationDays.stringNoNot specifiedNone specified
recordTypes[].constraintsarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].constraints[]Array itemobjectNoNot specifiedNone specified
recordTypes[].constraints[].endFieldstringConditionalNot specifiedNone specified
recordTypes[].constraints[].fieldstringConditionalNot specifiedNone specified
recordTypes[].constraints[].fieldsarrayConditionalNot specifiedNone specified
recordTypes[].constraints[].fields[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].constraints[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringNoNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].constraints[].leftstringConditionalNot specifiedNone specified
recordTypes[].constraints[].maximumintegerConditionalNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
recordTypes[].constraints[].minimumintegerConditionalNot specified
  • format: int64
  • maximum: 9223372036854775807
  • minimum: -9223372036854775808
recordTypes[].constraints[].operatorstringConditional
  • greater-than
  • greater-than-or-equal
  • less-than
  • less-than-or-equal
None specified
recordTypes[].constraints[].rightstringConditionalNot specifiedNone specified
recordTypes[].constraints[].scopeFieldsarrayConditionalNot specifiedNone specified
recordTypes[].constraints[].scopeFields[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].constraints[].startFieldstringConditionalNot specifiedNone specified
recordTypes[].constraints[].typestringYes
  • compare
  • int-range
  • temporal-non-overlap
  • unique
  • vocabulary
None specified
recordTypes[].constraints[].valuesarrayConditionalNot specifiedNone specified
recordTypes[].constraints[].values[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].constraints[].whenarrayConditionalNot specifiedNone specified
recordTypes[].constraints[].when[]Array itemobjectConditionalNot specifiedNone specified
recordTypes[].constraints[].when[].fieldstringConditionalNot specifiedNone specified
recordTypes[].constraints[].when[].typestringConditional
  • active-lifecycle
  • field-equals
  • field-is-not-null
  • field-is-null
None specified
recordTypes[].constraints[].when[].valueNot specifiedConditionalNot specifiedNone specified
recordTypes[].derivedarrayNoNot specifiedNone specified
recordTypes[].derived[]Array itemobjectNoNot specifiedNone specified
recordTypes[].derived[].executionstringNo
  • live
Schema default, where declared: "live"
None specified
recordTypes[].derived[].fieldsarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].derived[].fields[]Array itemobjectNoNot specifiedNone specified
recordTypes[].derived[].fields[].apiNamestringNoNot specifiedNone specified
recordTypes[].derived[].fields[].bboxobjectConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].bbox.eaststringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].bbox.northstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].bbox.southstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].bbox.weststringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].classificationstringYes
  • internal
  • public
  • restricted
None specified
recordTypes[].derived[].fields[].displayobjectNoNot specifiedNone specified
recordTypes[].derived[].fields[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].derived[].fields[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].derived[].fields[].display.titleFieldstringNoNot specifiedNone specified
recordTypes[].derived[].fields[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].derived[].fields[].maximumstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
recordTypes[].derived[].fields[].maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
recordTypes[].derived[].fields[].minimumstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
recordTypes[].derived[].fields[].onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
recordTypes[].derived[].fields[].precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
recordTypes[].derived[].fields[].scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
recordTypes[].derived[].fields[].schemaNot specifiedConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].targetstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].typestringYes
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
recordTypes[].derived[].fields[].valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
recordTypes[].derived[].fields[].values[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].derived[].fields[].vocabularystringConditionalNot specifiedNone specified
recordTypes[].derived[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].derived[].keystringYesNot specifiedNone specified
recordTypes[].derived[].sqlstringYesNot specifiedNone specified
recordTypes[].displayobjectNoNot specifiedSchema default, where declared: {}None specified
recordTypes[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].display.titleFieldstringNoNot specifiedNone specified
recordTypes[].fieldsarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].fields[]Array itemobjectNoNot specifiedNone specified
recordTypes[].fields[].apiNamestringNoNot specifiedNone specified
recordTypes[].fields[].bboxobjectConditionalNot specifiedNone specified
recordTypes[].fields[].bbox.eaststringConditionalNot specifiedNone specified
recordTypes[].fields[].bbox.northstringConditionalNot specifiedNone specified
recordTypes[].fields[].bbox.southstringConditionalNot specifiedNone specified
recordTypes[].fields[].bbox.weststringConditionalNot specifiedNone specified
recordTypes[].fields[].classificationstringYes
  • internal
  • public
  • restricted
None specified
recordTypes[].fields[].displayobjectNoNot specifiedNone specified
recordTypes[].fields[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].fields[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].fields[].display.titleFieldstringNoNot specifiedNone specified
recordTypes[].fields[].encryptedbooleanConditionalNot specifiedSchema default, where declared: falseNone specified
recordTypes[].fields[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].fields[].lookupThe authored blind-index declaration for an encrypted field. Normalization composes in declared order over the canonical string form of the value; unique requests a unique index over the derived blind-index column.objectConditionalNot specifiedNone specified
recordTypes[].fields[].lookup.normalizationarrayConditionalNot specifiedSchema default, where declared: []
  • maxItems: 8
recordTypes[].fields[].lookup.normalization[]Array itemA normalization step applied to the canonical string form of an encrypted value before its blind index is derived. The vocabulary is closed.stringConditional
  • collapse-whitespace
  • lowercase
  • remove-separators
  • trim
  • uppercase
None specified
recordTypes[].fields[].lookup.uniquebooleanConditionalNot specifiedSchema default, where declared: falseNone specified
recordTypes[].fields[].maximumstringConditionalNot specifiedNone specified
recordTypes[].fields[].maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
recordTypes[].fields[].maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
recordTypes[].fields[].minimumstringConditionalNot specifiedNone specified
recordTypes[].fields[].minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
recordTypes[].fields[].onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
recordTypes[].fields[].patternstringConditionalNot specifiedNone specified
recordTypes[].fields[].precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
recordTypes[].fields[].relationshipobjectConditionalNot specifiedNone specified
recordTypes[].fields[].relationship.inverseNamestringConditionalNot specified
  • pattern: ^[a-z][A-Za-z0-9]*$
recordTypes[].fields[].requiredbooleanNoNot specifiedSchema default, where declared: falseNone specified
recordTypes[].fields[].scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
recordTypes[].fields[].schemaNot specifiedConditionalNot specifiedNone specified
recordTypes[].fields[].targetstringConditionalNot specifiedNone specified
recordTypes[].fields[].typestringConditional
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
recordTypes[].fields[].typeRefA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].fields[].validTimeRolestringNo
  • valid-from
  • valid-to
None specified
recordTypes[].fields[].valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
recordTypes[].fields[].values[]Array itemstringConditionalNot specifiedNone specified
recordTypes[].fields[].vocabularystringConditionalNot specifiedNone specified
recordTypes[].geojsonobjectNoNot specifiedNone specified
recordTypes[].geojson.geometryFieldstringYesNot specifiedNone specified
recordTypes[].hooksarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].hooks[]Array itemOne declared hook on an entity. The shape is [registry_platform_hooks::HookDeclaration] with trigger and when closed to the vocabulary this compiler validates, and with handler optional. A hook that declares no handler is still recorded in the outbox and delivered nowhere; production compilation refuses that. Entity hooks run after the triggering transaction commits, so phase is written and the compiler refuses any value it cannot run.objectNoNot specifiedNone specified
recordTypes[].hooks[].displayAuthored presentation only; labels never establish identity or authority.objectNoNot specifiedNone specified
recordTypes[].hooks[].display.descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].hooks[].display.labelHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringNoNot specifiedNone specified
recordTypes[].hooks[].handlerGoverned, destination-neutral delivery. destinationId is a key in runtime eventDestinations; the project carries no URL or secret, and deployment configuration may tighten the bounds it binds but cannot supply or widen this authority. Production compilation requires it.objectNoNot specifiedNone specified
recordTypes[].hooks[].handler.abiFor rhai: The handler ABI the script speaks. For wasm: The handler ABI the module speaks.stringConditionalNot specifiedNone specified
recordTypes[].hooks[].handler.destinationIdKey in the runtime destination binding.stringConditionalNot specifiedNone specified
recordTypes[].hooks[].handler.moduleModule path in the project.stringConditionalNot specifiedNone specified
recordTypes[].hooks[].handler.scriptScript path in the project.stringConditionalNot specifiedNone specified
recordTypes[].hooks[].handler.typestringYes
  • rhai
  • url
  • wasm
None specified
recordTypes[].hooks[].idStable hook contract identifier, sent as ce-type. Use a new identifier for a breaking payload change.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].hooks[].phaseWhen the hook runs relative to the triggering transaction.stringYes
  • after
  • before
None specified
recordTypes[].hooks[].principalThe access profile a proposal from this hook is applied under. Optional: a hook that declares none is a non-proposing hook, and a proposal from one is refused and dead-lettered at delivery time. Declaring none is not an authoring error.stringNoNot specifiedNone specified
recordTypes[].hooks[].projectionDeclared field identifiers to include in values. System event metadata is included separately.arrayYesNot specified
  • uniqueItems: true
recordTypes[].hooks[].projection[]Array itemstringNoNot specifiedNone specified
recordTypes[].hooks[].triggerCommitted record change that can produce this hook.stringYes
  • created
  • patched
  • tombstoned
None specified
recordTypes[].hooks[].whenOptional field tests, combined with AND. Omit to run on every matching trigger.objectNoNot specifiedNone specified
recordTypes[].hooks[].when.afterEqualsRequired values after the change. Valid with created and patched triggers.objectNoNot specifiedSchema default, where declared: {}None specified
recordTypes[].hooks[].when.afterEquals.*Map valueA comparison literal: a boolean, a number, or text.boolean | number | stringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].hooks[].when.afterIsNullFields that must be unset after the change. Valid with created and patched triggers.arrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].hooks[].when.afterIsNull[]Array itemstringNoNot specifiedNone specified
recordTypes[].hooks[].when.beforeEqualsRequired values before the change. Valid with patched and tombstoned triggers.objectNoNot specifiedSchema default, where declared: {}None specified
recordTypes[].hooks[].when.beforeEquals.*Map valueA comparison literal: a boolean, a number, or text.boolean | number | stringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].hooks[].when.beforeIsNullFields that must be unset before the change. Valid with patched and tombstoned triggers.arrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].hooks[].when.beforeIsNull[]Array itemstringNoNot specifiedNone specified
recordTypes[].hooks[].when.changedFields whose values must change. Only valid with the patched trigger.arrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
recordTypes[].hooks[].when.changed[]Array itemstringNoNot specifiedNone specified
recordTypes[].hooks[].when.typestringYes
  • fields
None specified
recordTypes[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].indexesarrayNoNot specifiedSchema default, where declared: []None specified
recordTypes[].indexes[]Array itemobjectNoNot specifiedNone specified
recordTypes[].indexes[].fieldsarrayYesNot specified
  • maxItems: 31
recordTypes[].indexes[].fields[]Array itemstringNoNot specifiedNone specified
recordTypes[].indexes[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].mutationModestringYes
  • create-only
  • mutable
None specified
recordTypes[].mutationPolicyobjectNoNot specifiedNone specified
recordTypes[].mutationPolicy.createstringNo
  • direct
  • proposal-required
None specified
recordTypes[].mutationPolicy.patchstringNo
  • direct
  • proposal-required
None specified
recordTypes[].mutationPolicy.tombstonestringNo
  • direct
  • proposal-required
None specified
recordTypes[].primaryDatasetstringYesNot specifiedNone specified
recordTypes[].readPathsarrayNoNot specifiedNone specified
recordTypes[].readPaths[]Array itemobjectNoNot specifiedNone specified
recordTypes[].readPaths[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].readPaths[].routestringYesNot specifiedNone specified
recordTypes[].readPaths[].throughstringYesNot specifiedNone specified
recordTypes[].readPaths[].tostringYesNot specifiedNone specified
recordTypes[].routestringYesNot specifiedNone specified
recordTypes[].selectorProfilesarrayNoNot specifiedNone specified
recordTypes[].selectorProfiles[]Array itemobjectNoNot specifiedNone specified
recordTypes[].selectorProfiles[].fieldsarrayYesNot specifiedNone specified
recordTypes[].selectorProfiles[].fields[]Array itemstringNoNot specifiedNone specified
recordTypes[].selectorProfiles[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].temporalobjectNoNot specifiedNone specified
recordTypes[].temporal.endFieldstringYesNot specifiedNone specified
recordTypes[].temporal.startFieldstringYesNot specifiedNone specified
recordTypes[].tombstonebooleanNoNot specifiedSchema default, where declared: falseNone specified
valueTypesobjectNoNot specifiedSchema default, where declared: {}None specified
valueTypes.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
valueTypes.*.bboxobjectConditionalNot specifiedNone specified
valueTypes.*.bbox.eaststringConditionalNot specifiedNone specified
valueTypes.*.bbox.northstringConditionalNot specifiedNone specified
valueTypes.*.bbox.southstringConditionalNot specifiedNone specified
valueTypes.*.bbox.weststringConditionalNot specifiedNone specified
valueTypes.*.maximumstringConditionalNot specifiedNone specified
valueTypes.*.maximumBytesintegerConditionalNot specified
  • format: uint32
  • maximum: 1048576
  • minimum: 1
valueTypes.*.maximumLengthintegerConditionalNot specified
  • format: uint32
  • maximum: 1000000
  • minimum: 1

or

  • format: uint32
  • maximum: 10000000
  • minimum: 1
valueTypes.*.minimumstringConditionalNot specifiedNone specified
valueTypes.*.minimumLengthintegerConditionalNot specifiedSchema default, where declared: 0
  • format: uint32
  • maximum: 1000000
  • minimum: 0
valueTypes.*.onDeletestringConditional
  • restrict
Schema default, where declared: "restrict"
None specified
valueTypes.*.precisionintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 1

or

  • format: uint32
  • maximum: 9
  • minimum: 0
valueTypes.*.scaleintegerConditionalNot specified
  • format: uint32
  • maximum: 38
  • minimum: 0
valueTypes.*.schemaNot specifiedConditionalNot specifiedNone specified
valueTypes.*.targetstringConditionalNot specifiedNone specified
valueTypes.*.typestringYes
  • boolean
  • crs84-point
  • date
  • decimal
  • int64
  • reference
  • string
  • structured
  • text
  • timestamp
  • uuid
  • vocabulary-code
None specified
valueTypes.*.valuesarrayConditionalNot specifiedSchema default, where declared: []None specified
valueTypes.*.values[]Array itemstringConditionalNot specifiedNone specified
valueTypes.*.vocabularystringConditionalNot specifiedNone specified
versionModule version recorded alongside its content digest in the project.stringYesNot specifiedNone specified

runtime.yaml

Source preview, pre-1.0

Generated from products/breg/generated/runtime/runtime.schema.json. 186 key paths. Explained in docs/site/src/content/docs/configure/breg.mdx.

Key pathTypeRequiredAccepted valuesConstraints
apiVersionstringYes
  • id.registrystack.org/formats/breg/runtime/v1alpha1
None specified
attachmentStorageDefaults to PostgreSQL; S3 requires a bucket with versioning never enabled.objectNoNot specifiedSchema default, where declared: {"type":"database"}None specified
attachmentStorage.accessKeyIdRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
attachmentStorage.attemptTimeoutMillisecondsintegerConditionalNot specifiedSchema default, where declared: 10000
  • format: uint64
  • maximum: 60000
  • minimum: 100
attachmentStorage.bucketstringConditionalNot specified
  • maxLength: 63
  • minLength: 3
attachmentStorage.caBundleRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
attachmentStorage.endpointstringConditionalNot specified
  • maxLength: 2048
  • minLength: 1
attachmentStorage.pathStylebooleanConditionalNot specifiedSchema default, where declared: trueNone specified
attachmentStorage.regionstringConditionalNot specified
  • maxLength: 64
  • minLength: 1
attachmentStorage.secretAccessKeyRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
attachmentStorage.sessionTokenRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
attachmentStorage.typestringYes
  • database
  • s3
None specified
attachmentVerificationOptional external verdict hook. Disabled by default.objectNoNot specifiedSchema default, where declared: {"type":"disabled"}None specified
attachmentVerification.attemptTimeoutMillisecondsintegerConditionalNot specifiedSchema default, where declared: 10000
  • format: uint64
  • maximum: 60000
  • minimum: 100
attachmentVerification.authorizationRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
attachmentVerification.endpointstringConditionalNot specified
  • maxLength: 2048
  • minLength: 1
attachmentVerification.policyIdNon-secret identity of the external scanner and rules generation.stringConditionalNot specified
  • maxLength: 128
  • minLength: 1
  • pattern: ^[\x21-\x7E]+$
attachmentVerification.typestringYes
  • disabled
  • http
None specified
auditThe key for the keyed references an audit record carries in place of raw identifiers, written audit.hashKeyRef beside the product's own audit settings.objectYesNot specifiedNone specified
audit.destinationfile (the default) writes a durable, rotated JSON Lines file at path; stdout writes one JSON line per entry to standard output.stringNo
  • file
  • stdout
Schema default, where declared: "file"
None specified
audit.hashKeyRefSecret reference to the audit hash key.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
audit.pathAbsolute path of the active audit file. Required for, and accepted only with, the file destination; omitted with stdout.stringConditionalNot specified

where a rule elsewhere applies

  • pattern: ^/+(?:(?:[^/.][^/]*|\.(?:[^/.][^/]*|\.[^/]+)?)/+)*(?:[^/.][^/]*|\.(?:[^/.][^/]*|\.[^/]+))$
audit.retentionDaysDays a rotated file is retained, accepted only with the file destination. Omitted, a rotated file is retained for 90 days.integerNoNot specified
  • format: uint32
  • maximum: 36500
  • minimum: 1
audit.rotateBytesSize in bytes at which the active file rotates, accepted only with the file destination. Omitted, the file rotates at 100 MiB.integerNoNot specified
  • format: uint64
  • maximum: 4294967295
  • minimum: 1048576
authenticationobjectYesNot specifiedNone specified
authentication.authorityClaimsobjectYesNot specifiedNone specified
authentication.authorityClaims.contextualThe claim names that carry delegated-authority context. Each name defaults to its registry_ claim; written, every name is given.objectNoNot specifiedSchema default, where declared: {"actorKind":"registry_actor_kind","approver":"registry_approver","grantBounds":"registry_grant_bounds","grantClient":"registry_grant_client","grantExp":"registry_grant_exp","grantId":"registry_grant_id","grantResource":"registry_grant_resource","grantSourceIssuer":"registry_grant_source_issuer","purpose":"registry_purpose"}None specified
authentication.authorityClaims.contextual.actorKindThe name of one top-level claim of an access token. The reader accepts any text; the runtime then refuses a name that is not a valid claim name, one that repeats another contextual name, and one that is a registered or authentication claim.stringYesNot specifiedNone specified
authentication.authorityClaims.contextual.approverThe name of one top-level claim of an access token. The reader accepts any text; the runtime then refuses a name that is not a valid claim name, one that repeats another contextual name, and one that is a registered or authentication claim.stringYesNot specifiedNone specified
authentication.authorityClaims.contextual.grantBoundsThe name of one top-level claim of an access token. The reader accepts any text; the runtime then refuses a name that is not a valid claim name, one that repeats another contextual name, and one that is a registered or authentication claim.stringYesNot specifiedNone specified
authentication.authorityClaims.contextual.grantClientThe name of one top-level claim of an access token. The reader accepts any text; the runtime then refuses a name that is not a valid claim name, one that repeats another contextual name, and one that is a registered or authentication claim.stringYesNot specifiedNone specified
authentication.authorityClaims.contextual.grantExpThe name of one top-level claim of an access token. The reader accepts any text; the runtime then refuses a name that is not a valid claim name, one that repeats another contextual name, and one that is a registered or authentication claim.stringYesNot specifiedNone specified
authentication.authorityClaims.contextual.grantIdThe name of one top-level claim of an access token. The reader accepts any text; the runtime then refuses a name that is not a valid claim name, one that repeats another contextual name, and one that is a registered or authentication claim.stringYesNot specifiedNone specified
authentication.authorityClaims.contextual.grantResourceThe name of one top-level claim of an access token. The reader accepts any text; the runtime then refuses a name that is not a valid claim name, one that repeats another contextual name, and one that is a registered or authentication claim.stringYesNot specifiedNone specified
authentication.authorityClaims.contextual.grantSourceIssuerThe name of one top-level claim of an access token. The reader accepts any text; the runtime then refuses a name that is not a valid claim name, one that repeats another contextual name, and one that is a registered or authentication claim.stringYesNot specifiedNone specified
authentication.authorityClaims.contextual.purposeThe name of one top-level claim of an access token. The reader accepts any text; the runtime then refuses a name that is not a valid claim name, one that repeats another contextual name, and one that is a registered or authentication claim.stringYesNot specifiedNone specified
authentication.authorityClaims.principalstringYesNot specified
  • maxLength: 128
  • minLength: 1
  • pattern: ^[\x21-\x7E]+$
authentication.authorityClaims.purposestringNoNot specified
  • maxLength: 128
  • minLength: 1
  • pattern: ^[\x21-\x7E]+$
authentication.authorityClaims.trustedActorsobjectNoNot specifiedSchema default, where declared: {}None specified
authentication.authorityClaims.trustedActors.*Map valuestringNoNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
authentication.oidcThe OIDC issuer a runtime accepts access tokens from: the exact iss value, the aud value a token must carry, and where the issuer's signing keys come from, written under authentication.oidc beside the product's own token rules.objectYesNot specifiedNone specified
authentication.oidc.accessTokenTypeThe one admitted access-token typ semantics. Configuring the RFC 9068 access-token media type as at+jwt or application/at+jwt admits both spellings of that one type; any other value (for example JWT) admits only that token type, matched case-insensitively.stringYesNot specified
  • maxLength: 2048
  • minLength: 1
  • pattern: ^[^\s\x00-\x1F\x7F](?:[^\x00-\x1F\x7F]*[^\s\x00-\x1F\x7F])?$
authentication.oidc.allowInsecureHttpPermit plain HTTP beyond loopback to the configured issuer and to a JWKS URI declared in configuration. TLS remains required unless the operator explicitly accepts this transport risk.booleanNoNot specifiedSchema default, where declared: falseNone specified
authentication.oidc.allowedAlgorithmstringYes
  • ES256
  • ES384
  • EdDSA
  • RS256
  • RS384
None specified
authentication.oidc.allowedClientsThe OAuth clients whose tokens this registry accepts: unrestricted to accept a token from every client, or a list of at least one client.array | stringYes
  • unrestricted

No bound

or

  • maxItems: 128
  • minItems: 1
  • uniqueItems: true
authentication.oidc.allowedClients[]Array itemstringConditionalNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\x00-\x20\x7F]+$
authentication.oidc.assertionIssuersThe assertion authorities each client may exchange a subject token from, keyed by client identifier. Omitted, no assertion-issuer rule applies; written, it lists at least one client, each with at least one authority, and a client not listed may exchange from no authority.objectNoNot specified
  • maxProperties: 128
  • minProperties: 1
authentication.oidc.assertionIssuers.*Map valuearrayNoNot specified
  • maxItems: 128
  • minItems: 1
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
  • propertyNames.pattern: ^[^\x00-\x20\x7F]+$
  • uniqueItems: true
authentication.oidc.assertionIssuers.*[]Array itemstringNoNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\x00-\x20\x7F]+$
authentication.oidc.audienceThe audience every accepted access token must carry in aud.stringYesNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\s\x00-\x1F\x7F](?:[^\x00-\x1F\x7F]*[^\s\x00-\x1F\x7F])?$
authentication.oidc.deniedKidsThe signing key identifiers this registry refuses a token from. Omitted, no key is denied; written, it names at least one key.arrayNoNot specified
  • maxItems: 128
  • minItems: 1
  • uniqueItems: true
authentication.oidc.deniedKids[]Array itemstringNoNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\x00-\x20\x7F]+$
authentication.oidc.issuerExact issuer accepted in access-token iss claims, an absolute https URL, or a plain http URL when allowInsecureHttp is set.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • minLength: 1
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
authentication.oidc.jwksCacheOptional JWKS fetch and cache tuning. Defaults to bounded cache behavior.objectNoNot specifiedSchema default, where declared: {"attemptTimeoutMilliseconds":5000,"cacheTtlSeconds":600,"maximumDocumentBytes":65536,"negativeCacheTtlSeconds":60,"outageToleranceSeconds":900,"refreshCooldownSeconds":30}None specified
authentication.oidc.jwksCache.attemptTimeoutMillisecondsDefaults to the bounded JWKS fetch timeout.integerNoNot specifiedSchema default, where declared: 5000
  • format: uint64
  • maximum: 30000
  • minimum: 1
authentication.oidc.jwksCache.cacheTtlSecondsDefaults to the bounded JWKS cache time-to-live.integerNoNot specifiedSchema default, where declared: 600
  • format: uint64
  • maximum: 86400
  • minimum: 1
authentication.oidc.jwksCache.maximumDocumentBytesDefaults to the bounded maximum JWKS document size.integerNoNot specifiedSchema default, where declared: 65536
  • format: uint64
  • maximum: 1048576
  • minimum: 1
authentication.oidc.jwksCache.negativeCacheTtlSecondsDefaults to the bounded JWKS negative-cache time-to-live.integerNoNot specifiedSchema default, where declared: 60
  • format: uint64
  • maximum: 3600
  • minimum: 1
authentication.oidc.jwksCache.outageToleranceSecondsDefaults to the bounded cached-key outage tolerance.integerNoNot specifiedSchema default, where declared: 900
  • format: uint64
  • maximum: 86400
  • minimum: 0
authentication.oidc.jwksCache.refreshCooldownSecondsDefaults to the bounded JWKS refresh cooldown.integerNoNot specifiedSchema default, where declared: 30
  • format: uint64
  • maximum: 3600
  • minimum: 1
authentication.oidc.jwksSourceWhere the issuer's signing keys come from. Absent reads the issuer's OpenID Connect discovery document.objectNoNot specifiedNone specified
authentication.oidc.jwksSource.documentRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
authentication.oidc.jwksSource.typestringYes
  • discovery
  • static
  • uri
None specified
authentication.oidc.jwksSource.uriAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringConditionalNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
authentication.oidc.leewayMillisecondsintegerYesNot specified
  • format: uint64
  • maximum: 300000
  • minimum: 0
authentication.oidc.maximumTokenLifetimeSecondsintegerYesNot specified
  • format: uint64
  • maximum: 7200
  • minimum: 1
authentication.oidc.scopeClaimstringYesNot specified
  • maxLength: 128
  • minLength: 1
  • pattern: ^[\x21-\x7E]+$
authentication.oidc.scopeSeparatorstringYesNot specified
  • maxLength: 1
  • minLength: 1
  • pattern: ^[^A-Za-z0-9\x00-\x1F\x7F]$
cursorobjectYesNot specifiedNone specified
cursor.maximumAgeSecondsDefaults to the bounded cursor validity lifetime.integerNoNot specifiedSchema default, where declared: 300
  • format: uint64
  • maximum: 86400
  • minimum: 1
cursor.secretRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
databaseThe registry's database: the shared database block and the connection pool and SQL roles the registry adds.objectYesNot specifiedNone specified
database.migrationUrlRefSecret reference to the migration connection URL.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
database.poolobjectYesNot specifiedNone specified
database.pool.createTimeoutMillisecondsDefaults to the bounded PostgreSQL pool connection-creation timeout.integerNoNot specifiedSchema default, where declared: 30000
  • format: uint64
  • maximum: 60000
  • minimum: 1
database.pool.maximumConnectionsintegerYesNot specified
  • format: uint32
  • maximum: 128
  • minimum: 1
database.pool.recycleTimeoutMillisecondsDefaults to the bounded PostgreSQL pool connection-recycle timeout.integerNoNot specifiedSchema default, where declared: 30000
  • format: uint64
  • maximum: 60000
  • minimum: 1
database.pool.waitTimeoutMillisecondsDefaults to the bounded PostgreSQL pool wait timeout.integerNoNot specifiedSchema default, where declared: 30000
  • format: uint64
  • maximum: 60000
  • minimum: 1
database.rolesobjectYesNot specifiedNone specified
database.roles.migrationstringYesNot specified
  • maxLength: 63
  • minLength: 1
  • pattern: ^[_a-z][_a-z0-9]{0,62}$
database.roles.runtimestringYesNot specified
  • maxLength: 63
  • minLength: 1
  • pattern: ^[_a-z][_a-z0-9]{0,62}$
database.runtimeUrlRefSecret reference to the least-privileged runtime connection URL.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
database.testOnlyPlaintextAllow a plaintext connection. Refused outside test builds.booleanNoNot specifiedSchema default, where declared: falseNone specified
database.trustedRootCertificateRefSecret reference to a PEM root certificate the connection trusts. Absent, the connection trusts the platform's root certificates.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
eventDestinationsobjectNoNot specified
  • maxProperties: 128
eventDestinations.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
eventDestinations.*.allowedPrivateCidrsExplicitly allowed private network ranges in canonical CIDR notation.arrayYesNot specified
  • maxItems: 16
  • uniqueItems: true
eventDestinations.*.allowedPrivateCidrs[]Array itemstringNoNot specifiedNone specified
eventDestinations.*.classificationCeilingHighest permitted classification, including fields used only in event conditions.stringYes
  • internal
  • public
  • restricted
None specified
eventDestinations.*.deliveryCeilingsPer-destination limits that may tighten, but never increase, the compiled delivery limits.objectYesNot specifiedNone specified
eventDestinations.*.deliveryCeilings.attemptTimeoutMillisecondsMaximum time allowed for one attempt, in milliseconds.integerYesNot specified
  • format: uint32
  • maximum: 5000
  • minimum: 100
eventDestinations.*.deliveryCeilings.maximumAttemptsMaximum total attempts in one delivery generation, including the first attempt.integerYesNot specified
  • format: uint32
  • maximum: 5
  • minimum: 1
eventDestinations.*.dnsFamilyAddress families to validate when resolving the destination.stringYes
  • dual-stack-strict
  • ipv4-only
None specified
eventDestinations.*.hmacSha256KeyRefRuntime secret reference for the receiver's shared HMAC-SHA-256 key.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
eventDestinations.*.networkProfileHTTPS for production, or explicit loopback-only HTTP for local development.stringYes
  • loopback-development-http
  • production-https
None specified
eventDestinations.*.originReceiver origin without a path or query, such as https://receiver.example.com.stringYesNot specified
  • maxLength: 2048
  • minLength: 1
eventDestinations.*.pathAbsolute request path on the configured origin, such as /events.stringYesNot specified
  • maxLength: 4096
  • minLength: 1
  • pattern: ^/[\x20-\x22\x24\x26-\x3E\x40-\x5B\x5D-\x7E]*$
eventDestinations.*.tlsOptional private CA and client identity secret references for HTTPS.objectNoNot specifiedNone specified
eventDestinations.*.tls.caBundleRefPEM CA bundle secret reference, when the receiver uses a private certificate authority. Omitted, the platform's trusted roots verify the receiver. At least one of caBundleRef and clientIdentityRef is written.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
eventDestinations.*.tls.clientIdentityRefPEM client identity secret reference for mutual TLS. Omitted, the registry presents no client certificate.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
evidenceProvidersobjectNoNot specifiedSchema default, where declared: {}None specified
evidenceProviders.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
evidenceProviders.*.baseUrlThe Evidence service's base URL. It is https; http is accepted only for a loopback host, for local development.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
evidenceProviders.*.caBundleRefPEM CA bundle for the Evidence service and its token endpoint. Omitted, the platform's trusted roots verify them.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
evidenceProviders.*.privateKeyJwtThe refreshing credential: a private-key JWT client exchange. Exactly one of tokenRef and privateKeyJwt is written.objectConditionalNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.assertionAudiencestringNoNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.clientIdstringYesNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.privateKeyRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
evidenceProviders.*.privateKeyJwt.resourcestringNoNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.scopesarrayNoNot specifiedSchema default, where declared: []None specified
evidenceProviders.*.privateKeyJwt.scopes[]Array itemstringNoNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.tokenEndpointstringYesNot specifiedNone specified
evidenceProviders.*.revokedKeyIdsarrayNoNot specifiedSchema default, where declared: []None specified
evidenceProviders.*.revokedKeyIds[]Array itemstringNoNot specifiedNone specified
evidenceProviders.*.tokenRefCompatibility path for a pre-issued token. Long-running providers should configure privateKeyJwt so expiry triggers a fresh exchange. Exactly one of tokenRef and privateKeyJwt is written.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
evidenceProviders.*.trustBindingIdstringYesNot specifiedNone specified
evidenceProviders.*.trustedJwksRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
fieldEncryptionOptional field-encryption data-key provider. Absent by default, which serves unencrypted entities only.objectNoNot specifiedSchema default, where declared: {}None specified
fieldEncryption.providerRaw provider binding; the type member selects the custodian.objectNoNot specifiedNone specified
fieldEncryption.provider.attemptTimeoutMillisecondsintegerConditionalNot specifiedSchema default, where declared: 5000
  • format: uint64
  • maximum: 30000
  • minimum: 1
fieldEncryption.provider.dekRefThe data encryption key, named by a secret:file/NAME reference; an environment reference is refused.stringConditionalNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
fieldEncryption.provider.keyNamestringConditionalNot specified
  • maxLength: 128
  • minLength: 1
fieldEncryption.provider.mountstringConditionalNot specified
  • maxLength: 256
  • minLength: 1
fieldEncryption.provider.typestringYes
  • local-file
  • transit
None specified
fieldEncryption.provider.unixSocketPathstringConditionalNot specified
  • maxLength: 4096
  • minLength: 2
identityobjectYesNot specifiedNone specified
identity.databaseIdstringYesNot specified
  • maxLength: 256
  • minLength: 1
  • pattern: ^[^\s\x00-\x1F\x7F](?:[^\x00-\x1F\x7F]*[^\s\x00-\x1F\x7F])?$
identity.databaseInitializationEnvironmentstringYesNot specified
  • maxLength: 256
  • minLength: 1
  • pattern: ^[^\s\x00-\x1F\x7F](?:[^\x00-\x1F\x7F]*[^\s\x00-\x1F\x7F])?$
identity.environmentstringYesNot specified
  • maxLength: 256
  • minLength: 1
  • pattern: ^[^\s\x00-\x1F\x7F](?:[^\x00-\x1F\x7F]*[^\s\x00-\x1F\x7F])?$
identity.instanceIdstringYesNot specified
  • maxLength: 64
  • minLength: 1
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
kindstringYes
  • BRegRuntimeConfig
None specified
listenerThe registry's listener: the shared listener block and an optional public origin.objectYesNot specifiedNone specified
listener.bindSocket address the runtime listens on, written host:port with an IP address host ([addr]:port for IPv6).stringYesNot specified
  • maxLength: 128
  • minLength: 1
listener.publicOriginCanonical public origin for QGIS discovery and pagination links, with an optional deployment path prefix such as https://registry.example.org/breg. It is https; http is accepted only for a loopback host, for local development. Required when the registry exposes GIS collections; omitted, the registry builds no absolute discovery or paging links.stringNoNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
metricsListenerOptional operator-private metrics listener. Absent by default, which serves no metrics surface at all.objectNoNot specifiedNone specified
metricsListener.bindOperator-private loopback or private numeric address and named port, for example 127.0.0.1:9100.stringYesNot specified
  • maxLength: 128
  • minLength: 1
operationalTimeoutsOptional operational request, shutdown, locking, and migration timeout tuning.objectNoNot specifiedSchema default, where declared: {"httpRequestMilliseconds":10000,"migrationLockMilliseconds":30000,"migrationStatementMilliseconds":60000,"recordLockMilliseconds":5000,"shutdownGraceMilliseconds":30000}None specified
operationalTimeouts.httpRequestMillisecondsDefaults to the bounded per-request HTTP timeout.integerNoNot specifiedSchema default, where declared: 10000
  • format: uint64
  • maximum: 60000
  • minimum: 1
operationalTimeouts.migrationLockMillisecondsDefaults to the bounded migration lock timeout.integerNoNot specifiedSchema default, where declared: 30000
  • format: uint64
  • maximum: 300000
  • minimum: 1
operationalTimeouts.migrationStatementMillisecondsDefaults to the bounded migration statement timeout.integerNoNot specifiedSchema default, where declared: 60000
  • format: uint64
  • maximum: 3600000
  • minimum: 1
operationalTimeouts.recordLockMillisecondsDefaults to the bounded record lock timeout.integerNoNot specifiedSchema default, where declared: 5000
  • format: uint64
  • maximum: 30000
  • minimum: 1
operationalTimeouts.shutdownGraceMillisecondsDefaults to the bounded graceful-shutdown timeout.integerNoNot specifiedSchema default, where declared: 30000
  • format: uint64
  • maximum: 300000
  • minimum: 1
packageThe package a runtime serves: root is the absolute package directory, and expectedDigest, when set, pins the package digest the runtime must find there. The package digest is the digest of the package's SHA256SUMS file; see [crate::package].objectYesNot specifiedNone specified
package.expectedDigestsha256: label of the package digest, the digest of the package's SHA256SUMS file. When set, the runtime refuses to start on any other package.stringNoNot specified
  • pattern: ^sha256:[0-9a-f]{64}$
package.rootAbsolute path of the package directory.stringYesNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^/
retentionOptional retention windows for idempotency receipts and retained event payloads. Defaults to a seven-day receipt horizon and the server's bounded payload retention policy.objectNoNot specifiedSchema default, where declared: {"hookPayloadRetentionDays":7,"receiptRetentionDays":7}None specified
retention.hookPayloadRetentionDaysDefaults to the bounded retained payload lifetime for pending or dead-letter webhook work.integerNoNot specifiedSchema default, where declared: 7
  • format: uint32
  • maximum: 30
  • minimum: 1
retention.receiptRetentionDaysDays a held response is kept after its commit. A retry after it is refused as expired and never executed; the key stays spent.integerNoNot specifiedSchema default, where declared: 7
  • format: uint32
  • maximum: 365
  • minimum: 1
reviewAuthoritiesobjectNoNot specifiedSchema default, where declared: {}None specified
reviewAuthorities.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
reviewAuthorities.*.completionRecipientThe logical recipient the review authority names in each completion notification. Written together with completionTokenRef; omitted, no completion notification is accepted and the registry polls for results.stringNoNot specifiedNone specified
reviewAuthorities.*.completionTokenRefThe bearer token the review authority presents when it notifies this registry that a review completed. Written together with completionRecipient; omitted, no completion notification is accepted and the registry polls for results.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
reviewAuthorities.*.endpointstringYesNot specifiedNone specified
reviewAuthorities.*.privateKeyJwtA refreshing client-assertion credential for the review service. Exactly one of tokenRef and privateKeyJwt is written.objectNoNot specifiedNone specified
reviewAuthorities.*.privateKeyJwt.assertionAudiencestringYesNot specifiedNone specified
reviewAuthorities.*.privateKeyJwt.caBundleRefA PEM bundle of the roots that sign the token endpoint's certificate. Omitted, the platform's trusted roots verify it.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
reviewAuthorities.*.privateKeyJwt.clientAssertionKeyRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
reviewAuthorities.*.privateKeyJwt.clientIdRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
reviewAuthorities.*.privateKeyJwt.resourcestringYesNot specifiedNone specified
reviewAuthorities.*.privateKeyJwt.scopesarrayYesNot specifiedNone specified
reviewAuthorities.*.privateKeyJwt.scopes[]Array itemstringNoNot specifiedNone specified
reviewAuthorities.*.privateKeyJwt.tokenEndpointstringYesNot specifiedNone specified
reviewAuthorities.*.producerIdstringYesNot specifiedNone specified
reviewAuthorities.*.profilestringYesNot specifiedNone specified
reviewAuthorities.*.recoveryDaysintegerYesNot specified
  • format: uint32
  • maximum: 3650
  • minimum: 1
reviewAuthorities.*.tokenRefA static bearer token for the review service. Exactly one of tokenRef and privateKeyJwt is written.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
secretProvidersThe secret providers a runtime enables. A reference is resolved only by a provider declared here: secret:file/name under file.root, and secret:env/NAME only when environment: {} is present.objectYesNot specifiedNone specified
secretProviders.environmentEnables secret:env/NAME references, read from the process environment. Declared as an empty mapping: environment: {}.objectConditionalNot specifiedNone specified
secretProviders.fileEnables secret:file/name references, read from files under root.objectConditionalNot specifiedNone specified
secretProviders.file.rootAbsolute directory holding one file per secret. Each file must be a regular file owned by the runtime user, mode 0400 or 0600, with exactly one hard link.stringConditionalNot specified
  • pattern: ^/
taskGrantStatusarrayNoNot specifiedSchema default, where declared: []None specified
taskGrantStatus[]Array itemOne task authority whose grants a runtime checks for fresh status, and the runtime's own credentials for that check, written as one entry of taskGrantStatus. The status route and scope default to Casework's.objectNoNot specifiedNone specified
taskGrantStatus[].baseUrlThe authority's base URL the status check calls. It is https; http is accepted only for a loopback host, for local development.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
taskGrantStatus[].caBundleRefPEM CA bundle for the authority and its token endpoint. Omitted, the platform's trusted roots verify them.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
taskGrantStatus[].clientAssertionAudienceAn identifier another system issues, written exactly as its issuer gives it.stringYesNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
taskGrantStatus[].clientIdAn identifier another system issues, written exactly as its issuer gives it.stringYesNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
taskGrantStatus[].privateKeyRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
taskGrantStatus[].sourceIssuerThe task authority's issuer, exactly as the authority states it, including an absolute URN issuer. It is compared rather than fetched and must be an absolute resource URI.stringYesNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
taskGrantStatus[].statusPathThe status route appended to baseUrl's path. It starts with / and has exactly one whole {grantId} segment; every other segment uses only letters, digits, -, ., _, and ~. Omitted, /v1/task-grants/{grantId}/status.stringNoNot specifiedSchema default, where declared: "/v1/task-grants/{grantId}/status"None specified
taskGrantStatus[].statusResourceThe audience the runtime requests its status credential for, an absolute resource URI.stringYesNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
taskGrantStatus[].statusScopeThe one scope the runtime requests its status credential with. Omitted, casework:grants:status.stringNoNot specifiedSchema default, where declared: "casework:grants:status"
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
taskGrantStatus[].tokenEndpointAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
wasmExecutionOptional WASM handler execution budgets. Parsed in every build; executed only in builds with the wasm cargo feature, on by default.objectNoNot specifiedSchema default, where declared: {"backend":"pulley","maximumGuestMemoryBytes":33554432,"maximumModuleBytes":2097152}None specified
wasmExecution.backendThe backend handler modules are compiled and executed for: pulley (default, the portable interpreter target) or native. Any other value is refused as an invalid wasmExecution section.stringNoNot specifiedSchema default, where declared: "pulley"None specified
wasmExecution.maximumGuestMemoryBytesDefaults to the platform guest-memory ceiling (32 MiB).integerNoNot specifiedSchema default, where declared: 33554432
  • format: uint64
  • maximum: 1073741824
  • minimum: 1048576
wasmExecution.maximumModuleBytesDefaults to the default execution-time module ceiling (2 MiB); the structural admission ceiling (5 MiB) is operator-reachable here.integerNoNot specifiedSchema default, where declared: 2097152
  • format: uint64
  • maximum: 5242880
  • minimum: 1024

Use bregctl --format json explain model <project> when a tool needs to distinguish an authored value from a compiled default. authoring.documents lists the project and each module file, with the RFC 6901 JSON Pointers present before defaults and module composition. Each document’s bindings links an explanationPointer in the explanation to a sourcePointer in that file, including members contributed by module extensions. Find the object’s binding, append /display/label to its source pointer, and check that exact path in that document’s authoredPaths. An absent path means the source omitted the label. The same rule applies to unchanged source members such as a stored field’s required; generated fields and other derived output are not necessarily defaults.

display.label and display.description describe authored objects without changing their IDs or permissions. Keep IDs visible alongside labels in selection and approval interfaces. Action inputs keep their existing label fallback to apiName; the separate optional display member tells you whether display was authored. check warns when two access profiles in the same namespace have equivalent labels, naming both IDs. Use check --deny-warnings when that warning must block a review.

The compiler appends the record id, the last sort key of every list, to each index under recordTypes[].indexes; do not declare it. An index declares at most 31 fields (breg.index.fields-too-many). Every reference field gets an index of its own unless a declared index, or a unique constraint without when, already leads with it.

bregctl check reports breg.record-type.list-unindexed-filter and breg.record-type.list-unindexed-sort for a filterable or sortable list field that no index leads with; they fail a check only under --deny-warnings.

statisticalDatasets[].unit names the Record type a dataset counts. minimumCount and roundingBase are required and take no value below 2. At most one access profile holds publish on a dataset. Once one does, it and every read-live profile must also hold read-releases; without one, no profile may hold read-releases. See Publish a statistical series.

Attachments of Proposal Actions are stored in PostgreSQL unless runtime.yaml selects attachmentStorage of type: s3. breg checks an S3 binding at startup:

  • endpoint is a root HTTPS URL with no path, query, fragment, or user information; plain HTTP is accepted only for a numeric loopback address.
  • pathStyle: false (virtual-host addressing) needs a DNS host name in endpoint.
  • bucket uses lowercase letters, digits, hyphens, and dots, starts and ends with a letter or digit, and is not an IP address. region uses lowercase letters, digits, and hyphens.
  • Every credential is a secret reference resolved through the runtime’s secret providers.
  • The bucket must never have had versioning enabled. breg reads its versioning state at startup and before each deletion, and refuses it when enabled or suspended, because a delete marker does not erase older object versions.

The runtime needs to read the bucket’s versioning state and to get, put, and delete objects. Content is stored once per SHA-256 digest within one database and registry, so give each independent database its own identity.databaseId. Deletion is a retried cleanup (Retry external attachment cleanup).

attachmentVerification of type: http holds every uploaded file in quarantine until an external verifier approves it; the default, type: disabled, needs no verdict. endpoint is an HTTPS URL, or plain HTTP to a numeric loopback address, and may carry a fixed query but no user information or fragment. policyId names the verifier’s rules generation and is not secret. A background worker sends:

  • POST to endpoint with the file’s raw bytes as the body;
  • Authorization: Bearer <token>, the token read from authorizationRef;
  • the file’s Content-Type, Accept: application/json, and its lowercase hexadecimal SHA-256 digest in X-Content-SHA256.

The verifier answers HTTP 200 with at most 1,024 bytes holding exactly one of:

{"verdict":"approved"}
{"verdict":"rejected"}

Anything else, a timeout, or an unreachable verifier leaves the file pending; the worker retries and logs attachment_verification.retry_pending. The request follows no redirect and uses no proxy.

A pending or rejected file blocks its download and the submission of its Proposal, optional slots included. A verdict is reused for the same digest, content type, and verification binding, so re-uploading rejected bytes is rejected again. Registry erasure does not reach the verifier: agree its logging and retention separately.

dev-clients.yaml declares the local clients bregctl dev start binds to access profiles (Create your first registry).

Key pathTypeRequiredAccepted valuesConstraints
apiVersionThe format and version this file is written in.stringYes
  • id.registrystack.org/formats/breg/dev-clients/v1alpha1
None specified
clientsarrayYesNot specifiedNone specified
clients[]Array itemobjectNoNot specifiedNone specified
clients[].accessProfilesThe access profiles this client is the one local binding for. Empty means no journey step resolves to it and no seed may reference it.arrayYesNot specifiedNone specified
clients[].accessProfiles[]Array itemstringNoNot specifiedNone specified
clients[].allowBregAccessExplicitly admits a profile-free integration client to BReg's allowedClients. The default is false, so a client carrying scopes or claims for another product cannot call BReg accidentally.booleanNoNot specifiedNone specified
clients[].allowHumanFixtureExplicitly permits this local teaching client to carry the human actor marker. This does not admit the client to BReg's allowedClients.booleanNoNot specifiedNone specified
clients[].assertionKeyRefExisting ES256 assertion key, for a client whose key is already governed by another local tool such as Evidence access.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
clients[].claimsobjectYesNot specifiedNone specified
clients[].grantsAdditional explicit permissions on declared resource audiences. These do not change default token scopes or the exchange bootstrap scope.arrayNoNot specifiedNone specified
clients[].grants[]Array itemobjectNoNot specifiedNone specified
clients[].grants[].audienceOmit for the owner BREG resource; otherwise use a declared audience.stringNoNot specifiedNone specified
clients[].grants[].scopesarrayYesNot specifiedNone specified
clients[].grants[].scopes[]Array itemstringNoNot specifiedNone specified
clients[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
clients[].scopesarrayYesNot specifiedNone specified
clients[].scopes[]Array itemstringNoNot specifiedNone specified
clients[].testBindingsExact schema-test steps that use this claim variant. Runtime requests still select an authored access profile; this field only disambiguates credentials for maintained local journeys.arrayNoNot specifiedSchema default, where declared: []None specified
clients[].testBindings[]Array itemobjectNoNot specifiedNone specified
clients[].testBindings[].journeyIdstringYesNot specifiedNone specified
clients[].testBindings[].stepIdstringYesNot specifiedNone specified
eventDestinationsOptional exact local webhook bindings. An empty map keeps the inbox.objectNoNot specifiedSchema default, where declared: {}None specified
eventDestinations.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
eventDestinations.*.hmacSha256KeyRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
eventDestinations.*.originstringYesNot specifiedNone specified
eventDestinations.*.pathstringYesNot specifiedNone specified
evidenceProvidersExact local Evidence provider bindings for governed action packages.objectNoNot specifiedSchema default, where declared: {}None specified
evidenceProviders.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
evidenceProviders.*.baseUrlAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
evidenceProviders.*.caBundleRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
evidenceProviders.*.privateKeyJwtobjectNoNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.assertionAudiencestringYesNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.clientIdstringYesNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.privateKeyRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
evidenceProviders.*.privateKeyJwt.resourcestringYesNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.scopesarrayYesNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.scopes[]Array itemstringNoNot specifiedNone specified
evidenceProviders.*.privateKeyJwt.tokenEndpointstringYesNot specifiedNone specified
evidenceProviders.*.revokedKeyIdsarrayNoNot specifiedSchema default, where declared: []None specified
evidenceProviders.*.revokedKeyIds[]Array itemstringNoNot specifiedNone specified
evidenceProviders.*.tokenRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
evidenceProviders.*.trustBindingIdstringYesNot specifiedNone specified
evidenceProviders.*.trustedJwksRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
issuerobjectNoNot specifiedSchema default, where declared: {"browserClients":[],"clientResources":{},"exchangeClients":[],"exchangeIssuers":[],"interactiveApplications":[],"resources":[],"syntheticUsers":[]}None specified
issuer.browserClientsOwner-registered browser app IDs this borrower admits at its BREG resource.arrayNoNot specifiedSchema default, where declared: []None specified
issuer.browserClients[]Array itemstringNoNot specifiedNone specified
issuer.clientResourcesClient IDs mapped to a non-default resource audience.objectNoNot specifiedSchema default, where declared: {}None specified
issuer.clientResources.*Map valuestringNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
issuer.exchangeClientsClients with one bootstrap scope that may exchange signed assertions.arrayNoNot specifiedSchema default, where declared: []None specified
issuer.exchangeClients[]Array itemstringNoNot specifiedNone specified
issuer.exchangeIssuersarrayNoNot specifiedSchema default, where declared: []None specified
issuer.exchangeIssuers[]Array itemobjectNoNot specifiedNone specified
issuer.exchangeIssuers[].clientsThe exchange clients paired with this connection's authority. A resource server refuses every other authority's assertion from them, and under first-party mapping these are also the clients whose claims this connection projects.arrayNoNot specifiedSchema default, where declared: []None specified
issuer.exchangeIssuers[].clients[]Array itemstringNoNot specifiedNone specified
issuer.exchangeIssuers[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
issuer.exchangeIssuers[].issuerAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
issuer.exchangeIssuers[].jwksEndpointstringYesNot specifiedNone specified
issuer.exchangeIssuers[].mappingstringYes
  • first-party
  • institutional-grant
None specified
issuer.exchangeIssuers[].tokenAttributesobjectNoNot specifiedSchema default, where declared: {}None specified
issuer.exchangeIssuers[].tokenAttributes.*Map valueThe schema of ExchangeAttributeKind, which lives in a crate that does not derive schemas.stringNo
  • string
  • string-array
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
issuer.interactiveApplicationsarrayNoNot specifiedSchema default, where declared: []None specified
issuer.interactiveApplications[]Array itemobjectNoNot specifiedNone specified
issuer.interactiveApplications[].audiencestringNoNot specifiedNone specified
issuer.interactiveApplications[].clientSecretRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
issuer.interactiveApplications[].grantsExplicit permissions granted to this application, per resource audience.arrayNoNot specifiedSchema default, where declared: []None specified
issuer.interactiveApplications[].grants[]Array itemobjectNoNot specifiedNone specified
issuer.interactiveApplications[].grants[].audienceOmit for the owner BREG resource; otherwise use a declared audience.stringNoNot specifiedNone specified
issuer.interactiveApplications[].grants[].scopesarrayYesNot specifiedNone specified
issuer.interactiveApplications[].grants[].scopes[]Array itemstringNoNot specifiedNone specified
issuer.interactiveApplications[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
issuer.interactiveApplications[].originstringYesNot specifiedNone specified
issuer.interactiveApplications[].redirectUrisarrayYesNot specifiedNone specified
issuer.interactiveApplications[].redirectUris[]Array itemstringNoNot specifiedNone specified
issuer.interactiveApplications[].tokenAttributesarrayYesNot specifiedNone specified
issuer.interactiveApplications[].tokenAttributes[]Array itemstringNoNot specifiedNone specified
issuer.resourcesarrayNoNot specifiedSchema default, where declared: []None specified
issuer.resources[]Array itemobjectNoNot specifiedNone specified
issuer.resources[].audiencestringYesNot specifiedNone specified
issuer.resources[].scopesarrayYesNot specifiedNone specified
issuer.resources[].scopes[]Array itemstringNoNot specifiedNone specified
issuer.syntheticUsersarrayNoNot specifiedSchema default, where declared: []None specified
issuer.syntheticUsers[]Array itemobjectNoNot specifiedNone specified
issuer.syntheticUsers[].attributesobjectYesNot specifiedNone specified
issuer.syntheticUsers[].attributes.*Map valuestringNoNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
issuer.syntheticUsers[].emailstringYesNot specifiedNone specified
issuer.syntheticUsers[].grantsExplicit permissions granted to this user, per resource audience.arrayNoNot specifiedSchema default, where declared: []None specified
issuer.syntheticUsers[].grants[]Array itemobjectNoNot specifiedNone specified
issuer.syntheticUsers[].grants[].audienceOmit for the owner BREG resource; otherwise use a declared audience.stringNoNot specifiedNone specified
issuer.syntheticUsers[].grants[].scopesarrayYesNot specifiedNone specified
issuer.syntheticUsers[].grants[].scopes[]Array itemstringNoNot specifiedNone specified
issuer.syntheticUsers[].passwordRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
issuer.syntheticUsers[].usernamestringYesNot specifiedNone specified
kindThe kind of document this file is.stringYes
  • BRegDevClients
None specified
reviewAuthoritiesExact local Casework review-authority bindings for governed proposals.objectNoNot specifiedSchema default, where declared: {}None specified
reviewAuthorities.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
reviewAuthorities.*.clientLogical client from this same closed file. Its generated key is copied into the private runtime secret tree and is never written to this file.stringYesNot specifiedNone specified
reviewAuthorities.*.completionRecipientstringNoNot specifiedNone specified
reviewAuthorities.*.completionTokenRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringNoNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
reviewAuthorities.*.endpointstringYesNot specifiedNone specified
reviewAuthorities.*.producerIdstringYesNot specifiedNone specified
reviewAuthorities.*.profileCasework requester access profile selected on every authority exchange.stringYesNot specifiedNone specified
reviewAuthorities.*.recoveryDaysintegerYesNot specified
  • format: uint32
  • maximum: 90
  • minimum: 1
secretProvidersThe providers that resolve this file's secret references. Required once any member names a secret.objectNoNot specifiedNone specified
secretProviders.environmentEnables secret:env/NAME references, read from the process environment. Declared as an empty mapping: environment: {}.objectConditionalNot specifiedNone specified
secretProviders.fileEnables secret:file/name references, read from files under root.objectConditionalNot specifiedNone specified
secretProviders.file.rootAbsolute directory holding one file per secret. Each file must be a regular file owned by the runtime user, mode 0400 or 0600, with exactly one hard link.stringConditionalNot specified
  • pattern: ^/
seedarrayNoNot specifiedSchema default, where declared: []None specified
seed[]Array itemobjectNoNot specifiedNone specified
seed[].accessProfilestringYesNot specifiedNone specified
seed[].clientstringYesNot specifiedNone specified
seed[].dataobjectYesNot specifiedNone specified
seed[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
seed[].operationstringNo
  • create
  • import
Schema default, where declared: "create"
None specified
seed[].recordTypestringYesNot specifiedNone specified
taskGrantStatusExact Casework status services for compiled task-grant profiles.objectNoNot specifiedSchema default, where declared: {}None specified
taskGrantStatus.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
taskGrantStatus.*.baseUrlAn absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.stringYesNot specified
  • format: uri
  • maxLength: 2048
  • pattern: ^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$
taskGrantStatus.*.clientA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
taskGrantStatus.*.sourceIssuerAn identifier another system issues, written exactly as its issuer gives it.stringYesNot specified
  • maxLength: 512
  • minLength: 1
  • pattern: ^[^\u0000-\u001F\u007F-\u009F]+$

examples/scenarios.json declares the named scenarios bregctl examples list describes and bregctl examples run <scenario> runs against the development instance, each step as one client and access profile.

Key pathTypeRequiredAccepted valuesConstraints
apiVersionThe format and version this file is written in.stringYes
  • id.registrystack.org/formats/breg/example-scenarios/v1alpha1
None specified
kindThe kind of document this file is.stringYes
  • BRegExampleScenarios
None specified
scenariosarrayYesNot specifiedNone specified
scenarios[]Array itemobjectNoNot specifiedNone specified
scenarios[].descriptionHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringYesNot specified
  • maxLength: 1024
  • minLength: 1
scenarios[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].inputstringYesNot specifiedNone specified
scenarios[].stepsarrayYesNot specifiedNone specified
scenarios[].steps[]Array itemobjectNoNot specifiedNone specified
scenarios[].steps[].accessProfileA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].actionA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].captureLocal capture alias for this step's result. For create and invoke steps, Record capture aliases must be unique throughout the scenario, including aliases in captureResults; the reader checks this semantic rule.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].captureResultsMaps disclosed Action result aliases to distinct local capture aliases. Record capture aliases must be unique throughout the scenario, including earlier Record captures; the reader checks this semantic rule.objectConditionalNot specified
  • maxProperties: 100
  • minProperties: 1
scenarios[].steps[].captureResults.*Map valueA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringNoNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].clientA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].expectobjectNoNot specifiedNone specified
scenarios[].steps[].expect.problemCodestringNoNot specifiedNone specified
scenarios[].steps[].expect.statestringNoNot specifiedNone specified
scenarios[].steps[].expect.statusintegerNoNot specified
  • format: uint32
  • maximum: 599
  • minimum: 400
scenarios[].steps[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].inputA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].operationstringYes
  • apply
  • cancel
  • create
  • edit
  • get
  • history
  • inspect
  • invoke
  • rebase
  • retry
  • revise
  • start
  • submit
None specified
scenarios[].steps[].proposalA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringNoNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].recordA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringNoNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].recordTypeA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
scenarios[].steps[].resultA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$

tests/journeys.yaml declares the permitted and refused calls a project must keep answering the same way; bregctl test runs them (Test with journeys).

Key pathTypeRequiredAccepted valuesConstraints
apiVersionThe format and version this file is written in.stringYes
  • id.registrystack.org/formats/breg/journeys/v1
None specified
journeysarrayYesNot specified
  • maxItems: 128
  • minItems: 1
journeys[]Array itemobjectNoNot specifiedNone specified
journeys[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
journeys[].stepsarrayYesNot specified
  • maxItems: 128
  • minItems: 1
journeys[].steps[]Array itemobjectNoNot specifiedNone specified
journeys[].steps[].accessProfilestringYesNot specifiedNone specified
journeys[].steps[].actionstringNoNot specifiedNone specified
journeys[].steps[].captureLocal capture alias for this step's result. Capture aliases must be unique throughout the journey, including aliases in captureResults; the reader checks this semantic rule.stringNoNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
journeys[].steps[].captureResultsMaps disclosed Action result aliases to distinct local capture aliases. Capture aliases must be unique throughout the journey, including earlier captures; the reader checks this semantic rule.objectNoNot specifiedSchema default, where declared: {}None specified
journeys[].steps[].captureResults.*Map valueA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringNoNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
journeys[].steps[].claimsobjectNoNot specifiedNone specified
journeys[].steps[].claims.actorKindstringNo
  • agent
  • human
  • service
None specified
journeys[].steps[].claims.actorSubjectstringNoNot specifiedNone specified
journeys[].steps[].claims.directClaimsobjectNoNot specifiedNone specified
journeys[].steps[].claims.directClaims.*Map valuearray | stringNoNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
journeys[].steps[].claims.directClaims.*[]Array itemstringConditionalNot specifiedNone specified
journeys[].steps[].claims.principalstringNoNot specifiedNone specified
journeys[].steps[].claims.purposestringNoNot specifiedNone specified
journeys[].steps[].claims.requesterClientstringNoNot specifiedNone specified
journeys[].steps[].claims.scopesarrayNoNot specifiedSchema default, where declared: []
  • uniqueItems: true
journeys[].steps[].claims.scopes[]Array itemstringNoNot specifiedNone specified
journeys[].steps[].expectobjectYesNot specifiedNone specified
journeys[].steps[].expect.countintegerNoNot specified
  • format: uint32
  • maximum: 100
  • minimum: 0
journeys[].steps[].expect.fieldIdstringNoNot specifiedNone specified
journeys[].steps[].expect.fieldsA body of the registry's own HTTP API, carried as written: the registry reads its members, and null clears a field.objectNoNot specifiedSchema default, where declared: {}None specified
journeys[].steps[].expect.membersExact unordered collection membership, keyed by a prior Record capture. Omission keeps the historical shape-only collection check; an empty mapping explicitly expects no rows.objectNoNot specified
  • maxProperties: 100
journeys[].steps[].expect.members.*Map valueobjectNoNot specified
  • propertyNames.pattern: ^[a-z][a-z0-9_-]{0,63}$
journeys[].steps[].expect.members.*.fieldsA body of the registry's own HTTP API, carried as written: the registry reads its members, and null clears a field.objectNoNot specifiedSchema default, where declared: {}None specified
journeys[].steps[].expect.outcomestringYes
  • refusal
  • success
None specified
journeys[].steps[].expect.problemCodestringNoNot specifiedNone specified
journeys[].steps[].expect.recordTypestringNoNot specifiedNone specified
journeys[].steps[].expect.refusalCodestringNoNot specifiedNone specified
journeys[].steps[].expect.statusintegerYesNot specified
  • format: uint32
  • maximum: 599
  • minimum: 100
journeys[].steps[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
journeys[].steps[].recordTypestringNoNot specifiedSchema default, where declared: ""None specified
journeys[].steps[].requestOne request form. type names the form; the members beside it are the form's own. Request bodies (items, data, values, input, and a change's value) are the registry's HTTP API bodies, carried as written.objectYesNot specifiedNone specified
journeys[].steps[].request.bboxobjectConditionalNot specifiedNone specified
journeys[].steps[].request.bbox.eaststringConditionalNot specifiedNone specified
journeys[].steps[].request.bbox.northstringConditionalNot specifiedNone specified
journeys[].steps[].request.bbox.southstringConditionalNot specifiedNone specified
journeys[].steps[].request.bbox.weststringConditionalNot specifiedNone specified
journeys[].steps[].request.changesarrayConditionalNot specifiedNone specified
journeys[].steps[].request.changes[]Array itemobjectConditionalNot specifiedNone specified
journeys[].steps[].request.changes[].fieldstringConditionalNot specifiedNone specified
journeys[].steps[].request.changes[].valueA body of the registry's own HTTP API, carried as written: the registry reads its members, and null clears a field.Not specifiedConditionalNot specifiedNone specified
journeys[].steps[].request.countbooleanConditionalNot specifiedSchema default, where declared: falseNone specified
journeys[].steps[].request.dataA body of the registry's own HTTP API, carried as written: the registry reads its members, and null clears a field.objectConditionalNot specifiedNone specified
journeys[].steps[].request.etagCaptureA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$

or

No bound

journeys[].steps[].request.idempotencyKeystringConditionalNot specifiedNone specified
journeys[].steps[].request.inputA body of the registry's own HTTP API, carried as written: the registry reads its members, and null clears a field.objectConditionalNot specifiedSchema default, where declared: {}None specified
journeys[].steps[].request.itemsarrayConditionalNot specifiedNone specified
journeys[].steps[].request.items[]Array itemA body of the registry's own HTTP API, carried as written: the registry reads its members, and null clears a field.objectConditionalNot specifiedNone specified
journeys[].steps[].request.items[].dataA body of the registry's own HTTP API, carried as written: the registry reads its members, and null clears a field.objectConditionalNot specifiedNone specified
journeys[].steps[].request.items[].typestringConditional
  • create
None specified
journeys[].steps[].request.pathstringConditionalNot specifiedNone specified
journeys[].steps[].request.preconditionsobjectConditionalNot specifiedNone specified
journeys[].steps[].request.preconditions.*Map valueobjectConditionalNot specified
  • propertyNames.maxLength: 512
  • propertyNames.minLength: 1
  • propertyNames.pattern: ^[^\u0000-\u001F\u007F-\u009F]+$
journeys[].steps[].request.preconditions.*.conditionCapturestringConditionalNot specifiedNone specified
journeys[].steps[].request.preconditions.*.ifMatchstringConditionalNot specifiedNone specified
journeys[].steps[].request.proposalCaptureA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
journeys[].steps[].request.recordCapturestringConditionalNot specifiedNone specified
journeys[].steps[].request.selectarrayConditionalNot specifiedSchema default, where declared: []
  • uniqueItems: true
journeys[].steps[].request.select[]Array itemstringConditionalNot specifiedNone specified
journeys[].steps[].request.selectorstringConditionalNot specifiedNone specified
journeys[].steps[].request.submissionCaptureA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringConditionalNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
journeys[].steps[].request.topintegerConditionalNot specified
  • format: uint32
  • maximum: 100
  • minimum: 1
journeys[].steps[].request.transitionstringConditional
  • apply
  • cancel
  • edit
  • get
  • get-review-context
  • get-review-status
  • rebase
  • retry
  • revise
  • start
  • submit
None specified
journeys[].steps[].request.typestringYes
  • batch
  • create
  • get
  • import
  • invoke
  • list
  • lookup
  • patch
  • proposal
  • query
  • read-path
  • target-conditions
None specified
journeys[].steps[].request.valuesA body of the registry's own HTTP API, carried as written: the registry reads its members, and null clears a field.objectConditionalNot specifiedSchema default, where declared: {}None specified
kindThe kind of document this file is.stringYes
  • BRegJourneys
None specified

bregctl test --credentials <absolute-file> reads one binding for every step of the packaged journeys, and refuses a file that misses a step or binds one twice. Each credential is a bearer token named by a secret reference, never inline (Check, test, package).

apiVersion: id.registrystack.org/formats/breg/schema-test-credentials/v1
kind: BRegSchemaTestCredentials
bindings:
- journeyId: asset-and-site-caller-surfaces
stepId: create-asset
credential:
type: bearer
tokenRef: secret:file/operator-token
- journeyId: asset-and-site-caller-surfaces
stepId: planner-gets-asset
credential:
type: bearer
tokenRef: secret:env/PLANNER_TOKEN
Key pathTypeRequiredAccepted valuesConstraints
apiVersionThe format and version this file is written in.stringYes
  • id.registrystack.org/formats/breg/schema-test-credentials/v1
None specified
bindingsarrayYesNot specifiedNone specified
bindings[]Array itemobjectNoNot specifiedNone specified
bindings[].credentialobjectYesNot specifiedNone specified
bindings[].credential.tokenRefAn exact secret reference: secret:file/name, resolved under secretProviders.file.root, or secret:env/NAME, resolved only when secretProviders.environment is declared.stringYesNot specified
  • pattern: ^(?:secret:env/[A-Z][A-Z0-9_]{0,127}|secret:file/[a-z][a-z0-9._-]{0,127})$
bindings[].credential.typestringYes
  • bearer
None specified
bindings[].journeyIdA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
bindings[].stepIdA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
kindThe kind of document this file is.stringYes
  • BRegSchemaTestCredentials
None specified

A reviewed migration’s descriptor.json declares the steps and assertions that carry stored Records to the successor package (Write a reviewed migration descriptor).

Key pathTypeRequiredAccepted valuesConstraints
apiVersionThe format and version this file is written in.stringYes
  • id.registrystack.org/formats/breg/migration-descriptor/v1alpha1
None specified
backupBindingPathstringNoNot specifiedNone specified
changeClassThe descriptor's schema vocabulary mirrors descriptor_problems, while compiled package changes retain their broader internal classification.stringYes
  • access-or-disclosure-change
  • data-backfill-required
  • destructive-or-irreversible
None specified
coversarrayYesNot specifiedNone specified
covers[]Array itemobjectNoNot specifiedNone specified
covers[].codestringYes
  • access-profile-added
  • access-profile-changed
  • access-profile-removed
  • action-added
  • action-changed
  • action-removed
  • consent-record-changed
  • constraint-added
  • constraint-changed
  • constraint-removed
  • derived-relation-added
  • derived-relation-changed
  • derived-relation-removed
  • entity-access-log-changed
  • entity-access-requirements-changed
  • entity-added
  • entity-classification-changed
  • entity-geo-json-changed
  • entity-mutation-mode-changed
  • entity-physical-name-changed
  • entity-removed
  • entity-route-changed
  • entity-temporal-changed
  • event-added
  • event-changed
  • event-removed
  • field-added-optional
  • field-added-required
  • field-classification-changed
  • field-encryption-changed
  • field-length-widened
  • field-lookup-changed
  • field-pattern-added
  • field-pattern-changed
  • field-pattern-removed
  • field-physical-name-changed
  • field-removed
  • field-requiredness-changed
  • field-temporal-role-changed
  • field-type-changed
  • field-vocabulary-codes-added
  • index-added
  • index-changed
  • index-removed
  • query-inventory-changed
  • recipient-group-added
  • recipient-group-changed
  • recipient-group-removed
  • recipient-organization-added
  • recipient-organization-changed
  • recipient-organization-removed
  • reference-target-changed
  • registry-identity-changed
  • registry-version-changed
  • route-added
  • route-changed
  • route-removed
  • statistical-dataset-added
  • statistical-dataset-changed
  • statistical-dataset-removed
None specified
covers[].targetobjectYesNot specifiedNone specified
covers[].target.entityIdstringNoNot specifiedNone specified
covers[].target.kindstringYes
  • access-profile
  • action
  • constraint
  • derived-relation
  • entity
  • event
  • field
  • index
  • query-inventory
  • recipient
  • registry
  • route
  • statistical-dataset
None specified
covers[].target.memberIdstringNoNot specifiedNone specified
historyThe reviewed choice for pre-flip plaintext history. Required exactly when a cover turns field encryption on; carried with no default so a missing or silently assumed choice can never reach a plan.stringNo
  • erase-and-rebaseline
  • retain-plaintext-history
None specified
idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
kindThe kind of document this file is.stringYes
  • BRegMigrationDescriptor
None specified
lockTimeoutMillisecondsThe document member lockTimeoutMilliseconds.integerYesNot specified
  • format: uint64
  • maximum: 300000
  • minimum: 1
postAssertionsarrayYesNot specifiedNone specified
postAssertions[]Array itemobjectNoNot specifiedNone specified
postAssertions[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
postAssertions[].sqlPathstringYesNot specifiedNone specified
preAssertionsarrayYesNot specifiedNone specified
preAssertions[]Array itemobjectNoNot specifiedNone specified
preAssertions[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
preAssertions[].sqlPathstringYesNot specifiedNone specified
recoveryHow an interrupted activation of the reviewed plan is recovered. bregctl plan --format json prints the same word.stringYes
  • exact-target-resume
None specified
rehearsalReceiptPathstringYesNot specifiedNone specified
statementTimeoutMillisecondsThe document member statementTimeoutMilliseconds.integerYesNot specified
  • format: uint64
  • maximum: 3600000
  • minimum: 1
stepsarrayYesNot specifiedNone specified
steps[]Array itemOne reviewed step, tagged by type (CFG-ID-7). Rust field names keep their engine spelling; each serde rename names the document member.objectNoNot specifiedNone specified
steps[].affectedRowsobjectConditionalNot specifiedNone specified
steps[].affectedRows.maximumThe document member maximum.integerConditionalNot specified
  • format: uint64
  • maximum: 100000000
  • minimum: 0
steps[].affectedRows.minimumThe document member minimum.integerConditionalNot specified
  • format: uint64
  • maximum: 100000000
  • minimum: 0
steps[].chunkSizeintegerConditionalNot specified
  • format: uint32
  • maximum: 1000
  • minimum: 1
steps[].cursorstringConditional
  • record-id-uuid-array
None specified
steps[].exactAffectedRowsbooleanConditionalNot specifiedNone specified
steps[].idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
steps[].lockTimeoutMillisecondsThe document member lockTimeoutMilliseconds.integerConditionalNot specified
  • format: uint64
  • maximum: 300000
  • minimum: 1
steps[].maximumTotalRowsThe document member maximumTotalRows.integerConditionalNot specified
  • format: uint64
  • maximum: 100000000
  • minimum: 1
steps[].objectsarrayYesNot specifiedNone specified
steps[].objects[]Array itemobjectNoNot specifiedNone specified
steps[].objects[].kindstringYes
  • constraint
  • entity
  • field
  • index
None specified
steps[].objects[].memberThe document member member.stringNoNot specifiedNone specified
steps[].objects[].physicalNamestringYesNot specifiedNone specified
steps[].objects[].recordTypeThe document member recordType.stringYesNot specifiedNone specified
steps[].objects[].schemastringYesNot specifiedNone specified
steps[].objects[].tablestringYesNot specifiedNone specified
steps[].recordTypeThe document member recordType.stringConditionalNot specifiedNone specified
steps[].sqlPathstringConditionalNot specifiedNone specified
steps[].statementTimeoutMillisecondsThe document member statementTimeoutMilliseconds.integerConditionalNot specified
  • format: uint64
  • maximum: 3600000
  • minimum: 1
steps[].typestringYes
  • chunked-backfill
  • field-encryption-backfill
  • transactional-sql
None specified

A backup binding is the JSON document you write beside a database backup and pass to bregctl plan and bregctl apply as --backup <backupBindingPath>=<binding file> for a destructive migration. It stays outside the package, because each environment backs up its own database (Activate the successor).

Key pathTypeRequiredAccepted valuesConstraints
apiVersionThe format and version this file is written in.stringYes
  • id.registrystack.org/formats/breg/backup-binding/v1alpha1
None specified
backupFilestringYesNot specifiedNone specified
createdAtstringYesNot specifiedNone specified
databaseThe document member database: the database identity the binding was taken from.stringYesNot specifiedNone specified
digestThe document member digest.stringYesNot specified
  • pattern: ^sha256:[0-9a-f]{64}$
kindThe kind of document this file is.stringYes
  • BRegBackupBinding
None specified
maximumAgeSecondsThe document member maximumAgeSeconds.integerYesNot specified
  • format: uint64
  • maximum: 2678400
  • minimum: 1
priorPackageDigestA SHA-256 digest: sha256: followed by 64 lowercase hex digits.stringYesNot specified
  • pattern: ^sha256:[0-9a-f]{64}$
priorSchemaFingerprintA SHA-256 digest: sha256: followed by 64 lowercase hex digits.stringYesNot specified
  • pattern: ^sha256:[0-9a-f]{64}$
sizeBytesThe document member sizeBytes.integerYesNot specified
  • format: uint64
  • maximum: 18446744073709551615
  • minimum: 1

bregctl init <destination> --from publicschema --selection <file> derives a project from a selection and keeps a copy as model/selection.yaml. The terminal questions (PublicSchema wizard) and the shipped starters produce the same document.

Key pathTypeRequiredAccepted valuesConstraints
apiVersionThe format and version this file is written in.stringYes
  • id.registrystack.org/formats/breg/model-selection/v1alpha1
None specified
kindThe kind of document this file is.stringYes
  • BRegModelSelection
None specified
modelThe PublicSchema reference model embedded in this binary.stringYes
  • publicschema
None specified
modelRevisionThe upstream commit of the model snapshot the selection was written against. When present it must equal the embedded snapshot's commit, so a selection written for one revision of the model is not silently applied to another.stringNoNot specifiedNone specified
modelVersionThe model version the selection was written against. When present it must equal the embedded snapshot's declared version label. Several revisions of the model can share one version label, so this alone does not pin a revision; modelRevision does.stringNoNot specifiedNone specified
recordTypesarrayYesNot specifiedNone specified
recordTypes[]Array itemOne concept of the model that becomes an entity.objectNoNot specifiedNone specified
recordTypes[].classificationThe entity classification; internal when absent.stringNoNot specifiedNone specified
recordTypes[].conceptThe concept's name in the model.stringYesNot specifiedNone specified
recordTypes[].idThe entity identifier; the concept name in kebab case when absent.stringNoNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
recordTypes[].identifierFieldThe field that identifies a record; <id>-code when absent.stringNoNot specifiedNone specified
recordTypes[].propertiesarrayNoNot specifiedNone specified
recordTypes[].properties[]Array itemOne property of the concept that becomes a field.objectNoNot specifiedNone specified
recordTypes[].properties[].nameThe property's name in the model.stringYesNot specifiedNone specified
recordTypes[].properties[].targetFor a property whose range is another concept: the selected entity the reference points at. Required only when more than one selected entity fits the range.stringNoNot specifiedNone specified
recordTypes[].routeThe collection route; the entity identifier pluralized when absent.stringNoNot specifiedNone specified
registryobjectYesNot specifiedNone specified
registry.idA local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.stringYesNot specified
  • pattern: ^[a-z][a-z0-9_-]{0,63}$
registry.titleHuman-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.stringYesNot specifiedNone specified
vocabulariesarrayNoNot specifiedNone specified
vocabularies[]Array itemHow one enumeration of the model is carried, overriding the size rule.objectNoNot specifiedNone specified
vocabularies[].enumThe enumeration's name in the model.stringYesNot specifiedNone specified
vocabularies[].modeFor inline: A closed vocabulary-code field with every value listed in the project. For code: A bounded string that carries the code without the project listing the values.stringYes
  • code
  • inline
None specified

bregctl check <project> compiles the project offline. Adding --runtime-config <file> also checks runtime.yaml as breg reads it at startup, against the project’s access profiles, without a database, network, or secret. bregctl doctor --runtime-config <absolute-file> then checks the deployment: the package, database, audit destination, identity provider, and the other dependencies breg opens. Check a file before you deploy it describes diagnostics and exit codes.

Format and filesCheck command
Registry project
  • registry.yaml
bregctl check <project>
Registry module
  • modules/*/module.yaml
bregctl check <project>
Base Registry Engine runtime configuration
  • runtime.yaml
  • runtime-test.yaml
  • runtime.example.yaml
bregctl check <project> --runtime-config <file>
Citizen MCP gateway runtime configuration
  • runtime.yaml
breg-mcp --runtime-config <file> check
Citizen review page runtime configuration
  • runtime.yaml
breg-review --runtime-config <file> check
Acceptance journeys
  • tests/journeys.yaml
bregctl check <project> --file <file>
Schema test credentials
  • credentials.yaml
bregctl check --file <file>
PublicSchema model selection
  • model/selection.yaml
  • publicschema/starters/*.yaml
bregctl check --file <file>
Development clients
  • dev-clients.yaml
bregctl check --file <file>
Example scenarios
  • examples/scenarios.json
bregctl check --file <file>
Reviewed migration descriptor
  • modules/*/migrations/*/descriptor.json
bregctl check --file <file>
External backup binding
  • *-binding.json
bregctl check --file <file>
LinkML schema read by bregctl init --from
  • *.linkml.yaml
None