← API reference
SCHEMA VIEW

Production Floor

Jobs, components, operations, scheduling, production reporting, and the files attached to them.

Open workbench ↗Download SDL ↓AI context →

240 operations · complete schema 591 KB

Query

magicQuery

Executes a Magic Query string and returns the predefined query's JSON result. On a bad noun or parameter, returns a structured error whose 'extensions' carry 'code', 'actionable_message', and 'suggestions' for self-correction.

→
Query

getMagicQuerySchema

Returns the input JSON Schema and output introspection for a Magic Query noun, so consumers (especially LLMs) can learn its contract before calling magicQuery.

→
Query

listMagicQueries

Lists every available Magic Query noun with a short description and its options — the discovery entry point.

→
Query

getMagicQueryGraphQL

Resolves a Magic Query string to the real GraphQL operation and variables it runs, so consumers can graduate from the façade to raw GraphQL. Does not execute.

→
Query

listDataChangeEventTopics

List all valid data change event topics, grouped by resource. Requires authentication.

→
Query

generateDefaultDataQuery

Generate a default GraphQL data query for an event topic. Returns a query string with all scalar fields for the resource, or null if the topic has no matching query. The query uses $id as the variable for the resource ID.

→
Query

ping

Health check endpoint

→
Query

getJob

Fetch a job by ID. Requires job:read permission.

→
Query

getJobBy

Fetch a job by external ID. Requires job:read permission.

→
Query

listJobs

List jobs with pagination and filtering. Requires job:list permission.

→
Query

aggregateJobs

Aggregate jobs with optional filtering. Returns count, sum, avg, min, max. Requires job:list permission.

→
Query

getJobGroup

Fetch a job group by ID. Requires jobGroup:read permission.

→
Query

listJobGroups

List job groups with pagination. Requires jobGroup:list permission.

→
Query

getMilestone

Fetch a milestone by ID. Requires milestone:read permission.

→
Query

getMilestoneBy

Fetch a milestone by any of its external ids. Every supplied id must match; with none, returns null. Requires milestone:read permission.

→
Query

listMilestones

List milestones with pagination and filtering. Requires milestone:list permission.

→
Query

getComponent

Fetch a component by ID. Requires component:read permission.

→
Query

getComponentBy

Fetch a component by external ID. Requires component:read permission.

→
Query

listComponents

List components with pagination and filtering. Requires component:list permission.

→
Query

aggregateComponents

Aggregate components with optional filtering. Returns count, sum, avg, min, max. Requires component:list permission.

→
Query

getComponentGroup

Fetch a component section by ID. Requires componentGroup:read permission.

→
Query

listComponentGroups

List component sections, optionally scoped to a job. Requires componentGroup:list permission.

→
Query

getOperation

Fetch an operation by ID. Requires operation:read permission.

→
Query

getOperationBy

Fetch an operation by external ID. Requires operation:read permission.

→
Query

listOperations

List operations with pagination and filtering. Requires operation:list permission.

→
Query

aggregateOperations

Aggregate operations with optional filtering. Returns count, sum, avg, min, max. Requires operation:list permission.

→
Query

getOperationParameterSchema

Returns the JSON Schema (draft-07) for the parameters field of the given operation kind, or null if no schema is defined for that kind. Use this to drive dynamic form generation on the client. Requires operation:read permission.

→
Query

listWorkCenterStatusEvents

List status transition events for a work center

→
Query

getOperationCompletion

Fetch an operation completion record by ID. Requires operation:read permission.

→
Query

getOperationCompletionByOperation

Fetch the most recent completion record for an operation. Requires operation:read permission.

→
Query

listOperationCompletions

List operation completion records with pagination. Requires operation:list permission.

→
Query

getProductionReport

Fetch a production report by ID. Requires productionReport:read.

→
Query

listProductionReports

List production reports for the tenant, paginated. Requires productionReport:list.

→
Query

iacSchema

The infrastructure-only view of this schema, for declarative tooling. Contains only annotated resources and the types they reach.

→
Query

iacValidate

Validate an infrastructure artifact. Pure and side-effect free; safe to alias many times in one document.

→
Query

iacGuides

Every authoring guide, for a tool that syncs them to a folder. Intended for `schema pull` to call once and write to disk, not for an agent to call while authoring — a file can be grepped and re-read in part, where a response arrives whole.

→
Query

helpChapters

List human-facing manual chapters from the running deployment.

→
Query

helpChapter

Read a chapter of the current published manual edition.

→
Query

searchHelp

Search human-facing manuals using shared semantic and text retrieval.

→
Query

schemaAuthoringCatalog

Compiler-owned vocabulary for the standalone XML JSON Schema dialect, including native form annotations.

→
Query

compileSchemaXML

Compile standalone XML schema syntax into JSON Schema without persisting it; host restrictions apply when embedded.

→
Query

renderSchemaXML

Render JSON Schema as native XML without dropping unsupported keywords or changing a saved document.

→
Query

iacSchemaDocument

Fetch the JSON Schema document a SCHEMA-kind validator references, for declarative tooling.

→
Query

getTask

Fetch a task by ID. Requires task:read permission.

→
Query

listTasks

List all tasks with pagination. Requires task:list permission.

→
Query

myTasks

List tasks assigned to the current user or their teams. Requires task:list permission.

→
Query

getTaskEvents

Fetch the audit trail for a task, paginated. Requires task:read permission.

→
Query

getCapability

Fetch a single capability by id, scoped to the caller's tenant. Null when no visible capability has that id. Requires capability:read permission.

→
Query

getExistingCapability

Read an existing capability reference by identity. Returns null if not visible. Requires capability:read.

→
Query

getCapabilityByCode

Resolve an existing capability by code. A tenant-owned definition takes precedence over a shared definition, matching inference. Ambiguous definitions fail; missing codes return null. Read-only; requires capability:read.

→
Query

listCapabilities

List the capabilities visible to the caller's tenant — the tenant's own capabilities plus any non-tenant-scoped ones. Requires capability:list permission.

→
Query

getProductionCell

Fetch a single production cell by id, scoped to the caller's tenant. Null when no such production cell exists. Requires productionCell:read permission.

→
Query

listProductionCells

List the tenant's production cells as a paginated connection, with optional filtering and sorting. Requires productionCell:list permission.

→
Query

getShiftDefinition

Fetch a single shift definition by id, or null when no definition with that id exists in the caller's tenant. Requires shiftDefinition:read permission.

→
Query

listShiftDefinitions

List the current tenant's shift definitions as a connection. Requires shiftDefinition:list permission.

→
Query

getWorkCenter

Fetch a single work center by id, scoped to the caller's tenant. Null when no such work center exists. Requires workCenter:read permission.

→
Query

getWorkCenterBy

Fetch a work center by external ID. Requires workCenter:read permission.

→
Query

listWorkCenters

List the tenant's work centers as a paginated connection, with optional filtering and sorting. Requires workCenter:list permission.

→
Query

productionSnapshot

Read production resources with batched evidence. Also requires workCenter:read; cell, operation, progress and job permissions are checked independently.

→
Query

productionDay

Status history, published plan and shifts for up to 100 active work centers of one cell over a window of at most 36 hours. Schedule and shift permissions are checked independently.

→
Query

getWorkCenterCapability

One capability assignment by its own id, or null when it is not in the caller's tenant. Requires workCenter:read permission.

→
Query

listWorkCenterCapabilities

All capability assignments for one work center in the caller's tenant, returned in a single unpaginated page. Requires workCenter:read permission.

→
Query

getWorkCenterDevice

One device binding by its own id, or null when it is not in the caller's tenant. Requires workCenter:read permission.

→
Query

listWorkCenterDevices

List the controller devices bound to a work center, preferred first. Requires workCenter:read.

→
Query

getWorkCenterShiftProfile

One shift profile assignment by its own id, or null when it is not in the caller's tenant. Requires workCenter:read permission.

→
Query

listWorkCenterShiftProfiles

Lists the shift profiles of one work center within the caller's tenant, ordered by validFrom ascending. Requires workCenter:read.

→
Query

getScheduleScenario

Fetch a single schedule scenario by id, or null when it does not exist. Requires scheduleScenario:read permission.

→
Query

listScheduleScenarios

List the caller's tenant's schedule scenarios as a keyset-paginated connection. Requires scheduleScenario:list permission.

→
Query

listScheduleAllocations

List the allocations of one schedule scenario, ordered by start time by default. Requires scheduleScenario:read permission.

→
Query

listOperationEdges

List every operation dependency edge of a job, ordered by `sortOrder` ascending, with pagination. Returns an empty connection for a job with no edges. Requires operation:read permission.

→
Query

listOperationItems

List operation items for an operation, sorted by sortOrder, with pagination. Requires operation:read permission.

→
Query

listOperationItemEdges

List item-level dependency edges, with pagination. Filter by job and optionally by source/target operation. Requires operation:read permission.

→
Query

listProductionPlans

Production plans of a job, newest version first, paginated. Plan headers only — no planned operations or edges. Requires productionPlan:read permission.

→
Query

getProductionPlan

A single production plan with all of its planned operations and edges. Null when no such plan exists in the caller's tenant. Requires productionPlan:read permission.

→
Query

getOptimizationRun

Get an optimization run by ID. Requires optimizationRun:read permission.

→
Query

listOptimizationRuns

List optimization runs for a scenario, paginated. Requires optimizationRun:list permission.

→
Query

workCenterBehaviorProfile

The latest behaviour profile version of a work centre, or null when none has been built. Requires workCenterBehaviorProfile:read permission.

→
Query

workCenterBehaviorProfiles

Behaviour profile versions, paginated. Requires workCenterBehaviorProfile:list permission.

→
Query

twinBehaviorAttributes

The behaviour attributes the active vertical declares, highest priority first, so a custom app can render hypothetical inputs from the schema. Requires workCenterBehaviorProfile:read permission.

→
Query

scenarioSimulationRun

A simulation run by id, or null when none exists. Requires scenarioSimulationRun:read permission.

→
Query

scenarioSimulationRuns

Simulation runs, paginated. Requires scenarioSimulationRun:list permission.

→
Query

simulateWorkload

Synchronous what-if over hypothetical work, optionally overlaid on a base scenario's allocations. Persists nothing. Bounded by TWIN_MAX_SYNC_SAMPLES and 50 hypothetical allocations. Requires scenarioSimulationRun:execute.

→
Query

workCenterTwinShadow

The live shadow of one work centre, computed now. Requires workCenterBehaviorProfile:read permission.

→
Query

workCenterTwinShadows

Work centres with a live shadow, newest transition first, each entry judged now; the filter applies to the state recorded by the latest transition, so an entry's live state may already differ. Catch-up confidences are the figures recorded at the latest transition (null once the judgement has moved on) — a page never replays the queue; workCenterTwinShadow recomputes them. Requires workCenterBehaviorProfile:read permission.

→
Query

workCenterTwinEvents

A work centre's twin transitions, newest first, of both tracks unless `track` narrows them. Requires workCenterBehaviorProfile:read permission.

→
Query

projectWorkCenterTwin

Project one work centre over the next N hours: per-shift bands of expected busy and lost minutes, a down-probability strip and per-allocation ends, from the machine's behaviour profile and its published plan. Synchronous; persists nothing. Bounded by TWIN_MAX_SYNC_SAMPLES, 336 hours and 50 hypothetical allocations. Requires scenarioSimulationRun:execute.

→
Query

getFile

Fetch a file by ID. Requires file:read permission.

→
Query

listFiles

List files with pagination and filtering. Requires file:list permission.

→
Query

getEntityNote

Read operational notes with current target permissions

→
Query

getEntityNoteBySource

Read operational notes with current target permissions

→
Query

entityNotes

Read operational notes with current target permissions

→
Query

searchEntityNotes

Read operational notes with current target permissions

→
Query

productionBoard

Fetch active production jobs with components, operations, and order context. Requires job:list.

→
Query

jobCostingSummary

Get a costing summary for a job including material and operation costs. Requires job:read.

→
Query

evaluateProducibility

Evaluate whether a component can be produced by the given work centers

→
Query

producibilityIntelligence

Combined producibility intelligence: rule-based feasibility, ML predictions, risk analysis, and similar historical jobs in a single query. All ML fields degrade to null when no models are trained.

→
Query

previewPlannedOperationAudit

Preview waste, yield, duration and constant-rate pace for a stored planned operation. Optionally assess its stored plan's item statuses and downstream dependencies, plus booked timing in an explicit schedule scenario. No writes or audit events. Inspect coverage and limitations; this is not a delivery-date guarantee.

→
Query

auditProduction

Audit in-flight production for a job: evaluate current progress against the production DAG to detect waste, yield shortfalls, duration overruns, and item-level failures with downstream cascade analysis. Requires job:read permission.

→
Query

auditProductionEnriched

Enriched production audit: same as auditProduction but additionally includes work center baseline metrics, production cell rankings, and live in-flight performance from LightTS progress hourly aggregates. Returns the same AuditVerdictOutput type with enrichments and livePerformance fields populated.

→
Query

getS3Backend

Fetch one storage backend as an S3 backend. Null when no backend with that id exists in the caller's tenant, or when it exists but is not S3 — a backend has exactly one kind, so asking for the wrong face is a miss rather than an error. Requires storageBackend:read permission.

→
Query

getHostPathBackend

Fetch one storage backend as a host-path backend. Null when no backend with that id exists in the caller's tenant, or when it exists but is not host-path — a backend has exactly one kind, so asking for the wrong face is a miss rather than an error. Requires storageBackend:read permission.

→
Query

getFTPBackend

Fetch one storage backend as an FTP backend. Null when no backend with that id exists in the caller's tenant, or when it exists but is not FTP — a backend has exactly one kind, so asking for the wrong face is a miss rather than an error. Requires storageBackend:read permission.

→
Query

getGoogleDriveBackend

Fetch one storage backend as a Google Drive backend. Null when no backend with that id exists in the caller's tenant, or when it exists but is not Google Drive — a backend has exactly one kind, so asking for the wrong face is a miss rather than an error. Requires storageBackend:read permission.

→
Query

getDropboxBackend

Fetch one storage backend as a Dropbox backend. Null when no backend with that id exists in the caller's tenant, or when it exists but is not Dropbox — a backend has exactly one kind, so asking for the wrong face is a miss rather than an error. Requires storageBackend:read permission.

→
Query

getStorageBackend

Fetch one storage backend by id. Null when no backend with that id exists in the caller's tenant. Requires storageBackend:read permission.

→
Query

listStorageBackends

List the calling tenant's storage backends. Requires storageBackend:list permission.

→
Query

storageCapabilities

Which storage backend kinds this deployment supports, so a client can hide unusable options. Requires storageBackend:list permission.

→
Query

folder

A single folder in the caller's tenant, or null when no folder with that id exists there. Requires folder:read permission.

→
Query

folders

Folders in the caller's tenant, filtered and sorted, as a connection. Requires folder:list permission.

→
Mutation

upsertJob

Create or update a job. Requires job:write permission.

→
Mutation

createJob

Create a new job. Requires job:write permission.

→
Mutation

updateJob

Update a job. Only provided fields are changed. Requires job:write permission.

→
Mutation

deleteJob

Delete a job. Requires job:delete permission.

→
Mutation

createJobGroup

Create a new job group. Requires jobGroup:write permission.

→
Mutation

addJobToJobGroup

Add a new job to a group by instantiating the group's template. Requires jobGroup:write permission.

→
Mutation

removeJobFromJobGroup

Remove a job from its group (job survives). Requires jobGroup:write permission.

→
Mutation

destroyJobGroup

Delete a job group (jobs are unlinked, not deleted). Requires jobGroup:delete permission.

→
Mutation

destroyJobGroupAndJobs

Delete a job group and all its jobs. Requires jobGroup:delete permission.

→
Mutation

upsertMilestone

Create or update a milestone. Requires milestone:write permission.

→
Mutation

createMilestone

Create a new milestone. Requires milestone:write permission.

→
Mutation

updateMilestone

Update a milestone. Only provided fields are changed. Requires milestone:write permission.

→
Mutation

startMilestone

Mark a milestone as started now. Does not change its completion. Requires milestone:write permission.

→
Mutation

unstartMilestone

Clear a milestone's start. Requires milestone:write permission.

→
Mutation

completeMilestone

Mark a milestone as completed. Requires milestone:write permission.

→
Mutation

uncompleteMilestone

Mark a milestone as not completed. Requires milestone:write permission.

→
Mutation

cancelMilestone

Mark a milestone as cancelled, optionally recording a reason. Requires milestone:write permission.

→
Mutation

uncancelMilestone

Clear the cancellation state of a milestone. Requires milestone:write permission.

→
Mutation

deleteMilestone

Delete a milestone. Requires milestone:delete permission.

→
Mutation

upsertComponent

Create or update a component. Requires component:write permission.

→
Mutation

createComponent

Create a new component. Requires component:write permission.

→
Mutation

updateComponent

Update a component. Only provided fields are changed. Requires component:write permission.

→
Mutation

deleteComponent

Delete a component. Requires component:delete permission.

→
Mutation

upsertComponentGroup

Create or update a component section. Requires componentGroup:write permission.

→
Mutation

createComponentGroup

Create a new component section. Requires componentGroup:write permission.

→
Mutation

updateComponentGroup

Update a component section. Only provided fields are changed. Requires componentGroup:write permission.

→
Mutation

deleteComponentGroup

Delete a component section. Requires componentGroup:delete permission.

→
Mutation

upsertOperation

Create or update an operation. Requires operation:write permission.

→
Mutation

createOperation

Create a new operation. Requires operation:write permission.

→
Mutation

updateOperation

Update an operation. Only provided fields are changed. Requires operation:write permission.

→
Mutation

transitionOperation

Transition operation to a new status. Requires operation:execute permission.

→
Mutation

deleteOperation

Delete an operation. Requires operation:delete permission.

→
Mutation

correctWorkCenterStatusEvent

Void or supersede a status event atomically. Preserves original history and records the authenticated actor. Requires workCenter:write permission.

→
Mutation

recordWorkCenterStatusEvent

Record a work centre's status. A status is held until it changes: when it equals the current status, the current event's lastSeenAt is refreshed and that event is returned; otherwise a new event is appended. A timestamp before the current event's is recorded as history. Requires workCenter:write permission.

→
Mutation

createProductionReport

Create a production report and any consumption rows. Requires productionReport:write.

→
Mutation

createTask

Create a new task. Requires task:write permission.

→
Mutation

updateTask

Edit task metadata without changing its lifecycle. Requires task:write permission.

→
Mutation

transitionTask

Transition a task's status. Requires task:transition permission.

→
Mutation

claimTask

Claim a team-assigned task. Requires task:claim permission.

→
Mutation

cancelTask

Cancel a task. Requires task:transition permission.

→
Mutation

deleteTask

Delete a task. Requires task:delete permission.

→
Mutation

upsertCapability

Create a capability, or replace an existing one wholesale when input.id is given. Unlike createCapability/updateCapability this does not reject a duplicate code. The capability is written under the caller's tenant. Requires capability:write permission.

→
Mutation

createCapability

Create a new capability. Requires capability:write permission.

→
Mutation

updateCapability

Update a capability. Only provided fields are changed. Requires capability:write permission.

→
Mutation

deleteCapability

Delete a capability owned by the caller's tenant. Non-tenant-scoped capabilities cannot be deleted: the payload reports success: false instead. Requires capability:delete permission.

→
Mutation

upsertProductionCell

Create a production cell, or fully overwrite an existing one when input.id names one in the caller's tenant. Requires productionCell:write permission.

→
Mutation

createProductionCell

Create a new production cell. Requires productionCell:write permission.

→
Mutation

updateProductionCell

Update a production cell. Only provided fields are changed. Requires productionCell:write permission.

→
Mutation

deleteProductionCell

Delete a production cell. Work centers in the cell are kept but become ungrouped, and schedule scenarios targeting it lose that target. Requires productionCell:delete permission.

→
Mutation

upsertShiftDefinition

Create or overwrite a shift definition in one call. When input.id names an existing definition its createdAt is preserved; otherwise a new "shd" TypeID is minted. Validation failures come back as payload errors rather than as a GraphQL error. Requires shiftDefinition:write permission.

→
Mutation

createShiftDefinition

Create a new shift definition in the caller's tenant; the server mints its "shd" TypeID and timestamps. Validation failures come back as payload errors rather than as a GraphQL error. Requires shiftDefinition:write permission.

→
Mutation

updateShiftDefinition

Patch an existing shift definition and stamp updatedAt. An unknown id, and any validation failure, come back as payload errors rather than as a GraphQL error. Requires shiftDefinition:write permission.

→
Mutation

deleteShiftDefinition

Delete a shift definition from the caller's tenant. Deleting one that does not exist is reported as success: false with an "id" error, not as a GraphQL error. Requires shiftDefinition:delete permission.

→
Mutation

configureWorkCenterTwin

Replaces a work centre's twin settings. This is the only route to them: the work centre's own create and update do not accept them. Requires workCenterBehaviorProfile:write permission.

→
Mutation

upsertWorkCenter

Create a work center, or fully overwrite an existing one when input.id matches one in the caller's tenant. Unlike updateWorkCenter this replaces every field, so omitted optional fields are cleared. Requires workCenter:write permission.

→
Mutation

createWorkCenter

Create a new work center. Requires workCenter:write permission.

→
Mutation

updateWorkCenter

Update a work center. Only provided fields are changed. Requires workCenter:write permission.

→
Mutation

deleteWorkCenter

Permanently delete a work center from the caller's tenant. Returns success = false when no work center with that id exists. Prefer setting lifecycle = ARCHIVED to retire a work center that has production history. Requires workCenter:delete permission.

→
Mutation

createWorkCenterCapability

Assigns a capability to a work center with a server-generated id. Nothing is persisted if a constraint URI fails validation; the errors are returned instead. Requires workCenter:write permission.

→
Mutation

updateWorkCenterCapability

Patches an existing work center capability assignment and refreshes its updatedAt. Returns an "id" error when no such assignment exists in the caller's tenant, and persists nothing if a constraint URI fails validation. Requires workCenter:write permission.

→
Mutation

upsertWorkCenterCapability

Creates or wholly overwrites a work center capability assignment. Unlike update, every field is taken from the input, so omitted constraints clear the stored list; an existing record keeps its original createdAt. Requires workCenter:write permission.

→
Mutation

deleteWorkCenterCapability

Removes a capability assignment from a work center. Returns success: false with an "id" error when the assignment does not exist in the caller's tenant. Requires workCenter:write permission.

→
Mutation

createWorkCenterDevice

Create a new work center ↔ device binding. Requires workCenter:write.

→
Mutation

updateWorkCenterDevice

Update a work center ↔ device binding. Only provided fields are changed. Requires workCenter:write.

→
Mutation

upsertWorkCenterDevice

Bind a controller device to a work center (or update its priority/active flag). Requires workCenter:write.

→
Mutation

deleteWorkCenterDevice

Remove a work center ↔ device binding. Requires workCenter:write.

→
Mutation

upsertWorkCenterShiftProfile

Creates a work center shift profile, or fully replaces an existing one when input.id is supplied (createdAt is preserved). Requires workCenter:write.

→
Mutation

createWorkCenterShiftProfile

Creates a new work center shift profile with a server-generated id. Requires workCenter:write.

→
Mutation

updateWorkCenterShiftProfile

Partially updates an existing work center shift profile. Returns an id error when no such profile exists in the caller's tenant. Requires workCenter:write.

→
Mutation

deleteWorkCenterShiftProfile

Permanently deletes a work center shift profile, so the work center no longer runs that shift definition over the profile's window. Requires workCenter:write.

→
Mutation

upsertScheduleScenario

Create a schedule scenario, or fully replace an existing one when input.id is given. Rejected when the target scenario is locked. Requires scheduleScenario:write permission.

→
Mutation

createScheduleScenario

Create a new schedule scenario. Requires scheduleScenario:write permission.

→
Mutation

updateScheduleScenario

Update a schedule scenario. Only provided fields are changed. Requires scheduleScenario:write permission.

→
Mutation

deleteScheduleScenario

Permanently delete a schedule scenario. Requires scheduleScenario:delete permission.

→
Mutation

lockScheduleScenario

Freeze a schedule scenario by stamping lockedAt. Scenario edits and allocation writes are rejected until unlockScheduleScenario clears the lock. Fails if it is already locked. Requires scheduleScenario:write permission.

→
Mutation

unlockScheduleScenario

Clear lockedAt so the scenario can be edited and published again. Fails if it is not locked. Requires scheduleScenario:write permission.

→
Mutation

upsertScheduleAllocation

Create a schedule allocation, or overwrite an existing one when input.id is supplied (createdAt is preserved). Requires scheduleScenario:write permission.

→
Mutation

createScheduleAllocation

Create a new schedule allocation. Requires scheduleScenario:write permission.

→
Mutation

updateScheduleAllocation

Update a schedule allocation. Only provided fields are changed. Requires scheduleScenario:write permission.

→
Mutation

deleteScheduleAllocation

Delete a schedule allocation from its scenario. Returns success: false with an "id" error when no such allocation exists. Requires scheduleScenario:write permission.

→
Mutation

upsertOperationGraph

Replace a job's entire operation dependency graph: all existing edges for the job are deleted and the supplied ones inserted, in a single transaction that also applies any operation scheduling preferences. Validation (endpoints in-job, no self-loops, no duplicates, no cycles) runs before anything is written; on failure nothing changes and the errors are returned in the payload. Requires operation:write permission.

→
Mutation

createOperationEdge

Create a single operation dependency edge. Requires operation:write permission.

→
Mutation

updateOperationEdge

Update a single operation dependency edge. Only provided fields are changed. Requires operation:write permission.

→
Mutation

upsertOperationItem

Create or update a single operation item. Requires operation:write permission.

→
Mutation

createOperationItem

Create a new operation item. Requires operation:write permission.

→
Mutation

updateOperationItem

Update an operation item. Only provided fields are changed. Requires operation:write permission.

→
Mutation

upsertOperationItems

Batch upsert operation items for an operation (replaces all existing items). Requires operation:write permission.

→
Mutation

transitionOperationItem

Transition operation item to a new status. Requires operation:execute permission.

→
Mutation

deleteOperationItem

Delete an operation item. Requires operation:delete permission.

→
Mutation

upsertOperationItemEdges

Batch upsert item-level dependency edges. Requires operation:write permission.

→
Mutation

createOperationItemEdge

Create a single item-level dependency edge. Requires operation:write permission.

→
Mutation

updateOperationItemEdge

Patch a single item-level dependency edge. Requires operation:write permission.

→
Mutation

updatePlannedOperationQuantities

Update only quantities on one planned step without replacing its identity, schedule allocations, durations or legacy productionQuantity.

→
Mutation

upsertProductionPlan

Create or overwrite a production plan together with its full set of planned operations and edges, in one transaction. Children are replaced wholesale (delete-then-insert). Validation failures are returned in the payload's `errors` rather than thrown. Requires productionPlan:write permission.

→
Mutation

createProductionPlan

Create a new production plan. Requires productionPlan:write permission.

→
Mutation

updateProductionPlan

Update a production plan. Only provided fields are changed. Requires productionPlan:write permission.

→
Mutation

refreshWorkCenterBehaviorProfile

Rebuild a work centre's behaviour profile from its history now, writing a new version. Requires workCenterBehaviorProfile:write permission.

→
Mutation

simulateScheduleScenario

Queue a Monte-Carlo replay of a scenario's allocations against the work centres' learned behaviour profiles. Returns immediately with a QUEUED run; stream progress with scenarioSimulationProgress or poll scenarioSimulationRun. Requires scenarioSimulationRun:execute.

→
Mutation

cancelScenarioSimulation

Cancel a queued or running simulation. The run ends CANCELLED; a run already in a terminal status is left unchanged and reported as a field error. Requires scenarioSimulationRun:execute.

→
Mutation

startScheduleOptimization

Start a background schedule optimization. Returns immediately with the run ID. Use scheduleOptimizationProgress subscription to stream progress.

→
Mutation

cancelScheduleOptimization

Cancel a running schedule optimization. The run transitions to CANCELLED status.

→
Mutation

upsertFile

Create or update an external-backed file. Cloud-backed files use requestFileUploads. Requires file:write permission.

→
Mutation

createFile

Create an external-backed file. Cloud-backed files use requestFileUploads. Requires file:write permission.

→
Mutation

updateFile

Update a file. Only provided fields are changed. Requires file:write permission.

→
Mutation

deleteFile

Delete a file. Requires file:delete permission.

→
Mutation

requestFileUploads

Allocate one or more cloud upload URLs. Requires file:write permission.

→
Mutation

completeFileUploads

Mark one or more uploads as ready. Requires file:write permission.

→
Mutation

fileDownloadUrl

Resolve a download URL. Managed cloud URLs are provider-signed; EXTERNAL URLs pass through unchanged with no Pulse signature or TTL, and report URLs require authentication at retrieval. Requires file:download permission.

→
Mutation

createEntityNote

Save note changes independently of embedding success

→
Mutation

updateEntityNote

Save note changes independently of embedding success

→
Mutation

deleteEntityNote

Save note changes independently of embedding success

→
Mutation

reindexEntityNotes

Queue bounded recoverable indexing work using the current model

→
Mutation

createJobsFromOrder

Create jobs from order lines. Requires job:write.

→
Mutation

acceptEstimateAndCreateJobs

Accept an estimate and create order + jobs with components/operations from production blueprints. Requires order:write.

→
Mutation

issueStockToProduction

Issue warehouse stock to production, creating transfers and reducing quantities. Requires warehouseStock:write.

→
Mutation

inferOperations

Infer the required production operations for a component. Provide either componentId or spec. When imposing config is provided, returns full production-grade DAG.

→
Mutation

createStorageBackendAuthorization

Start the OAuth consent flow for a Google Drive or Dropbox backend. Persists a draft backend (status NEEDS_REAUTHORIZATION) and returns the provider consent URL to send the user to; the callback completes the draft. Requires storageBackend:write permission.

→
Mutation

upsertStorageBackend

Create or update a storage backend in one call. Prefer createStorageBackend / updateStorageBackend, which have the same validation but distinct create/update semantics. Requires storageBackend:write permission.

→
Mutation

createStorageBackend

Create a new storage backend. Requires storageBackend:write permission.

→
Mutation

updateStorageBackend

Update a storage backend. Only provided fields are changed. Requires storageBackend:write permission.

→
Mutation

deleteStorageBackend

Delete a storage backend. Returns a notFound payload when no such backend exists in the caller's tenant. Also the way to clean up a draft left behind by an abandoned OAuth flow. Requires storageBackend:delete permission.

→
Mutation

testStorageBackend

Probe a storage backend's connectivity with its stored credentials (a bucket/root head — nothing is written). Never throws: a failure comes back as ok: false with a reason. Requires storageBackend:read permission.

→
Mutation

createFolder

Creates a folder in the caller's tenant. The binding reference must resolve to a storage backend or controller owned by the tenant, the name must be unique within it, and at most one folder may be the tenant default. Requires folder:write permission.

→
Mutation

updateFolder

Patches a folder. Omitted fields are left unchanged. A folder that files already reference may not have its binding or root path changed (stored file handles would resolve against the wrong transport/prefix), and the tenant default may be moved to another folder but never simply unset. Requires folder:write permission.

→
Mutation

deleteFolder

Deletes a folder. Refused for the tenant default folder and for any folder still referenced by files — the stored bytes would be orphaned. Requires folder:delete permission.

→
Mutation

testFolder

Checks a folder transport with a read-only stat probe. CONTROL_CLOUD reports UNKNOWN because its sentinel probe cannot verify tenant storage provisioning or remote reachability. Other bindings accept an absent sentinel as reachable; this does not test write permissions. Nothing is written, and no folder state changes. Requires folder:read permission.

→
Subscription

dataChangeEvents

Subscribe to real-time data change events. Requires read permission on each requested resource.

→
Subscription

statusEvents

Subscribe to committed status transitions. Requires read permission on each requested entity type.

→
Subscription

scenarioSimulationProgress

Stream progress events for a simulation run. The first event reflects the persisted state, so a subscriber joining after the run ended receives its terminal status and the stream finishes. Requires scenarioSimulationRun:read permission.

→
Subscription

workCenterTwinShadowChanged

Streams twin transitions as they are recorded — shadow transitions per operation and for the work centre as a whole, and pace-track transitions (STEADY, SLOWING, ENDED) — from the event bus — so a transition recorded by any node reaches the subscriber. Ends at once for a work centre this tenant cannot see, or when the server runs without an event bus. Requires workCenterBehaviorProfile:read permission.

→
Subscription

scheduleOptimizationProgress

Stream real-time progress events for a schedule optimization run.

→