JSON Schema
{
"type": "object",
"properties": {
"manifestVersion": {
"type": "number",
"const": 1
},
"contractVersion": {
"type": "number",
"const": 1
},
"adapterId": {
"type": "string",
"maxLength": 96,
"pattern": "^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$"
},
"version": {
"type": "string",
"maxLength": 64,
"pattern": "^(0|[1-9][0-9]{0,5})\\.(0|[1-9][0-9]{0,5})\\.(0|[1-9][0-9]{0,5})(-[0-9A-Za-z]+(\\.[0-9A-Za-z]+)*)?$"
},
"packageName": {
"type": "string",
"maxLength": 128,
"pattern": "^@truckertech\\/integration-[a-z0-9]+(-[a-z0-9]+)*$"
},
"displayName": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"systemNode": {
"type": "object",
"properties": {
"providerKind": {
"type": "string",
"enum": [
"synthetic",
"ecosystem_partner"
]
},
"providerCode": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]{0,63}$"
},
"displayName": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"providerKind",
"providerCode",
"displayName"
],
"additionalProperties": false
},
"runtime": {
"type": "object",
"properties": {
"transport": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local_synthetic"
},
"baseUrlPolicy": {
"type": "string",
"const": "no_network"
}
},
"required": [
"kind",
"baseUrlPolicy"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "https"
},
"baseUrlPolicy": {
"type": "string",
"const": "allowlisted_hosts"
},
"allowedHosts": {
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"pattern": "^(?=.{1,253}$)([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$"
}
}
},
"required": [
"kind",
"baseUrlPolicy",
"allowedHosts"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "nexus_remote"
},
"protocol": {
"type": "string",
"enum": [
"tt-nexus-remote/1"
]
},
"baseUrlPolicy": {
"type": "string",
"const": "allowlisted_hosts"
},
"allowedHosts": {
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"pattern": "^(?=.{1,253}$)([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$"
}
},
"endpointPath": {
"type": "string",
"maxLength": 256,
"pattern": "^(\\/(?!\\.{1,2}(?:\\/|$))[A-Za-z0-9._~-]+)+$"
},
"keySetReference": {
"type": "string",
"pattern": "^[a-z][a-z0-9_.:-]{0,127}$"
}
},
"required": [
"kind",
"protocol",
"baseUrlPolicy",
"allowedHosts",
"endpointPath",
"keySetReference"
],
"additionalProperties": false
}
]
},
"authMethod": {
"type": "string",
"enum": [
"none_local_synthetic",
"oauth2_authorization_code",
"oauth2_client_credentials",
"signed_jwt",
"mutual_tls",
"api_key"
]
},
"environments": {
"minItems": 1,
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"local",
"development",
"staging",
"sandbox",
"production"
]
}
},
"regions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z]{2}(-[a-z0-9]{1,3})?$"
}
},
"timeoutMs": {
"type": "integer",
"minimum": 1,
"maximum": 120000
},
"retry": {
"type": "object",
"properties": {
"maxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"baseDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [
"maxAttempts",
"baseDelayMs"
],
"additionalProperties": false
}
},
"required": [
"transport",
"authMethod",
"environments",
"regions",
"timeoutMs",
"retry"
],
"additionalProperties": false
},
"sockets": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"socketCode": {
"type": "string",
"maxLength": 120,
"pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)+$"
},
"schemaVersion": {
"type": "integer",
"minimum": 1,
"maximum": 999
},
"purposeCodes": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z][a-z0-9_.]{0,63}$"
}
},
"operations": {
"type": "object",
"properties": {
"read": {
"minItems": 0,
"maxItems": 32,
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z][a-z0-9_.]{0,63}$"
}
},
"event": {
"minItems": 0,
"maxItems": 32,
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z][a-z0-9_.]{0,63}$"
}
},
"command": {
"minItems": 0,
"maxItems": 32,
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z][a-z0-9_.]{0,63}$"
}
}
},
"required": [
"read",
"event",
"command"
],
"additionalProperties": false
},
"authoritativeFields": {
"minItems": 0,
"maxItems": 64,
"type": "array",
"items": {
"type": "string",
"maxLength": 120,
"pattern": "^[a-z][A-Za-z0-9]*(\\.[a-z][A-Za-z0-9]*)*$"
}
},
"authorization": {
"type": "object",
"properties": {
"customerAuthorization": {
"type": "string",
"const": "required"
},
"scopes": {
"minItems": 0,
"maxItems": 32,
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z][a-z0-9_.:-]{0,95}$"
}
}
},
"required": [
"customerAuthorization",
"scopes"
],
"additionalProperties": false
},
"tenantMapping": {
"type": "object",
"properties": {
"bindingLevel": {
"type": "string",
"enum": [
"role_organization",
"role_organization_account"
]
},
"externalAccountReference": {
"type": "string",
"enum": [
"required",
"optional",
"not_applicable"
]
}
},
"required": [
"bindingLevel",
"externalAccountReference"
],
"additionalProperties": false
},
"freshness": {
"type": "object",
"properties": {
"maxStalenessSeconds": {
"type": "integer",
"minimum": 1,
"maximum": 31536000
},
"onStale": {
"type": "string",
"enum": [
"mark_stale",
"refuse"
]
}
},
"required": [
"maxStalenessSeconds",
"onStale"
],
"additionalProperties": false
},
"limits": {
"type": "object",
"properties": {
"requestsPerMinute": {
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"onRateLimit": {
"type": "string",
"enum": [
"backoff_and_retry",
"fail"
]
}
},
"required": [
"requestsPerMinute",
"onRateLimit"
],
"additionalProperties": false
},
"failure": {
"type": "object",
"properties": {
"partialFailure": {
"type": "string",
"enum": [
"per_item",
"all_or_nothing"
]
}
},
"required": [
"partialFailure"
],
"additionalProperties": false
},
"idempotency": {
"type": "object",
"properties": {
"replaySafe": {
"type": "boolean"
},
"commandKey": {
"type": "string",
"enum": [
"provider_key",
"platform_dedupe_only",
"not_applicable"
]
}
},
"required": [
"replaySafe",
"commandKey"
],
"additionalProperties": false
},
"reconciliation": {
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"poll",
"event",
"manual",
"not_applicable"
]
}
},
"required": [
"method"
],
"additionalProperties": false
},
"attribution": {
"type": "object",
"properties": {
"required": {
"type": "boolean",
"const": true
},
"displayText": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"required",
"displayText"
],
"additionalProperties": false
},
"dataRights": {
"type": "object",
"properties": {
"onwardUse": {
"type": "string",
"enum": [
"tenant_only",
"tenant_and_core_participants"
]
},
"retentionDays": {
"type": "integer",
"minimum": 1,
"maximum": 3650
}
},
"required": [
"onwardUse",
"retentionDays"
],
"additionalProperties": false
},
"delivery": {
"type": "object",
"properties": {
"webhook": {
"type": "boolean"
},
"polling": {
"type": "boolean"
}
},
"required": [
"webhook",
"polling"
],
"additionalProperties": false
},
"requiresCertification": {
"type": "boolean"
}
},
"required": [
"socketCode",
"schemaVersion",
"purposeCodes",
"operations",
"authoritativeFields",
"authorization",
"tenantMapping",
"freshness",
"limits",
"failure",
"idempotency",
"reconciliation",
"attribution",
"dataRights",
"delivery",
"requiresCertification"
],
"additionalProperties": false
}
},
"support": {
"type": "object",
"properties": {
"ownerCode": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]{0,63}$"
},
"incidentPath": {
"type": "string",
"minLength": 1,
"maxLength": 280
}
},
"required": [
"ownerCode",
"incidentPath"
],
"additionalProperties": false
}
},
"required": [
"manifestVersion",
"contractVersion",
"adapterId",
"version",
"packageName",
"displayName",
"systemNode",
"runtime",
"sockets",
"support"
],
"additionalProperties": false,
"description": "The capability manifest an adapter version is registered with."
}