-
Notifications
You must be signed in to change notification settings - Fork 5
TAIP-15: Add explicit connectionTypes and trust connection support #53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
martindejonge1981-collab
wants to merge
32
commits into
TransactionAuthorizationProtocol:main
Choose a base branch
from
martindejonge1981-collab:taip-20-trusted-connections
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
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
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