Skip to content

CAP-ACC-BKS-016Control access and safe changes to books configuration

Markdown

CAP-ACC-BKS-016

Control access and safe changes to books configuration

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindCapabilityProduct areaAccountingModuleBooks, Business Units and Chart of AccountsRevision1

Read atservices-accounting f47cb263react-console baf6dae3

The Formal Contract

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

Outcomes
Read access permits inspection without authorizing configuration changes.Workspace boundaries confine reads and changes.Version checks prevent stale replacements.
Surfaces
consoleapi
Intent sources
services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D3services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D11services-accounting:docs/milestones/plans/ACCT-M1-plan.md#D12

Controls

23 controls apply, from the corpus control catalogue.

TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-AZ-006 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-TEN-004 TC-DAT-001 TC-DAT-004 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-LOG-005 TC-PI-001 TC-PI-003

Permissions

KeyChecked atScope
accounting.application.accessapitenant
accounting.business-units.readapitenant
accounting.business-units.bulkapitenant
accounting.gl-accounts.bulkapitenant
accounting.bank-accounts.bulkapitenant
accounting.merchant-accounts.bulkapitenant
accounting.departments.bulkapitenant
accounting.accounting-projects.bulkapitenant
accounting.payment-terms.bulkapitenant
accounting.payment-methods.deleteapitenant
accounting.payment-methods.bulkapitenant
accounting.tax-classes.bulkapitenant
accounting.tax-zones.bulkapitenant
accounting.exchange-rates.bulkapitenant
accounting.fiscal-years.bulkapitenant
accounting.document-templates.bulkapitenant
accounting.settings.createapitenant
accounting.settings.deleteapitenant
accounting.settings.bulkapitenant

Business Rules

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

IdRuleKindEnforced atProvenance
01must prove
Confirmed
Each configuration kind has read permission from Read Only upward and administrator-level writes; default assignment is a unit update, rate filling a rate create and template duplication a template create.
permissionapitest
02must prove
Confirmed
Configuration requests also require Accounting application access and licensing, while currencies, default purposes and processors require no additional resource permission.
permissionapitest
services-accounting:modules/books/tests/e2e/currencies.e2e.spec.js#answers 403 app_unlicensed in a tenant whose licence does not carry Accounting
03must prove
Confirmed
Permission on one configuration kind grants no permission on another, so unit administration alone cannot create departments or read templates.
permissionapitest
services-accounting:modules/books/tests/e2e/accounting-dimensions-security.e2e.spec.js#is refused a department create 403 permission_missing, though it may update the unit
04must prove
Confirmed
Workspace separation makes another workspace’s records absent from reads and lists, refuses cross-workspace references and is enforced for record rows by the database.
invariantapi, service, databasetest
services-accounting:modules/books/tests/e2e/configuration-security.e2e.spec.js#answers 404 in tenant B to a read of tenant A’s business unit
05must prove
Confirmed
Replacements require the read version, refuse stale versions, unknown properties or omitted required settings, clear ordinary omitted optional values and accept read-only properties from a retrieved record without writing them.
validationapi, servicetest
services-accounting:modules/books/tests/e2e/payment-terms.e2e.spec.js#answers 400 naming is_active to a replacement that leaves it out
06must prove
Confirmed
Text inputs are trimmed and whitespace-only text is treated as missing.
validationapi, databasetest
services-accounting:modules/books/tests/e2e/departments.e2e.spec.js#answers 400 naming name for a name of nothing but spaces
07must prove
Confirmed
Full locks refuse updates and deletion, delete-only locks refuse deletion, GL-account updates can change lock settings only when the current lock permits updates, and configuration editors provide no lock controls.
policyserviceobserved
08must prove
Confirmed
Paged lists return items, a page count and a continuation cursor within their own size limits, and refuse malformed encoded offset cursors.
policyapiobserved
09must prove
Confirmed
Console readers can load configuration lists and read-only editors without functioning write controls.
policyconsoletest
10
Confirmed
Console constraints additionally require GL names, limit department and project codes to twenty characters, require whole term days and nonnegative priorities, fix account currency in editors and warn at the 2,000-record loading cap.
policyconsoledocumented
11
Confirmed
Published bulk permissions, settings create and delete permissions and payment-method delete permission have no corresponding required action.
permissionapiobserved

Scenarios

IdGivenWhenThenProvenance
01A board reviewer has Read Only access.They inspect configuration screens and attempt record creation and correction.The lists are readable, writes are refused and stored configuration is retained.test
02Two workspaces use the same business-unit identifier.Each performs its own unit reads, lists and deletion.Neither workspace exposes or changes the other workspace’s unit.test

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.