Skip to content

CAP-PFM-SEC-013Publish shared access definitions from releases

Markdown

CAP-PFM-SEC-013

Publish shared access definitions from releases

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleSecurity, Customers and WorkspacesRevision1

Read atservices-platform ad3f6a65

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Each service reconciles its own application declarations.Built-in identity and references survive release changes.Validation rejects malformed or altered release declarations before reconciliation.
Surfaces
jobapi
Intent sources
services-platform:docs/security/security-administration.md#14 Acceptance checkpoints (2026-10-11 Final acceptance)services-platform:docs/security/security-administration.md#14 (decision D3, per-service built-in policies, Andrew 2026-10-11)services-platform:docs/security/built-in-policies.md#5 (D-14, Andrew 2026-10-19)services-platform:docs/security/built-in-policies.md#5 (D-03, Andrew 2026-10-18)services-platform:docs/security/security-administration.md#14 Acceptance checkpoints (2026-10-12 Final acceptance: one permission pattern matcher)services-platform:docs/security/security-administration.md#3.3 Lifecycle of a built-in

Controls

38 controls apply, from the corpus control catalogue.

TC-AVL-005 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-CHG-001 TC-CHG-002 TC-CHG-003 TC-CHG-004 TC-CHG-005 TC-CHG-006 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-DAT-005 TC-IAM-001 TC-IAM-002 TC-IAM-003 TC-IAM-004 TC-IAM-005 TC-IAM-006 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-LOG-005 TC-MON-001 TC-MON-003 TC-PI-001 TC-PI-003 TC-PI-005 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Business Rules

13 rules, 11 to be proved before approval. A rule's product intent is derived from its origin: 13 confirmed by a product decision, the rest inheriting this capability's confirmed.

IdRuleKindEnforced atProvenance
01must prove
Confirmed
Release reconciliation updates only the declaring service’s applications in a transaction and leaves an unchanged redeployment without further mutations.
origin: services-platform:docs/security/security-administration.md#14 (decision D3, per-service built-in policies, Andrew 2026-10-11)
no proof recorded yet
invariantservice, databasetest
services-platform:modules/security/tests/integration/services/catalog/reconcile-catalog.integration.spec.js#leaves another service's keys and built-ins alone: CRM going live does not undo Platform
02must prove
Confirmed
Application tier generation builds Read Only, User and Administrator policies from the eligible exact keys at that tier and lower tiers.
no proof recorded yet
calculationservicetest
03must prove
Confirmed
Generated tiers exclude staff-only, self-read, security-administration, staff-access and data-export powers while retaining eligible security-definition read keys.
origin: services-platform:docs/security/built-in-policies.md#5 (D-14, Andrew 2026-10-19)
no proof recorded yet
policyservicetest
services-platform:modules/security/tests/unit/services/catalog/reconcile-catalog.spec.ts#keeps a security power out of the Platform administrator policy, so a Power User cannot grant themselves more
04must prove
Confirmed
Declared built-ins require an owned application, exact allowing permissions declared by that release, non-reserved names and deny patterns matching known keys.
origin: services-platform:docs/security/security-administration.md#14 (decision D3, per-service built-in policies, Andrew 2026-10-11)
no proof recorded yet
validationservicetest
services-platform:modules/security/tests/integration/services/catalog/release-manifest-built-ins.integration.spec.js#refuses it, naming the policy and the app this service defines no permission for
05must prove
Confirmed
A new declared built-in starts as a shared version-one definition without a role reference; edits to the shared definition affect its holders across customers rather than create customer copies.
no proof recorded yet
invariantservice, databasetest
06must prove
Confirmed
Built-in renaming preserves identity and references; release withdrawal archives the definition and removes its authority with recorded impact, and republication restores that identity.
no proof recorded yet
lifecycleservicetest
services-platform:modules/security/tests/integration/services/catalog/reconcile-catalog.integration.spec.js#makes a retired built-in grant nothing while its holder keeps every other grant
07must prove
Confirmed
The catalog ships customer roles Administrator, Power User, Standard User, Read Only and Portal Member and staff roles Support Representative, Software Engineer and Rhythm Administrator; the customer Administrator alone receives the security-administrator and data-exporter policies.
origin: services-platform:docs/security/built-in-policies.md#5 (D-14, Andrew 2026-10-19)
no proof recorded yet
policyservicetest
services-platform:modules/security/tests/unit/services/catalog/reconcile-catalog.spec.ts#publishes the eight roles the catalog ships, in the order it ships them
08
Confirmed
Portal Member includes its sign-in keys and the four named Submissions portal keys only when those keys are present in the reconciled release catalog.
origin: services-platform:docs/security/built-in-policies.md#6 (D-2 of the Submissions acceptance plan, Andrew 2026-10-19)
calculationservicetest
services-platform:modules/security/tests/integration/services/catalog/reconcile-catalog.integration.spec.js#gains the four portal keys when the Submissions release is reconciled, and none of the release's other keys
09must prove
Confirmed
Built-in role patterns do not confer customer-owned custom-record authority; staff roles supply platform-scoped HQ authority, and emergency-access permission belongs only to Rhythm Administrator.
no proof recorded yet
invariantservicetest
services-platform:modules/security/tests/unit/services/catalog/reconcile-catalog.spec.ts#gives no built-in role a pattern that reaches a customer’s own records, the staff roles included
10must prove
Confirmed
Database safeguards reject built-in definition, rule and attachment mutations outside a reconciliation context.
origin: services-platform:docs/security/security-administration.md#14 Acceptance checkpoints (2026-10-11 Final acceptance)
no proof recorded yet
invariantdatabasetest
services-platform:modules/security/tests/integration/db/security-definition-integrity.integration.spec.js#refuses an insert, an update and a delete of a built-in role outside a reconciliation
11must prove
Confirmed
Release validation rejects malformed or duplicate keys and content differing from an already-published release, returning all identified problems before writes.
origin: services-platform:docs/security/security-administration.md#14 Acceptance checkpoints (2026-10-11 Final acceptance)
no proof recorded yet
validationservicetest
services-platform:modules/security/tests/unit/services/catalog/catalog-plan.spec.ts#answers every problem of the release at once, rather than the first one it met
12must prove
Confirmed
Catalog, grant filtering and authorization use the shared permission matcher so supported short star patterns match remaining permission segments consistently.
origin: services-platform:docs/security/security-administration.md#14 Acceptance checkpoints (2026-10-12 Final acceptance: one permission pattern matcher)
no proof recorded yet
calculationservicetest
services-platform:modules/security/tests/unit/services/persistence/permission-matcher.spec.ts#gives the same answer from all four functions for every pattern and key of the corpus
13
Confirmed
Tier regeneration classifies removing keys alone as narrowing and adding keys as widening in its audit record.
calculationservicetest
services-platform:modules/security/tests/unit/services/catalog/catalog-plan.spec.ts#records a rewrite that only drops a key as narrowing, so the audit does not read as a widening

Scenarios

IdGivenWhenThenProvenance
01Accounting introduces an eligible administrator-tier permission.The service release is reconciled.Its shared administrator tier includes the new key, affecting holders of that policy without rewriting customer-owned definitions.test
services-platform:modules/security/tests/integration/services/catalog/reconcile-catalog.integration.spec.js#adds a declared key, puts it in the built-ins its tier belongs to, and records the release

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.