feat: complete Epic 1 production foundation
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"budget": {"logical_series": 4513, "rendered_series": 14338, "max_logical_series": 5000, "max_rendered_series": 15000},
|
||||
"budget": {"logical_series": 5213, "rendered_series": 16538, "max_logical_series": 5250, "max_rendered_series": 16750},
|
||||
"global_labels": [
|
||||
{"name": "service", "class": "process_constant", "domain": ["admin-api", "mcp-server"]},
|
||||
{"name": "version", "class": "process_constant", "domain": ["validated_release_identity"]},
|
||||
{"name": "environment", "class": "process_constant", "domain": ["validated_startup_value"]}
|
||||
],
|
||||
"metrics": [
|
||||
{"name": "crank_http_requests_total", "kind": "counter", "unit": "count", "help": "Total HTTP requests.", "processes": ["admin_api", "mcp_server"], "labels": [{"name": "route", "class": "product_closed", "domain": ["unmatched", "/health", "/ready", "/api/auth/login", "/api/auth/logout", "/api/auth/session", "/api/auth/profile", "/api/auth/password", "/api/admin/capabilities", "/api/admin/workspaces", "/api/admin/workspaces/{workspace_id}", "/api/admin/workspaces/{workspace_id}/operations", "/api/admin/workspaces/{workspace_id}/imports/openapi/preview", "/api/admin/workspaces/{workspace_id}/imports/openapi/{job_id}/create", "/api/admin/workspaces/{workspace_id}/operations/analyze-quality", "/api/admin/workspaces/{workspace_id}/operations/import", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions/{version}", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/publish", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/archive", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/test-runs", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/input-json", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/output-json", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/drafts/generate", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/export", "/api/admin/workspaces/{workspace_id}/agents", "/api/admin/workspaces/{workspace_id}/agents/tool-search/preview", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/versions/{version}", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/bindings", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/publish", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/unpublish", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/archive", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys/{key_id}/revoke", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys/{key_id}", "/api/admin/workspaces/{workspace_id}/auth-profiles", "/api/admin/workspaces/{workspace_id}/auth-profiles/{auth_profile_id}", "/api/admin/workspaces/{workspace_id}/upstreams", "/api/admin/workspaces/{workspace_id}/upstreams/{upstream_id}", "/api/admin/workspaces/{workspace_id}/secrets", "/api/admin/workspaces/{workspace_id}/secrets/{secret_id}", "/api/admin/workspaces/{workspace_id}/secrets/{secret_id}/rotate", "/api/admin/workspaces/{workspace_id}/export", "/api/admin/workspaces/{workspace_id}/logs", "/api/admin/workspaces/{workspace_id}/logs/{log_id}", "/api/admin/workspaces/{workspace_id}/approvals", "/api/admin/workspaces/{workspace_id}/approvals/{approval_id}", "/api/admin/workspaces/{workspace_id}/usage", "/api/admin/workspaces/{workspace_id}/usage/operations/{operation_id}", "/api/admin/workspaces/{workspace_id}/usage/agents/{agent_id}", "/v1/{workspace_slug}/{agent_slug}", "/v1/{workspace_slug}/{agent_slug}/approvals", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}/approve", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}/deny"]},{"name": "method", "class": "product_closed", "domain": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD", "CONNECT", "TRACE", "OTHER"]},{"name": "status_class", "class": "product_closed", "domain": ["1xx", "2xx", "3xx", "4xx", "5xx", "other"]}], "buckets_seconds": [], "max_logical_series": 3420, "max_rendered_series": 3420},
|
||||
{"name": "crank_http_request_duration_seconds", "kind": "histogram", "unit": "seconds", "help": "HTTP request duration in seconds.", "processes": ["admin_api", "mcp_server"], "labels": [{"name": "route", "class": "product_closed", "domain": ["unmatched", "/health", "/ready", "/api/auth/login", "/api/auth/logout", "/api/auth/session", "/api/auth/profile", "/api/auth/password", "/api/admin/capabilities", "/api/admin/workspaces", "/api/admin/workspaces/{workspace_id}", "/api/admin/workspaces/{workspace_id}/operations", "/api/admin/workspaces/{workspace_id}/imports/openapi/preview", "/api/admin/workspaces/{workspace_id}/imports/openapi/{job_id}/create", "/api/admin/workspaces/{workspace_id}/operations/analyze-quality", "/api/admin/workspaces/{workspace_id}/operations/import", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions/{version}", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/publish", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/archive", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/test-runs", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/input-json", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/output-json", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/drafts/generate", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/export", "/api/admin/workspaces/{workspace_id}/agents", "/api/admin/workspaces/{workspace_id}/agents/tool-search/preview", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/versions/{version}", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/bindings", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/publish", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/unpublish", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/archive", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys/{key_id}/revoke", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys/{key_id}", "/api/admin/workspaces/{workspace_id}/auth-profiles", "/api/admin/workspaces/{workspace_id}/auth-profiles/{auth_profile_id}", "/api/admin/workspaces/{workspace_id}/upstreams", "/api/admin/workspaces/{workspace_id}/upstreams/{upstream_id}", "/api/admin/workspaces/{workspace_id}/secrets", "/api/admin/workspaces/{workspace_id}/secrets/{secret_id}", "/api/admin/workspaces/{workspace_id}/secrets/{secret_id}/rotate", "/api/admin/workspaces/{workspace_id}/export", "/api/admin/workspaces/{workspace_id}/logs", "/api/admin/workspaces/{workspace_id}/logs/{log_id}", "/api/admin/workspaces/{workspace_id}/approvals", "/api/admin/workspaces/{workspace_id}/approvals/{approval_id}", "/api/admin/workspaces/{workspace_id}/usage", "/api/admin/workspaces/{workspace_id}/usage/operations/{operation_id}", "/api/admin/workspaces/{workspace_id}/usage/agents/{agent_id}", "/v1/{workspace_slug}/{agent_slug}", "/v1/{workspace_slug}/{agent_slug}/approvals", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}/approve", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}/deny"]},{"name": "method", "class": "product_closed", "domain": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD", "CONNECT", "TRACE", "OTHER"]}], "buckets_seconds": [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 30, 60], "max_logical_series": 570, "max_rendered_series": 9120},
|
||||
{"name": "crank_http_requests_total", "kind": "counter", "unit": "count", "help": "Total HTTP requests.", "processes": ["admin_api", "mcp_server"], "labels": [{"name": "route", "class": "product_closed", "domain": ["unmatched", "/health", "/ready", "/api/auth/login", "/api/auth/bootstrap/status", "/api/auth/bootstrap/complete", "/api/auth/logout", "/api/auth/session", "/api/auth/session/csrf", "/api/auth/profile", "/api/auth/password", "/api/admin/capabilities", "/api/admin/workspaces", "/api/admin/workspaces/{workspace_id}", "/api/admin/workspaces/{workspace_id}/onboarding", "/api/admin/workspaces/{workspace_id}/onboarding/events", "/api/admin/workspaces/{workspace_id}/onboarding/reset-selection", "/api/admin/workspaces/{workspace_id}/operations", "/api/admin/workspaces/{workspace_id}/imports/openapi/preview", "/api/admin/workspaces/{workspace_id}/imports/openapi/{job_id}/create", "/api/admin/workspaces/{workspace_id}/operations/analyze-quality", "/api/admin/workspaces/{workspace_id}/operations/import", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions/{version}", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/publish", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/archive", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/test-runs", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/input-json", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/output-json", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/drafts/generate", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/export", "/api/admin/workspaces/{workspace_id}/agents", "/api/admin/workspaces/{workspace_id}/agents/tool-search/preview", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/versions/{version}", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/bindings", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/publish", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/unpublish", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/archive", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys/{key_id}/revoke", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys/{key_id}", "/api/admin/workspaces/{workspace_id}/auth-profiles", "/api/admin/workspaces/{workspace_id}/auth-profiles/{auth_profile_id}", "/api/admin/workspaces/{workspace_id}/upstreams", "/api/admin/workspaces/{workspace_id}/upstreams/{upstream_id}", "/api/admin/workspaces/{workspace_id}/secrets", "/api/admin/workspaces/{workspace_id}/secrets/{secret_id}", "/api/admin/workspaces/{workspace_id}/secrets/{secret_id}/rotate", "/api/admin/workspaces/{workspace_id}/export", "/api/admin/workspaces/{workspace_id}/logs", "/api/admin/workspaces/{workspace_id}/logs/export.csv", "/api/admin/workspaces/{workspace_id}/logs/{log_id}", "/api/admin/workspaces/{workspace_id}/approvals", "/api/admin/workspaces/{workspace_id}/approvals/{approval_id}", "/api/admin/workspaces/{workspace_id}/approvals/{approval_id}/approve", "/api/admin/workspaces/{workspace_id}/approvals/{approval_id}/deny", "/api/admin/workspaces/{workspace_id}/usage", "/api/admin/workspaces/{workspace_id}/usage/export.csv", "/api/admin/workspaces/{workspace_id}/usage/operations/{operation_id}", "/api/admin/workspaces/{workspace_id}/usage/agents/{agent_id}", "/v1/{workspace_slug}/{agent_slug}", "/v1/{workspace_slug}/{agent_slug}/approvals", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}/approve", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}/deny"]},{"name": "method", "class": "product_closed", "domain": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD", "CONNECT", "TRACE", "OTHER"]},{"name": "status_class", "class": "product_closed", "domain": ["1xx", "2xx", "3xx", "4xx", "5xx", "other"]}], "buckets_seconds": [], "max_logical_series": 4020, "max_rendered_series": 4020},
|
||||
{"name": "crank_http_request_duration_seconds", "kind": "histogram", "unit": "seconds", "help": "HTTP request duration in seconds.", "processes": ["admin_api", "mcp_server"], "labels": [{"name": "route", "class": "product_closed", "domain": ["unmatched", "/health", "/ready", "/api/auth/login", "/api/auth/bootstrap/status", "/api/auth/bootstrap/complete", "/api/auth/logout", "/api/auth/session", "/api/auth/session/csrf", "/api/auth/profile", "/api/auth/password", "/api/admin/capabilities", "/api/admin/workspaces", "/api/admin/workspaces/{workspace_id}", "/api/admin/workspaces/{workspace_id}/onboarding", "/api/admin/workspaces/{workspace_id}/onboarding/events", "/api/admin/workspaces/{workspace_id}/onboarding/reset-selection", "/api/admin/workspaces/{workspace_id}/operations", "/api/admin/workspaces/{workspace_id}/imports/openapi/preview", "/api/admin/workspaces/{workspace_id}/imports/openapi/{job_id}/create", "/api/admin/workspaces/{workspace_id}/operations/analyze-quality", "/api/admin/workspaces/{workspace_id}/operations/import", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions/{version}", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/publish", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/archive", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/test-runs", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/input-json", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/output-json", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/drafts/generate", "/api/admin/workspaces/{workspace_id}/operations/{operation_id}/export", "/api/admin/workspaces/{workspace_id}/agents", "/api/admin/workspaces/{workspace_id}/agents/tool-search/preview", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/versions/{version}", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/bindings", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/publish", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/unpublish", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/archive", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys/{key_id}/revoke", "/api/admin/workspaces/{workspace_id}/agents/{agent_id}/platform-api-keys/{key_id}", "/api/admin/workspaces/{workspace_id}/auth-profiles", "/api/admin/workspaces/{workspace_id}/auth-profiles/{auth_profile_id}", "/api/admin/workspaces/{workspace_id}/upstreams", "/api/admin/workspaces/{workspace_id}/upstreams/{upstream_id}", "/api/admin/workspaces/{workspace_id}/secrets", "/api/admin/workspaces/{workspace_id}/secrets/{secret_id}", "/api/admin/workspaces/{workspace_id}/secrets/{secret_id}/rotate", "/api/admin/workspaces/{workspace_id}/export", "/api/admin/workspaces/{workspace_id}/logs", "/api/admin/workspaces/{workspace_id}/logs/export.csv", "/api/admin/workspaces/{workspace_id}/logs/{log_id}", "/api/admin/workspaces/{workspace_id}/approvals", "/api/admin/workspaces/{workspace_id}/approvals/{approval_id}", "/api/admin/workspaces/{workspace_id}/approvals/{approval_id}/approve", "/api/admin/workspaces/{workspace_id}/approvals/{approval_id}/deny", "/api/admin/workspaces/{workspace_id}/usage", "/api/admin/workspaces/{workspace_id}/usage/export.csv", "/api/admin/workspaces/{workspace_id}/usage/operations/{operation_id}", "/api/admin/workspaces/{workspace_id}/usage/agents/{agent_id}", "/v1/{workspace_slug}/{agent_slug}", "/v1/{workspace_slug}/{agent_slug}/approvals", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}/approve", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}", "/v1/{workspace_slug}/{agent_slug}/approvals/{approval_id}/deny"]},{"name": "method", "class": "product_closed", "domain": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD", "CONNECT", "TRACE", "OTHER"]}], "buckets_seconds": [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 30, 60], "max_logical_series": 670, "max_rendered_series": 10720},
|
||||
{"name": "crank_http_inflight", "kind": "gauge", "unit": "count", "help": "HTTP requests currently being processed.", "processes": ["admin_api", "mcp_server"], "labels": [], "buckets_seconds": [], "max_logical_series": 1, "max_rendered_series": 1},
|
||||
{"name": "crank_mcp_requests_total", "kind": "counter", "unit": "count", "help": "Total MCP JSON-RPC requests.", "processes": ["mcp_server"], "labels": [{"name": "method", "class": "product_closed", "domain": ["initialize", "initialized", "ping", "tools_list", "tools_call", "notification", "unsupported", "response", "invalid"]},{"name": "response_mode", "class": "product_closed", "domain": ["json", "sse", "unknown"]},{"name": "outcome", "class": "product_closed", "domain": ["success", "client_error", "server_error", "jsonrpc_error", "tool_error", "aborted", "other"]}], "buckets_seconds": [], "max_logical_series": 189, "max_rendered_series": 189},
|
||||
{"name": "crank_mcp_request_duration_seconds", "kind": "histogram", "unit": "seconds", "help": "MCP JSON-RPC request duration in seconds.", "processes": ["mcp_server"], "labels": [{"name": "method", "class": "product_closed", "domain": ["initialize", "initialized", "ping", "tools_list", "tools_call", "notification", "unsupported", "response", "invalid"]},{"name": "outcome", "class": "product_closed", "domain": ["success", "client_error", "server_error", "jsonrpc_error", "tool_error", "aborted", "other"]}], "buckets_seconds": [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 30, 60], "max_logical_series": 63, "max_rendered_series": 1008},
|
||||
|
||||
@@ -1 +1,181 @@
|
||||
{"schema_version":1,"sequence":[{"backfill":{"kind":"none"},"checksum":"crank-community-baseline-v1","compatibility":"legacy-baseline","contract_evidence":null,"name":"community-baseline-v1","owner":"crank-registry","phase":"expand","readable_schema_max":1,"readable_schema_min":1,"source_digest":"eb1656fc5b4b5be9ee390d237d1d58e4b2274ae5ba9b7ba06a2f3f860dfda675","transactional":true,"version":1},{"backfill":{"kind":"none"},"checksum":"1908b97ca7fe8a85d146b0eebf007d5018a9ff406cb099614270f3428ec1db48","compatibility":"n-minus-one-readable","contract_evidence":null,"name":"legacy-consolidation-v2","owner":"crank-registry","phase":"expand","readable_schema_max":2,"readable_schema_min":1,"source_digest":"1908b97ca7fe8a85d146b0eebf007d5018a9ff406cb099614270f3428ec1db48","transactional":true,"version":2},{"backfill":{"kind":"none"},"checksum":"36487625503a8d4d8f18d5771c3c9b6705f845e267acbfcb7244c330f640cd94","compatibility":"n-minus-one-readable","contract_evidence":null,"name":"request-trace-identity-v3","owner":"crank-registry","phase":"expand","readable_schema_max":3,"readable_schema_min":2,"source_digest":"36487625503a8d4d8f18d5771c3c9b6705f845e267acbfcb7244c330f640cd94","transactional":true,"version":3}]}
|
||||
{
|
||||
"schema_version": 1,
|
||||
"sequence": [
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "crank-community-baseline-v1",
|
||||
"compatibility": "legacy-baseline",
|
||||
"contract_evidence": null,
|
||||
"name": "community-baseline-v1",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 1,
|
||||
"readable_schema_min": 1,
|
||||
"source_digest": "eb1656fc5b4b5be9ee390d237d1d58e4b2274ae5ba9b7ba06a2f3f860dfda675",
|
||||
"transactional": true,
|
||||
"version": 1
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "1908b97ca7fe8a85d146b0eebf007d5018a9ff406cb099614270f3428ec1db48",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "legacy-consolidation-v2",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 2,
|
||||
"readable_schema_min": 1,
|
||||
"source_digest": "1908b97ca7fe8a85d146b0eebf007d5018a9ff406cb099614270f3428ec1db48",
|
||||
"transactional": true,
|
||||
"version": 2
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "36487625503a8d4d8f18d5771c3c9b6705f845e267acbfcb7244c330f640cd94",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "request-trace-identity-v3",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 3,
|
||||
"readable_schema_min": 2,
|
||||
"source_digest": "36487625503a8d4d8f18d5771c3c9b6705f845e267acbfcb7244c330f640cd94",
|
||||
"transactional": true,
|
||||
"version": 3
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "45723712a1ea49cd8bbf59d77148c225f3ec376df7433983d982cc6f9d7fb39c",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "operation-lifecycle-v4",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 4,
|
||||
"readable_schema_min": 3,
|
||||
"source_digest": "45723712a1ea49cd8bbf59d77148c225f3ec376df7433983d982cc6f9d7fb39c",
|
||||
"transactional": true,
|
||||
"version": 4
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "bd6703249cc407789586327eb7fbbd5776ba27923c5dc7eb85b05d332585bf42",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "execution-outcome-v5",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 5,
|
||||
"readable_schema_min": 4,
|
||||
"source_digest": "bd6703249cc407789586327eb7fbbd5776ba27923c5dc7eb85b05d332585bf42",
|
||||
"transactional": true,
|
||||
"version": 5
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "94dba9b9dd3364607bc37e7698478ba6644607a7f268a1621cd3acea6bc96c2d",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "platform-key-name-reuse-v6",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 6,
|
||||
"readable_schema_min": 5,
|
||||
"source_digest": "94dba9b9dd3364607bc37e7698478ba6644607a7f268a1621cd3acea6bc96c2d",
|
||||
"transactional": true,
|
||||
"version": 6
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "06e5d4667d9a7346474e9dcb176b8b2b9680c4b89089bea5a18eb5a88d5ac60e",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "master-key-identity-v7",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 7,
|
||||
"readable_schema_min": 6,
|
||||
"source_digest": "06e5d4667d9a7346474e9dcb176b8b2b9680c4b89089bea5a18eb5a88d5ac60e",
|
||||
"transactional": true,
|
||||
"version": 7
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "6361f3321a1442a77c695cad9b30c4702de1aa3e565bfbf1a7415d653302611f",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "admin-auth-lifecycle-v8",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 8,
|
||||
"readable_schema_min": 7,
|
||||
"source_digest": "6361f3321a1442a77c695cad9b30c4702de1aa3e565bfbf1a7415d653302611f",
|
||||
"transactional": true,
|
||||
"version": 8
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "b49bf4b53691407ec27e3810b0531c0d440da7dddc62ea71eb219933c0a30211",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "agent-catalog-lifecycle-v9",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 9,
|
||||
"readable_schema_min": 8,
|
||||
"source_digest": "b49bf4b53691407ec27e3810b0531c0d440da7dddc62ea71eb219933c0a30211",
|
||||
"transactional": true,
|
||||
"version": 9
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "6c87f680efdbc275fa2b920826b3e3e390aa34d6f2f1db48fe074a5d7691ba5b",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "approval-side-effects-v10",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 10,
|
||||
"readable_schema_min": 9,
|
||||
"source_digest": "6c87f680efdbc275fa2b920826b3e3e390aa34d6f2f1db48fe074a5d7691ba5b",
|
||||
"transactional": true,
|
||||
"version": 10
|
||||
},
|
||||
{
|
||||
"backfill": {
|
||||
"kind": "none"
|
||||
},
|
||||
"checksum": "a439bbcdc9cc909d717ed5a868c7a51bd1ad3c49c4e85fd20933743ee3f31166",
|
||||
"compatibility": "n-minus-one-readable",
|
||||
"contract_evidence": null,
|
||||
"name": "onboarding-product-events-v11",
|
||||
"owner": "crank-registry",
|
||||
"phase": "expand",
|
||||
"readable_schema_max": 11,
|
||||
"readable_schema_min": 10,
|
||||
"source_digest": "a439bbcdc9cc909d717ed5a868c7a51bd1ad3c49c4e85fd20933743ee3f31166",
|
||||
"transactional": true,
|
||||
"version": 11
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://crank.local/schemas/operation-export-v2.schema.json",
|
||||
"title": "Crank portable Operation export v2",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["format_version", "kind", "operation"],
|
||||
"properties": {
|
||||
"format_version": { "const": "2" },
|
||||
"kind": { "const": "operation" },
|
||||
"operation": { "$ref": "#/$defs/portable_operation" }
|
||||
},
|
||||
"$defs": {
|
||||
"portable_operation": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["name", "display_name", "category", "protocol", "security_level", "target", "input_schema", "output_schema", "input_mapping", "output_mapping", "execution_config", "tool_description"],
|
||||
"properties": {
|
||||
"name": { "type": "string", "minLength": 1, "maxLength": 64 },
|
||||
"display_name": { "type": "string", "minLength": 1, "maxLength": 256 },
|
||||
"category": { "type": "string", "minLength": 1, "maxLength": 128 },
|
||||
"protocol": { "const": "rest" },
|
||||
"security_level": { "enum": ["standard"] },
|
||||
"target": { "$ref": "#/$defs/rest_target" },
|
||||
"input_schema": { "$ref": "#/$defs/schema" },
|
||||
"output_schema": { "$ref": "#/$defs/schema" },
|
||||
"input_mapping": { "$ref": "#/$defs/mapping_set" },
|
||||
"output_mapping": { "$ref": "#/$defs/mapping_set" },
|
||||
"execution_config": { "$ref": "#/$defs/execution_config" },
|
||||
"tool_description": { "$ref": "#/$defs/tool_description" }
|
||||
}
|
||||
},
|
||||
"string_map": { "type": "object", "propertyNames": { "minLength": 1, "maxLength": 256 }, "additionalProperties": { "type": "string", "maxLength": 65536 } },
|
||||
"rest_target": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"required": ["kind", "base_url", "method", "path_template"],
|
||||
"properties": {
|
||||
"kind": { "const": "rest" }, "base_url": { "type": "string", "minLength": 1, "maxLength": 4096 },
|
||||
"method": { "enum": ["get", "post", "put", "patch", "delete"] },
|
||||
"path_template": { "type": "string", "minLength": 1, "maxLength": 4096 },
|
||||
"static_headers": { "$ref": "#/$defs/string_map" }
|
||||
}
|
||||
},
|
||||
"schema": {
|
||||
"type": "object", "additionalProperties": false, "required": ["type"],
|
||||
"properties": {
|
||||
"type": { "enum": ["object", "array", "string", "integer", "number", "boolean", "enum", "null", "oneof"] },
|
||||
"description": { "type": "string", "maxLength": 65536 }, "required": { "type": "boolean" }, "nullable": { "type": "boolean" },
|
||||
"default_value": {}, "fields": { "type": "object", "maxProperties": 4096, "additionalProperties": { "$ref": "#/$defs/schema" } },
|
||||
"items": { "$ref": "#/$defs/schema" }, "enum_values": { "type": "array", "maxItems": 4096, "items": { "type": "string", "maxLength": 65536 } },
|
||||
"variants": { "type": "array", "maxItems": 4096, "items": { "$ref": "#/$defs/schema" } }
|
||||
}
|
||||
},
|
||||
"mapping_set": { "type": "object", "additionalProperties": false, "properties": { "rules": { "type": "array", "maxItems": 4096, "items": { "$ref": "#/$defs/mapping_rule" } } } },
|
||||
"mapping_rule": {
|
||||
"type": "object", "additionalProperties": false, "required": ["source", "target"],
|
||||
"properties": {
|
||||
"source": { "type": "string", "maxLength": 4096 }, "target": { "type": "string", "maxLength": 4096 }, "required": { "type": "boolean" }, "default_value": {},
|
||||
"transform": { "type": "object", "additionalProperties": false, "required": ["kind"], "properties": { "kind": { "enum": ["identity", "to_string", "to_number", "to_boolean", "join", "split", "wrap_array", "unwrap_singleton"] } } },
|
||||
"condition": { "type": "object", "additionalProperties": false, "required": ["source", "equals"], "properties": { "source": { "type": "string", "maxLength": 4096 }, "equals": {} } },
|
||||
"notes": { "type": "string", "maxLength": 65536 }
|
||||
}
|
||||
},
|
||||
"execution_config": {
|
||||
"type": "object", "additionalProperties": false, "required": ["timeout_ms"],
|
||||
"properties": {
|
||||
"timeout_ms": { "type": "integer", "minimum": 1 },
|
||||
"retry_policy": { "type": "object", "additionalProperties": false, "required": ["max_attempts"], "properties": { "max_attempts": { "type": "integer", "minimum": 0 } } },
|
||||
"response_cache": { "type": "object", "additionalProperties": false, "required": ["ttl_ms"], "properties": { "ttl_ms": { "type": "integer", "minimum": 1 } } },
|
||||
"idempotency": { "type": "object", "additionalProperties": false, "required": ["mode", "ttl_ms"], "properties": { "mode": { "enum": ["disabled", "optional", "required"] }, "ttl_ms": { "type": "integer", "minimum": 1 }, "input_field": { "type": "string" }, "header_name": { "type": "string" } } },
|
||||
"safety": { "type": "object", "additionalProperties": false, "required": ["class"], "properties": { "class": { "enum": ["read", "write", "destructive", "external_message", "financial_or_irreversible"] }, "confirmation": { "type": "object", "additionalProperties": false, "required": ["ttl_ms"], "properties": { "ttl_ms": { "type": "integer", "minimum": 1 } } } } },
|
||||
"approval_policy": { "type": "object", "additionalProperties": false, "required": ["required", "ttl_seconds", "show_payload_preview", "payload_preview_mode"], "properties": { "required": { "type": "boolean" }, "mode": { "enum": ["custom", "elicitation"] }, "risk_level": { "enum": ["normal", "dangerous", "financial", "irreversible"] }, "ttl_seconds": { "type": "integer", "minimum": 1 }, "show_payload_preview": { "type": "boolean" }, "payload_preview_mode": { "enum": ["summary", "masked_json"] }, "elicitation_message": { "type": "string" } } },
|
||||
"auth_profile_ref": { "type": "string", "minLength": 1, "maxLength": 256 }, "headers": { "$ref": "#/$defs/string_map" }
|
||||
}
|
||||
},
|
||||
"tool_description": {
|
||||
"type": "object", "additionalProperties": false, "required": ["title", "description"],
|
||||
"properties": { "title": { "type": "string", "maxLength": 256 }, "description": { "type": "string", "maxLength": 65536 }, "tags": { "type": "array", "maxItems": 4096, "items": { "type": "string", "maxLength": 256 } }, "examples": { "type": "array", "maxItems": 4096, "items": { "type": "object", "additionalProperties": false, "required": ["input"], "properties": { "input": {} } } } }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -182,7 +182,7 @@
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": true,
|
||||
"minimum": null,
|
||||
"minimum": 32,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
@@ -300,6 +300,21 @@
|
||||
"deny entries override allow entries"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "outbound.max_request_bytes",
|
||||
"env_name": "CRANK_OUTBOUND_MAX_REQUEST_BYTES",
|
||||
"process": "shared",
|
||||
"value_type": "u64",
|
||||
"unit": "bytes",
|
||||
"default": "4194304",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 67108864,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "outbound.max_response_bytes",
|
||||
"env_name": "CRANK_OUTBOUND_MAX_RESPONSE_BYTES",
|
||||
@@ -719,15 +734,33 @@
|
||||
"process": "admin_api",
|
||||
"value_type": "bool",
|
||||
"unit": null,
|
||||
"default": "false",
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": "yes/no/on/off spellings are deprecated",
|
||||
"mode": "deprecated_no_effect",
|
||||
"compatibility": "deprecated boolean proxy trust; use CRANK_TRUSTED_PROXY_IPS",
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.trusted_proxy_ips",
|
||||
"env_name": "CRANK_TRUSTED_PROXY_IPS",
|
||||
"process": "admin_api",
|
||||
"value_type": "ip_list",
|
||||
"unit": null,
|
||||
"default": "",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"only listed immediate peer IPs may supply X-Real-IP/X-Forwarded-For client identity",
|
||||
"empty value disables forwarded-header trust"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.bootstrap.email",
|
||||
"env_name": "CRANK_BOOTSTRAP_ADMIN_EMAIL",
|
||||
@@ -750,12 +783,12 @@
|
||||
"value_type": "secret",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": true,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"compatibility": "deprecated startup-bootstrap password; use local bootstrap contract",
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user