PROD-WF-001 — Expose backend task types and semantic validation coherently
| Field | Value |
|---|---|
| Status | Open; source-verified |
| Architecture state | Deployed UI limitation; backend capability not exposed |
| Severity | High |
| Affected surface | Workflow authoring, task palette, dependency graph, Save validation, and warnings |
| Components | sparqd/oqullus, sparqd/workflow-backend, Airflow operators |
| Associated issue | Not opened |
Where the problem appears
Compare the backend task-type catalog and validation response with the authoring controls and Save behavior.
Concrete observed case
Workflow-backend supports Spark, Condition, Empty, and Workflow Trigger tasks and emits branch-convergence warnings. The UI hard-codes a disabled Spark task type and performs only its local validator; it does not request the task-type catalog or semantic validation endpoint.
Expected condition
The UI derives supported types from the backend catalog, provides type-specific forms, and calls semantic validation before Save. Blocking errors prevent persistence; warnings remain visible and require informed continuation.
Cause and evidence
- Backend task-type metadata and discriminated schemas exist.
- The UI task selector contains only spark_kubernetes and is disabled.
- No current authoring path calls the backend validation endpoint.
Why it matters
Backend capabilities are discoverable only through API, and users miss warnings about branch behavior before publishing a workflow.
Existing controls and workarounds
Author only Spark Kubernetes tasks in the current UI. Validate more advanced definitions through approved backend tooling before publication.
Alternatives considered
- Recommended: capability-driven task palette and backend semantic validation.
- Keep UI intentionally Spark-only and hide other types from public backend metadata.
- Allow raw JSON/YAML advanced mode — only with the same schema, validation, secret, and permission contract.
Component involvement
- sparqd/workflow-backend owns type catalog and semantic rules.
- sparqd/oqullus owns type forms and warning presentation.
- Product declares which backend capabilities are released in the UI.
Reproduction and verification
Follow WF-S004.
Resolution conditions
Close when exposed task types match the declared product set and every saved definition passes backend validation with warnings reviewed.
Validation and blockers
Oqullus, workflow-backend, product, and Airflow operator owners must validate.