{ "schema_version": "1.0", "work_package": "P3-WP14", "release_identity": { "state": "UNCOMMITTED_WORKTREE_EVIDENCE", "signed": false, "signature_status": "TBD_EXTERNAL", "git_base_commit": "84dc0adc7c117276a4f9fcf2e4ffee6202eab016", "git_base_tree": "162ae13a8a67e745e881c27c0c7577d7b7a0e877", "worktree_clean": false, "git_status": { "command": [ "git", "status", "--porcelain=v1", "-z" ], "top_level": "/Users/maxiaolong/Documents/Codex/2026-07-06/g-i/DataOps-platform", "entry_count": 417, "tracked": 49, "untracked": 368, "staged": 0, "sha256": "6d94d8803aca42fdb79f7bdae9f49d6484d42b7810c8bcb9ba43634adae1677c" }, "declaration": "This is a local, unsigned snapshot from a known dirty shared worktree. It is not a clean, signed, pushed, deployed, or enterprise-approved release." }, "controlled_artifact_sets": [ { "kind": "tree", "root": "app", "sha256": "18fa0a8ac124223a1c4cd7932641c90a18a6ea69915c0890790bbaa0f19c11a4", "excluded_derived_paths": [ "__pycache__", "*.pyc" ] }, { "kind": "tree", "root": "deployment/app", "sha256": "0100b13a977e5fce808ad26ce7c4b86f41a036d359803cbf4de2f6fa23106242", "excluded_derived_paths": [ "__pycache__", "*.pyc" ] }, { "kind": "tree", "root": "migrations", "sha256": "6dd1d497a0ff3cba330363f45ea108ac4c0e9fb40f44117e00c94e1a68d3c304", "excluded_derived_paths": [ "__pycache__", "*.pyc" ] }, { "kind": "tree", "root": "deployment/migrations", "sha256": "64b6e6b930a5fedd68d15d3c69db84559cf934c6f5d457add1e137ce71a9e03a", "excluded_derived_paths": [ "__pycache__", "*.pyc" ] }, { "kind": "file", "path": "docs/architecture/OPENAPI.yaml", "sha256": "dc00f662d709ef66aefc803c742f0f1958f26f8fbabbac6d5cc67e999c326df6" }, { "kind": "file", "path": "deploy/docker/docker-compose.yml", "sha256": "a0e61244e5d2c3ae4a5c6882ad28f6095c9f7d6b53bd19231d3a36fba4fa3844" }, { "kind": "file", "path": "scripts/generate_openapi.py", "sha256": "24724a327bd90a6b8911d5801fd6310a3547fe8c05521d8c09e5c8213e852a9c" }, { "kind": "file", "path": "docs/acceptance/P3_WP14_UAT_CASES.json", "sha256": "d8db6b3a324f335f0b37883bb163f8cb1a51430a19bf71b0853611c2faa805d0" }, { "kind": "file", "path": "docs/acceptance/P3_WP14_UAT_PLAN_AND_REPORT.md", "sha256": "55bad399942575a373b685d90e074dbea0cd6f3026e7ae310e222f77723a18a8" }, { "kind": "file", "path": "docs/acceptance/P3_WP14_DEFECT_AND_GATE_LEDGER.md", "sha256": "d692cad7f69df35dad4b66dce9af86dbb6a7c14e48f24c1a00650b0eb4b747f9" }, { "kind": "file", "path": "docs/acceptance/P3_WP14_FIVE_PARTY_SIGNOFF.md", "sha256": "d95d6725b6630e0de274ee1a80f6a0027f41519b64523aea39edf1e35b57d86b" }, { "kind": "file", "path": "docs/runbooks/P3_WP14_ENTERPRISE_PILOT_HANDOVER.md", "sha256": "fa7c95c6be79ddba8e1a46da38d4236b656f25067c2646c5253075688b1a90a6" }, { "kind": "file", "path": "docs/validation/P3_WP14_ENTERPRISE_PILOT_EVIDENCE.md", "sha256": "0a8485a9f0877e158cd0f5b58c7ea5f79f4b920b35260eedd41337ab440428a5" }, { "kind": "file", "path": "docs/phase3/P3_WP14_264_MODULE_CLOSURE_AUDIT.json", "sha256": "39aa11502706aa391424de1bc9590986991a09d2a78a8d3b90cf5fb1719a637e" }, { "kind": "file", "path": "docs/phase3/P3_WP14_ENTERPRISE_PILOT_ACCEPTANCE_IMPLEMENTATION_PLAN.md", "sha256": "a3757f351c48defa0858f85eff4cfe75950c165d634eb80ec670044df4ec05ed" }, { "kind": "file", "path": "docs/validation/P3_WP14_LOCAL_CONFIG_A.json", "sha256": "e56bd3e6126beb61f0360164a4347721f25154789e3b21b579f51c6b517a5074" }, { "kind": "file", "path": "docs/validation/P3_WP14_LOCAL_CONFIG_B.json", "sha256": "84da7ba3e72a232c9baef5356565b7df308a5380e7b9a3ebabea1592c8a8b46f" }, { "kind": "file", "path": "docs/validation/P3_WP14_LOCAL_CONFIG_COMPARISON.json", "sha256": "786f846de25b46e12c37351d4369e3ff930f695e6c9f6dda6a9948f8c04c8026" }, { "kind": "file", "path": "tests/test_phase3_wp14_acceptance_handover_contract.py", "sha256": "c6c892894f6547c1ff3369337d29e01924e232d04b322c8b2eabad54ca147497" }, { "kind": "file", "path": "scripts/validate_p3_wp14_local_configs.py", "sha256": "a674145a12297350376354de431d42770f52f7f6e58178b89825b204570036cb" }, { "kind": "file", "path": "scripts/generate_p3_wp14_release_manifest.py", "sha256": "18191be495e64ecff67dcc5695c96680ea47e3be79559dcd3f84bc6904a15da2" }, { "kind": "file", "path": "scripts/generate_p3_wp14_verification_ledger.py", "sha256": "7e21c839bb5ba8f283ec1c3d4dd7fc0fab08c249712179fe9d3e9aaed7ea4f62" }, { "kind": "file", "path": "scripts/verify_p3_wp14_fresh_local_engineering.py", "sha256": "2339f84602d79c09d81469d36915be63d5161b1d711546e100002e72d376e786" }, { "kind": "file", "path": "scripts/p3_wp14_secure_io.py", "sha256": "fbfbcbdafdc178080c47d44f8715e4a266cc941a60c9748c69988cf04249baba" } ], "compose_input_closure": { "compose_file": "deploy/docker/docker-compose.yml", "compose_sha256": "a0e61244e5d2c3ae4a5c6882ad28f6095c9f7d6b53bd19231d3a36fba4fa3844", "dockerignore": { "path": ".dockerignore", "sha256": "5bcc437a29eba4d109f856c929012f5a834e8ac2d1140a25b296f7a8719a19b0" }, "render_command": [ "/usr/local/bin/docker-compose", "--env-file", "/dev/null", "-f", "deploy/docker/docker-compose.yml", "config", "--format", "json" ], "parsed_services": [ "backend", "db-migrate", "db-role-init", "frontend", "kestra", "kestra-db-init", "minio", "minio-init", "n8n", "neo4j", "postgres", "runner", "source-mysql", "source-postgres" ], "inputs": [ { "kind": "build_context", "path": ".", "sha256": "bcf66972a00b30fa94bbd22918652fbfc047ae2507bf21107e7fc484f4105c98" }, { "kind": "dockerfile", "path": "deploy/docker/backend.Dockerfile", "sha256": "d6ceafe34971cd022626eff5ccdaf32ec82467090af3ffe75187a921d0b4c6f1" }, { "kind": "dockerfile", "path": "deploy/docker/mcp.Dockerfile", "sha256": "c067d2a2409e445966682ad3b925b780347e114e74d3ebb67b37297116a9f911" }, { "kind": "dockerfile", "path": "deploy/docker/runner.Dockerfile", "sha256": "0bc2bdc5873dc79a691f8b378a2c866643721b434f685ddcac87fc5e566b2b7a" }, { "kind": "dockerfile", "path": "deploy/docker/frontend.Dockerfile", "sha256": "2d7e4678f76056be29b862229340ded9974f6156cd4282ec1e96d8c8486d35d7" }, { "kind": "dockerfile_copy_input", "path": "deploy/docker/nginx.conf", "sha256": "86ef7fdb6124c9df5237663c18cd4d0ef68c37251f7a42dc02b96d6493aaca8b" }, { "kind": "requirements", "path": "requirements.txt", "sha256": "d390080fd6bb2ff312b78a8f4b8b69d823e2580a937fb159ba4f993a1d585d89" }, { "kind": "requirements", "path": "deployment/requirements.txt", "sha256": "d390080fd6bb2ff312b78a8f4b8b69d823e2580a937fb159ba4f993a1d585d89" }, { "kind": "mount_input", "path": "deploy/docker/postgres/init", "sha256": "b94ab3105039f14c30934247578bbc1b55ef123a006df0aeb87b7fcb8ff93f32" }, { "kind": "mount_input", "path": "database", "sha256": "f3ce95682e9836d478baecd3e8ce9b94da9ecef03d228d19f825e7022bdabedf" }, { "kind": "mount_input", "path": "deploy/docker/datasources/postgres/init.sql", "sha256": "9a9de62eb5810e5d532e915df8daccb7da4a2e9444d213414471c518b178fea4" }, { "kind": "mount_input", "path": "deploy/docker/datasources/mysql/init.sql", "sha256": "ee83b3cd45ea98ae5c9416ef8c82e6e6a48f7de43f90633a204d20475e720248" }, { "kind": "mount_input", "path": "deploy/docker/kestra/application.yml", "sha256": "a6077a6ce982c41f626eab7199573e50e5509ec03a9d96d0dae752b613eaea4d" }, { "kind": "mount_input", "path": "deploy/docker/edge-mtls-nginx.conf", "sha256": "324465f7be26a748170260a602e2ac0766769b606dd23e2a7a58c2fcc9030149" } ], "unresolved_variable_mounts": [ "${DATAOPS_EDGE_MTLS_CERT_DIR:-./edge-mtls-certs}", "${EDGE_GATEWAY_SIGNING_PRIVATE_KEY_FILE:-./edge-secrets/edge-gateway-signing.key}" ] }, "image_reference_closure": { "items": [ { "source": "compose:5", "reference": "pgvector/pgvector:pg16", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:25", "reference": "postgres:16-alpine", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:50", "reference": "${DATAOPS_MIGRATOR_IMAGE:-dataops-platform-migrator:local}", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:74", "reference": "${DATAOPS_MIGRATOR_IMAGE:-dataops-platform-migrator:local}", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:92", "reference": "postgres:16-alpine", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:111", "reference": "mysql:8.4", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:134", "reference": "neo4j:5.26-community", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:155", "reference": "minio/minio:RELEASE.2025-04-22T22-12-26Z", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:174", "reference": "minio/mc:RELEASE.2025-04-16T18-13-26Z", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:189", "reference": "n8nio/n8n:1.100.1", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:223", "reference": "kestra/kestra:v1.3.20", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:257", "reference": "ghcr.io/kestra-io/mcp-server-python@sha256:1fd62028f60914af31e244ddb0086ed5017420313e2c8547ea9c01b8d24dfc1d", "status": "IMMUTABLE_DIGEST", "gate": "PASS_LOCAL" }, { "source": "compose:275", "reference": "dataops-platform-mcp:local", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:317", "reference": "dataops-platform-mcp:local", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:350", "reference": "${DATAOPS_RUNNER_IMAGE:-dataops-platform-runner:local}", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:421", "reference": "${DATAOPS_BACKEND_IMAGE:-dataops-platform-backend:local}", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:520", "reference": "nginx:1.27-alpine", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:541", "reference": "neo4j:5.26-community", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:561", "reference": "ghcr.io/hkuds/lightrag@sha256:67ccf8d9f74eb29da872bf8b3e6513605f5ac601fb0509c5b0ca16d98d2d307d", "status": "IMMUTABLE_DIGEST", "gate": "PASS_LOCAL" }, { "source": "compose:608", "reference": "${DATAOPS_LIGHTRAG_PROJECTOR_IMAGE:-dataops-platform-lightrag-projector:local}", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "compose:634", "reference": "${DATAOPS_FRONTEND_IMAGE:-dataops-platform-frontend:local}", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "dockerfile:deploy/docker/backend.Dockerfile:1", "reference": "python:3.11-slim", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "dockerfile:deploy/docker/backend.Dockerfile:23", "reference": "dependencies", "status": "INTERNAL_BUILD_STAGE", "gate": "PASS_LOCAL" }, { "source": "dockerfile:deploy/docker/backend.Dockerfile:31", "reference": "dependencies", "status": "INTERNAL_BUILD_STAGE", "gate": "PASS_LOCAL" }, { "source": "dockerfile:deploy/docker/mcp.Dockerfile:1", "reference": "python:3.11-slim", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "dockerfile:deploy/docker/runner.Dockerfile:1", "reference": "python:3.11-slim", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "dockerfile:deploy/docker/frontend.Dockerfile:1", "reference": "node:24-bookworm-slim", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" }, { "source": "dockerfile:deploy/docker/frontend.Dockerfile:20", "reference": "nginx:1.27-alpine", "status": "UNRESOLVED_MUTABLE_TAG", "gate": "BLOCKED_EXTERNAL" } ], "immutable_signed_deployability_status": "BLOCKED_EXTERNAL", "boundary": "No registry pull was performed. Any tag or variable reference without @sha256 is mutable and blocks immutable/signed deployability acceptance." }, "excluded_dependent_evidence": [ "docs/phase3/P3_WP14_RELEASE_MANIFEST.json", "docs/phase3/P3_WP14_RELEASE_TRACEABILITY.json", "docs/validation/P3_WP14_LOCAL_CONFIG_RENDER.json", "docs/validation/P3_WP14_LOCAL_VERIFICATION_LEDGER.json", "docs/validation/P3_WP14_LOCAL_VERIFICATION.log" ], "boundary": "Dependent evidence is digest-checked by the traceability contract but excluded here to avoid self-referential hashes. No secret, enterprise endpoint, or external signature is recorded." }