You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Validate name and id lengths on worker commands, not just on start #607
Every name and id a worker command or control-plane request can set is validated against its column length, and rejected with a typed 422 that names the field.
Operation names are capped at 255, and the limit can't be disabled past the column size.
Tests send over-long activity types, queues, child workflow types and signal names, and get validation errors.
The structural limits page lists every name and id limit, including the 128-character Server cap on workflow ids against the 191-character column.
Accepted as an API validation defect. Reproduce the published boundary first, then validate every writable identifier against its actual storage limit before mutation, including Unicode length behavior and operation names when the configurable limit is zero. Add exact-boundary and over-limit HTTP controls that verify typed 422s and unchanged task/history state. Keep the Server-specific workflow-id limit explicit in the structural limits documentation and all supported locales.
This follows the active critical PHP image publication (#591). Native parity remains coordinated through #325; no source or frozen-reference change is adopted by this intake.
Owner: Server for native route/command validation, Workflow for shared writable identifiers, Docs for limits. The next source inventory covers every persisted name/id at both start and completion, including queue, activity/child/workflow type and signal/update/query names.
Use actual column units and exact Unicode boundary controls rather than treating a configurable zero as permission to overflow storage. Invalid input must produce a typed422 before transaction/history/task changes; tests retain valid multibyte boundary and omitted/default cases. General/Workflow: confirm any portable name-limit differences before new shared vectors. No database error is reclassified as successful admission.
Core storage/name fixture map requested in Server325/6643408164: public 2.20.3 NamespaceIdentity, typed SearchAttribute, search value filters, namespace start controls, schedule namespace/ID controls and memo/search structural limits. Please verify each mode’s actual grammar/storage bound from those sources; PHP class identifiers, namespace IDs, portable names, memo keys and search keys are not one interchangeable rule. 853’s accepted decision explicitly preserves mode-specific/legacy grammar and typed canonical-size refusal. Workflow will provide one field/unit table from its source inventory; no blanket native equality or renamed/normalized old key is claimed. Server owns its distinct explicit child-ID and deleted schedule-ID policy proposals, preserving current refusal until reviewed.
Delivery evidence remains the exact public Core 2.20.3 release/installed gate Security6632584852; this source map does not manufacture feature-specific downstream receipt gaps.
Triage 2026-11-11: applies to native (completion_rules.rs has no 255 max on activity_type/queue/workflow_type). Next: max(255) with 422 boundary tests. Owner: server.
Activity
rmcdaniel commentedon Oct 21, 2026
Accepted as an API validation defect. Reproduce the published boundary first, then validate every writable identifier against its actual storage limit before mutation, including Unicode length behavior and operation names when the configurable limit is zero. Add exact-boundary and over-limit HTTP controls that verify typed 422s and unchanged task/history state. Keep the Server-specific workflow-id limit explicit in the structural limits documentation and all supported locales.
This follows the active critical PHP image publication (#591). Native parity remains coordinated through #325; no source or frozen-reference change is adopted by this intake.
rmcdaniel commentedon Nov 4, 2026
Server open-item pass, 2026-11-04.
Owner: Server for native route/command validation, Workflow for shared writable identifiers, Docs for limits. The next source inventory covers every persisted name/id at both start and completion, including queue, activity/child/workflow type and signal/update/query names.
Use actual column units and exact Unicode boundary controls rather than treating a configurable zero as permission to overflow storage. Invalid input must produce a typed422 before transaction/history/task changes; tests retain valid multibyte boundary and omitted/default cases. General/Workflow: confirm any portable name-limit differences before new shared vectors. No database error is reclassified as successful admission.
rmcdaniel commentedon Nov 4, 2026
Core storage/name fixture map requested in Server325/6643408164: public 2.20.3 NamespaceIdentity, typed SearchAttribute, search value filters, namespace start controls, schedule namespace/ID controls and memo/search structural limits. Please verify each mode’s actual grammar/storage bound from those sources; PHP class identifiers, namespace IDs, portable names, memo keys and search keys are not one interchangeable rule. 853’s accepted decision explicitly preserves mode-specific/legacy grammar and typed canonical-size refusal. Workflow will provide one field/unit table from its source inventory; no blanket native equality or renamed/normalized old key is claimed. Server owns its distinct explicit child-ID and deleted schedule-ID policy proposals, preserving current refusal until reviewed.
Delivery evidence remains the exact public Core 2.20.3 release/installed gate Security6632584852; this source map does not manufacture feature-specific downstream receipt gaps.
rmcdaniel commentedon Nov 11, 2026
Triage 2026-11-11: applies to native (completion_rules.rs has no 255 max on activity_type/queue/workflow_type). Next: max(255) with 422 boundary tests. Owner: server.