Skip to content

CAP-COM-CAT-009Retrieve purchased digital files

Markdown

CAP-COM-CAT-009

Retrieve purchased digital files

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaCommerceModuleCatalog and Selling ConfigurationRevision1

Read atservices-commerce c8b66a98

The Formal Contract

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

Outcomes
Grant ownership controls member access to purchased files.Finite capacity remains protected while retries and support preserve available uses.
Surfaces
portalconsoleapi

Controls

24 controls apply, from the corpus control catalogue.

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

Permissions

KeyChecked atScope
commerce.downloads.readapitenant

Business Rules

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

IdRuleKindEnforced atProvenance
01must prove
Proposed
A download is available to its grant’s owner or console support staff, while another member is denied access.
no proof recorded yet
permissionservicetest
services-commerce:modules/catalog/tests/e2e/downloads.e2e.spec.js#refuses an expired grant 409 and another member’s grant 403
02must prove
Proposed
A limited grant consumes one use for each request key and file, preserves the remaining count on retries and refuses further new downloads after exhaustion.
no proof recorded yet
calculationservicetest
services-commerce:modules/catalog/tests/e2e/downloads.e2e.spec.js#gives the grant’s owner a signed link and consumes one use per Idempotency-Key (a retry costs nothing), until the grant is exhausted (409)
03
Proposed
Unlimited download grants retain an unlimited remaining count.
calculationservicetest
04must prove
Proposed
Support downloads leave the buyer’s remaining uses unchanged.
no proof recorded yet
policyservicetest
services-commerce:modules/catalog/tests/e2e/downloads.e2e.spec.js#gives a console user the link without consuming a use
05must prove
Proposed
Member downloads reject expired and revoked grants; unknown or wrong-kind grants and unrelated files are not found, while staff downloads bypass consumption and its expiry checks.
no proof recorded yet
validationservicetest
services-commerce:modules/catalog/tests/e2e/downloads.e2e.spec.js#answers 404 for a grant of another kind, an unknown grant, and a file the product does not have
06
Proposed
Successful download requests return a signed private-file link that expires after fifteen minutes.
policyserviceobserved

Scenarios

IdGivenWhenThenProvenance
01A member’s download grant has finite capacityUse distinct keys through its capacity and attempt one further downloadAllowed requests receive signed links and the new exhausted request failstest
services-commerce:modules/catalog/tests/e2e/downloads.e2e.spec.js#gives the grant’s owner a signed link and consumes one use per Idempotency-Key (a retry costs nothing), until the grant is exhausted (409)

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.