| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- {
- "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."
- }
|