Skip to main content

All 11 capabilities

Declare the capability keys you need in manifest.json. Call ctx.register() with the matching shape.

CapabilityExtendsRequired fields
map.toolsMap toolbarid, label, icon, component
sidebar.itemsSidebar navigationid, label, icon, component
viewer.panels3D viewer overlayid, label, icon, component
bim.toolsBIM toolbarid, label, icon, component
pointcloud.toolsPoint cloud toolbarid, label, icon, component
map.layersMap layer listid, label
data.collectionsData menuid, label, listComponent
data.columnsTable column definitionsid, target
jobsBackground job schedulerid, cron, handler
commandsNamed command busid, handler
widgetsDashboard widget panelid, label, component

Toolbar components receive MapToolProps

Applies to map.tools, bim.tools, and pointcloud.tools:

interface MapToolProps {
map: import('maplibre-gl').Map | null
}

Sidebar, viewer, and widget components receive no props from the framework — manage their own data via React context or props passed through your own component tree.

Adding a new capability in the future

Add one entry to VALID_CAPABILITIES in sdk/types.ts, define its registration interface, and add it to CapabilityRegistry. A compile-time parity check in types.ts will catch any mismatch between the two lists.