Feature Requests
Feature Requests allow users to propose improvements, changes, or new capabilities for a Product or Consumable directly to the Data Product Team. This page covers the platform-level configuration required to enable the Feature Request functionality and the public API available for programmatic access.
For end-user documentation on how to submit Feature Requests via the UI, see Feature Request.
Activation
The Feature Request functionality is disabled by default. To enable it, set the following flag in your values.yaml:
ui:
appConfig:
mesh:
marketplace:
featureRequest:
enabled: true
For the full list of marketplace configuration options, see the Configurations page.
Permissions
Creating a Feature Request requires the control-plane.feature-request.create RBAC permission.
| Permission | Description |
|---|---|
control-plane.feature-request.create | Allows the user to submit a Feature Request against a Product or Consumable |
For details on configuring RBAC permissions and example setups, see the RBAC documentation.
List Feature Requests via API
Two listing endpoints are available depending on the caller's role:
By Project (for System Owners)
GET /api/builder/v1/feature-requests/by-project?projectUrn=<urn>
Authorization: Bearer <token>
Returns a paginated list of Feature Requests for a given System. Only the Data Product Owner (or owner delegate) of the System can call this endpoint.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectUrn | string | Yes | URN of the target System. Must be a valid Witboost URN |
componentUrn | string | No | Filter by Component URN. Must be a valid Witboost URN when provided |
status | string | No | Filter by status: SUBMITTED, APPROVED, IN_PROGRESS, IMPLEMENTED, REJECTED |
priority | string | No | Filter by priority: LOW, MEDIUM, HIGH, CRITICAL |
offset | integer | No | Pagination offset (default: 0) |
limit | integer | No | Page size, 1–100 (default: 20) |
By Requester (for Feature Request authors)
GET /api/builder/v1/feature-requests/by-requester
Authorization: Bearer <token>
Returns a paginated list of Feature Requests submitted by the authenticated user.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectUrn | string | No | Filter by System URN |
status | string | No | Filter by status |
priority | string | No | Filter by priority |
offset | integer | No | Pagination offset (default: 0) |
limit | integer | No | Page size, 1–100 (default: 20) |
Response
Both endpoints return a paginated response:
{
"items": [ /* FeatureRequestSummary objects */ ],
"total": 42,
"offset": 0,
"limit": 20
}
Retrieve Feature Request Details via API
GET /api/builder/v1/feature-requests/{id}
Authorization: Bearer <token>
Returns the full details of a Feature Request, including its description and attachment metadata (without binary content).
Access control: the caller must be either the Data Product Owner of the associated System or the original requester who submitted the Feature Request.
Response
Returns HTTP 200 with a FeatureRequestDetail object containing all summary fields plus description and attachments.
Download an Attachment via API
GET /api/builder/v1/feature-requests/{id}/attachments/{attachmentId}/download
Authorization: Bearer <token>
Downloads the binary content of a single attachment. The response includes the original Content-Type (e.g., application/pdf, image/png) and a Content-Disposition header with the original filename.
The attachmentId can be obtained from the attachments array returned by the Retrieve Feature Request Details endpoint.
Access control: the caller must be either the Data Product Owner of the associated System or the original requester who submitted the Feature Request.
Create a Feature Request via API
The Feature Request creation endpoint is available as part of the Control Plane API. External systems and API consumers can programmatically create Feature Requests by calling:
POST /api/builder/v1/feature-requests
Content-Type: multipart/form-data
Authorization: Bearer <token>
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
summary | string | Yes | Short title describing the request (max 500 characters) |
description | string | Yes | Detailed description of the requested feature (max 10,000 characters) |
priority | string | Yes | Priority level: LOW, MEDIUM, HIGH, or CRITICAL |
projectUrn | string | Yes | URN of the target System (e.g., urn:dmb:dp:finance:cashflow:0). Must reference an existing entity in the catalog |
componentUrn | string | No | URN of the target Component (e.g., urn:dmb:cmp:finance:cashflow:0:storage). When provided, must reference an existing component belonging to the target System |
attachments | binary | No | File attachments (PDF, JPG, PNG only; max 5 files, 10 MB each) |
Validation
The API validates URN fields in two stages:
- Format validation: Both
projectUrnandcomponentUrnmust conform to the Witboost URN format (urn:dmb:<kind>:<domain>:<name>:<version>[:<component>]). - Existence validation: The referenced entities must exist in the Witboost catalog. If
componentUrnis provided, it must also belong to the system identified byprojectUrn.
Invalid requests receive an HTTP 400 response with a descriptive error message.
Response
A successful request returns HTTP 201 with the created Feature Request detail, including its id, status (initially SUBMITTED), and any attachment metadata.
For the full API contract, including request/response schemas and error examples, see the Control Plane API documentation.
Update Feature Request Status via API
PATCH /api/builder/v1/feature-requests/{id}/status
Content-Type: application/json
Authorization: Bearer <token>
Updates the status of a Feature Request. Only the Data Product Owner (or owner delegate) of the associated System can update the status.
Request Body
{
"status": "APPROVED"
}
| Field | Type | Required | Description |
|---|---|---|---|
status | string | Yes | New status: SUBMITTED, APPROVED, IN_PROGRESS, IMPLEMENTED, or REJECTED |
No transition restrictions are enforced — any status can be set regardless of the current status.
Response
Returns HTTP 200 with the updated FeatureRequestSummary object.
Delete a Feature Request via API
DELETE /api/builder/v1/feature-requests/{id}
Authorization: Bearer <token>
Permanently deletes a Feature Request and all its associated attachments. Only the original requester who submitted the Feature Request can delete it.
A successful request returns HTTP 204 with no body.