ProjectProvisioningRuntimeCapability exposes ProjectProvisioningApi under platform.project.provisioning. It is for plugins that own a one-to-one mapping between a business project and an Xpert Chat Project.
The ensure() operation creates the Chat Project or reconciles its current name, lifecycle status, workspace, and connected Assistant without changing the caller-supplied project ID.
Contract
xpertIds is the complete effective set of connected Assistants after synchronization, not only the Assistant supplied by the current call.
Example
Idempotency and ownership
- Generate or reserve
projectIdonce when the business project is created, then reuse it for every retry and reconciliation. - Do not generate a new ID after a timeout. Call
ensure()again with the same ID. - Keep
workspaceIdaligned with the workspace that owns both the business project and the connected Assistant. - Synchronize
status: 'archived'when the business project is archived; do not silently create a replacement active project. - Treat
operationas reconciliation evidence. Product logic should depend on the effective result, not assume every successful call inserted a new record.