Skip to main content

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.

PermissionDescription
control-plane.feature-request.createAllows 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.

ParameterTypeRequiredDescription
projectUrnstringYesURN of the target System. Must be a valid Witboost URN
componentUrnstringNoFilter by Component URN. Must be a valid Witboost URN when provided
statusstringNoFilter by status: SUBMITTED, APPROVED, IN_PROGRESS, IMPLEMENTED, REJECTED
prioritystringNoFilter by priority: LOW, MEDIUM, HIGH, CRITICAL
offsetintegerNoPagination offset (default: 0)
limitintegerNoPage 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.

ParameterTypeRequiredDescription
projectUrnstringNoFilter by System URN
statusstringNoFilter by status
prioritystringNoFilter by priority
offsetintegerNoPagination offset (default: 0)
limitintegerNoPage 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

FieldTypeRequiredDescription
summarystringYesShort title describing the request (max 500 characters)
descriptionstringYesDetailed description of the requested feature (max 10,000 characters)
prioritystringYesPriority level: LOW, MEDIUM, HIGH, or CRITICAL
projectUrnstringYesURN of the target System (e.g., urn:dmb:dp:finance:cashflow:0). Must reference an existing entity in the catalog
componentUrnstringNoURN 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
attachmentsbinaryNoFile attachments (PDF, JPG, PNG only; max 5 files, 10 MB each)

Validation

The API validates URN fields in two stages:

  1. Format validation: Both projectUrn and componentUrn must conform to the Witboost URN format (urn:dmb:<kind>:<domain>:<name>:<version>[:<component>]).
  2. Existence validation: The referenced entities must exist in the Witboost catalog. If componentUrn is provided, it must also belong to the system identified by projectUrn.

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"
}
FieldTypeRequiredDescription
statusstringYesNew 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.