Deleting Meshes
Quick decision guide
Keep products, remove only the mesh: use reassignment.
Remove everything hosted by the mesh: use cascade.
Mesh is already empty: use delete-only.
Option 1 — Delete mesh only
Purpose: Remove the mesh record when it has no hosted content or dependent links.
Preconditions:
No hosted data products and no child entity links. If present, reassign/delete them first or use cascade.
Endpoint: DELETE /data/mesh
Query parameters:
identifier(UUID, required): Mesh to delete
Auth:
Requires
mesh_manageon the target mesh.
Responses:
200 OK with {} on success
403 Forbidden (insufficient permissions)
404 Not Found (mesh doesn’t exist)
409/422 depending on validation if the mesh still has children/links (delete will fail unless dependencies are cleared)
Example:
curl -X DELETE \
'https://<host>/data/mesh?identifier=<mesh-uuid>' \
-H 'Authorization: Bearer <token>'Option 2 — Delete mesh and all its content (cascade)
Purpose: Retire a mesh and all hosted data products, including related compute/storage artifacts.
Endpoint: DELETE /data/mesh/cascade
Query parameters:
identifier(UUID, required): Mesh to delete (and cascade)
Auth:
Requires
mesh_manageon the target mesh.
Responses:
200 OK with {} on success
403 Forbidden (insufficient permissions)
404 Not Found (mesh doesn’t exist)
What happens:
Data products are deleted in dependency-safe order (children first).
For each product: compute jobs deleted, metadata removed, Trino/Iceberg tables dropped, streaming checkpoints cleaned up, delete events emitted.
Mesh is deleted and a mesh delete event is emitted.
Example:
curl -X DELETE \
'https://<host>/data/mesh/cascade?identifier=<mesh-uuid>' \
-H 'Authorization: Bearer <token>'Notes:
Cross-mesh dependencies are not auto-resolved; confirm shared products aren’t needed elsewhere.
Option 3 — Delete mesh and reassign content to another mesh
Purpose: Merge or decommission a mesh while keeping all hosted data products online under a new mesh.
Endpoint: DELETE /data/mesh/reassign
Query parameters:
identifier(UUID, required): Mesh to deletenew_mesh_identifier(UUID, required): Destination mesh to receive all hosted data products
Auth:
Requires
mesh_manageon the mesh being deleted.
Responses:
200 OK with {} on success
403 Forbidden (insufficient permissions)
404 Not Found (mesh or destination mesh doesn’t exist)
What happens:
All hosted data products are moved to the destination mesh.
The original mesh is deleted and a mesh delete event is emitted.
Roles/policies are not auto-migrated; review access on the destination mesh.
Example:
curl -X DELETE \
'https://<host>/data/mesh/reassign?identifier=<mesh-uuid>&new_mesh_identifier=<dest-mesh-uuid>' \
-H 'Authorization: Bearer <token>'Last updated