diff --git a/CHANGELOG.md b/CHANGELOG.md index 9412d69..4437126 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Clarified durable attachment references, optional producer-local paths and producer-defined digest metadata. + - Added coordinated cross-process retry examples and clarified logical-run correlation and final-attempt duration. - Clarified parameterized case identity, rename and path scopes, and execution identity across coordinated retry processes. diff --git a/schema/ctrf.schema.json b/schema/ctrf.schema.json index 422f0af..761d395 100644 --- a/schema/ctrf.schema.json +++ b/schema/ctrf.schema.json @@ -359,7 +359,7 @@ "type": "string" }, "path": { - "description": "Path or URI to the attachment", + "description": "Opaque reference to the attachment (URL or file path)", "type": "string" }, "extra": { @@ -434,7 +434,7 @@ "type": "string" }, "path": { - "description": "Path or URI to the attachment", + "description": "Opaque reference to the attachment (URL or file path)", "type": "string" }, "extra": { diff --git a/spec/ctrf.md b/spec/ctrf.md index a466830..bd0bbaf 100644 --- a/spec/ctrf.md +++ b/spec/ctrf.md @@ -1633,10 +1633,12 @@ The specification does not impose any particular URI or path semantics. Consumers MUST treat attachment paths as opaque references and MUST NOT assume local filesystem access unless explicitly documented by the producer. +When both a durable artifact reference and a producer-local path are available, producers SHOULD prefer the durable reference in `path`. The original local path MAY be retained in producer-namespaced attachment `extra` when useful. A local file path remains valid when no durable reference is available; producers are not required to upload attachments. + ### 12.4. `attachmentId` **Description:** -A unique identifier for this attachment reference instance. +A unique identifier for this attachment reference instance. It is not a content digest and MUST NOT be interpreted as one. **Requirements:** `attachmentId` is OPTIONAL. @@ -1654,6 +1656,8 @@ An extensibility object containing arbitrary metadata. It MAY contain arbitrary fields. It is the ONLY permitted extension point directly under an attachment object. +Producer-specific original local paths and content-digest metadata MAY be carried in producer-namespaced objects here. CTRF does not standardize their keys or value structure. Producers carrying digest metadata SHOULD document its algorithm and encoding. + --- ## 13. Step Object @@ -2469,7 +2473,7 @@ to this specification. "type": "string" }, "path": { - "description": "Path or URI to the attachment", + "description": "Opaque reference to the attachment (URL or file path)", "type": "string" }, "extra": { @@ -2544,7 +2548,7 @@ to this specification. "type": "string" }, "path": { - "description": "Path or URI to the attachment", + "description": "Opaque reference to the attachment (URL or file path)", "type": "string" }, "extra": {