Skip to content

CAP-PFM-INT-018Keep the action builder aligned with deployed applications

Markdown

CAP-PFM-INT-018

Keep the action builder aligned with deployed applications

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleIntegration access, customer extensions and shared workflow configurationRevision1

Read atservices-platform ad3f6a65macroservice-libraries 54536a44

The Formal Contract

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

Outcomes
Builder choices follow the applications’ declarations.Conflicting application ownership is refused.
Surfaces
apijob
Intent sources
services-platform:docs/proposals/application-processes-and-workflow-actions/14-decisions.md#D-03

Controls

31 controls apply, from the corpus control catalogue.

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

Permissions

KeyChecked atScope
platform.workflow-actions.registry-registerservicetenant
platform.workflow-actions.registry-readapitenant

Business Rules

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

IdRuleKindEnforced atProvenance
01must prove
Confirmed
Only a registered active application principal may submit its own declaration over the service boundary; foreign, unknown, suspended and web-person callers are refused without registry writes.
permissionservicetest
services-platform:modules/workflow-actions/tests/e2e/workflow-actions-registry.e2e.spec.js#answers 403 to another application’s principal registering CRM
02must prove
Proposed
Malformed manifests identify all validation problems, and ownership, host, execution-kind or lowered-contract conflicts refuse the entire registration without partial writes.
validationservicetest
03must prove
Confirmed
Accepted registration inserts or updates entries, preserves unchanged entries, revives re-declared retired entries and retires omitted active entries, reporting counts and retired keys.
lifecycleservicetest
04must prove
Proposed
Platform registers the automation event point, three universal timer points and five action types including communications, keeping the declared notification-centre action inactive until that facility exists.
no proof recorded yet
policyservicetest
05must prove
Proposed
Builder reads return a host’s own triggers and universal timers plus active action types configurable at the requested trigger, omit inactive types and still return retired type detail marked retired.
policyapi, servicetest
services-platform:modules/workflow-actions/tests/e2e/workflow-actions.e2e.spec.js#lists the types configurable at a trigger, the switched-off one left out
06must prove
Proposed
Workflow registry tables contain shared declarations without workspace ownership, with this module as their writer; access grants for other application roles remain documented evidence outside this examination boundary.
no proof recorded yet
invariantdatabaseobserved
07must prove
Proposed
Platform setup applies declarations, updates shipped recipes, deactivates omitted shipped templates and rebuilds shared views from available host schemas.
lifecycleserviceobserved

Scenarios

IdGivenWhenThenProvenance
01CRM removes an old task action from its deployed declaration.The deployment replaces its registry fragment.Registration reports the retired action while retaining the remaining entries.test
services-platform:modules/workflow-actions/tests/e2e/workflow-actions-registry.e2e.spec.js#retires what its next manifest no longer declares, and answers the keys

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.