Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 62 additions & 3 deletions static/api-specs/toolhive-crd-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ _Appears in:_
| `parameters` _[RawExtension](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#rawextension-runtime-pkg)_ | Parameters defines the input parameter schema in JSON Schema format.<br />Should be a JSON Schema object with "type": "object" and "properties".<br />Per MCP specification, this should follow standard JSON Schema for tool inputSchema.<br />Example:<br /> \{<br /> "type": "object",<br /> "properties": \{<br /> "param1": \{"type": "string", "default": "value"\},<br /> "param2": \{"type": "integer"\}<br /> \},<br /> "required": ["param2"]<br /> \} | | Type: object <br /> |
| `steps` _[WorkflowStep](#workflowstep) array_ | Steps defines the workflow steps | | MinItems: 1 <br />Required: \{\} <br /> |
| `timeout` _string_ | Timeout is the maximum execution time for the composite tool | 30m | |
| `output` _[OutputSpec](#outputspec)_ | Output defines the structured output schema for the composite tool.<br />Specifies how to construct the final output from workflow step results.<br />If not specified, the workflow returns the last step's output (backward compatible). | | |


#### ConfigMapAuthzRef
Expand Down Expand Up @@ -734,9 +735,10 @@ _Appears in:_
| --- | --- | --- | --- |
| `name` _string_ | Name is a unique identifier for this registry configuration within the MCPRegistry | | MinLength: 1 <br />Required: \{\} <br /> |
| `format` _string_ | Format is the data format (toolhive, upstream) | toolhive | Enum: [toolhive upstream] <br /> |
| `configMapRef` _[ConfigMapKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#configmapkeyselector-v1-core)_ | ConfigMapRef defines the ConfigMap source configuration<br />Mutually exclusive with Git and API | | |
| `git` _[GitSource](#gitsource)_ | Git defines the Git repository source configuration<br />Mutually exclusive with ConfigMapRef and API | | |
| `api` _[APISource](#apisource)_ | API defines the API source configuration<br />Mutually exclusive with ConfigMapRef and Git | | |
| `configMapRef` _[ConfigMapKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#configmapkeyselector-v1-core)_ | ConfigMapRef defines the ConfigMap source configuration<br />Mutually exclusive with Git, API, and PVCRef | | |
| `git` _[GitSource](#gitsource)_ | Git defines the Git repository source configuration<br />Mutually exclusive with ConfigMapRef, API, and PVCRef | | |
| `api` _[APISource](#apisource)_ | API defines the API source configuration<br />Mutually exclusive with ConfigMapRef, Git, and PVCRef | | |
| `pvcRef` _[PVCSource](#pvcsource)_ | PVCRef defines the PersistentVolumeClaim source configuration<br />Mutually exclusive with ConfigMapRef, Git, and API | | |
| `syncPolicy` _[SyncPolicy](#syncpolicy)_ | SyncPolicy defines the automatic synchronization behavior for this registry.<br />If specified, enables automatic synchronization at the given interval.<br />Manual synchronization is always supported via annotation-based triggers<br />regardless of this setting. | | |
| `filter` _[RegistryFilter](#registryfilter)_ | Filter defines include/exclude patterns for registry content | | |

Expand Down Expand Up @@ -1332,6 +1334,62 @@ _Appears in:_
| `backends` _object (keys:string, values:[BackendAuthConfig](#backendauthconfig))_ | Backends defines per-backend authentication overrides<br />Works in all modes (discovered, inline) | | |


#### OutputPropertySpec



OutputPropertySpec defines a single output property



_Appears in:_
- [OutputPropertySpec](#outputpropertyspec)
- [OutputSpec](#outputspec)

| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `type` _string_ | Type is the JSON Schema type: "string", "integer", "number", "boolean", "object", "array" | | Enum: [string integer number boolean object array] <br />Required: \{\} <br /> |
| `description` _string_ | Description is a human-readable description exposed to clients and models | | |
| `value` _string_ | Value is a template string for constructing the runtime value<br />Supports template syntax: \{\{.steps.step_id.output.field\}\}, \{\{.params.param_name\}\}<br />For object types, this can be a JSON string that will be deserialized | | |
| `properties` _object (keys:string, values:[OutputPropertySpec](#outputpropertyspec))_ | Properties defines nested properties for object types | | Schemaless: \{\} <br /> |
| `default` _[RawExtension](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#rawextension-runtime-pkg)_ | Default is the fallback value if template expansion fails | | Schemaless: \{\} <br /> |


#### OutputSpec



OutputSpec defines the structured output schema for a composite tool workflow



_Appears in:_
- [CompositeToolSpec](#compositetoolspec)
- [VirtualMCPCompositeToolDefinitionSpec](#virtualmcpcompositetooldefinitionspec)

| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `properties` _object (keys:string, values:[OutputPropertySpec](#outputpropertyspec))_ | Properties defines the output properties<br />Map key is the property name, value is the property definition | | |
| `required` _string array_ | Required lists property names that must be present in the output | | |


#### PVCSource



PVCSource defines PersistentVolumeClaim source configuration



_Appears in:_
- [MCPRegistryConfig](#mcpregistryconfig)

| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `claimName` _string_ | ClaimName is the name of the PersistentVolumeClaim | | MinLength: 1 <br />Required: \{\} <br /> |
| `path` _string_ | Path is the relative path to the registry file within the PVC.<br />The PVC is mounted at /config/registry/\{registryName\}/.<br />The full file path becomes: /config/registry/\{registryName\}/\{path\}<br />This design:<br />- Each registry gets its own mount point (consistent with ConfigMap sources)<br />- Multiple registries can share the same PVC by mounting it at different paths<br />- Users control PVC organization freely via the path field<br />Examples:<br /> Registry "production" using PVC "shared-data" with path "prod/registry.json":<br /> PVC contains /prod/registry.json → accessed at /config/registry/production/prod/registry.json<br /> Registry "development" using SAME PVC "shared-data" with path "dev/registry.json":<br /> PVC contains /dev/registry.json → accessed at /config/registry/development/dev/registry.json<br /> (Same PVC, different mount path)<br /> Registry "staging" using DIFFERENT PVC "other-pvc" with path "registry.json":<br /> PVC contains /registry.json → accessed at /config/registry/staging/registry.json<br /> (Different PVC, independent mount)<br /> Registry "team-a" with path "v1/servers.json":<br /> PVC contains /v1/servers.json → accessed at /config/registry/team-a/v1/servers.json<br /> (Subdirectories allowed in path) | registry.json | Pattern: `^.*\.json$` <br /> |


#### PermissionProfileRef


Expand Down Expand Up @@ -1807,6 +1865,7 @@ _Appears in:_
| `steps` _[WorkflowStep](#workflowstep) array_ | Steps defines the workflow step definitions<br />Steps are executed sequentially in Phase 1<br />Phase 2 will support DAG execution via dependsOn | | MinItems: 1 <br />Required: \{\} <br /> |
| `timeout` _string_ | Timeout is the overall workflow timeout<br />Defaults to 30m if not specified | 30m | Pattern: `^([0-9]+(\.[0-9]+)?(ms\|s\|m\|h))+$` <br /> |
| `failureMode` _string_ | FailureMode defines the failure handling strategy<br />- abort: Stop execution on first failure (default)<br />- continue: Continue executing remaining steps | abort | Enum: [abort continue] <br /> |
| `output` _[OutputSpec](#outputspec)_ | Output defines the structured output schema for the composite tool.<br />Specifies how to construct the final output from workflow step results.<br />If not specified, the workflow returns the last step's output (backward compatible). | | |


#### VirtualMCPCompositeToolDefinitionStatus
Expand Down