Optionaloptions: DefineWorkflowsOptionsThe Blueprints API must register this package's workflowProvider before it
can deploy the resulting sanity.workflow resource. Until that server
registration ships, deploy definitions with sanity workflows deploy.
Share the authored deployment with defineWorkflowConfig — do not pass a
parsed config.deployments[n] (that type leaves the floor unverified so
commands that do not submit definitions can load a missing entry).
// shared.ts
import type {WorkflowDeploymentInput} from '@sanity/workflow-engine'
import {articleReview} from './definitions'
export const prod = {
expectedMinReaderModel: 4,
name: 'prod',
tag: 'prod',
workflowResource: {type: 'dataset', id: 'acme.workflows'},
definitions: [articleReview],
} satisfies WorkflowDeploymentInput
// sanity.workflow.ts
import {defineWorkflowConfig} from '@sanity/workflow-engine/define'
import {prod} from './shared'
export default defineWorkflowConfig({deployments: [prod]})
// sanity.blueprint.ts
import {defineBlueprint} from '@sanity/blueprints'
import {defineWorkflows} from '@sanity/workflow-blueprint'
import {prod} from './shared'
export default defineBlueprint({
resources: [defineWorkflows(prod)],
})
Declare a Workflows deployment as a Sanity Blueprints resource — the entry for a
sanity.blueprint.tsresourcesarray. Takes the same authoring shape as onedeployments[]entry of asanity.workflow.tsconfig: the reader-floor acknowledgement is required in the editor; parseWorkflowDeployment asserts it at manifest evaluation so a missing or insufficient floor fails before anything ships.Validates eagerly (parseWorkflowDeployment) so a bad definition or an unbound
@<handle>:alias fails at manifest evaluation, before anything ships to the blueprint service.