Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
# Workflow Run Dialog Picker Design
|
|
|
|
## Goal
|
|
Make the Workflow Run dialog use system pickers for supported event/payload schema fields without creating a second picker system that drifts from the workflow properties dialog.
|
|
|
|
## Design
|
|
|
|
### Shared concept
|
|
Reuse the existing workflow schema editor / picker contract already used by the properties dialog:
|
|
- `x-workflow-editor.kind = "picker"`
|
|
- legacy `x-workflow-picker-kind`
|
|
|
|
The run dialog should consume that same contract instead of introducing run-dialog-only picker metadata.
|
|
|
|
### Shared implementation direction
|
|
- Extract shared schema-to-editor metadata resolution into a reusable helper.
|
|
- Reuse the shared picker renderer layer from `WorkflowActionInputFixedPicker` for run-dialog fields.
|
|
- Add ticket search support into that shared picker layer so `ticketId` can use a first-class system picker too.
|
|
|
|
### Fallback policy
|
|
For near-term usefulness, allow a narrow fallback inference layer in the run dialog for well-known fields when schemas are not yet annotated:
|
|
- `ticketId` -> ticket picker
|
|
- `actorContactId`, `contactId` -> contact picker
|
|
- `createdByUserId`, `actorUserId` -> user picker
|
|
- `clientId` -> client picker
|
|
|
|
This fallback should stay intentionally small. The preferred long-term path is adding schema annotations at the source.
|
|
|
|
### Guardrails
|
|
- Selected picker values still serialize as plain literal IDs in the payload.
|
|
- Unsupported picker metadata should fall back to generic controls.
|
|
- Strategic code comments should point future work toward schema annotations and shared picker extension points rather than adding more ad hoc run-dialog logic.
|