|
| 1 | +{ |
| 2 | + "runbook_name": "One-to-Many Expansion Example", |
| 3 | + "package_name": "example_one_to_many", |
| 4 | + "description": "Demonstrates 1:N expansion relationships and field-level provenance tracking", |
| 5 | + "execution_state": { |
| 6 | + "events": [ |
| 7 | + { |
| 8 | + "type": "command_executed", |
| 9 | + "command": "python pipeline.py", |
| 10 | + "returncode": 0, |
| 11 | + "stdout": "Found 3 new videos\nFound 3 videos and 0 videos that need chunking\nProcessing video: {'video_id': 1, 'path': 'video1.mp4', 'metaxy_provenance_by_field__video_raw': {'audio': 'v1', 'frames': 'v1'}, 'metaxy_provenance__video_raw': 'c0e1a00f0a117623634caf2ae3bca98d', 'metaxy_provenance_by_field': {'audio': '4d4f04548ded52073a3e1acdc174119b', 'frames': '7543ba636a8491695e298d97b6f5d76e'}, 'metaxy_provenance': 'b70689cc645b36a1043cfac8ac279339'}\nWriting 5 chunks for video 1\nProcessing video: {'video_id': 2, 'path': 'video2.mp4', 'metaxy_provenance_by_field__video_raw': {'audio': 'v2', 'frames': 'v2'}, 'metaxy_provenance__video_raw': '6086bb90a046bc4b8a66aae64458f905', 'metaxy_provenance_by_field': {'audio': 'a79c4b1dd347aa59a478b59db84fb501', 'frames': '141f827b4c92e423b34cdec12a517c1b'}, 'metaxy_provenance': '727b940f16e01d887661376f5b172591'}\nWriting 3 chunks for video 2\nProcessing video: {'video_id': 3, 'path': 'video3.mp4', 'metaxy_provenance_by_field__video_raw': {'audio': 'v3', 'frames': 'v3'}, 'metaxy_provenance__video_raw': 'ba24e4a269e9b58c00414bc3dd8ca9f5', 'metaxy_provenance_by_field': {'audio': 'd7bb40cd544c105f2e2fbaccf6538b8d', 'frames': 'b09c343e918fff13153559bb0a09f82d'}, 'metaxy_provenance': '256503a3e5370c25696f88e2ac802d46'}\nWriting 3 chunks for video 3\nFound 11 video chunks and 0 video chunks that need face recognition\nWriting face recognition results for 11 chunks\n", |
| 12 | + "stderr": "/home/dan/code/github/anam-org/metaxy/examples/example-one-to-many/pipeline.py:116: UserWarning: AUTO_CREATE_TABLES is enabled for IbisMetadataStore(backend=duckdb) - do not use in production! Use proper database migration tools like Alembic for production deployments.\n main()\nFeature video/raw: samples parameter is Polars-backed but store uses native SQL backend. Materializing current metadata to Polars for diff comparison. For better performance, consider using samples with backend matching the store's backend.\n/home/dan/code/github/anam-org/metaxy/examples/example-one-to-many/pipeline.py:116: UserWarning: AUTO_CREATE_TABLES is enabled for IbisMetadataStore(backend=duckdb) - do not use in production! Use proper database migration tools like Alembic for production deployments.\n main()\n", |
| 13 | + "timestamp": "2025-11-11T20:01:21.702103", |
| 14 | + "scenario_name": "Initial pipeline run", |
| 15 | + "step_name": "initial_run" |
| 16 | + }, |
| 17 | + { |
| 18 | + "type": "command_executed", |
| 19 | + "command": "python pipeline.py", |
| 20 | + "returncode": 0, |
| 21 | + "stdout": "Found 0 videos and 0 videos that need chunking\nFound 0 video chunks and 0 video chunks that need face recognition\n", |
| 22 | + "stderr": "/home/dan/code/github/anam-org/metaxy/examples/example-one-to-many/pipeline.py:116: UserWarning: AUTO_CREATE_TABLES is enabled for IbisMetadataStore(backend=duckdb) - do not use in production! Use proper database migration tools like Alembic for production deployments.\n main()\nFeature video/raw: samples parameter is Polars-backed but store uses native SQL backend. Materializing current metadata to Polars for diff comparison. For better performance, consider using samples with backend matching the store's backend.\n/home/dan/code/github/anam-org/metaxy/examples/example-one-to-many/pipeline.py:116: UserWarning: AUTO_CREATE_TABLES is enabled for IbisMetadataStore(backend=duckdb) - do not use in production! Use proper database migration tools like Alembic for production deployments.\n main()\n", |
| 23 | + "timestamp": "2025-11-11T20:01:23.193091", |
| 24 | + "scenario_name": "Idempotent rerun", |
| 25 | + "step_name": "idempotent_run" |
| 26 | + }, |
| 27 | + { |
| 28 | + "type": "patch_applied", |
| 29 | + "patch_path": "patches/01_update_video_code_version.patch", |
| 30 | + "before_snapshot": null, |
| 31 | + "after_snapshot": null, |
| 32 | + "timestamp": "2025-11-11T20:01:24.386038", |
| 33 | + "scenario_name": "Code change - audio field only", |
| 34 | + "step_name": "update_audio_version" |
| 35 | + }, |
| 36 | + { |
| 37 | + "type": "command_executed", |
| 38 | + "command": "python pipeline.py", |
| 39 | + "returncode": 0, |
| 40 | + "stdout": "Found 3 new videos\nFound 3 videos and 0 videos that need chunking\nProcessing video: {'video_id': 1, 'path': 'video1.mp4', 'metaxy_provenance_by_field__video_raw': {'audio': 'v1', 'frames': 'v1'}, 'metaxy_provenance__video_raw': 'c0e1a00f0a117623634caf2ae3bca98d', 'metaxy_provenance_by_field': {'audio': '4d4f04548ded52073a3e1acdc174119b', 'frames': '7543ba636a8491695e298d97b6f5d76e'}, 'metaxy_provenance': 'b70689cc645b36a1043cfac8ac279339'}\nWriting 5 chunks for video 1\nProcessing video: {'video_id': 2, 'path': 'video2.mp4', 'metaxy_provenance_by_field__video_raw': {'audio': 'v2', 'frames': 'v2'}, 'metaxy_provenance__video_raw': '6086bb90a046bc4b8a66aae64458f905', 'metaxy_provenance_by_field': {'audio': 'a79c4b1dd347aa59a478b59db84fb501', 'frames': '141f827b4c92e423b34cdec12a517c1b'}, 'metaxy_provenance': '727b940f16e01d887661376f5b172591'}\nWriting 3 chunks for video 2\nProcessing video: {'video_id': 3, 'path': 'video3.mp4', 'metaxy_provenance_by_field__video_raw': {'audio': 'v3', 'frames': 'v3'}, 'metaxy_provenance__video_raw': 'ba24e4a269e9b58c00414bc3dd8ca9f5', 'metaxy_provenance_by_field': {'audio': 'd7bb40cd544c105f2e2fbaccf6538b8d', 'frames': 'b09c343e918fff13153559bb0a09f82d'}, 'metaxy_provenance': '256503a3e5370c25696f88e2ac802d46'}\nWriting 3 chunks for video 3\nFound 0 video chunks and 0 video chunks that need face recognition\n", |
| 41 | + "stderr": "/home/dan/code/github/anam-org/metaxy/examples/example-one-to-many/pipeline.py:116: UserWarning: AUTO_CREATE_TABLES is enabled for IbisMetadataStore(backend=duckdb) - do not use in production! Use proper database migration tools like Alembic for production deployments.\n main()\nFeature video/raw: samples parameter is Polars-backed but store uses native SQL backend. Materializing current metadata to Polars for diff comparison. For better performance, consider using samples with backend matching the store's backend.\n/home/dan/code/github/anam-org/metaxy/examples/example-one-to-many/pipeline.py:116: UserWarning: AUTO_CREATE_TABLES is enabled for IbisMetadataStore(backend=duckdb) - do not use in production! Use proper database migration tools like Alembic for production deployments.\n main()\n", |
| 42 | + "timestamp": "2025-11-11T20:01:25.969737", |
| 43 | + "scenario_name": "Code change - audio field only", |
| 44 | + "step_name": "recompute_after_audio_change" |
| 45 | + }, |
| 46 | + { |
| 47 | + "type": "command_executed", |
| 48 | + "command": "python pipeline.py", |
| 49 | + "returncode": 0, |
| 50 | + "stdout": "Found 0 videos and 0 videos that need chunking\nFound 0 video chunks and 0 video chunks that need face recognition\n", |
| 51 | + "stderr": "/home/dan/code/github/anam-org/metaxy/examples/example-one-to-many/pipeline.py:116: UserWarning: AUTO_CREATE_TABLES is enabled for IbisMetadataStore(backend=duckdb) - do not use in production! Use proper database migration tools like Alembic for production deployments.\n main()\nFeature video/raw: samples parameter is Polars-backed but store uses native SQL backend. Materializing current metadata to Polars for diff comparison. For better performance, consider using samples with backend matching the store's backend.\n/home/dan/code/github/anam-org/metaxy/examples/example-one-to-many/pipeline.py:116: UserWarning: AUTO_CREATE_TABLES is enabled for IbisMetadataStore(backend=duckdb) - do not use in production! Use proper database migration tools like Alembic for production deployments.\n main()\n", |
| 52 | + "timestamp": "2025-11-11T20:01:27.463343", |
| 53 | + "scenario_name": "Final idempotent check", |
| 54 | + "step_name": "final_idempotent_check" |
| 55 | + } |
| 56 | + ] |
| 57 | + } |
| 58 | +} |
0 commit comments