ContentConfiguration is the Platform Mesh custom resource that registers a UI extension with the Platform Mesh Portal. It carries a configuration fragment that tells the portal how a micro-frontend should appear in the navigation, what entity it represents, and how it should behave.
ContentConfiguration is defined in the API group ui.platform-mesh.io/v1alpha1. It is processed by the extension manager operator (running inside the portal stack), which validates the configuration, resolves any remote references, and stores the processed result in the resource’s .status so the portal can serve it without a runtime dependency on remote endpoints.
apiVersion: ui.platform-mesh.io/v1alpha1
kind: ContentConfiguration
metadata:
name: account-home
labels:
ui.platform-mesh.io/entity: core_platform-mesh_io_account
spec:
inlineConfiguration:
contentType: json # json | yaml
content: |-
{
"name": "overview",
"navigationConfig": {
"data": {
"nodes": [ ... ]
}
}
}
# OR remote-loaded:
# remoteConfiguration:
# url: https://example.com/config.yaml
# authentication:
# type: bearer
# secretRef:
# name: example-credentials
| Field | Purpose |
|---|---|
metadata.labels["ui.platform-mesh.io/entity"] |
Attaches this configuration to a navigation entity in the portal (for example, core_platform-mesh_io_account to extend Account pages). |
spec.inlineConfiguration.content |
Configuration fragment delivered directly. Best for small, self-contained UI extensions. |
spec.inlineConfiguration.contentType |
json or yaml — how to parse content. |
spec.remoteConfiguration.url |
URL to fetch the configuration from. Best when the UI team owns the config independently from the cluster. |
spec.remoteConfiguration.authentication |
Auth for the remote URL: none, basic, bearer, or clientCredentials with a secretRef. |
| Use case | Created by |
|---|---|
| Built-in portal pages (for example, the Account dashboard) | Platform owner, deployed alongside the portal as part of the Platform Mesh installation. |
| Provider-supplied extensions (for example, a custom UI for a database service) | Service provider, packaged with their service or applied during marketplace onboarding. |
| Tenant-specific extensions | Account admin, applied inside the Account’s workspace. |
ContentConfiguration must be created in a workspace where the portal’s extension manager operator can reconcile it — typically a Platform Mesh system workspace for built-ins and provider workspaces for service extensions.
The extension manager operator validates and reconciles ContentConfiguration resources. The Platform Mesh Portal reads the reconciled configuration at runtime.
remoteConfiguration is set, it fetches the remote content (using the configured authentication)..status..status at request time to render navigation and load the micro-frontend.This processing model keeps the portal highly available: the portal does not call out to remote URLs at request time, so a failing extension endpoint cannot bring the portal down.
flowchart LR
Author["Platform owner or provider"]
Config["ContentConfiguration"]
Extension["Extension manager operator"]
Portal["Platform Mesh Portal"]
Author --> Config
Config --> Extension
Extension --> Portal
The following ContentConfiguration registers a “Dashboard” tab on every Account page in the portal:
apiVersion: ui.platform-mesh.io/v1alpha1
kind: ContentConfiguration
metadata:
name: account-home
labels:
ui.platform-mesh.io/entity: core_platform-mesh_io_account
spec:
inlineConfiguration:
contentType: json
content: |-
{
"name": "overview",
"navigationConfig": {
"data": {
"nodes": [{
"entityType": "main.core_platform-mesh_io_account",
"pathSegment": "dashboard",
"label": "Dashboard",
"url": "/assets/platform-mesh-portal-ui-wc.js#generic-detail-view",
"webcomponent": { "selfRegistered": true }
}]
}
}
}
The label ui.platform-mesh.io/entity: core_platform-mesh_io_account tells the portal: “When rendering an Account page, include this configuration’s nodes.” The entityType: main.core_platform-mesh_io_account inside the configuration places the navigation node in the main slot for Account pages.
remoteConfiguration..status errors rather than runtime portal failures.ui.platform-mesh.io/entity label usage