Skip to content

DOM-CRM-ACT-003Task

Markdown

DOM-CRM-ACT-003

Task

Markdown
  • DocumentDraft
  • ImplementationObserved

Planning

Specified by
CON-CRM-ACT-003

Design

Owned by
SVC-CRM-ACT-tasks

KindDomain objectProduct areaCRMModuleActivities, Follow-ups and Task WorkRevision1

Read atservices-crm a8d1364freact-console baf6dae3

Relationships

ToCardinalityOwnershipCrosses a serviceOn archive or delete
DOM-CRM-ENT-001many tasks to zero or one contactTask owns its contact reference; deletion clears it, and merge transfer changes the destination.no
DOM-CRM-ENT-002many tasks to zero or one organizationTask owns its organization reference with the same deletion and merge treatment.no
DOM-CRM-ACT-001zero or one follow-up created by an activity requestThe activity save creates the work transactionally without keeping a persistent relationship afterwards.no
DOM-CRM-ACT-005one task appearance on each related record timelineThe timeline reads task context only when the caller can read task records.no

Invariants

InvariantProtectsEnforced atProvenance
INV-DOM-CRM-ACT-003-01
Every task has a nonblank title of at most 500 characters and a local task type, with local contact, organization and queue references checked within the workspace.
api, service, databasetest
INV-DOM-CRM-ACT-003-02
Closing attribution matches the task’s closed status, open tasks carry no closing stamps, and the service uses dedicated actions for crossing that boundary.
service, databasetest
services-crm:modules/tasks/tests/unit/services/tasks/lifecycle.spec.js#refuses an update that would complete the task, naming the operation that would have worked
INV-DOM-CRM-ACT-003-03
Holder references require both assignment stamps, and queue references require their arrival instant; removing either reference removes its paired stamps.
service, databasetest
services-crm:modules/tasks/tests/integration/db/tasks.table.integration.spec.js#refuses a queue with no moment, so no task sits in a queue in no order
INV-DOM-CRM-ACT-003-04
Only a syntactically valid Rhythm user reference can hold work; this check does not establish actual workspace eligibility.
api, service, databasetest
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 400 for an assignee that is not a Rhythm user id
INV-DOM-CRM-ACT-003-05
Creation rejects a task that names both a holder and a candidate role.
service, databasetest
services-crm:modules/tasks/tests/integration/services/persistence/tasks.role-claim.integration.spec.js#refuses a create naming both an assignee and a role, naming the field, and writes nothing
INV-DOM-CRM-ACT-003-06
Conditional queue updates and locked role claims admit at most one committed holder from competing claims of the same available task.
service, databasetest
INV-DOM-CRM-ACT-003-07
While its task exists, a workflow creation reference admits only one task per workspace across repeated or concurrent deliveries.
service, databasetest
INV-DOM-CRM-ACT-003-08
Later persistence changes retain the workflow origin recorded by creation.
serviceobserved
INV-DOM-CRM-ACT-003-09
Removing a related contact or organization clears its task reference and retains the task.
databasetest
services-crm:modules/tasks/tests/integration/db/tasks.table.integration.spec.js#keeps the task: the work outlives the record it was about
INV-DOM-CRM-ACT-003-10
When enabled, persistence writes publish or resolve overdue attention within their task transaction using holder, queue responsibility or administrator audiences; reconciliation and direct reference changes may leave older item details.
serviceobserved
INV-DOM-CRM-ACT-003-11
The database prevents removing a task type or queue while a surviving task references it.
service, databasetest
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#refuses the delete of a task type a task is of (409)
INV-DOM-CRM-ACT-003-12
Console edits and closing actions send a read version; the assignment API permits omission and then applies the last serialized assignment.
api, servicetest
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 409 to the reopen sent at the version the completion moved on from
INV-DOM-CRM-ACT-003-13
Task, task type and queue registrations omit custom-field support and their API schemas do not accept custom-field values.
apiobserved

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.