TAIP-15: Add explicit connectionTypes and trust connection support#53
Open
martindejonge1981-collab wants to merge 32 commits intoTransactionAuthorizationProtocol:mainfrom
Conversation
This TAIP introduces a Connect message type for establishing trusted connections between Entities. Key features: - New Connect message with establish/update actions - Reuses Authorize (approve), Reject (decline), Cancel (terminate) - Supports DDQ exchange, mutual trust, and whitelisting - Fully backward compatible with existing TAP implementations
Add three optional fields to Authorize message for connection approval: - approvedTypes: Array of approved connection types - ddqDocument: DDQ document reference object - trustLevel: Trust status indicator These fields are only used when responding to Connect messages (TAIP-20).
Add test vector: valid Authorize connection approval
Remove TAIP-20 (merged into TAIP-15 with explicit connectionTypes)
BREAKING CHANGES: - Added REQUIRED connectionTypes field for all connections - Transactional connections now explicitly declare ["transaction"] - Added trust connection types: ddq-access, mutual-trust, whitelist - Extended Authorize with trust-specific response fields Design rationale: - Explicit type declaration follows industry standards - Better validation and error messages - Self-documenting and easier to extend - Aligns with JSON-LD, OpenAPI, GraphQL patterns Migration: Add connectionTypes: ["transaction"] to existing Connect messages
- Added connectionTypes as REQUIRED field for all connections - Clarified field requirements based on connection type - Added connection types table for reference - Updated documentation to reflect explicit type discrimination updated examples
…nnection test vectors
broadcast updated ddq
added clarifications for actions in Connect messages
clarified action field on Connect
fixed dupe line
adding checksum for attachments
adding checksum
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR extends TAIP-15 (Agent Connection Protocol) with explicit
connectionTypesfield for all connections and adds support for trust connections (DDQ exchange, mutual trust, whitelisting).Breaking Changes
Added REQUIRED
connectionTypesfieldAll Connect messages now REQUIRE a
connectionTypesarray specifying connection purpose:["transaction"]- For transactional connections (existing use case)["ddq-access"]- For DDQ document exchange["mutual-trust"]- For bilateral trust relationships["whitelist"]- For straight-through processingWhy This Breaking Change?
Migration
Old (TAIP-15 before this update):
{ "requester": {...}, "principal": {...}, "agents": [...], "constraints": {...} }New (add one field):
{ "connectionTypes": ["transaction"], // Add this line "requester": {...}, "principal": {...}, "agents": [...], "constraints": {...} }New Features: Trust Connections
VASPs can now establish institutional trust relationships:
Connection Types
transaction- Transactional connections (existing, now explicit)requester,principal,agents,constraintsddq-access- DDQ document exchangemutual-trust- Bilateral trust relationshipswhitelist- Straight-through processingTypical Trust Progression
ddq-access → mutual-trust → whitelist
TAIP-4 Extensions (Non-Breaking)
Added optional fields to
Authorizemessage for trust connection approval:approvedTypes: Array of approved connection typesddqDocument: DDQ document reference objecttrustLevel: Trust status indicatorThese fields are only used when responding to trust-based Connect messages.
Files Modified
TAIPs/taip-15.md- Major update with breaking changesTAIPs/taip-4.md- Added connection-specific fieldsmessages.md- Updated Connect and Authorize tablesCHANGELOG.md- Documented breaking changesTAIPs/taip-20.md- Deleted this draft (merged into TAIP-15)Validation Rules
Discussion Points
connectionTypesfor all connections (decided: YES)Implementation Impact
Existing TAIP-15 implementations must:
connectionTypes: ["transaction"]to all Connect messagesconnectionTypesfieldNew trust connection implementations:
connectionTypesvaluesrequester/principal/agents/constraintsTimeline
TAIP-15 is currently in "Review" status, making this the appropriate time for breaking changes before reaching "Final" status.
Checklist