2976 lines
87 KiB
JSON
2976 lines
87 KiB
JSON
{
|
|
"schema_version": "2026-06-04",
|
|
"language": "python",
|
|
"name": "customer-integration-engineer",
|
|
"description": "Guides and validates customer integrations from requirements through a tested handoff while keeping credentials and production changes under customer control.",
|
|
"version": "0.1.5",
|
|
"entrypoint": {
|
|
"module": "agent",
|
|
"class_name": "CustomerIntegrationEngineer",
|
|
"function": null,
|
|
"command": []
|
|
},
|
|
"skills": [
|
|
{
|
|
"name": "design_integration",
|
|
"description": "Capture requirements, produce architecture and field mapping artifacts",
|
|
"handler": "design_integration",
|
|
"tags": [],
|
|
"scopes": [],
|
|
"stream": false,
|
|
"policy": {
|
|
"timeout_seconds": 120.0,
|
|
"idempotent": true,
|
|
"max_retries": 0,
|
|
"cost_class": "deterministic",
|
|
"allow_scope_expansion": false,
|
|
"grant_mode": null,
|
|
"grant_allow_patterns": [],
|
|
"grant_deny_patterns": [],
|
|
"grant_outputs_prefix": null,
|
|
"grant_write_prefixes": [],
|
|
"grant_ttl_seconds": null,
|
|
"grant_run_timeout_seconds": null,
|
|
"grant_approval_timeout_seconds": null,
|
|
"grant_scope_approval_timeout_seconds": null
|
|
},
|
|
"input_schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"request"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"request": {
|
|
"$defs": {
|
|
"AuthMethod": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"system_name": {
|
|
"maxLength": 80,
|
|
"minLength": 1,
|
|
"title": "System Name",
|
|
"type": "string"
|
|
},
|
|
"auth_type": {
|
|
"enum": [
|
|
"none",
|
|
"api_key",
|
|
"bearer_token",
|
|
"oauth2_client_credentials",
|
|
"hmac_signature",
|
|
"mtls",
|
|
"basic",
|
|
"oidc"
|
|
],
|
|
"title": "Auth Type",
|
|
"type": "string"
|
|
},
|
|
"secret_ref": {
|
|
"anyOf": [
|
|
{
|
|
"pattern": "^[A-Z][A-Z0-9_]{2,127}$",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"description": "Caller-managed secret reference name only; never a raw secret value.",
|
|
"title": "Secret Ref"
|
|
},
|
|
"header_name": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 80,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Header Name"
|
|
},
|
|
"token_url": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 2048,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Token Url"
|
|
},
|
|
"scopes": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Scopes",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"system_name",
|
|
"auth_type"
|
|
],
|
|
"title": "AuthMethod",
|
|
"type": "object"
|
|
},
|
|
"ComplianceConstraint": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"category": {
|
|
"enum": [
|
|
"pii",
|
|
"phi",
|
|
"pci",
|
|
"soc2",
|
|
"gdpr",
|
|
"hipaa",
|
|
"data_residency",
|
|
"retention",
|
|
"audit",
|
|
"other"
|
|
],
|
|
"title": "Category",
|
|
"type": "string"
|
|
},
|
|
"requirement": {
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"title": "Requirement",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"category",
|
|
"requirement"
|
|
],
|
|
"title": "ComplianceConstraint",
|
|
"type": "object"
|
|
},
|
|
"DataContract": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"direction": {
|
|
"enum": [
|
|
"inbound",
|
|
"outbound",
|
|
"bidirectional"
|
|
],
|
|
"title": "Direction",
|
|
"type": "string"
|
|
},
|
|
"content_type": {
|
|
"default": "application/json",
|
|
"maxLength": 120,
|
|
"title": "Content Type",
|
|
"type": "string"
|
|
},
|
|
"schema_ref": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 500,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Schema Ref"
|
|
},
|
|
"fields": {
|
|
"items": {
|
|
"$ref": "#/$defs/FieldMapping"
|
|
},
|
|
"maxItems": 200,
|
|
"title": "Fields",
|
|
"type": "array"
|
|
},
|
|
"example_payload": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Example Payload"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"direction"
|
|
],
|
|
"title": "DataContract",
|
|
"type": "object"
|
|
},
|
|
"EnvironmentSpec": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 64,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"purpose": {
|
|
"enum": [
|
|
"dev",
|
|
"test",
|
|
"sandbox",
|
|
"staging",
|
|
"prod"
|
|
],
|
|
"title": "Purpose",
|
|
"type": "string"
|
|
},
|
|
"endpoint_refs": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Endpoint Refs",
|
|
"type": "array"
|
|
},
|
|
"object_storage_ref": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 128,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Object Storage Ref"
|
|
},
|
|
"observability_ref": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 128,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Observability Ref"
|
|
},
|
|
"mutable": {
|
|
"default": false,
|
|
"title": "Mutable",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"purpose"
|
|
],
|
|
"title": "EnvironmentSpec",
|
|
"type": "object"
|
|
},
|
|
"FieldMapping": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"source": {
|
|
"maxLength": 160,
|
|
"minLength": 1,
|
|
"title": "Source",
|
|
"type": "string"
|
|
},
|
|
"target": {
|
|
"maxLength": 160,
|
|
"minLength": 1,
|
|
"title": "Target",
|
|
"type": "string"
|
|
},
|
|
"transform": {
|
|
"default": "copy",
|
|
"maxLength": 500,
|
|
"title": "Transform",
|
|
"type": "string"
|
|
},
|
|
"required": {
|
|
"default": true,
|
|
"title": "Required",
|
|
"type": "boolean"
|
|
},
|
|
"pii": {
|
|
"default": false,
|
|
"title": "Pii",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"title": "FieldMapping",
|
|
"type": "object"
|
|
},
|
|
"IntegrationRequirements": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"integration_id": {
|
|
"pattern": "^[a-z][a-z0-9-]{2,63}$",
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"maxLength": 160,
|
|
"minLength": 1,
|
|
"title": "Title",
|
|
"type": "string"
|
|
},
|
|
"systems": {
|
|
"items": {
|
|
"$ref": "#/$defs/SystemSpec"
|
|
},
|
|
"maxItems": 12,
|
|
"minItems": 1,
|
|
"title": "Systems",
|
|
"type": "array"
|
|
},
|
|
"auth_methods": {
|
|
"items": {
|
|
"$ref": "#/$defs/AuthMethod"
|
|
},
|
|
"maxItems": 12,
|
|
"title": "Auth Methods",
|
|
"type": "array"
|
|
},
|
|
"data_contracts": {
|
|
"items": {
|
|
"$ref": "#/$defs/DataContract"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Data Contracts",
|
|
"type": "array"
|
|
},
|
|
"rate_limits": {
|
|
"items": {
|
|
"$ref": "#/$defs/RateLimitSpec"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Rate Limits",
|
|
"type": "array"
|
|
},
|
|
"environments": {
|
|
"items": {
|
|
"$ref": "#/$defs/EnvironmentSpec"
|
|
},
|
|
"maxItems": 12,
|
|
"title": "Environments",
|
|
"type": "array"
|
|
},
|
|
"compliance_constraints": {
|
|
"items": {
|
|
"$ref": "#/$defs/ComplianceConstraint"
|
|
},
|
|
"maxItems": 30,
|
|
"title": "Compliance Constraints",
|
|
"type": "array"
|
|
},
|
|
"success_criteria": {
|
|
"items": {
|
|
"$ref": "#/$defs/SuccessCriterion"
|
|
},
|
|
"maxItems": 20,
|
|
"minItems": 1,
|
|
"title": "Success Criteria",
|
|
"type": "array"
|
|
},
|
|
"external_host_allowlist": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 50,
|
|
"title": "External Host Allowlist",
|
|
"type": "array"
|
|
},
|
|
"repository_write_allowlist": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Repository Write Allowlist",
|
|
"type": "array"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 4000,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Notes"
|
|
},
|
|
"dry_run": {
|
|
"default": true,
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"integration_id",
|
|
"title",
|
|
"systems",
|
|
"success_criteria"
|
|
],
|
|
"title": "IntegrationRequirements",
|
|
"type": "object"
|
|
},
|
|
"RateLimitSpec": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"system_name": {
|
|
"maxLength": 80,
|
|
"minLength": 1,
|
|
"title": "System Name",
|
|
"type": "string"
|
|
},
|
|
"max_requests": {
|
|
"maximum": 1000000,
|
|
"minimum": 1,
|
|
"title": "Max Requests",
|
|
"type": "integer"
|
|
},
|
|
"per_seconds": {
|
|
"maximum": 86400,
|
|
"minimum": 1,
|
|
"title": "Per Seconds",
|
|
"type": "integer"
|
|
},
|
|
"burst": {
|
|
"anyOf": [
|
|
{
|
|
"maximum": 1000000,
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Burst"
|
|
},
|
|
"retry_after_header": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 80,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "Retry-After",
|
|
"title": "Retry After Header"
|
|
}
|
|
},
|
|
"required": [
|
|
"system_name",
|
|
"max_requests",
|
|
"per_seconds"
|
|
],
|
|
"title": "RateLimitSpec",
|
|
"type": "object"
|
|
},
|
|
"SuccessCriterion": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"measurement": {
|
|
"maxLength": 500,
|
|
"minLength": 1,
|
|
"title": "Measurement",
|
|
"type": "string"
|
|
},
|
|
"target": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"title": "Target",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"measurement",
|
|
"target"
|
|
],
|
|
"title": "SuccessCriterion",
|
|
"type": "object"
|
|
},
|
|
"SystemSpec": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 80,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"enum": [
|
|
"rest_api",
|
|
"webhook",
|
|
"database",
|
|
"object_storage",
|
|
"observability",
|
|
"gitea",
|
|
"kubernetes",
|
|
"argo_cd",
|
|
"queue",
|
|
"other"
|
|
],
|
|
"title": "Kind",
|
|
"type": "string"
|
|
},
|
|
"base_url": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 2048,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Base Url"
|
|
},
|
|
"environment": {
|
|
"default": "sandbox",
|
|
"maxLength": 64,
|
|
"title": "Environment",
|
|
"type": "string"
|
|
},
|
|
"owner": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 120,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Owner"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 2000,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Notes"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"kind"
|
|
],
|
|
"title": "SystemSpec",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"requirements": {
|
|
"$ref": "#/$defs/IntegrationRequirements"
|
|
},
|
|
"create_artifacts": {
|
|
"default": true,
|
|
"title": "Create Artifacts",
|
|
"type": "boolean"
|
|
},
|
|
"dry_run": {
|
|
"default": true,
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"requirements"
|
|
],
|
|
"title": "DesignIntegrationRequest",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"output_schema": {
|
|
"$defs": {
|
|
"ArtifactRecord": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"path": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
},
|
|
"sha256": {
|
|
"title": "Sha256",
|
|
"type": "string"
|
|
},
|
|
"size_bytes": {
|
|
"minimum": 0,
|
|
"title": "Size Bytes",
|
|
"type": "integer"
|
|
},
|
|
"mime_type": {
|
|
"title": "Mime Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"sha256",
|
|
"size_bytes",
|
|
"mime_type"
|
|
],
|
|
"title": "ArtifactRecord",
|
|
"type": "object"
|
|
},
|
|
"AuditEntry": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"ts": {
|
|
"title": "Ts",
|
|
"type": "string"
|
|
},
|
|
"action": {
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"additionalProperties": true,
|
|
"title": "Details",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"ts",
|
|
"action",
|
|
"integration_id"
|
|
],
|
|
"title": "AuditEntry",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"status": {
|
|
"enum": [
|
|
"ok",
|
|
"needs_setup",
|
|
"blocked",
|
|
"failed"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"dry_run": {
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
},
|
|
"audit": {
|
|
"items": {
|
|
"$ref": "#/$defs/AuditEntry"
|
|
},
|
|
"title": "Audit",
|
|
"type": "array"
|
|
},
|
|
"warnings": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Warnings",
|
|
"type": "array"
|
|
},
|
|
"residual_risks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Residual Risks",
|
|
"type": "array"
|
|
},
|
|
"architecture_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Architecture Path"
|
|
},
|
|
"mapping_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Mapping Path"
|
|
},
|
|
"plan_digest": {
|
|
"title": "Plan Digest",
|
|
"type": "string"
|
|
},
|
|
"artifacts": {
|
|
"items": {
|
|
"$ref": "#/$defs/ArtifactRecord"
|
|
},
|
|
"title": "Artifacts",
|
|
"type": "array"
|
|
},
|
|
"architecture_summary": {
|
|
"title": "Architecture Summary",
|
|
"type": "string"
|
|
},
|
|
"field_mapping_count": {
|
|
"minimum": 0,
|
|
"title": "Field Mapping Count",
|
|
"type": "integer"
|
|
},
|
|
"required_setup": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Required Setup",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"status",
|
|
"integration_id",
|
|
"dry_run",
|
|
"plan_digest",
|
|
"architecture_summary",
|
|
"field_mapping_count"
|
|
],
|
|
"title": "DesignIntegrationResult",
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "generate_connector",
|
|
"description": "Generate a minimal workspace-contained connector scaffold with no deployment or repository mutation",
|
|
"handler": "generate_connector",
|
|
"tags": [],
|
|
"scopes": [],
|
|
"stream": false,
|
|
"policy": {
|
|
"timeout_seconds": 120.0,
|
|
"idempotent": true,
|
|
"max_retries": 0,
|
|
"cost_class": "deterministic",
|
|
"allow_scope_expansion": false,
|
|
"grant_mode": null,
|
|
"grant_allow_patterns": [],
|
|
"grant_deny_patterns": [],
|
|
"grant_outputs_prefix": null,
|
|
"grant_write_prefixes": [],
|
|
"grant_ttl_seconds": null,
|
|
"grant_run_timeout_seconds": null,
|
|
"grant_approval_timeout_seconds": null,
|
|
"grant_scope_approval_timeout_seconds": null
|
|
},
|
|
"input_schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"request"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"request": {
|
|
"$defs": {
|
|
"AuthMethod": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"system_name": {
|
|
"maxLength": 80,
|
|
"minLength": 1,
|
|
"title": "System Name",
|
|
"type": "string"
|
|
},
|
|
"auth_type": {
|
|
"enum": [
|
|
"none",
|
|
"api_key",
|
|
"bearer_token",
|
|
"oauth2_client_credentials",
|
|
"hmac_signature",
|
|
"mtls",
|
|
"basic",
|
|
"oidc"
|
|
],
|
|
"title": "Auth Type",
|
|
"type": "string"
|
|
},
|
|
"secret_ref": {
|
|
"anyOf": [
|
|
{
|
|
"pattern": "^[A-Z][A-Z0-9_]{2,127}$",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"description": "Caller-managed secret reference name only; never a raw secret value.",
|
|
"title": "Secret Ref"
|
|
},
|
|
"header_name": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 80,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Header Name"
|
|
},
|
|
"token_url": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 2048,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Token Url"
|
|
},
|
|
"scopes": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Scopes",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"system_name",
|
|
"auth_type"
|
|
],
|
|
"title": "AuthMethod",
|
|
"type": "object"
|
|
},
|
|
"ComplianceConstraint": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"category": {
|
|
"enum": [
|
|
"pii",
|
|
"phi",
|
|
"pci",
|
|
"soc2",
|
|
"gdpr",
|
|
"hipaa",
|
|
"data_residency",
|
|
"retention",
|
|
"audit",
|
|
"other"
|
|
],
|
|
"title": "Category",
|
|
"type": "string"
|
|
},
|
|
"requirement": {
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"title": "Requirement",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"category",
|
|
"requirement"
|
|
],
|
|
"title": "ComplianceConstraint",
|
|
"type": "object"
|
|
},
|
|
"DataContract": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"direction": {
|
|
"enum": [
|
|
"inbound",
|
|
"outbound",
|
|
"bidirectional"
|
|
],
|
|
"title": "Direction",
|
|
"type": "string"
|
|
},
|
|
"content_type": {
|
|
"default": "application/json",
|
|
"maxLength": 120,
|
|
"title": "Content Type",
|
|
"type": "string"
|
|
},
|
|
"schema_ref": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 500,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Schema Ref"
|
|
},
|
|
"fields": {
|
|
"items": {
|
|
"$ref": "#/$defs/FieldMapping"
|
|
},
|
|
"maxItems": 200,
|
|
"title": "Fields",
|
|
"type": "array"
|
|
},
|
|
"example_payload": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Example Payload"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"direction"
|
|
],
|
|
"title": "DataContract",
|
|
"type": "object"
|
|
},
|
|
"EnvironmentSpec": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 64,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"purpose": {
|
|
"enum": [
|
|
"dev",
|
|
"test",
|
|
"sandbox",
|
|
"staging",
|
|
"prod"
|
|
],
|
|
"title": "Purpose",
|
|
"type": "string"
|
|
},
|
|
"endpoint_refs": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Endpoint Refs",
|
|
"type": "array"
|
|
},
|
|
"object_storage_ref": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 128,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Object Storage Ref"
|
|
},
|
|
"observability_ref": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 128,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Observability Ref"
|
|
},
|
|
"mutable": {
|
|
"default": false,
|
|
"title": "Mutable",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"purpose"
|
|
],
|
|
"title": "EnvironmentSpec",
|
|
"type": "object"
|
|
},
|
|
"FieldMapping": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"source": {
|
|
"maxLength": 160,
|
|
"minLength": 1,
|
|
"title": "Source",
|
|
"type": "string"
|
|
},
|
|
"target": {
|
|
"maxLength": 160,
|
|
"minLength": 1,
|
|
"title": "Target",
|
|
"type": "string"
|
|
},
|
|
"transform": {
|
|
"default": "copy",
|
|
"maxLength": 500,
|
|
"title": "Transform",
|
|
"type": "string"
|
|
},
|
|
"required": {
|
|
"default": true,
|
|
"title": "Required",
|
|
"type": "boolean"
|
|
},
|
|
"pii": {
|
|
"default": false,
|
|
"title": "Pii",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"title": "FieldMapping",
|
|
"type": "object"
|
|
},
|
|
"IntegrationRequirements": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"integration_id": {
|
|
"pattern": "^[a-z][a-z0-9-]{2,63}$",
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"maxLength": 160,
|
|
"minLength": 1,
|
|
"title": "Title",
|
|
"type": "string"
|
|
},
|
|
"systems": {
|
|
"items": {
|
|
"$ref": "#/$defs/SystemSpec"
|
|
},
|
|
"maxItems": 12,
|
|
"minItems": 1,
|
|
"title": "Systems",
|
|
"type": "array"
|
|
},
|
|
"auth_methods": {
|
|
"items": {
|
|
"$ref": "#/$defs/AuthMethod"
|
|
},
|
|
"maxItems": 12,
|
|
"title": "Auth Methods",
|
|
"type": "array"
|
|
},
|
|
"data_contracts": {
|
|
"items": {
|
|
"$ref": "#/$defs/DataContract"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Data Contracts",
|
|
"type": "array"
|
|
},
|
|
"rate_limits": {
|
|
"items": {
|
|
"$ref": "#/$defs/RateLimitSpec"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Rate Limits",
|
|
"type": "array"
|
|
},
|
|
"environments": {
|
|
"items": {
|
|
"$ref": "#/$defs/EnvironmentSpec"
|
|
},
|
|
"maxItems": 12,
|
|
"title": "Environments",
|
|
"type": "array"
|
|
},
|
|
"compliance_constraints": {
|
|
"items": {
|
|
"$ref": "#/$defs/ComplianceConstraint"
|
|
},
|
|
"maxItems": 30,
|
|
"title": "Compliance Constraints",
|
|
"type": "array"
|
|
},
|
|
"success_criteria": {
|
|
"items": {
|
|
"$ref": "#/$defs/SuccessCriterion"
|
|
},
|
|
"maxItems": 20,
|
|
"minItems": 1,
|
|
"title": "Success Criteria",
|
|
"type": "array"
|
|
},
|
|
"external_host_allowlist": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 50,
|
|
"title": "External Host Allowlist",
|
|
"type": "array"
|
|
},
|
|
"repository_write_allowlist": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Repository Write Allowlist",
|
|
"type": "array"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 4000,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Notes"
|
|
},
|
|
"dry_run": {
|
|
"default": true,
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"integration_id",
|
|
"title",
|
|
"systems",
|
|
"success_criteria"
|
|
],
|
|
"title": "IntegrationRequirements",
|
|
"type": "object"
|
|
},
|
|
"RateLimitSpec": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"system_name": {
|
|
"maxLength": 80,
|
|
"minLength": 1,
|
|
"title": "System Name",
|
|
"type": "string"
|
|
},
|
|
"max_requests": {
|
|
"maximum": 1000000,
|
|
"minimum": 1,
|
|
"title": "Max Requests",
|
|
"type": "integer"
|
|
},
|
|
"per_seconds": {
|
|
"maximum": 86400,
|
|
"minimum": 1,
|
|
"title": "Per Seconds",
|
|
"type": "integer"
|
|
},
|
|
"burst": {
|
|
"anyOf": [
|
|
{
|
|
"maximum": 1000000,
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Burst"
|
|
},
|
|
"retry_after_header": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 80,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "Retry-After",
|
|
"title": "Retry After Header"
|
|
}
|
|
},
|
|
"required": [
|
|
"system_name",
|
|
"max_requests",
|
|
"per_seconds"
|
|
],
|
|
"title": "RateLimitSpec",
|
|
"type": "object"
|
|
},
|
|
"SuccessCriterion": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"measurement": {
|
|
"maxLength": 500,
|
|
"minLength": 1,
|
|
"title": "Measurement",
|
|
"type": "string"
|
|
},
|
|
"target": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"title": "Target",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"measurement",
|
|
"target"
|
|
],
|
|
"title": "SuccessCriterion",
|
|
"type": "object"
|
|
},
|
|
"SystemSpec": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 80,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"enum": [
|
|
"rest_api",
|
|
"webhook",
|
|
"database",
|
|
"object_storage",
|
|
"observability",
|
|
"gitea",
|
|
"kubernetes",
|
|
"argo_cd",
|
|
"queue",
|
|
"other"
|
|
],
|
|
"title": "Kind",
|
|
"type": "string"
|
|
},
|
|
"base_url": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 2048,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Base Url"
|
|
},
|
|
"environment": {
|
|
"default": "sandbox",
|
|
"maxLength": 64,
|
|
"title": "Environment",
|
|
"type": "string"
|
|
},
|
|
"owner": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 120,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Owner"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 2000,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Notes"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"kind"
|
|
],
|
|
"title": "SystemSpec",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"requirements": {
|
|
"$ref": "#/$defs/IntegrationRequirements"
|
|
},
|
|
"connector_language": {
|
|
"default": "python",
|
|
"enum": [
|
|
"python",
|
|
"typescript"
|
|
],
|
|
"title": "Connector Language",
|
|
"type": "string"
|
|
},
|
|
"include_tests": {
|
|
"default": true,
|
|
"title": "Include Tests",
|
|
"type": "boolean"
|
|
},
|
|
"dry_run": {
|
|
"default": true,
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
},
|
|
"external_host_allowlist": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 50,
|
|
"title": "External Host Allowlist",
|
|
"type": "array"
|
|
},
|
|
"repository_write_allowlist": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Repository Write Allowlist",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"requirements"
|
|
],
|
|
"title": "GenerateConnectorRequest",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"output_schema": {
|
|
"$defs": {
|
|
"ArtifactRecord": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"path": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
},
|
|
"sha256": {
|
|
"title": "Sha256",
|
|
"type": "string"
|
|
},
|
|
"size_bytes": {
|
|
"minimum": 0,
|
|
"title": "Size Bytes",
|
|
"type": "integer"
|
|
},
|
|
"mime_type": {
|
|
"title": "Mime Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"sha256",
|
|
"size_bytes",
|
|
"mime_type"
|
|
],
|
|
"title": "ArtifactRecord",
|
|
"type": "object"
|
|
},
|
|
"AuditEntry": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"ts": {
|
|
"title": "Ts",
|
|
"type": "string"
|
|
},
|
|
"action": {
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"additionalProperties": true,
|
|
"title": "Details",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"ts",
|
|
"action",
|
|
"integration_id"
|
|
],
|
|
"title": "AuditEntry",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"status": {
|
|
"enum": [
|
|
"ok",
|
|
"needs_setup",
|
|
"blocked",
|
|
"failed"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"dry_run": {
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
},
|
|
"audit": {
|
|
"items": {
|
|
"$ref": "#/$defs/AuditEntry"
|
|
},
|
|
"title": "Audit",
|
|
"type": "array"
|
|
},
|
|
"warnings": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Warnings",
|
|
"type": "array"
|
|
},
|
|
"residual_risks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Residual Risks",
|
|
"type": "array"
|
|
},
|
|
"connector_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Connector Path"
|
|
},
|
|
"test_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Test Path"
|
|
},
|
|
"plan_digest": {
|
|
"title": "Plan Digest",
|
|
"type": "string"
|
|
},
|
|
"artifacts": {
|
|
"items": {
|
|
"$ref": "#/$defs/ArtifactRecord"
|
|
},
|
|
"title": "Artifacts",
|
|
"type": "array"
|
|
},
|
|
"generated_files": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Generated Files",
|
|
"type": "array"
|
|
},
|
|
"blocked_actions": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Blocked Actions",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"status",
|
|
"integration_id",
|
|
"dry_run",
|
|
"plan_digest"
|
|
],
|
|
"title": "GenerateConnectorResult",
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "validate_contract",
|
|
"description": "Validate OpenAPI, JSON Schema, and webhook contracts with deterministic fixtures",
|
|
"handler": "validate_contract",
|
|
"tags": [],
|
|
"scopes": [],
|
|
"stream": false,
|
|
"policy": {
|
|
"timeout_seconds": 120.0,
|
|
"idempotent": true,
|
|
"max_retries": 0,
|
|
"cost_class": "deterministic",
|
|
"allow_scope_expansion": false,
|
|
"grant_mode": null,
|
|
"grant_allow_patterns": [],
|
|
"grant_deny_patterns": [],
|
|
"grant_outputs_prefix": null,
|
|
"grant_write_prefixes": [],
|
|
"grant_ttl_seconds": null,
|
|
"grant_run_timeout_seconds": null,
|
|
"grant_approval_timeout_seconds": null,
|
|
"grant_scope_approval_timeout_seconds": null
|
|
},
|
|
"input_schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"request"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"request": {
|
|
"$defs": {
|
|
"ContractArtifact": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"enum": [
|
|
"json_schema",
|
|
"openapi_3",
|
|
"webhook"
|
|
],
|
|
"title": "Kind",
|
|
"type": "string"
|
|
},
|
|
"schema_doc": {
|
|
"additionalProperties": true,
|
|
"title": "Schema Doc",
|
|
"type": "object"
|
|
},
|
|
"fixtures": {
|
|
"items": {
|
|
"$ref": "#/$defs/ContractFixture"
|
|
},
|
|
"maxItems": 50,
|
|
"title": "Fixtures",
|
|
"type": "array"
|
|
},
|
|
"signature_header": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 120,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Signature Header"
|
|
},
|
|
"secret_ref": {
|
|
"anyOf": [
|
|
{
|
|
"pattern": "^[A-Z][A-Z0-9_]{2,127}$",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Secret Ref"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"kind",
|
|
"schema_doc"
|
|
],
|
|
"title": "ContractArtifact",
|
|
"type": "object"
|
|
},
|
|
"ContractFixture": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"payload": {
|
|
"additionalProperties": true,
|
|
"title": "Payload",
|
|
"type": "object"
|
|
},
|
|
"should_pass": {
|
|
"default": true,
|
|
"title": "Should Pass",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"payload"
|
|
],
|
|
"title": "ContractFixture",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"integration_id": {
|
|
"pattern": "^[a-z][a-z0-9-]{2,63}$",
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"contracts": {
|
|
"items": {
|
|
"$ref": "#/$defs/ContractArtifact"
|
|
},
|
|
"maxItems": 20,
|
|
"minItems": 1,
|
|
"title": "Contracts",
|
|
"type": "array"
|
|
},
|
|
"fail_on_drift": {
|
|
"default": true,
|
|
"title": "Fail On Drift",
|
|
"type": "boolean"
|
|
},
|
|
"dry_run": {
|
|
"default": true,
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"integration_id",
|
|
"contracts"
|
|
],
|
|
"title": "ValidateContractRequest",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"output_schema": {
|
|
"$defs": {
|
|
"ArtifactRecord": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"path": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
},
|
|
"sha256": {
|
|
"title": "Sha256",
|
|
"type": "string"
|
|
},
|
|
"size_bytes": {
|
|
"minimum": 0,
|
|
"title": "Size Bytes",
|
|
"type": "integer"
|
|
},
|
|
"mime_type": {
|
|
"title": "Mime Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"sha256",
|
|
"size_bytes",
|
|
"mime_type"
|
|
],
|
|
"title": "ArtifactRecord",
|
|
"type": "object"
|
|
},
|
|
"AuditEntry": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"ts": {
|
|
"title": "Ts",
|
|
"type": "string"
|
|
},
|
|
"action": {
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"additionalProperties": true,
|
|
"title": "Details",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"ts",
|
|
"action",
|
|
"integration_id"
|
|
],
|
|
"title": "AuditEntry",
|
|
"type": "object"
|
|
},
|
|
"ContractCheck": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"title": "Kind",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"pass",
|
|
"fail",
|
|
"warn"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"findings": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Findings",
|
|
"type": "array"
|
|
},
|
|
"fixture_results": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Fixture Results",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"kind",
|
|
"status"
|
|
],
|
|
"title": "ContractCheck",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"status": {
|
|
"enum": [
|
|
"ok",
|
|
"needs_setup",
|
|
"blocked",
|
|
"failed"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"dry_run": {
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
},
|
|
"audit": {
|
|
"items": {
|
|
"$ref": "#/$defs/AuditEntry"
|
|
},
|
|
"title": "Audit",
|
|
"type": "array"
|
|
},
|
|
"warnings": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Warnings",
|
|
"type": "array"
|
|
},
|
|
"residual_risks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Residual Risks",
|
|
"type": "array"
|
|
},
|
|
"contract_report_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Contract Report Path"
|
|
},
|
|
"artifacts": {
|
|
"items": {
|
|
"$ref": "#/$defs/ArtifactRecord"
|
|
},
|
|
"title": "Artifacts",
|
|
"type": "array"
|
|
},
|
|
"checks": {
|
|
"items": {
|
|
"$ref": "#/$defs/ContractCheck"
|
|
},
|
|
"title": "Checks",
|
|
"type": "array"
|
|
},
|
|
"drift_detected": {
|
|
"default": false,
|
|
"title": "Drift Detected",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"status",
|
|
"integration_id",
|
|
"dry_run"
|
|
],
|
|
"title": "ValidateContractResult",
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "run_acceptance",
|
|
"description": "Run dry-run or allowlisted acceptance checks using endpoint metadata and secret references",
|
|
"handler": "run_acceptance",
|
|
"tags": [],
|
|
"scopes": [],
|
|
"stream": false,
|
|
"policy": {
|
|
"timeout_seconds": 180.0,
|
|
"idempotent": true,
|
|
"max_retries": 0,
|
|
"cost_class": "deterministic",
|
|
"allow_scope_expansion": false,
|
|
"grant_mode": null,
|
|
"grant_allow_patterns": [],
|
|
"grant_deny_patterns": [],
|
|
"grant_outputs_prefix": null,
|
|
"grant_write_prefixes": [],
|
|
"grant_ttl_seconds": null,
|
|
"grant_run_timeout_seconds": null,
|
|
"grant_approval_timeout_seconds": null,
|
|
"grant_scope_approval_timeout_seconds": null
|
|
},
|
|
"input_schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"request"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"request": {
|
|
"$defs": {
|
|
"ContractArtifact": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"enum": [
|
|
"json_schema",
|
|
"openapi_3",
|
|
"webhook"
|
|
],
|
|
"title": "Kind",
|
|
"type": "string"
|
|
},
|
|
"schema_doc": {
|
|
"additionalProperties": true,
|
|
"title": "Schema Doc",
|
|
"type": "object"
|
|
},
|
|
"fixtures": {
|
|
"items": {
|
|
"$ref": "#/$defs/ContractFixture"
|
|
},
|
|
"maxItems": 50,
|
|
"title": "Fixtures",
|
|
"type": "array"
|
|
},
|
|
"signature_header": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 120,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Signature Header"
|
|
},
|
|
"secret_ref": {
|
|
"anyOf": [
|
|
{
|
|
"pattern": "^[A-Z][A-Z0-9_]{2,127}$",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Secret Ref"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"kind",
|
|
"schema_doc"
|
|
],
|
|
"title": "ContractArtifact",
|
|
"type": "object"
|
|
},
|
|
"ContractFixture": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"payload": {
|
|
"additionalProperties": true,
|
|
"title": "Payload",
|
|
"type": "object"
|
|
},
|
|
"should_pass": {
|
|
"default": true,
|
|
"title": "Should Pass",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"payload"
|
|
],
|
|
"title": "ContractFixture",
|
|
"type": "object"
|
|
},
|
|
"EndpointTest": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"method": {
|
|
"default": "POST",
|
|
"enum": [
|
|
"GET",
|
|
"POST",
|
|
"PUT",
|
|
"PATCH",
|
|
"DELETE"
|
|
],
|
|
"title": "Method",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"maxLength": 2048,
|
|
"title": "Url",
|
|
"type": "string"
|
|
},
|
|
"expected_status": {
|
|
"default": 200,
|
|
"maximum": 599,
|
|
"minimum": 100,
|
|
"title": "Expected Status",
|
|
"type": "integer"
|
|
},
|
|
"request_json": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Request Json"
|
|
},
|
|
"required_secret_refs": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 10,
|
|
"title": "Required Secret Refs",
|
|
"type": "array"
|
|
},
|
|
"idempotency_key": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 160,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Idempotency Key"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"url"
|
|
],
|
|
"title": "EndpointTest",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"integration_id": {
|
|
"pattern": "^[a-z][a-z0-9-]{2,63}$",
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"endpoint_tests": {
|
|
"items": {
|
|
"$ref": "#/$defs/EndpointTest"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Endpoint Tests",
|
|
"type": "array"
|
|
},
|
|
"contract_fixtures": {
|
|
"items": {
|
|
"$ref": "#/$defs/ContractArtifact"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Contract Fixtures",
|
|
"type": "array"
|
|
},
|
|
"external_host_allowlist": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 50,
|
|
"title": "External Host Allowlist",
|
|
"type": "array"
|
|
},
|
|
"allow_network": {
|
|
"default": false,
|
|
"title": "Allow Network",
|
|
"type": "boolean"
|
|
},
|
|
"max_retries": {
|
|
"default": 1,
|
|
"maximum": 3,
|
|
"minimum": 0,
|
|
"title": "Max Retries",
|
|
"type": "integer"
|
|
},
|
|
"timeout_seconds": {
|
|
"default": 8.0,
|
|
"maximum": 30.0,
|
|
"minimum": 1.0,
|
|
"title": "Timeout Seconds",
|
|
"type": "number"
|
|
},
|
|
"dry_run": {
|
|
"default": true,
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"integration_id"
|
|
],
|
|
"title": "RunAcceptanceRequest",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"output_schema": {
|
|
"$defs": {
|
|
"AcceptanceStepResult": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"pass",
|
|
"fail",
|
|
"skipped",
|
|
"blocked"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"attempts": {
|
|
"minimum": 0,
|
|
"title": "Attempts",
|
|
"type": "integer"
|
|
},
|
|
"detail": {
|
|
"title": "Detail",
|
|
"type": "string"
|
|
},
|
|
"idempotency_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Idempotency Key"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"status",
|
|
"attempts",
|
|
"detail"
|
|
],
|
|
"title": "AcceptanceStepResult",
|
|
"type": "object"
|
|
},
|
|
"ArtifactRecord": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"path": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
},
|
|
"sha256": {
|
|
"title": "Sha256",
|
|
"type": "string"
|
|
},
|
|
"size_bytes": {
|
|
"minimum": 0,
|
|
"title": "Size Bytes",
|
|
"type": "integer"
|
|
},
|
|
"mime_type": {
|
|
"title": "Mime Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"sha256",
|
|
"size_bytes",
|
|
"mime_type"
|
|
],
|
|
"title": "ArtifactRecord",
|
|
"type": "object"
|
|
},
|
|
"AuditEntry": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"ts": {
|
|
"title": "Ts",
|
|
"type": "string"
|
|
},
|
|
"action": {
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"additionalProperties": true,
|
|
"title": "Details",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"ts",
|
|
"action",
|
|
"integration_id"
|
|
],
|
|
"title": "AuditEntry",
|
|
"type": "object"
|
|
},
|
|
"ContractCheck": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"title": "Kind",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"pass",
|
|
"fail",
|
|
"warn"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"findings": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Findings",
|
|
"type": "array"
|
|
},
|
|
"fixture_results": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Fixture Results",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"kind",
|
|
"status"
|
|
],
|
|
"title": "ContractCheck",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"status": {
|
|
"enum": [
|
|
"ok",
|
|
"needs_setup",
|
|
"blocked",
|
|
"failed"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"dry_run": {
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
},
|
|
"audit": {
|
|
"items": {
|
|
"$ref": "#/$defs/AuditEntry"
|
|
},
|
|
"title": "Audit",
|
|
"type": "array"
|
|
},
|
|
"warnings": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Warnings",
|
|
"type": "array"
|
|
},
|
|
"residual_risks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Residual Risks",
|
|
"type": "array"
|
|
},
|
|
"acceptance_report_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Acceptance Report Path"
|
|
},
|
|
"artifacts": {
|
|
"items": {
|
|
"$ref": "#/$defs/ArtifactRecord"
|
|
},
|
|
"title": "Artifacts",
|
|
"type": "array"
|
|
},
|
|
"step_results": {
|
|
"items": {
|
|
"$ref": "#/$defs/AcceptanceStepResult"
|
|
},
|
|
"title": "Step Results",
|
|
"type": "array"
|
|
},
|
|
"contract_results": {
|
|
"items": {
|
|
"$ref": "#/$defs/ContractCheck"
|
|
},
|
|
"title": "Contract Results",
|
|
"type": "array"
|
|
},
|
|
"network_calls_made": {
|
|
"minimum": 0,
|
|
"title": "Network Calls Made",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"status",
|
|
"integration_id",
|
|
"dry_run",
|
|
"network_calls_made"
|
|
],
|
|
"title": "RunAcceptanceResult",
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "prepare_handoff",
|
|
"description": "Prepare rollout, rollback, monitoring, and operator handoff documentation with approval-gated delivery planning",
|
|
"handler": "prepare_handoff",
|
|
"tags": [],
|
|
"scopes": [],
|
|
"stream": false,
|
|
"policy": {
|
|
"timeout_seconds": 120.0,
|
|
"idempotent": true,
|
|
"max_retries": 0,
|
|
"cost_class": "deterministic",
|
|
"allow_scope_expansion": false,
|
|
"grant_mode": null,
|
|
"grant_allow_patterns": [],
|
|
"grant_deny_patterns": [],
|
|
"grant_outputs_prefix": null,
|
|
"grant_write_prefixes": [],
|
|
"grant_ttl_seconds": null,
|
|
"grant_run_timeout_seconds": null,
|
|
"grant_approval_timeout_seconds": null,
|
|
"grant_scope_approval_timeout_seconds": null
|
|
},
|
|
"input_schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"request"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"request": {
|
|
"$defs": {
|
|
"HandoffSection": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"heading": {
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "Heading",
|
|
"type": "string"
|
|
},
|
|
"body": {
|
|
"maxLength": 8000,
|
|
"minLength": 1,
|
|
"title": "Body",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"heading",
|
|
"body"
|
|
],
|
|
"title": "HandoffSection",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"integration_id": {
|
|
"pattern": "^[a-z][a-z0-9-]{2,63}$",
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"maxLength": 160,
|
|
"minLength": 1,
|
|
"title": "Title",
|
|
"type": "string"
|
|
},
|
|
"rollout_steps": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 30,
|
|
"minItems": 1,
|
|
"title": "Rollout Steps",
|
|
"type": "array"
|
|
},
|
|
"rollback_steps": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 30,
|
|
"minItems": 1,
|
|
"title": "Rollback Steps",
|
|
"type": "array"
|
|
},
|
|
"monitoring_checks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 30,
|
|
"minItems": 1,
|
|
"title": "Monitoring Checks",
|
|
"type": "array"
|
|
},
|
|
"operator_notes": {
|
|
"items": {
|
|
"$ref": "#/$defs/HandoffSection"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Operator Notes",
|
|
"type": "array"
|
|
},
|
|
"delivery_actions": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Delivery Actions",
|
|
"type": "array"
|
|
},
|
|
"plan_digest": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 128,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Plan Digest"
|
|
},
|
|
"approval_phrase": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 64,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Approval Phrase"
|
|
},
|
|
"approve_delivery": {
|
|
"default": false,
|
|
"title": "Approve Delivery",
|
|
"type": "boolean"
|
|
},
|
|
"dry_run": {
|
|
"default": true,
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"integration_id",
|
|
"title",
|
|
"rollout_steps",
|
|
"rollback_steps",
|
|
"monitoring_checks"
|
|
],
|
|
"title": "PrepareHandoffRequest",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"output_schema": {
|
|
"$defs": {
|
|
"ArtifactRecord": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"path": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
},
|
|
"sha256": {
|
|
"title": "Sha256",
|
|
"type": "string"
|
|
},
|
|
"size_bytes": {
|
|
"minimum": 0,
|
|
"title": "Size Bytes",
|
|
"type": "integer"
|
|
},
|
|
"mime_type": {
|
|
"title": "Mime Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"sha256",
|
|
"size_bytes",
|
|
"mime_type"
|
|
],
|
|
"title": "ArtifactRecord",
|
|
"type": "object"
|
|
},
|
|
"AuditEntry": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"ts": {
|
|
"title": "Ts",
|
|
"type": "string"
|
|
},
|
|
"action": {
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"additionalProperties": true,
|
|
"title": "Details",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"ts",
|
|
"action",
|
|
"integration_id"
|
|
],
|
|
"title": "AuditEntry",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"status": {
|
|
"enum": [
|
|
"ok",
|
|
"needs_setup",
|
|
"blocked",
|
|
"failed"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"integration_id": {
|
|
"title": "Integration Id",
|
|
"type": "string"
|
|
},
|
|
"dry_run": {
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
},
|
|
"audit": {
|
|
"items": {
|
|
"$ref": "#/$defs/AuditEntry"
|
|
},
|
|
"title": "Audit",
|
|
"type": "array"
|
|
},
|
|
"warnings": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Warnings",
|
|
"type": "array"
|
|
},
|
|
"residual_risks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Residual Risks",
|
|
"type": "array"
|
|
},
|
|
"handoff_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Handoff Path"
|
|
},
|
|
"plan_digest": {
|
|
"title": "Plan Digest",
|
|
"type": "string"
|
|
},
|
|
"artifacts": {
|
|
"items": {
|
|
"$ref": "#/$defs/ArtifactRecord"
|
|
},
|
|
"title": "Artifacts",
|
|
"type": "array"
|
|
},
|
|
"approval_required": {
|
|
"title": "Approval Required",
|
|
"type": "boolean"
|
|
},
|
|
"approval_valid": {
|
|
"title": "Approval Valid",
|
|
"type": "boolean"
|
|
},
|
|
"delivery_executed": {
|
|
"default": false,
|
|
"title": "Delivery Executed",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"status",
|
|
"integration_id",
|
|
"dry_run",
|
|
"plan_digest",
|
|
"approval_required",
|
|
"approval_valid"
|
|
],
|
|
"title": "PrepareHandoffResult",
|
|
"type": "object"
|
|
}
|
|
}
|
|
],
|
|
"capabilities": {},
|
|
"input_modes": [
|
|
"application/json"
|
|
],
|
|
"output_modes": [
|
|
"application/json"
|
|
],
|
|
"required_secrets": [],
|
|
"required_env": [],
|
|
"consumer_setup": {
|
|
"fields": [
|
|
{
|
|
"name": "GITEA_REPOSITORY",
|
|
"kind": "config",
|
|
"label": "Gitea repository",
|
|
"description": "Optional owner/repo target controlled by the caller.",
|
|
"required": false,
|
|
"input_type": "text",
|
|
"options": []
|
|
},
|
|
{
|
|
"name": "GITEA_TOKEN",
|
|
"kind": "secret",
|
|
"label": "Gitea token",
|
|
"description": "Optional caller-managed token reference; never returned or stored.",
|
|
"required": false,
|
|
"input_type": "password",
|
|
"options": []
|
|
},
|
|
{
|
|
"name": "API_BASE_URL",
|
|
"kind": "config",
|
|
"label": "API base URL",
|
|
"description": "Optional endpoint used only when allowlisted and dry_run=false.",
|
|
"required": false,
|
|
"input_type": "url",
|
|
"options": []
|
|
},
|
|
{
|
|
"name": "API_AUTH_TOKEN",
|
|
"kind": "secret",
|
|
"label": "API auth token",
|
|
"description": "Optional caller-managed API credential reference.",
|
|
"required": false,
|
|
"input_type": "password",
|
|
"options": []
|
|
},
|
|
{
|
|
"name": "OBJECT_STORAGE_REF",
|
|
"kind": "config",
|
|
"label": "Object storage reference",
|
|
"description": "Caller-owned object storage config reference.",
|
|
"required": false,
|
|
"input_type": "text",
|
|
"options": []
|
|
},
|
|
{
|
|
"name": "OBSERVABILITY_REF",
|
|
"kind": "config",
|
|
"label": "Observability reference",
|
|
"description": "Caller-owned logs/metrics/traces reference.",
|
|
"required": false,
|
|
"input_type": "text",
|
|
"options": []
|
|
},
|
|
{
|
|
"name": "KUBERNETES_CONTEXT_REF",
|
|
"kind": "config",
|
|
"label": "Kubernetes context reference",
|
|
"description": "Optional caller-owned Kubernetes context reference.",
|
|
"required": false,
|
|
"input_type": "text",
|
|
"options": []
|
|
},
|
|
{
|
|
"name": "ARGOCD_APP_REF",
|
|
"kind": "config",
|
|
"label": "Argo CD app reference",
|
|
"description": "Optional caller-owned Argo CD app reference.",
|
|
"required": false,
|
|
"input_type": "text",
|
|
"options": []
|
|
}
|
|
]
|
|
},
|
|
"runtime": {
|
|
"lifecycle": "ephemeral",
|
|
"availability": "on_demand",
|
|
"state": "none",
|
|
"sandbox": "microsandbox",
|
|
"resources": {
|
|
"cpu": "500m",
|
|
"memory": "512Mi",
|
|
"gpu": 0,
|
|
"max_runtime_seconds": 600
|
|
},
|
|
"concurrency": 1,
|
|
"egress": {
|
|
"allow_hosts": [],
|
|
"allow_internal_services": [],
|
|
"deny_internet_by_default": true
|
|
},
|
|
"tools_used": [
|
|
"pydantic",
|
|
"jsonschema",
|
|
"httpx"
|
|
],
|
|
"llm_provisioning": "platform",
|
|
"pricing": {
|
|
"price_per_call_usd": 0.0,
|
|
"caller_pays_llm": false,
|
|
"notes": "Deterministic no-LLM integration engineering; callers keep credentials and production changes under their control."
|
|
},
|
|
"wants_cp_jwt": false,
|
|
"platform_resources": {
|
|
"memory": null,
|
|
"databases": []
|
|
},
|
|
"endpoints": [],
|
|
"apt_packages": []
|
|
},
|
|
"template_lineage": null,
|
|
"meta_agent_manifest": null,
|
|
"state_schema": null,
|
|
"workspace_access": {
|
|
"enabled": true,
|
|
"max_files": 256,
|
|
"allowed_modes": [
|
|
"read_only",
|
|
"read_write_overlay"
|
|
],
|
|
"require_reason": true,
|
|
"deny_patterns": [
|
|
"**/.env",
|
|
"**/*secret*",
|
|
"**/*token*",
|
|
"**/id_rsa",
|
|
"**/.git/**"
|
|
],
|
|
"require_human_approval": false,
|
|
"max_total_size_bytes": 20971520
|
|
},
|
|
"config_schema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default_dry_run": {
|
|
"default": true,
|
|
"title": "Default Dry Run",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"title": "CustomerIntegrationEngineerConfig",
|
|
"type": "object"
|
|
},
|
|
"auth": {
|
|
"model": "a2a_pack.auth.NoAuth",
|
|
"strategy": "public",
|
|
"principal_schema": {
|
|
"additionalProperties": false,
|
|
"description": "Public agent: no caller identity required.",
|
|
"properties": {},
|
|
"title": "NoAuth",
|
|
"type": "object"
|
|
},
|
|
"resolver": null,
|
|
"required": false
|
|
},
|
|
"metadata": {
|
|
"source": "python-a2a-pack",
|
|
"project_manifest": {
|
|
"name": "customer-integration-engineer",
|
|
"version": "0.1.5",
|
|
"entrypoint": "agent:CustomerIntegrationEngineer"
|
|
}
|
|
}
|
|
}
|