Skip to content

CAP-PFM-INT-019Reuse workflow recipes and working-time configuration

Markdown

CAP-PFM-INT-019

Reuse workflow recipes and working-time configuration

Markdown
  • DocumentSuperseded
  • 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
Saved recipes contain actions that pass configuration validation.Provisioning supplies an initial working calendar for each workspace.
Surfaces
api
Intent sources
services-platform:docs/proposals/application-processes-and-workflow-actions/14-decisions.md#D-03services-platform:docs/proposals/application-processes-and-workflow-actions/14-decisions.md#D-08

Controls

29 controls apply, from the corpus control catalogue.

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-001 TC-DAT-003 TC-DAT-004 TC-IAM-001 TC-IAM-006 TC-LOG-004 TC-LOG-005 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-VEN-001 TC-VEN-002 TC-VEN-003

Permissions

KeyChecked atScope
platform.workflow-actions.registry-readapitenant
platform.workflow-actions.templates-manageapitenant
platform.workflow-actions.calendars-manageapitenant

Business Rules

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

IdRuleKindEnforced atProvenance
01must prove
Proposed
Lists place Rhythm’s eight shipped action recipes and six workflow recipes first, identify them as shipped and refuse customer edits or deletion.
policyapi, servicetest
02must prove
Proposed
Recipe saves validate every action against active enabled registry types, host and trigger restrictions, current contract version, settings schema and configurator permissions, with workflow stages also checked against their contract.
validationservicetest
03must prove
Proposed
Customer recipe identifiers are unique within the workspace, cannot use Rhythm’s reserved prefix and require the read version on replacement.
validationservicetest
services-platform:modules/workflow-actions/tests/integration/services/persistence/action-templates.integration.spec.js#refuses an id in Rhythm’s own prefix, which the configuration-id grammar reserves (400)
04must prove
Proposed
A recipe is copied into its using definition, so later template edits do not change that definition.
policyservicedocumented
services-platform:docs/workflow-actions/README.md#Workflow actions: Platform's part of the Workflow Action Engine
05must prove
Confirmed
Calendars require a valid IANA zone, distinct working weekdays, optional forward working hours and at most four hundred holidays; one default at most must be active and a new default atomically clears the previous one.
validationservice, databasetest
06must prove
Confirmed
Provisioning gives a workspace a Monday-to-Friday, nine-to-five Standard week in its own zone with no holidays, uses the seed ledger once and does not recreate a user-deleted seed.
lifecycleservicetest
07must prove
Confirmed
Business-duration arithmetic uses the calendar’s zone, working days, hours and holidays, so two business days after Friday at four in the afternoon with Monday closed reaches Wednesday at the same time.
calculationservicetest
macroservice-libraries:packages/workflow-actions/src/business-days.spec.ts#P2D business from a Friday 16:00 with a Monday holiday lands on Wednesday 16:00, across the DST change (08 §10 case 8)
08must prove
Confirmed
Calendar changes leave previously calculated timer dates unchanged.
no proof recorded yet
policyservicedocumented
09must prove
Proposed
Registry read permits recipe and calendar reads, templates manage permits recipe changes and calendars manage permits calendar changes.
permissionapitest
services-platform:modules/workflow-actions/tests/e2e/workflow-actions.e2e.spec.js#refuses a caller without templates-manage a write (403)
10must prove
Proposed
A workspace holds no more than one hundred calendars; stale replacements and applicable locked mutations refuse without changes, while deletion of the sole unlocked default can leave no default.
validationserviceobserved

Scenarios

IdGivenWhenThenProvenance
01The working calendar closes weekends and a Monday holiday.A reminder adds two business days to Friday at four in the afternoon.The reminder falls on Wednesday at four in the afternoon.test
macroservice-libraries:packages/workflow-actions/src/business-days.spec.ts#P2D business from a Friday 16:00 with a Monday holiday lands on Wednesday 16:00, across the DST change (08 §10 case 8)

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.