Updates configuration properties for a process step. Two properties can be modified:
optional — Whether the step can be skipped during serial advancement
dependencyType — How the step interacts with the advancement system
At least one valid field must be provided. The endpoint validates the dependencyType value against the allowed enum and ignores any unrecognized fields. If neither optional nor a valid dependencyType is provided, a 400 error is returned.
The optional field must be a boolean (not a truthy/falsy value). The dependencyType must be one of the three allowed values.
Set to true to allow the step to be skipped/deferred/waived during advancement. Set to false to make it mandatory. Must be a strict boolean.
dependencyType
string
No
The dependency classification. Must be one of: "physical" (hard dependency, cannot be skipped), "preferred" (default, should be done in order but can be bypassed), or "completion_gate" (all prior steps must complete first).
The dependencyType validation is strict: only "physical", "preferred", and "completion_gate" are accepted. Invalid values are silently ignored (not included in the update). If the only field provided has an invalid value, the request fails with "No valid fields to update".
The optional field uses strict boolean checking (typeof body.optional === 'boolean'). Truthy values like 1 or "true" are not accepted.
Changing a step to optional: true does not retroactively affect serials that have already passed or are currently at the step. It only affects future advancement decisions.
Setting dependencyType: "physical" on a step that is also optional: true creates a contradictory configuration. The system does not prevent this, but the advancement logic treats physical dependencies as non-skippable regardless of the optional flag.
Configuration changes do not update the parent path's updatedAt timestamp.
Unrecognized fields in the request body are silently ignored.