Allocations
Operations of the Workspace Orchestrator API. Paths are relative to your deployment's API host.
GET /api/workspace-orchestrator-api/allocations/{sessionId}/lockfile-upgrades
List the pending lockfile upgrades for a session.
Browser-facing read for the session lockfile-upgrade banner. Returns ONLY the pending upgrade entries — deliberately NOT the allocation lifecycle, which carries worker/infra internals meant for service-to-service callers. Empty pending means nothing to upgrade.
Authentication: bearer token (Authorization: Bearer <token>)
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
sessionId | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | application/json PendingLockfileUpgradesResponseDtoDataEnvelope | |
| 403 | The caller is not a direct user JWT, or the allocation belongs to another organization. | |
| 404 | No allocation exists for the session. |
POST /api/workspace-orchestrator-api/allocations/{sessionId}/lockfile-upgrades/apply
Apply all available lockfile upgrades for a session.
Saves the current lockfile as previousLockfile (enables rollback), re-resolves all non-pinned dependencies to their latest published versions, writes the new lockfile to Session.lockfile, and returns the upgraded lockfile + the list of changed entries. The new lockfile is written to .xema/lockfile.json on the PVC on the next allocation.
Authentication: bearer token (Authorization: Bearer <token>)
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
sessionId | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | application/json ApplyLockfileUpgradesResponseDtoDataEnvelope | |
| 403 | The caller is not a direct user JWT, or the allocation belongs to another organization. | |
| 404 | No allocation exists for the session. |
POST /api/workspace-orchestrator-api/allocations/{sessionId}/lockfile-upgrades/freeze-item
Freeze a single lockfile entry so it is excluded from future upgrade diffs.
Sets pinned: true on the matching lockfile entry. Pinned entries are omitted from the pending-upgrade diff, so the FE does not prompt the user to upgrade a version they intentionally kept at an older revision.
Authentication: bearer token (Authorization: Bearer <token>)
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
sessionId | path | string | yes |
Request body: application/json FreezeLockfileItemRequestDto
| Status | Description | Body |
|---|---|---|
| 200 | application/json FreezeLockfileItemResponseDtoDataEnvelope | |
| 403 | The caller is not a direct user JWT, or the allocation belongs to another organization. | |
| 404 | No allocation exists for the session. |