{ "actions": [ { "action_type": "delete_row", "asset_urn": "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer,PROD)", "rollback_note": "Restore customer from disposable fixture snapshot.", "sequence": 1, "sql": "DELETE FROM customer WHERE customer_id = $subject_id;", "validation_sql": "SELECT COUNT(*) AS remaining FROM customer WHERE customer_id = $subject_id;" }, { "action_type": "delete_row", "asset_urn": "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.orders,PROD)", "rollback_note": "Restore orders from disposable fixture snapshot.", "sequence": 2, "sql": "DELETE FROM orders WHERE customer_id = $subject_id;", "validation_sql": "SELECT COUNT(*) AS remaining FROM orders WHERE customer_id = $subject_id;" }, { "action_type": "delete_row", "asset_urn": "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.ml_customer_features,PROD)", "rollback_note": "Restore ml_customer_features from disposable fixture snapshot.", "sequence": 3, "sql": "DELETE FROM ml_customer_features WHERE customer_id = $subject_id;", "validation_sql": "SELECT COUNT(*) AS remaining FROM ml_customer_features WHERE customer_id = $subject_id;" }, { "action_type": "regenerate_derivative", "asset_urn": "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer_order_stats,PROD)", "rollback_note": "Restore customer_order_stats from disposable fixture snapshot.", "sequence": 4, "sql": "DELETE FROM customer_order_stats WHERE customer_id = $subject_id;\n-- regenerate remaining rollups from upstream sources as needed;", "validation_sql": "SELECT COUNT(*) AS remaining FROM customer_order_stats WHERE customer_id = $subject_id;" }, { "action_type": "invalidate_extract", "asset_urn": "urn:li:dashboard:(looker,customer_ltv_overview)", "rollback_note": "Delete local bi_extract_state flag row.", "sequence": 5, "sql": "INSERT INTO bi_extract_state(dashboard_key, status, note) VALUES ('customer_ltv_overview', 'invalidated', 'Subject remediation \u2014 local fixture flag only');", "validation_sql": "SELECT COUNT(*) AS flagged FROM bi_extract_state WHERE dashboard_key = 'customer_ltv_overview' AND status = 'invalidated';" } ], "anchor_asset_urn": "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer,PROD)", "blockers": [], "case_id": "case-release-demo-001", "confidence_summary": { "avg_confidence": 1.0, "blocker_count": 0, "downstream_count": 4, "node_count": 5 }, "graph_snapshot_id": "gms-c3f2ccd74258b188", "identifier_field": "customer_id", "nodes": [ { "action": "delete_row", "asset_type": "direct_identifier_store", "asset_urn": "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer,PROD)", "blockers": [], "confidence": 1.0, "evidence": "DataHub-discovered via lineage from anchor; tags=['PII', 'identifier', 'forget-me-flow:type:direct_identifier_store', 'forget-me-flow:table:customer']", "owner": "platform-data", "path": [ "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer,PROD)" ] }, { "action": "delete_row", "asset_type": "derived_table", "asset_urn": "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.orders,PROD)", "blockers": [], "confidence": 1.0, "evidence": "DataHub-discovered via lineage from anchor; tags=['PII', 'forget-me-flow:type:derived_table', 'forget-me-flow:table:orders']", "owner": "commerce-eng", "path": [ "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer,PROD)", "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.orders,PROD)" ] }, { "action": "delete_row", "asset_type": "ml_feature", "asset_urn": "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.ml_customer_features,PROD)", "blockers": [], "confidence": 1.0, "evidence": "DataHub-discovered via lineage from anchor; tags=['PII', 'forget-me-flow:type:ml_feature', 'forget-me-flow:table:ml_customer_features']", "owner": "ml-platform", "path": [ "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer,PROD)", "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.ml_customer_features,PROD)" ] }, { "action": "regenerate_derivative", "asset_type": "aggregate", "asset_urn": "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer_order_stats,PROD)", "blockers": [], "confidence": 1.0, "evidence": "DataHub-discovered via lineage from anchor; tags=['forget-me-flow:type:aggregate', 'forget-me-flow:table:customer_order_stats']", "owner": "analytics", "path": [ "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer,PROD)", "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.orders,PROD)", "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer_order_stats,PROD)" ] }, { "action": "invalidate_extract", "asset_type": "bi_extract", "asset_urn": "urn:li:dashboard:(looker,customer_ltv_overview)", "blockers": [], "confidence": 1.0, "evidence": "DataHub-discovered via lineage from anchor; tags=['forget-me-flow:type:bi_extract', 'forget-me-flow:table:bi_extract_state']", "owner": "bi-team", "path": [ "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer,PROD)", "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.orders,PROD)", "urn:li:dataset:(urn:li:dataPlatform:duckdb,fiction.customer_order_stats,PROD)", "urn:li:dashboard:(looker,customer_ltv_overview)" ] } ], "request_type": "delete" }