Initial curated ITWorx_MCP_Hub source from 368fba691ea8d23403b4d56b53b5ec670d7c5020
This commit is contained in:
commit
cb5be898ea
663 files changed
+82674
No files matched your search
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "ITWorx MCP Hub Capability Pack",
|
||||
"description": "Reusable authorization bundle.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"$id": "https://hub.example.com/schemas/capability-pack.schema.json",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"metadata",
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"const": "hub.example.com/v1alpha1"
|
||||
},
|
||||
"kind": {
|
||||
"const": "CapabilityPack"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "common.schema.json#/$defs/metadata"
|
||||
},
|
||||
"spec": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"description",
|
||||
"allowedRiskClasses",
|
||||
"scopeTemplates",
|
||||
"toolAllowPatterns",
|
||||
"toolDenyPatterns",
|
||||
"environmentConstraints"
|
||||
],
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 1000
|
||||
},
|
||||
"allowedRiskClasses": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"$ref": "common.schema.json#/$defs/riskClass"
|
||||
}
|
||||
},
|
||||
"scopeTemplates": {
|
||||
"$ref": "common.schema.json#/$defs/patternList"
|
||||
},
|
||||
"toolAllowPatterns": {
|
||||
"$ref": "common.schema.json#/$defs/patternList"
|
||||
},
|
||||
"toolDenyPatterns": {
|
||||
"$ref": "common.schema.json#/$defs/patternList"
|
||||
},
|
||||
"environmentConstraints": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"productionWrites"
|
||||
],
|
||||
"properties": {
|
||||
"productionWrites": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://hub.example.com/schemas/common.schema.json",
|
||||
"title": "ITWorx catalog common definitions",
|
||||
"description": "Reusable JSON Schema definitions for catalog documents.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"$defs": {
|
||||
"slug": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
||||
"minLength": 2,
|
||||
"maxLength": 80
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"name",
|
||||
"slug"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 120
|
||||
},
|
||||
"slug": {
|
||||
"$ref": "#/$defs/slug"
|
||||
},
|
||||
"labels": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
},
|
||||
"maxProperties": 32
|
||||
}
|
||||
}
|
||||
},
|
||||
"riskClass": {
|
||||
"enum": [
|
||||
"R0",
|
||||
"R1",
|
||||
"R2",
|
||||
"R3",
|
||||
"R4",
|
||||
"RX"
|
||||
]
|
||||
},
|
||||
"verification": {
|
||||
"enum": [
|
||||
"verified",
|
||||
"unverified",
|
||||
"external-input-required",
|
||||
"fake-only"
|
||||
]
|
||||
},
|
||||
"environmentName": {
|
||||
"enum": [
|
||||
"dev",
|
||||
"test",
|
||||
"staging",
|
||||
"prod"
|
||||
]
|
||||
},
|
||||
"uri": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 2048
|
||||
},
|
||||
"patternList": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 200
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"maxItems": 256
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "ITWorx MCP Hub Connector Template",
|
||||
"description": "Credential-free connector template.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"$id": "https://hub.example.com/schemas/connector-manifest.schema.json",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"metadata",
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"const": "hub.example.com/v1alpha1"
|
||||
},
|
||||
"kind": {
|
||||
"const": "ConnectorTemplate"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "common.schema.json#/$defs/metadata"
|
||||
},
|
||||
"spec": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"connectorType",
|
||||
"image",
|
||||
"transport",
|
||||
"credentialReferences",
|
||||
"allowedNetworkTargets",
|
||||
"configuration",
|
||||
"health",
|
||||
"defaultRiskClasses"
|
||||
],
|
||||
"properties": {
|
||||
"connectorType": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9-]+$",
|
||||
"maxLength": 80
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 300
|
||||
},
|
||||
"transport": {
|
||||
"enum": [
|
||||
"streamable-http"
|
||||
]
|
||||
},
|
||||
"credentialReferences": {
|
||||
"type": "array",
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"pattern": "^(docker-secret|service-identity|authentik-client)://",
|
||||
"maxLength": 300
|
||||
}
|
||||
},
|
||||
"allowedNetworkTargets": {
|
||||
"type": "array",
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"pattern": "^(service|config|catalog-project-binding)://",
|
||||
"maxLength": 300
|
||||
}
|
||||
},
|
||||
"configuration": {
|
||||
"type": "object"
|
||||
},
|
||||
"health": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"path",
|
||||
"intervalSeconds",
|
||||
"failureThreshold"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"pattern": "^/"
|
||||
},
|
||||
"intervalSeconds": {
|
||||
"type": "integer",
|
||||
"minimum": 5,
|
||||
"maximum": 300
|
||||
},
|
||||
"failureThreshold": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultRiskClasses": {
|
||||
"type": "array",
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"$ref": "common.schema.json#/$defs/riskClass"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "ITWorx MCP Hub Operation",
|
||||
"description": "Durable internal operation record used before future MCP Tasks support.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"$id": "https://hub.example.com/schemas/operation.schema.json",
|
||||
"required": [
|
||||
"operationId",
|
||||
"type",
|
||||
"project",
|
||||
"environment",
|
||||
"requestedBy",
|
||||
"clientId",
|
||||
"state",
|
||||
"riskClass",
|
||||
"planHash",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"operationId": {
|
||||
"type": "string",
|
||||
"pattern": "^op_[A-Za-z0-9_-]{10,80}$"
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z][a-z0-9_.-]+$",
|
||||
"maxLength": 120
|
||||
},
|
||||
"project": {
|
||||
"$ref": "common.schema.json#/$defs/slug"
|
||||
},
|
||||
"environment": {
|
||||
"$ref": "common.schema.json#/$defs/environmentName"
|
||||
},
|
||||
"requestedBy": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 300
|
||||
},
|
||||
"clientId": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 300
|
||||
},
|
||||
"state": {
|
||||
"enum": [
|
||||
"planned",
|
||||
"awaiting_approval",
|
||||
"approved",
|
||||
"queued",
|
||||
"running",
|
||||
"verifying",
|
||||
"succeeded",
|
||||
"failed",
|
||||
"cancelled",
|
||||
"rolling_back",
|
||||
"rolled_back",
|
||||
"expired"
|
||||
]
|
||||
},
|
||||
"riskClass": {
|
||||
"$ref": "common.schema.json#/$defs/riskClass"
|
||||
},
|
||||
"planHash": {
|
||||
"type": "string",
|
||||
"pattern": "^sha256:[a-f0-9]{64}$"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"expiresAt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"format": "date-time"
|
||||
},
|
||||
"startedAt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"format": "date-time"
|
||||
},
|
||||
"finishedAt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"format": "date-time"
|
||||
},
|
||||
"resultSummary": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 4000
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "ITWorx MCP Hub Policy",
|
||||
"description": "Declarative policy rule.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"$id": "https://hub.example.com/schemas/policy.schema.json",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"metadata",
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"const": "hub.example.com/v1alpha1"
|
||||
},
|
||||
"kind": {
|
||||
"const": "Policy"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "common.schema.json#/$defs/metadata"
|
||||
},
|
||||
"spec": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"priority",
|
||||
"description",
|
||||
"match",
|
||||
"conditions",
|
||||
"decision",
|
||||
"terminal"
|
||||
],
|
||||
"properties": {
|
||||
"priority": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 100000
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 1000
|
||||
},
|
||||
"match": {
|
||||
"type": "object"
|
||||
},
|
||||
"conditions": {
|
||||
"type": "object"
|
||||
},
|
||||
"decision": {
|
||||
"enum": [
|
||||
"allow",
|
||||
"allow_if_conditions",
|
||||
"deny",
|
||||
"deny_and_alert",
|
||||
"enforce"
|
||||
]
|
||||
},
|
||||
"terminal": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,276 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "ITWorx MCP Hub Project",
|
||||
"description": "Desired-state project catalog document.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"$id": "https://hub.example.com/schemas/project.schema.json",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"metadata",
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"const": "hub.example.com/v1alpha1"
|
||||
},
|
||||
"kind": {
|
||||
"const": "Project"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "common.schema.json#/$defs/metadata"
|
||||
},
|
||||
"spec": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"description",
|
||||
"workspace",
|
||||
"visibility",
|
||||
"documentation",
|
||||
"environments",
|
||||
"capabilityPacks",
|
||||
"connectorBindings",
|
||||
"virtualServers",
|
||||
"privacy"
|
||||
],
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 1000
|
||||
},
|
||||
"workspace": {
|
||||
"$ref": "common.schema.json#/$defs/slug"
|
||||
},
|
||||
"visibility": {
|
||||
"enum": [
|
||||
"private",
|
||||
"internal"
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
"type": [
|
||||
"object",
|
||||
"null"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"provider",
|
||||
"owner",
|
||||
"name",
|
||||
"verification",
|
||||
"exposeMetadata"
|
||||
],
|
||||
"properties": {
|
||||
"provider": {
|
||||
"enum": [
|
||||
"gitea"
|
||||
]
|
||||
},
|
||||
"owner": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 120
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 120
|
||||
},
|
||||
"verification": {
|
||||
"$ref": "common.schema.json#/$defs/verification"
|
||||
},
|
||||
"exposeMetadata": {
|
||||
"enum": [
|
||||
"authorized-only",
|
||||
"never-public"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"documentation": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"roots",
|
||||
"indexSecrets",
|
||||
"maxDocumentBytes"
|
||||
],
|
||||
"properties": {
|
||||
"roots": {
|
||||
"type": "array",
|
||||
"maxItems": 32,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"uri",
|
||||
"include",
|
||||
"verification"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 2048
|
||||
},
|
||||
"include": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 300
|
||||
},
|
||||
"maxItems": 64
|
||||
},
|
||||
"verification": {
|
||||
"$ref": "common.schema.json#/$defs/verification"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"indexSecrets": {
|
||||
"const": false
|
||||
},
|
||||
"maxDocumentBytes": {
|
||||
"type": "integer",
|
||||
"minimum": 1024,
|
||||
"maximum": 10485760
|
||||
}
|
||||
}
|
||||
},
|
||||
"environments": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"maxProperties": 4,
|
||||
"propertyNames": {
|
||||
"$ref": "common.schema.json#/$defs/environmentName"
|
||||
},
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"classification",
|
||||
"applicationUrl"
|
||||
],
|
||||
"properties": {
|
||||
"classification": {
|
||||
"enum": [
|
||||
"development",
|
||||
"test",
|
||||
"staging",
|
||||
"production"
|
||||
]
|
||||
},
|
||||
"applicationUrl": {
|
||||
"$ref": "common.schema.json#/$defs/uri"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"capabilityPacks": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"$ref": "common.schema.json#/$defs/slug"
|
||||
}
|
||||
},
|
||||
"connectorBindings": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"ref",
|
||||
"environments",
|
||||
"verification"
|
||||
],
|
||||
"properties": {
|
||||
"ref": {
|
||||
"$ref": "common.schema.json#/$defs/slug"
|
||||
},
|
||||
"environments": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"$ref": "common.schema.json#/$defs/environmentName"
|
||||
}
|
||||
},
|
||||
"verification": {
|
||||
"$ref": "common.schema.json#/$defs/verification"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"virtualServers": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"slug",
|
||||
"environment",
|
||||
"endpointAlias",
|
||||
"protocolRevisions",
|
||||
"toolAllowPatterns",
|
||||
"resourceAllowPatterns",
|
||||
"defaultDecision"
|
||||
],
|
||||
"properties": {
|
||||
"slug": {
|
||||
"$ref": "common.schema.json#/$defs/slug"
|
||||
},
|
||||
"environment": {
|
||||
"$ref": "common.schema.json#/$defs/environmentName"
|
||||
},
|
||||
"endpointAlias": {
|
||||
"type": "string",
|
||||
"pattern": "^/mcp/[a-z0-9-]+/(dev|test|staging|prod)$",
|
||||
"maxLength": 200
|
||||
},
|
||||
"protocolRevisions": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"enum": [
|
||||
"2026-07-28",
|
||||
"2025-11-25"
|
||||
]
|
||||
}
|
||||
},
|
||||
"toolAllowPatterns": {
|
||||
"$ref": "common.schema.json#/$defs/patternList"
|
||||
},
|
||||
"promptAllowPatterns": {
|
||||
"$ref": "common.schema.json#/$defs/patternList"
|
||||
},
|
||||
"resourceAllowPatterns": {
|
||||
"$ref": "common.schema.json#/$defs/patternList"
|
||||
},
|
||||
"defaultDecision": {
|
||||
"const": "deny"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"privacy": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"exposeRepositoryMetadata"
|
||||
],
|
||||
"properties": {
|
||||
"exposeRepositoryMetadata": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://hub.example.com/schemas/prompt-manifest.schema.json",
|
||||
"title": "ITWorx MCP Hub Prompt Manifest",
|
||||
"description": "User-initiated governed MCP prompt definition.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"metadata",
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"const": "hub.example.com/v1alpha1"
|
||||
},
|
||||
"kind": {
|
||||
"const": "PromptManifest"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "common.schema.json#/$defs/metadata"
|
||||
},
|
||||
"spec": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"promptName",
|
||||
"description",
|
||||
"argumentsSchema",
|
||||
"requiredScopes",
|
||||
"allowedToolPatterns",
|
||||
"messages"
|
||||
],
|
||||
"properties": {
|
||||
"promptName": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
||||
"maxLength": 100
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 1000
|
||||
},
|
||||
"argumentsSchema": {
|
||||
"type": "object"
|
||||
},
|
||||
"requiredScopes": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
}
|
||||
},
|
||||
"allowedToolPatterns": {
|
||||
"type": "array",
|
||||
"uniqueItems": true,
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 10,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"role",
|
||||
"text"
|
||||
],
|
||||
"properties": {
|
||||
"role": {
|
||||
"enum": [
|
||||
"user",
|
||||
"assistant"
|
||||
]
|
||||
},
|
||||
"text": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 12000
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "ITWorx MCP Hub Release Record",
|
||||
"description": "Unambiguous, machine-readable release provenance: distinguishes repository HEAD, application source commit, image build revision, deployed revision, release-evidence commit, and annotated release tag. See docs/09-release/RELEASE_PROVENANCE.md.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"$id": "https://hub.example.com/schemas/release-record.schema.json",
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"generatedAt",
|
||||
"repositoryHead",
|
||||
"releaseSourceCommit",
|
||||
"imageBuildRevision",
|
||||
"deployedRevision",
|
||||
"releaseEvidenceCommit",
|
||||
"releaseTag",
|
||||
"images"
|
||||
],
|
||||
"properties": {
|
||||
"schemaVersion": { "const": "1.0" },
|
||||
"generatedAt": { "type": "string", "format": "date-time" },
|
||||
"repositoryHead": {
|
||||
"description": "The exact commit this record was rendered against. Always populated: `git rev-parse HEAD` at render time.",
|
||||
"type": "string",
|
||||
"pattern": "^[0-9a-f]{40}$"
|
||||
},
|
||||
"releaseSourceCommit": {
|
||||
"description": "The one exact commit every owned runtime image for this release is built from. Preferred-model invariant: this equals imageBuildRevision for every image in `images` once a release is cut.",
|
||||
"type": ["string", "null"],
|
||||
"pattern": "^[0-9a-f]{40}$"
|
||||
},
|
||||
"imageBuildRevision": {
|
||||
"description": "The commit baked into every owned image's org.opencontainers.image.revision label at build time (see infrastructure/images/*/Dockerfile GIT_REVISION build arg). Must equal releaseSourceCommit for a valid release; a mismatch here is a release-blocking defect, not a warning.",
|
||||
"type": ["string", "null"],
|
||||
"pattern": "^[0-9a-f]{40}$"
|
||||
},
|
||||
"deployedRevision": {
|
||||
"description": "The commit each named deployment target actually runs, keyed by target name (e.g. \"tower\"). Populated only from live-verified evidence (e.g. evidence/WP-190, WP-210); never inferred or assumed.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": ["string", "null"],
|
||||
"pattern": "^[0-9a-f]{40}$"
|
||||
}
|
||||
},
|
||||
"releaseEvidenceCommit": {
|
||||
"description": "The commit that recorded this release's post-acceptance evidence (e.g. a docs/evidence-only commit made after live acceptance testing). Deliberately distinct from releaseSourceCommit: evidence is committed after the fact and must never be presented as though it were the source revision that was built and tested.",
|
||||
"type": ["string", "null"],
|
||||
"pattern": "^[0-9a-f]{40}$"
|
||||
},
|
||||
"releaseTag": {
|
||||
"description": "The annotated Git tag (e.g. v1.0.0) pointing at releaseSourceCommit, once created. Null before tagging.",
|
||||
"type": ["string", "null"]
|
||||
},
|
||||
"images": {
|
||||
"description": "Per-service image provenance: tag, immutable digest, and the commit baked into its OCI revision label.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["revision"],
|
||||
"properties": {
|
||||
"tag": { "type": "string" },
|
||||
"digest": { "type": ["string", "null"], "pattern": "^sha256:[0-9a-f]{64}$" },
|
||||
"revision": { "type": ["string", "null"], "pattern": "^[0-9a-f]{40}$" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "ITWorx MCP Hub Resource Manifest",
|
||||
"description": "Governed MCP resource template.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"$id": "https://hub.example.com/schemas/resource-manifest.schema.json",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"metadata",
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"const": "hub.example.com/v1alpha1"
|
||||
},
|
||||
"kind": {
|
||||
"const": "ResourceManifest"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "common.schema.json#/$defs/metadata"
|
||||
},
|
||||
"spec": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"uriTemplate",
|
||||
"connectorType",
|
||||
"mimeTypes",
|
||||
"riskClass",
|
||||
"maxBytes",
|
||||
"redactionProfile",
|
||||
"requiredScopes"
|
||||
],
|
||||
"properties": {
|
||||
"uriTemplate": {
|
||||
"type": "string",
|
||||
"pattern": "^itworx-[a-z]+://",
|
||||
"maxLength": 500
|
||||
},
|
||||
"connectorType": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9-]+$"
|
||||
},
|
||||
"mimeTypes": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 100
|
||||
}
|
||||
},
|
||||
"riskClass": {
|
||||
"$ref": "common.schema.json#/$defs/riskClass"
|
||||
},
|
||||
"maxBytes": {
|
||||
"type": "integer",
|
||||
"minimum": 1024,
|
||||
"maximum": 10485760
|
||||
},
|
||||
"redactionProfile": {
|
||||
"enum": [
|
||||
"strict",
|
||||
"documents",
|
||||
"metadata"
|
||||
]
|
||||
},
|
||||
"requiredScopes": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "ITWorx MCP Hub Tool Manifest",
|
||||
"description": "Governed MCP tool definition independent of gateway IDs.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"$id": "https://hub.example.com/schemas/tool-manifest.schema.json",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"metadata",
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"const": "hub.example.com/v1alpha1"
|
||||
},
|
||||
"kind": {
|
||||
"const": "ToolManifest"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "common.schema.json#/$defs/metadata"
|
||||
},
|
||||
"spec": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"canonicalName",
|
||||
"version",
|
||||
"connectorType",
|
||||
"description",
|
||||
"riskClass",
|
||||
"readOnly",
|
||||
"idempotent",
|
||||
"inputSchema",
|
||||
"outputSchema",
|
||||
"limits",
|
||||
"redactionProfile",
|
||||
"requiredScopes"
|
||||
],
|
||||
"properties": {
|
||||
"canonicalName": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z][a-z0-9_]*(?:\\.[a-z][a-z0-9_]*){2,5}$",
|
||||
"maxLength": 128
|
||||
},
|
||||
"connectorToolName": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$",
|
||||
"description": "Optional wire-level MCP name when a standard compatibility tool differs from the governed canonical name."
|
||||
},
|
||||
"exposedNames": {
|
||||
"type": "array",
|
||||
"maxItems": 8,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$"
|
||||
}
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
||||
},
|
||||
"connectorType": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9-]+$"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 1000
|
||||
},
|
||||
"riskClass": {
|
||||
"$ref": "common.schema.json#/$defs/riskClass"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"idempotent": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"inputSchema": {
|
||||
"type": "object"
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object"
|
||||
},
|
||||
"limits": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"timeoutMs",
|
||||
"maxOutputBytes",
|
||||
"maxItems"
|
||||
],
|
||||
"properties": {
|
||||
"timeoutMs": {
|
||||
"type": "integer",
|
||||
"minimum": 100,
|
||||
"maximum": 120000
|
||||
},
|
||||
"maxOutputBytes": {
|
||||
"type": "integer",
|
||||
"minimum": 1024,
|
||||
"maximum": 1048576
|
||||
},
|
||||
"maxItems": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 5000
|
||||
}
|
||||
}
|
||||
},
|
||||
"redactionProfile": {
|
||||
"enum": [
|
||||
"strict",
|
||||
"logs",
|
||||
"documents",
|
||||
"metadata"
|
||||
]
|
||||
},
|
||||
"requiredScopes": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://hub.example.com/schemas/workspace.schema.json",
|
||||
"title": "ITWorx MCP Hub Workspace",
|
||||
"description": "Top-level private workspace configuration.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"metadata",
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"const": "hub.example.com/v1alpha1"
|
||||
},
|
||||
"kind": {
|
||||
"const": "Workspace"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "common.schema.json#/$defs/metadata"
|
||||
},
|
||||
"spec": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"defaultTimezone",
|
||||
"visibility",
|
||||
"defaultDecision",
|
||||
"auditRetentionDays",
|
||||
"allowedEnvironments"
|
||||
],
|
||||
"properties": {
|
||||
"defaultTimezone": {
|
||||
"const": "Europe/Brussels"
|
||||
},
|
||||
"visibility": {
|
||||
"const": "private"
|
||||
},
|
||||
"defaultDecision": {
|
||||
"const": "deny"
|
||||
},
|
||||
"auditRetentionDays": {
|
||||
"type": "integer",
|
||||
"minimum": 30,
|
||||
"maximum": 3650
|
||||
},
|
||||
"allowedEnvironments": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"$ref": "common.schema.json#/$defs/environmentName"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user