Initial commit: AS4/411 directory and discovery service for Sankofa Marketplace
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
120
docs/api/proto/resolver.proto
Normal file
120
docs/api/proto/resolver.proto
Normal file
@@ -0,0 +1,120 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package as411.resolver.v1;
|
||||
|
||||
option go_package = "github.com/as4-411/api/proto/resolver/v1;resolverv1";
|
||||
|
||||
// ResolverService provides resolution of identifiers to routing directives.
|
||||
// Aligned with REST /v1/resolve and /v1/bulk-resolve; see OpenAPI and route-directive.schema.json.
|
||||
service ResolverService {
|
||||
rpc Resolve(ResolveRequest) returns (ResolveResponse);
|
||||
rpc BulkResolve(BulkResolveRequest) returns (BulkResolveResponse);
|
||||
}
|
||||
|
||||
message ResolveRequest {
|
||||
repeated IdentifierInput identifiers = 1;
|
||||
ServiceContext service_context = 2;
|
||||
ResolveConstraints constraints = 3;
|
||||
string tenant = 4;
|
||||
repeated string desired_protocols = 5;
|
||||
}
|
||||
|
||||
message IdentifierInput {
|
||||
string type = 1; // e.g. as4.partyId, e164, peppol.participantId
|
||||
string value = 2;
|
||||
string scope = 3; // e.g. BIC, LEI
|
||||
}
|
||||
|
||||
message ServiceContext {
|
||||
string service = 1; // e.g. iso20022.fi
|
||||
string action = 2; // e.g. credit.transfer
|
||||
string process = 3;
|
||||
string document_type = 4;
|
||||
}
|
||||
|
||||
message ResolveConstraints {
|
||||
string trust_domain = 1;
|
||||
string region = 2;
|
||||
string jurisdiction = 3;
|
||||
int32 max_results = 4;
|
||||
string network_brand = 5;
|
||||
string tenant_contract = 6;
|
||||
string connectivity_group = 7;
|
||||
string required_capability = 8;
|
||||
string message_type = 9;
|
||||
}
|
||||
|
||||
message ResolveResponse {
|
||||
RouteDirective primary = 1;
|
||||
repeated DirectiveWithReason alternates = 2;
|
||||
repeated RouteDirective directives = 3;
|
||||
int32 ttl = 4;
|
||||
string trace_id = 5;
|
||||
string correlation_id = 6;
|
||||
FailurePolicy failure_policy = 7;
|
||||
int32 negative_cache_ttl = 8;
|
||||
repeated ResolutionTraceEntry resolution_trace = 9;
|
||||
}
|
||||
|
||||
message RouteDirective {
|
||||
string target_protocol = 1;
|
||||
string target_address = 2;
|
||||
string transport_profile = 3; // e.g. as4.fifi.iso20022.v1
|
||||
RouteDirectiveSecurity security = 4;
|
||||
RouteDirectiveServiceContext service_context = 5;
|
||||
RouteDirectiveQos qos = 6;
|
||||
int32 ttl_seconds = 7;
|
||||
repeated EvidenceItem evidence = 8;
|
||||
}
|
||||
|
||||
message EvidenceItem {
|
||||
string source = 1;
|
||||
string freshness = 2; // date-time
|
||||
double confidence = 3;
|
||||
string signature = 4;
|
||||
}
|
||||
|
||||
message RouteDirectiveSecurity {
|
||||
bool sign_required = 1;
|
||||
bool encrypt_required = 2;
|
||||
repeated string key_refs = 3;
|
||||
map<string, string> algorithms = 4;
|
||||
}
|
||||
|
||||
message RouteDirectiveServiceContext {
|
||||
string service = 1;
|
||||
string action = 2;
|
||||
string service_indicator = 3;
|
||||
}
|
||||
|
||||
message RouteDirectiveQos {
|
||||
int32 retries = 1;
|
||||
bool receipts_required = 2;
|
||||
string ordering = 3;
|
||||
}
|
||||
|
||||
message DirectiveWithReason {
|
||||
RouteDirective directive = 1;
|
||||
string reason = 2;
|
||||
}
|
||||
|
||||
message FailurePolicy {
|
||||
bool retry = 1;
|
||||
string backoff = 2;
|
||||
bool circuit_break = 3;
|
||||
}
|
||||
|
||||
message ResolutionTraceEntry {
|
||||
string source = 1;
|
||||
int32 directive_index = 2;
|
||||
string message = 3;
|
||||
}
|
||||
|
||||
message BulkResolveRequest {
|
||||
repeated ResolveRequest requests = 1;
|
||||
}
|
||||
|
||||
message BulkResolveResponse {
|
||||
repeated ResolveResponse results = 1;
|
||||
string trace_id = 2;
|
||||
}
|
||||
Reference in New Issue
Block a user