Apps / Service Catalog¶
The DPF (Deployment Platform Framework) lets you deploy managed applications from the b'nerd service catalog. Apps are containerized workloads provisioned and operated on your Kubernetes clusters — databases, monitoring stacks, message brokers, and similar services.
Endpoints¶
| Method | Path | Description |
|---|---|---|
GET | /apps | List apps |
POST | /apps | Create an app |
GET | /apps/{id} | Show an app |
PATCH | /apps/{id} | Update an app |
DELETE | /apps/{id} | Delete an app |
List apps¶
Returns all apps visible to the authenticated account across all projects in the organization.
Create an app¶
POST /apps
Authorization: Bearer <token>
Content-Type: application/json
{
"app": {
"name": "my-postgres",
"kind": "postgres",
"organization_id": "<uuid>",
"project_id": "<uuid>"
}
}
Returns 201 Created. The kind value determines which service from the catalog is deployed. Available kinds depend on your organization's catalog subscription — query GET /apps to see deployed kinds or contact your account manager for the current catalog.
Show an app¶
Key response fields:
| Field | Description |
|---|---|
id | App UUID |
name | Display name |
kind | App type (e.g. postgres, redis) |
project_id | Project the app belongs to |
organization_id | Organization UUID |
status | Current deployment status object (nullable while provisioning) |
stack_id | Underlying stack identifier (nullable) |
parent_app_id | Parent app UUID for child/plugin apps (nullable) |
deleted_at | Soft-delete timestamp; null for active apps |
Update an app¶
PATCH /apps/{id}
Authorization: Bearer <token>
Content-Type: application/json
{ "app": { "name": "renamed-postgres" } }
Delete an app¶
Returns 204 No Content. Deleting an app deprovisions the underlying workload. This is irreversible for stateful services — ensure you have taken a backup or snapshot before proceeding.
Webhooks and reconciliation¶
Apps integrate with the platform's webhook system. When a container image is pushed to the b'nerd registry and a webhook target mapping matches the resource_url, the corresponding app is reconciled automatically — pulling the new image tag and rolling out the update.
Authorization¶
App operations use the apps permission category:
| Operation | Required permission |
|---|---|
| List / show | apps:read |
| Create | apps:create |
| Update | apps:update |
| Delete | apps:delete |
See RBAC Presets for which roles carry these permissions.