The Witboost URL is the instance URL that you visit in the browser to access the Witboost UI. Therefore, the base URL of the API will depend on your deployment. Below, we are providing an example base URL, yours may differ.
Endpoints for managing the registration of Technology Adapters, generating descriptors from uploaded archives, and starting and monitoring template instantiations.
This endpoint is used to register the Technology Adapter's URL and link it to the infrastructureTemplateId.
After deploying a new Technology Adapter into the infrastructure, all the components with a your chosen infrastructureTemplateId should invoke said microservice.
To do so, we need to link the infrastructureTemplateId with the Technology Adapter's URL where the microservice is located. Make sure the URL is reachable by the Witboost platform.
| id required | string Unique identifier of the Technology Adapter, in the form of a Witboost's URN, like "urn:dmb:itm:snowflake-outputport-provisioner:0" |
| name required | string Name of the Technology Adapter, like "Snowflake Output Port" |
| description required | string A description that explains the purpose of the Technology Adapter |
| version required | string The Technology Adapter's version, like "0". This version must be ALWAYS equal to the version defined in the URN identifier (the last section of the URN identifier after the last ":") |
| url required | string The URL of the Technology Adapter, like "http://my-tech-adapter:8093/snowflake-outputport-provisioner". This URL must be reachable from the provisioning coordinator (from a pod in the Kubernetes cluster where the provisioning coordinator is running) |
| environment required | string The environment where the Technology Adapter is running, like "production". The environment here must be one of the environments configured for the Builder module of Witboost. |
object (InfraTemplateProperties) Additional infrastructure template properties |
{- "id": "urn:dmb:itm:snowflake-outputport-provisioner:0",
- "name": "Snowflake Output Port",
- "description": "Provisions a Snowflake Output Port",
- "version": "0",
- "environment": "production"
}"OK"Builds a single descriptor by processing an uploaded archive containing one or more entity directories.
The archive must be in .tar.gz or .tgz format. Each top-level directory in the archive represents one entity and must include a catalog-info.yaml file. It can also optionally include:
parameters.yamlenvironments/<environment>/configurations.yamlThe processing flow unpacks all directories, resolves each entity's descriptor from its catalog-info.yaml, distinguishes between system and component descriptors, then merges all component descriptors into the system descriptor, which acts as the root.
Note: The archive is expected to contain exactly one system directory. If multiple system directories are present, only the first one will be used and the others will be ignored.
| archive required | string <binary> Archive file containing descriptor source files ( |
| environment required | string Target environment used to resolve environment-specific configurations |
{ "environment": "development" }
{- "descriptor": {
- "projectKind": "system",
- "dataProductOwner": "group:default/data-team",
- "domain": "finance",
- "kind": "System",
- "metadata": {
- "name": "my-data-product"
}
}
}Starts a new template instantiation asynchronously. The endpoint returns the created task identifier.
See the Template page for a step-by-step guide.
| templateRef required | string Entity reference of the template to instantiate |
required | object Input values for template parameters |
object Optional environment-scoped parameter overrides |
{- "templateRef": "template:default/my-data-product-template",
- "values": {
- "name": "my-data-product",
- "owner": "group:default/data-team"
}
}{- "id": "2f4b7a6f-6d2e-4a22-a912-cce8f90b3843"
}Opens a Server-Sent Events (SSE) stream for a template instantiation task.
Events are emitted as event: <type> and data: <json> records. Supported event types include
log, recovered, cancelled, and completion.
See the Template page for a step-by-step guide.
| taskId required | string The template instantiation task identifier |
event: log data: {"message":"Starting template execution","createdAt":"2026-01-01T10:00:00.000Z"} event: completion data: {"message":"Task completed","createdAt":"2026-01-01T10:00:10.000Z"}
Returns the latest status for a template instantiation task.
See the Template page for a step-by-step guide.
| taskId required | string The template instantiation task identifier |
{- "status": "open"
}Submits a new Feature Request against a System or a specific Component.
Requires the control-plane.feature-request.create RBAC permission scoped to the target System's URN.
Accepts multipart/form-data to support binary file attachments (PDF, JPG, PNG; max 5 files, 10 MB each).
Both projectUrn and componentUrn (when provided) are validated:
urn:dmb:<kind>:<domain>:<name>:<version>[:<component>[:<subcomponent>]]).projectUrn.| summary required | string <= 500 characters Short title describing the request |
| description required | string <= 10000 characters Detailed description of the requested feature or improvement |
| priority required | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" Caller-assigned priority level |
| projectUrn required | string URN of the target System. Must be a valid Witboost URN referencing an existing entity in the catalog.
Format: |
| componentUrn | string URN of the target Component (optional). When provided, must be a valid Witboost URN referencing an existing component that belongs to the system identified by |
string or Array of strings Binary file uploads. Only PDF, JPG, and PNG allowed. Max 5 files, 10 MB each. |
{- "id": "aaaaaaaa-0000-0000-0000-000000000001",
- "summary": "Add export feature",
- "description": "Allow users to export data as CSV",
- "status": "SUBMITTED",
- "priority": "MEDIUM",
- "projectUrn": "urn:dmb:dp:finance:cashflow:0",
- "componentUrn": null,
- "requesterRef": "user:default/alice",
- "createdAt": "2026-06-01T10:00:00.000Z",
- "createdBy": "user:default/alice",
- "updatedAt": "2026-06-01T10:00:00.000Z",
- "updatedBy": "user:default/alice",
- "attachments": [ ]
}Returns a paginated list of Feature Requests for the specified System.
The caller must be the Data Product Owner (or owner delegate) of the System, resolved via Team Roles. Service principals bypass the ownership check.
The projectUrn query parameter is required and must be a valid Witboost URN.
Optional filters (componentUrn, status, priority) and pagination (offset, limit) are supported.
| projectUrn required | string Example: projectUrn=urn:dmb:dp:finance:cashflow:0 URN of the System. Must be a valid Witboost URN.
Format: |
| componentUrn | string Example: componentUrn=urn:dmb:cmp:finance:cashflow:0:storage Narrow results to requests targeting a specific Component.
Must be a valid Witboost URN when provided.
Format: |
| status | string Enum: "SUBMITTED" "APPROVED" "IN_PROGRESS" "IMPLEMENTED" "REJECTED" Filter by status |
| priority | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" Filter by priority |
| offset | integer >= 0 Default: 0 Pagination offset (zero-based) |
| limit | integer [ 1 .. 100 ] Default: 20 Page size (1–100) |
{- "items": [
- {
- "id": "aaaaaaaa-0000-0000-0000-000000000001",
- "summary": "Add export feature",
- "status": "SUBMITTED",
- "priority": "MEDIUM",
- "projectUrn": "urn:dmb:dp:finance:cashflow:0",
- "componentUrn": null,
- "requesterRef": "user:default/alice",
- "createdAt": "2026-06-01T10:00:00.000Z",
- "createdBy": "user:default/alice",
- "updatedAt": "2026-06-01T10:00:00.000Z",
- "updatedBy": "user:default/alice"
}
], - "total": 1,
- "offset": 0,
- "limit": 20
}Returns a paginated list of Feature Requests submitted by the currently authenticated user.
Results are implicitly scoped to the caller's identity — no additional authorization is required beyond a valid session.
Optional filters (projectUrn, status, priority) and pagination (offset, limit) are supported.
| projectUrn | string Example: projectUrn=urn:dmb:dp:finance:cashflow:0 Filter by System URN |
| status | string Enum: "SUBMITTED" "APPROVED" "IN_PROGRESS" "IMPLEMENTED" "REJECTED" Filter by status |
| priority | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" Filter by priority |
| offset | integer >= 0 Default: 0 Pagination offset (zero-based) |
| limit | integer [ 1 .. 100 ] Default: 20 Page size (1–100) |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "summary": "string",
- "status": "SUBMITTED",
- "priority": "LOW",
- "projectUrn": "string",
- "componentUrn": "string",
- "requesterRef": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "updatedBy": "string"
}
], - "total": 0,
- "offset": 0,
- "limit": 0
}Returns the full details of a Feature Request including its description and attachment metadata (without binary content).
Accessible to:
| id required | string <uuid> Feature Request ID |
{- "id": "aaaaaaaa-0000-0000-0000-000000000001",
- "summary": "Add export feature",
- "description": "Allow users to export data as CSV",
- "status": "SUBMITTED",
- "priority": "MEDIUM",
- "projectUrn": "urn:dmb:dp:finance:cashflow:0",
- "componentUrn": null,
- "requesterRef": "user:default/alice",
- "createdAt": "2026-06-01T10:00:00.000Z",
- "createdBy": "user:default/alice",
- "updatedAt": "2026-06-01T10:00:00.000Z",
- "updatedBy": "user:default/alice",
- "attachments": [
- {
- "id": "bbbbbbbb-0000-0000-0000-000000000001",
- "filename": "mockup.png",
- "contentType": "image/png",
- "size": 204800
}
]
}Permanently deletes a Feature Request and all its associated attachments.
Restricted to the original requester who submitted the Feature Request. Service principals bypass the ownership check.
| id required | string <uuid> Feature Request ID |
{- "error": {
- "message": "string"
}
}Updates the status of a Feature Request to any valid value. No transition restrictions are enforced — any status can be set regardless of the current status.
Restricted to:
| id required | string <uuid> Feature Request ID |
| status required | string Enum: "SUBMITTED" "APPROVED" "IN_PROGRESS" "IMPLEMENTED" "REJECTED" The new status to set |
{- "status": "APPROVED"
}{- "id": "aaaaaaaa-0000-0000-0000-000000000001",
- "summary": "Add export feature",
- "status": "APPROVED",
- "priority": "MEDIUM",
- "projectUrn": "urn:dmb:dp:finance:cashflow:0",
- "componentUrn": null,
- "requesterRef": "user:default/alice",
- "createdAt": "2026-06-01T10:00:00.000Z",
- "createdBy": "user:default/alice",
- "updatedAt": "2026-06-03T14:30:00.000Z",
- "updatedBy": "user:default/owner"
}Returns the binary content of a single attachment with the correct Content-Type and
Content-Disposition headers set for browser download.
Accessible to:
| id required | string <uuid> Feature Request ID |
| attachmentId required | string <uuid> Attachment ID (from the |
{- "error": {
- "message": "string"
}
}Endpoint for updating the status of a hook, which is used to model third-party approval workflows in Witboost, such as Access Control requests.
Witboost Hooks model third-party approval workflows.
Hooks are used, for instance, to model the Access Control workflow, where an Data Consumer asks access to a Data Owner. In case an Access Control request is forwarded to third-party ticketing systems, this endpoint helps Witboost understand whether the request is still pending, completed or rejected/failed.
In general, outside of the Access Control workflow, this endpoint is used to update the status of a hook, so that the Witboost platform knows how to proceed with a pending request.
| id required | string Request ID as provided by the Witboost platform in the respondToUrl field. |
A resource to be evaluated
| status required | string (RequestedHookState) Enum: "KO" "OK" Represents the desired state of the hook. OK means the third-party interaction has been completed with a positive result, KO on the other hand can be used to represent a negative result. If the hook is attached to an action, signaling KO could prevent the action's callback to be invoked |
| hookInfo | object A free-form object that will be stored as the hook's response data |
{- "status": "OK",
- "hookInfo": {
- "message": "The request has been accepted on the external system"
}
}{- "hookId": "34797dd1-1f25-48b0-89c7-14d2ce04a78b",
- "hookName": "RemoteRequestHook",
- "actionId": "0298b78f-4d77-45f7-a7a4-f16278144141",
- "actionName": "AccessControlAction",
- "creationAt": "2021-09-01T12:00:00Z",
- "updateAt": "2021-09-01T12:00:00Z",
- "status": "OK"
}