DATA-WF-001 — Preserve canonical identity when a workflow name changes
| Field | Value |
|---|---|
| Status | Open; source-verified |
| Architecture state | Deployed behavior |
| Severity | High |
| Affected surface | Edit, detail URL, DAG artifacts, schedules, runs, monitoring, and deletion |
| Components | sparqd/workflow-backend, sparqd/oqullus, DAG Git, Airflow, monitoring |
| Associated issue | Not opened |
Where the problem appears
Edit an existing workflow name and compare the canonical record with old and new runtime artifacts.
Concrete observed case
The workflow UUID is the product identity, but the mutable name is also the Airflow DAG ID, Git filename, detail route key, and monitoring key. Update publishes the new name without an identified cleanup of artifacts under the old name.
Expected condition
Either make the runtime name immutable or implement rename as a coordinated lifecycle that tombstones the old identity and migrates or explicitly preserves every dependent reference.
Cause and evidence
- Workflow update accepts a new name.
- DAG publication writes files derived from the current name.
- No old-name artifact removal occurs in the update flow.
Why it matters
The old Airflow DAG can remain visible or scheduled as an unmanaged orphan while the product record points to the new name.
Existing controls and workarounds
Do not rename existing workflows. Clone to the intended name, validate the new workflow, then delete the original through an approved controlled process.
Alternatives considered
- Recommended near term: make name immutable after creation.
- Coordinated rename with old-name tombstone and reconciliation.
- Treat UUID as the Airflow DAG ID and keep name as display metadata — strongest long-term identity model but requires migration.
Component involvement
- sparqd/workflow-backend owns canonical lifecycle and reconciliation.
- sparqd/oqullus communicates immutable versus coordinated rename.
- Airflow, Git, monitoring, and audit consumers preserve explicit identity mapping.
Reproduction and verification
Follow WF-S003.
Resolution conditions
Close when rename is blocked or old/new artifacts, schedules, links, monitoring, permissions, and audit converge without an orphaned runnable DAG.
Validation and blockers
Workflow-backend is primary; Oqullus, Airflow, operations, and data-governance owners must validate.