diff --git a/draft-nennemann-wimse-execution-context-00.html b/draft-nennemann-wimse-execution-context-00.html index 3cb16b6..8aee653 100644 --- a/draft-nennemann-wimse-execution-context-00.html +++ b/draft-nennemann-wimse-execution-context-00.html @@ -1383,28 +1383,25 @@ regulatory frameworks.¶
10.2. Financial Trading Workflow
10.4. Autonomous Logistics Coordination
@@ -2101,10 +2098,10 @@ correct public key for signature verification.The ECT payload contains both WIMSE-compatible standard JWT claims and execution context claims defined by this specification.¶
-The following standard JWT claims [RFC7519] MUST be present in every ECT:¶
@@ -2195,8 +2192,8 @@ ECTs issued by the same agent.¶<The following claims are defined by this specification:¶
The following claims record policy evaluation outcomes:¶
The following claims provide integrity verification for task inputs and outputs without revealing the data itself:¶
@@ -2347,10 +2344,11 @@ input (e.g., "public", "confidential", "restricted").The following claims provide additional operational context:¶
+The following claims provide additional context about task +execution:¶
OPTIONAL. Array of StringOrURI. Identifiers of third-party +
+OPTIONAL. Array of StringOrURI. Identifiers of third-party entities that the issuing agent claims observed or attested to the execution of this task. When present, each element SHOULD use SPIFFE ID format. Note that this claim is self-asserted by @@ -2393,59 +2382,59 @@ signed ECTs to the ledger attesting to their observation (see implementations SHOULD use witness attestation for critical decision points to mitigate the risk of single-agent false claims. See also Section 11.2 for the security -implications of self-asserted witness claims.¶
+implications of self-asserted witness claims.¶OPTIONAL. Boolean. Indicates whether this task is a -compensation or rollback action for a previous task.¶
+OPTIONAL. Boolean. Indicates whether this task is a +compensation or rollback action for a previous task.¶
OPTIONAL. String. A human-readable reason for the compensation +
OPTIONAL. String. A human-readable reason for the compensation action. MUST be present if "compensation_required" is true. Values SHOULD use structured identifiers (e.g., "policy_violation_in_parent_trade") rather than free-form text to minimize the risk of embedding sensitive information. See Section 12.2 for privacy guidance. If "compensation_reason" is present, "compensation_required" -MUST be true.¶
+MUST be true.¶Note: compensation ECTs reference historical parent tasks via the +
Note: compensation ECTs reference historical parent tasks via the "par" claim. The referenced parent ECTs may have passed their own "exp" time; ECT expiration applies to the verification window of the ECT itself, not to its validity as a parent reference in the -ledger.¶
+ledger.¶OPTIONAL. Object. An extension object for domain-specific +
OPTIONAL. Object. An extension object for domain-specific claims not defined by this specification. Implementations -that do not understand extension claims MUST ignore them.¶
+that do not understand extension claims MUST ignore them.¶To avoid key collisions between different domains, extension +
To avoid key collisions between different domains, extension key names MUST use reverse domain notation (e.g., "com.example.custom_field"). Implementations MUST NOT use unqualified key names within the "ext" object. To prevent @@ -2453,7 +2442,7 @@ abuse and excessive token size, the serialized JSON representation of the "ext" object SHOULD NOT exceed 4096 bytes, and the JSON nesting depth within the "ext" object SHOULD NOT exceed 5 levels. Implementations SHOULD reject -ECTs whose "ext" claim exceeds these limits.¶
+ECTs whose "ext" claim exceeds these limits.¶When a compliance violation is discovered after execution, ECTs provide a mechanism to record authorized compensation actions with @@ -3654,7 +3643,7 @@ array to a maximum of 256 entries. Workflows requiring more parent references SHOULD introduce intermediate aggregation tasks. The "ext" object SHOULD NOT exceed 4096 bytes when serialized as JSON and SHOULD NOT exceed a nesting depth of -5 levels (see also Section 4.2.8).¶
+5 levels (see also Section 4.2.7).¶The "compensation_reason" claim (Section 4.2.7) +
The "compensation_reason" claim (Section 4.2.6) deserves particular attention: because it is human-readable and may describe the circumstances of a failure or policy violation, it risks exposing sensitive operational details. Implementations @@ -3998,7 +3987,7 @@ the "JSON Web Token Claims" registry maintained by IANA:Witness Identities
ECTs and Transaction Tokens are complementary: a Txn-Token
diff --git a/draft-nennemann-wimse-execution-context-00.md b/draft-nennemann-wimse-execution-context-00.md
index 8dc2bc2..eba5b5d 100644
--- a/draft-nennemann-wimse-execution-context-00.md
+++ b/draft-nennemann-wimse-execution-context-00.md
@@ -80,7 +80,7 @@ informative:
- org: Cloud Native Computing Foundation
I-D.ietf-scitt-architecture:
I-D.ietf-oauth-transaction-tokens:
- I-D.ietf-oauth-transaction-tokens-for-agents:
+ I-D.oauth-transaction-tokens-for-agents:
--- abstract
@@ -399,7 +399,7 @@ kid:
The ECT payload contains both WIMSE-compatible standard JWT claims
and execution context claims defined by this specification.
-### WIMSE-Compatible Claims
+### Standard JWT Claims
The following standard JWT claims {{RFC7519}} MUST be present in
every ECT:
@@ -468,7 +468,7 @@ jti:
expiration window. The "jti" value MUST be unique across all
ECTs issued by the same agent.
-### Execution Context Claims {#exec-claims}
+### Execution Context {#exec-claims}
The following claims are defined by this specification:
@@ -500,7 +500,7 @@ par:
a root task with no dependencies. A workflow MAY contain
multiple root tasks.
-### Policy Claims {#policy-claims}
+### Policy Evaluation {#policy-claims}
The following claims record policy evaluation outcomes:
@@ -552,7 +552,7 @@ use any policy engine or framework (e.g., OPA/Rego, Cedar, XACML,
or custom solutions) provided that the evaluation outcome is
faithfully recorded in the ECT claims defined above.
-### Data Integrity Claims {#data-integrity-claims}
+### Data Integrity {#data-integrity-claims}
The following claims provide integrity verification for task
inputs and outputs without revealing the data itself:
@@ -577,9 +577,10 @@ inp_classification:
: OPTIONAL. String. The data sensitivity classification of the
input (e.g., "public", "confidential", "restricted").
-### Operational Claims {#operational-claims}
+### Task Metadata {#operational-claims}
-The following claims provide additional operational context:
+The following claims provide additional context about task
+execution:
exec_time_ms:
: OPTIONAL. Integer. The execution duration of the task in
@@ -594,8 +595,6 @@ model_version:
: OPTIONAL. String. The version identifier of the AI or ML model
used to perform the task, if applicable.
-### Witness Claims {#witness-claims}
-
witnessed_by:
: OPTIONAL. Array of StringOrURI. Identifiers of third-party
entities that the issuing agent claims observed or attested to
@@ -610,7 +609,7 @@ witnessed_by:
claims. See also {{self-assertion-limitation}} for the security
implications of self-asserted witness claims.
-### Compensation Claims {#compensation-claims}
+### Compensation and Rollback {#compensation-claims}
compensation_required:
: OPTIONAL. Boolean. Indicates whether this task is a
@@ -632,7 +631,7 @@ Note: compensation ECTs reference historical parent tasks via the
the ECT itself, not to its validity as a parent reference in the
ledger.
-### Extension Claims {#extension-claims}
+### Extensions {#extension-claims}
ext:
: OPTIONAL. Object. An extension object for domain-specific
@@ -1685,7 +1684,7 @@ the "JSON Web Token Claims" registry maintained by IANA:
| out_hash | Output Data Hash | IETF | {{data-integrity-claims}} |
| inp_classification | Input Data Classification | IETF | {{data-integrity-claims}} |
| exec_time_ms | Execution Time (ms) | IETF | {{operational-claims}} |
-| witnessed_by | Witness Identities | IETF | {{witness-claims}} |
+| witnessed_by | Witness Identities | IETF | {{operational-claims}} |
| regulated_domain | Regulatory Domain | IETF | {{operational-claims}} |
| model_version | AI/ML Model Version | IETF | {{operational-claims}} |
| compensation_required | Compensation Flag | IETF | {{compensation-claims}} |
@@ -1782,7 +1781,7 @@ However, "req_wl" cannot form a DAG because:
no policy evaluation outcomes, and no execution content.
Extensions for agentic use cases
-({{I-D.ietf-oauth-transaction-tokens-for-agents}}) add agent
+({{I-D.oauth-transaction-tokens-for-agents}}) add agent
identity and constraints ("agentic_ctx") but no execution
ordering or DAG structure.
diff --git a/draft-nennemann-wimse-execution-context-00.txt b/draft-nennemann-wimse-execution-context-00.txt
index d19f891..4992725 100644
--- a/draft-nennemann-wimse-execution-context-00.txt
+++ b/draft-nennemann-wimse-execution-context-00.txt
@@ -87,14 +87,13 @@ Table of Contents
4. Execution Context Token Format . . . . . . . . . . . . . . . 9
4.1. JOSE Header . . . . . . . . . . . . . . . . . . . . . . . 9
4.2. JWT Claims . . . . . . . . . . . . . . . . . . . . . . . 10
- 4.2.1. WIMSE-Compatible Claims . . . . . . . . . . . . . . . 10
- 4.2.2. Execution Context Claims . . . . . . . . . . . . . . 11
- 4.2.3. Policy Claims . . . . . . . . . . . . . . . . . . . . 12
- 4.2.4. Data Integrity Claims . . . . . . . . . . . . . . . . 13
- 4.2.5. Operational Claims . . . . . . . . . . . . . . . . . 13
- 4.2.6. Witness Claims . . . . . . . . . . . . . . . . . . . 14
- 4.2.7. Compensation Claims . . . . . . . . . . . . . . . . . 14
- 4.2.8. Extension Claims . . . . . . . . . . . . . . . . . . 14
+ 4.2.1. Standard JWT Claims . . . . . . . . . . . . . . . . . 10
+ 4.2.2. Execution Context . . . . . . . . . . . . . . . . . . 11
+ 4.2.3. Policy Evaluation . . . . . . . . . . . . . . . . . . 12
+ 4.2.4. Data Integrity . . . . . . . . . . . . . . . . . . . 13
+ 4.2.5. Task Metadata . . . . . . . . . . . . . . . . . . . . 13
+ 4.2.6. Compensation and Rollback . . . . . . . . . . . . . . 14
+ 4.2.7. Extensions . . . . . . . . . . . . . . . . . . . . . 14
4.3. Complete ECT Example . . . . . . . . . . . . . . . . . . 15
5. HTTP Header Transport . . . . . . . . . . . . . . . . . . . . 15
5.1. Execution-Context Header Field . . . . . . . . . . . . . 15
@@ -106,6 +105,7 @@ Table of Contents
7.1. Verification Procedure . . . . . . . . . . . . . . . . . 19
7.2. Verification Pseudocode . . . . . . . . . . . . . . . . . 20
8. Operational Modes . . . . . . . . . . . . . . . . . . . . . . 22
+ 8.1. Point-to-Point Mode . . . . . . . . . . . . . . . . . . . 22
@@ -114,7 +114,6 @@ Nennemann Expires 28 August 2026 [Page 2]
Internet-Draft WIMSE Execution Context February 2026
- 8.1. Point-to-Point Mode . . . . . . . . . . . . . . . . . . . 22
8.2. Deferred Ledger Mode . . . . . . . . . . . . . . . . . . 23
8.3. Full Ledger Mode . . . . . . . . . . . . . . . . . . . . 23
9. Audit Ledger Interface . . . . . . . . . . . . . . . . . . . 23
@@ -158,10 +157,11 @@ Internet-Draft WIMSE Execution Context February 2026
WIMSE Workload Identity . . . . . . . . . . . . . . . . . . . . 42
OAuth 2.0 Token Exchange and the "act" Claim . . . . . . . . . 42
Transaction Tokens . . . . . . . . . . . . . . . . . . . . . . 43
- Distributed Tracing (OpenTelemetry) . . . . . . . . . . . . . . 43
+ Distributed Tracing (OpenTelemetry) . . . . . . . . . . . . . . 44
Blockchain and Distributed Ledgers . . . . . . . . . . . . . . 44
SCITT (Supply Chain Integrity, Transparency, and Trust) . . . . 44
- W3C Verifiable Credentials . . . . . . . . . . . . . . . . . . 44
+ W3C Verifiable Credentials . . . . . . . . . . . . . . . . . . 45
+ Implementation Guidance . . . . . . . . . . . . . . . . . . . . . 45
@@ -170,18 +170,17 @@ Nennemann Expires 28 August 2026 [Page 3]
Internet-Draft WIMSE Execution Context February 2026
- Implementation Guidance . . . . . . . . . . . . . . . . . . . . . 44
- Minimal Implementation . . . . . . . . . . . . . . . . . . . . 44
+ Minimal Implementation . . . . . . . . . . . . . . . . . . . . 45
Storage Recommendations . . . . . . . . . . . . . . . . . . . . 45
Performance Considerations . . . . . . . . . . . . . . . . . . 45
- Interoperability . . . . . . . . . . . . . . . . . . . . . . . 45
+ Interoperability . . . . . . . . . . . . . . . . . . . . . . . 46
Regulatory Compliance Mapping . . . . . . . . . . . . . . . . . . 46
- Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
- Example 1: Simple Two-Agent Workflow . . . . . . . . . . . . . 46
- Example 2: Medical Device SDLC with Release Approval . . . . . 48
- Example 3: Parallel Execution with Join . . . . . . . . . . . . 51
+ Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
+ Example 1: Simple Two-Agent Workflow . . . . . . . . . . . . . 47
+ Example 2: Medical Device SDLC with Release Approval . . . . . 49
+ Example 3: Parallel Execution with Join . . . . . . . . . . . . 52
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 52
- Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 52
+ Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 53
1. Introduction
@@ -221,6 +220,7 @@ Internet-Draft WIMSE Execution Context February 2026
+
Nennemann Expires 28 August 2026 [Page 4]
Internet-Draft WIMSE Execution Context February 2026
@@ -525,7 +525,7 @@ Internet-Draft WIMSE Execution Context February 2026
The ECT payload contains both WIMSE-compatible standard JWT claims
and execution context claims defined by this specification.
-4.2.1. WIMSE-Compatible Claims
+4.2.1. Standard JWT Claims
The following standard JWT claims [RFC7519] MUST be present in every
ECT:
@@ -595,7 +595,7 @@ Internet-Draft WIMSE Execution Context February 2026
expiration window. The "jti" value MUST be unique across all ECTs
issued by the same agent.
-4.2.2. Execution Context Claims
+4.2.2. Execution Context
The following claims are defined by this specification:
@@ -629,7 +629,7 @@ Internet-Draft WIMSE Execution Context February 2026
task with no dependencies. A workflow MAY contain multiple root
tasks.
-4.2.3. Policy Claims
+4.2.3. Policy Evaluation
The following claims record policy evaluation outcomes:
@@ -684,7 +684,7 @@ Internet-Draft WIMSE Execution Context February 2026
provided that the evaluation outcome is faithfully recorded in the
ECT claims defined above.
-4.2.4. Data Integrity Claims
+4.2.4. Data Integrity
The following claims provide integrity verification for task inputs
and outputs without revealing the data itself:
@@ -708,9 +708,9 @@ Internet-Draft WIMSE Execution Context February 2026
classification of the input (e.g., "public", "confidential",
"restricted").
-4.2.5. Operational Claims
+4.2.5. Task Metadata
- The following claims provide additional operational context:
+ The following claims provide additional context about task execution:
exec_time_ms: OPTIONAL. Integer. The execution duration of the
task in milliseconds. MUST be a non-negative integer.
@@ -730,8 +730,6 @@ Nennemann Expires 28 August 2026 [Page 13]
Internet-Draft WIMSE Execution Context February 2026
-4.2.6. Witness Claims
-
witnessed_by: OPTIONAL. Array of StringOrURI. Identifiers of
third-party entities that the issuing agent claims observed or
attested to the execution of this task. When present, each
@@ -745,7 +743,7 @@ Internet-Draft WIMSE Execution Context February 2026
See also Section 11.2 for the security implications of self-
asserted witness claims.
-4.2.7. Compensation Claims
+4.2.6. Compensation and Rollback
compensation_required: OPTIONAL. Boolean. Indicates whether this
task is a compensation or rollback action for a previous task.
@@ -764,7 +762,7 @@ Internet-Draft WIMSE Execution Context February 2026
"exp" time; ECT expiration applies to the verification window of the
ECT itself, not to its validity as a parent reference in the ledger.
-4.2.8. Extension Claims
+4.2.7. Extensions
ext: OPTIONAL. Object. An extension object for domain-specific
claims not defined by this specification. Implementations that do
@@ -781,6 +779,8 @@ Internet-Draft WIMSE Execution Context February 2026
+
+
Nennemann Expires 28 August 2026 [Page 14]
Internet-Draft WIMSE Execution Context February 2026
@@ -1874,7 +1874,7 @@ Internet-Draft WIMSE Execution Context February 2026
maximum of 256 entries. Workflows requiring more parent references
SHOULD introduce intermediate aggregation tasks. The "ext" object
SHOULD NOT exceed 4096 bytes when serialized as JSON and SHOULD NOT
- exceed a nesting depth of 5 levels (see also Section 4.2.8).
+ exceed a nesting depth of 5 levels (see also Section 4.2.7).
12. Privacy Considerations
@@ -1918,7 +1918,7 @@ Internet-Draft WIMSE Execution Context February 2026
"pol" claim SHOULD reference policy identifiers rather than embedding
policy content.
- The "compensation_reason" claim (Section 4.2.7) deserves particular
+ The "compensation_reason" claim (Section 4.2.6) deserves particular
attention: because it is human-readable and may describe the
circumstances of a failure or policy violation, it risks exposing
sensitive operational details. Implementations SHOULD use short,
@@ -2064,7 +2064,7 @@ Internet-Draft WIMSE Execution Context February 2026
| | (ms) | | 4.2.5 |
+-----------------------+-----------------+------------+-----------+
| witnessed_by | Witness | IETF | Section |
- | | Identities | | 4.2.6 |
+ | | Identities | | 4.2.5 |
+-----------------------+-----------------+------------+-----------+
@@ -2081,13 +2081,13 @@ Internet-Draft WIMSE Execution Context February 2026
| | Version | | 4.2.5 |
+-----------------------+-----------------+------------+-----------+
| compensation_required | Compensation | IETF | Section |
- | | Flag | | 4.2.7 |
+ | | Flag | | 4.2.6 |
+-----------------------+-----------------+------------+-----------+
| compensation_reason | Compensation | IETF | Section |
- | | Reason | | 4.2.7 |
+ | | Reason | | 4.2.6 |
+-----------------------+-----------------+------------+-----------+
| ext | Extension | IETF | Section |
- | | Object | | 4.2.8 |
+ | | Object | | 4.2.7 |
+-----------------------+-----------------+------------+-----------+
Table 1: JWT Claims Registrations
@@ -2259,9 +2259,6 @@ Internet-Draft WIMSE Execution Context February 2026
-
-