P3_WP14_RELEASE_MANIFEST.json 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. {
  2. "schema_version": "1.0",
  3. "work_package": "P3-WP14",
  4. "release_identity": {
  5. "state": "UNCOMMITTED_WORKTREE_EVIDENCE",
  6. "signed": false,
  7. "signature_status": "TBD_EXTERNAL",
  8. "git_base_commit": "84dc0adc7c117276a4f9fcf2e4ffee6202eab016",
  9. "git_base_tree": "162ae13a8a67e745e881c27c0c7577d7b7a0e877",
  10. "worktree_clean": false,
  11. "git_status": {
  12. "command": [
  13. "git",
  14. "status",
  15. "--porcelain=v1",
  16. "-z"
  17. ],
  18. "top_level": "/Users/maxiaolong/Documents/Codex/2026-07-06/g-i/DataOps-platform",
  19. "entry_count": 417,
  20. "tracked": 49,
  21. "untracked": 368,
  22. "staged": 0,
  23. "sha256": "6d94d8803aca42fdb79f7bdae9f49d6484d42b7810c8bcb9ba43634adae1677c"
  24. },
  25. "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."
  26. },
  27. "controlled_artifact_sets": [
  28. {
  29. "kind": "tree",
  30. "root": "app",
  31. "sha256": "18fa0a8ac124223a1c4cd7932641c90a18a6ea69915c0890790bbaa0f19c11a4",
  32. "excluded_derived_paths": [
  33. "__pycache__",
  34. "*.pyc"
  35. ]
  36. },
  37. {
  38. "kind": "tree",
  39. "root": "deployment/app",
  40. "sha256": "0100b13a977e5fce808ad26ce7c4b86f41a036d359803cbf4de2f6fa23106242",
  41. "excluded_derived_paths": [
  42. "__pycache__",
  43. "*.pyc"
  44. ]
  45. },
  46. {
  47. "kind": "tree",
  48. "root": "migrations",
  49. "sha256": "6dd1d497a0ff3cba330363f45ea108ac4c0e9fb40f44117e00c94e1a68d3c304",
  50. "excluded_derived_paths": [
  51. "__pycache__",
  52. "*.pyc"
  53. ]
  54. },
  55. {
  56. "kind": "tree",
  57. "root": "deployment/migrations",
  58. "sha256": "64b6e6b930a5fedd68d15d3c69db84559cf934c6f5d457add1e137ce71a9e03a",
  59. "excluded_derived_paths": [
  60. "__pycache__",
  61. "*.pyc"
  62. ]
  63. },
  64. {
  65. "kind": "file",
  66. "path": "docs/architecture/OPENAPI.yaml",
  67. "sha256": "dc00f662d709ef66aefc803c742f0f1958f26f8fbabbac6d5cc67e999c326df6"
  68. },
  69. {
  70. "kind": "file",
  71. "path": "deploy/docker/docker-compose.yml",
  72. "sha256": "a0e61244e5d2c3ae4a5c6882ad28f6095c9f7d6b53bd19231d3a36fba4fa3844"
  73. },
  74. {
  75. "kind": "file",
  76. "path": "scripts/generate_openapi.py",
  77. "sha256": "24724a327bd90a6b8911d5801fd6310a3547fe8c05521d8c09e5c8213e852a9c"
  78. },
  79. {
  80. "kind": "file",
  81. "path": "docs/acceptance/P3_WP14_UAT_CASES.json",
  82. "sha256": "d8db6b3a324f335f0b37883bb163f8cb1a51430a19bf71b0853611c2faa805d0"
  83. },
  84. {
  85. "kind": "file",
  86. "path": "docs/acceptance/P3_WP14_UAT_PLAN_AND_REPORT.md",
  87. "sha256": "55bad399942575a373b685d90e074dbea0cd6f3026e7ae310e222f77723a18a8"
  88. },
  89. {
  90. "kind": "file",
  91. "path": "docs/acceptance/P3_WP14_DEFECT_AND_GATE_LEDGER.md",
  92. "sha256": "d692cad7f69df35dad4b66dce9af86dbb6a7c14e48f24c1a00650b0eb4b747f9"
  93. },
  94. {
  95. "kind": "file",
  96. "path": "docs/acceptance/P3_WP14_FIVE_PARTY_SIGNOFF.md",
  97. "sha256": "d95d6725b6630e0de274ee1a80f6a0027f41519b64523aea39edf1e35b57d86b"
  98. },
  99. {
  100. "kind": "file",
  101. "path": "docs/runbooks/P3_WP14_ENTERPRISE_PILOT_HANDOVER.md",
  102. "sha256": "fa7c95c6be79ddba8e1a46da38d4236b656f25067c2646c5253075688b1a90a6"
  103. },
  104. {
  105. "kind": "file",
  106. "path": "docs/validation/P3_WP14_ENTERPRISE_PILOT_EVIDENCE.md",
  107. "sha256": "0a8485a9f0877e158cd0f5b58c7ea5f79f4b920b35260eedd41337ab440428a5"
  108. },
  109. {
  110. "kind": "file",
  111. "path": "docs/phase3/P3_WP14_264_MODULE_CLOSURE_AUDIT.json",
  112. "sha256": "39aa11502706aa391424de1bc9590986991a09d2a78a8d3b90cf5fb1719a637e"
  113. },
  114. {
  115. "kind": "file",
  116. "path": "docs/phase3/P3_WP14_ENTERPRISE_PILOT_ACCEPTANCE_IMPLEMENTATION_PLAN.md",
  117. "sha256": "a3757f351c48defa0858f85eff4cfe75950c165d634eb80ec670044df4ec05ed"
  118. },
  119. {
  120. "kind": "file",
  121. "path": "docs/validation/P3_WP14_LOCAL_CONFIG_A.json",
  122. "sha256": "e56bd3e6126beb61f0360164a4347721f25154789e3b21b579f51c6b517a5074"
  123. },
  124. {
  125. "kind": "file",
  126. "path": "docs/validation/P3_WP14_LOCAL_CONFIG_B.json",
  127. "sha256": "84da7ba3e72a232c9baef5356565b7df308a5380e7b9a3ebabea1592c8a8b46f"
  128. },
  129. {
  130. "kind": "file",
  131. "path": "docs/validation/P3_WP14_LOCAL_CONFIG_COMPARISON.json",
  132. "sha256": "786f846de25b46e12c37351d4369e3ff930f695e6c9f6dda6a9948f8c04c8026"
  133. },
  134. {
  135. "kind": "file",
  136. "path": "tests/test_phase3_wp14_acceptance_handover_contract.py",
  137. "sha256": "c6c892894f6547c1ff3369337d29e01924e232d04b322c8b2eabad54ca147497"
  138. },
  139. {
  140. "kind": "file",
  141. "path": "scripts/validate_p3_wp14_local_configs.py",
  142. "sha256": "a674145a12297350376354de431d42770f52f7f6e58178b89825b204570036cb"
  143. },
  144. {
  145. "kind": "file",
  146. "path": "scripts/generate_p3_wp14_release_manifest.py",
  147. "sha256": "18191be495e64ecff67dcc5695c96680ea47e3be79559dcd3f84bc6904a15da2"
  148. },
  149. {
  150. "kind": "file",
  151. "path": "scripts/generate_p3_wp14_verification_ledger.py",
  152. "sha256": "7e21c839bb5ba8f283ec1c3d4dd7fc0fab08c249712179fe9d3e9aaed7ea4f62"
  153. },
  154. {
  155. "kind": "file",
  156. "path": "scripts/verify_p3_wp14_fresh_local_engineering.py",
  157. "sha256": "2339f84602d79c09d81469d36915be63d5161b1d711546e100002e72d376e786"
  158. },
  159. {
  160. "kind": "file",
  161. "path": "scripts/p3_wp14_secure_io.py",
  162. "sha256": "fbfbcbdafdc178080c47d44f8715e4a266cc941a60c9748c69988cf04249baba"
  163. }
  164. ],
  165. "compose_input_closure": {
  166. "compose_file": "deploy/docker/docker-compose.yml",
  167. "compose_sha256": "a0e61244e5d2c3ae4a5c6882ad28f6095c9f7d6b53bd19231d3a36fba4fa3844",
  168. "dockerignore": {
  169. "path": ".dockerignore",
  170. "sha256": "5bcc437a29eba4d109f856c929012f5a834e8ac2d1140a25b296f7a8719a19b0"
  171. },
  172. "render_command": [
  173. "/usr/local/bin/docker-compose",
  174. "--env-file",
  175. "/dev/null",
  176. "-f",
  177. "deploy/docker/docker-compose.yml",
  178. "config",
  179. "--format",
  180. "json"
  181. ],
  182. "parsed_services": [
  183. "backend",
  184. "db-migrate",
  185. "db-role-init",
  186. "frontend",
  187. "kestra",
  188. "kestra-db-init",
  189. "minio",
  190. "minio-init",
  191. "n8n",
  192. "neo4j",
  193. "postgres",
  194. "runner",
  195. "source-mysql",
  196. "source-postgres"
  197. ],
  198. "inputs": [
  199. {
  200. "kind": "build_context",
  201. "path": ".",
  202. "sha256": "bcf66972a00b30fa94bbd22918652fbfc047ae2507bf21107e7fc484f4105c98"
  203. },
  204. {
  205. "kind": "dockerfile",
  206. "path": "deploy/docker/backend.Dockerfile",
  207. "sha256": "d6ceafe34971cd022626eff5ccdaf32ec82467090af3ffe75187a921d0b4c6f1"
  208. },
  209. {
  210. "kind": "dockerfile",
  211. "path": "deploy/docker/mcp.Dockerfile",
  212. "sha256": "c067d2a2409e445966682ad3b925b780347e114e74d3ebb67b37297116a9f911"
  213. },
  214. {
  215. "kind": "dockerfile",
  216. "path": "deploy/docker/runner.Dockerfile",
  217. "sha256": "0bc2bdc5873dc79a691f8b378a2c866643721b434f685ddcac87fc5e566b2b7a"
  218. },
  219. {
  220. "kind": "dockerfile",
  221. "path": "deploy/docker/frontend.Dockerfile",
  222. "sha256": "2d7e4678f76056be29b862229340ded9974f6156cd4282ec1e96d8c8486d35d7"
  223. },
  224. {
  225. "kind": "dockerfile_copy_input",
  226. "path": "deploy/docker/nginx.conf",
  227. "sha256": "86ef7fdb6124c9df5237663c18cd4d0ef68c37251f7a42dc02b96d6493aaca8b"
  228. },
  229. {
  230. "kind": "requirements",
  231. "path": "requirements.txt",
  232. "sha256": "d390080fd6bb2ff312b78a8f4b8b69d823e2580a937fb159ba4f993a1d585d89"
  233. },
  234. {
  235. "kind": "requirements",
  236. "path": "deployment/requirements.txt",
  237. "sha256": "d390080fd6bb2ff312b78a8f4b8b69d823e2580a937fb159ba4f993a1d585d89"
  238. },
  239. {
  240. "kind": "mount_input",
  241. "path": "deploy/docker/postgres/init",
  242. "sha256": "b94ab3105039f14c30934247578bbc1b55ef123a006df0aeb87b7fcb8ff93f32"
  243. },
  244. {
  245. "kind": "mount_input",
  246. "path": "database",
  247. "sha256": "f3ce95682e9836d478baecd3e8ce9b94da9ecef03d228d19f825e7022bdabedf"
  248. },
  249. {
  250. "kind": "mount_input",
  251. "path": "deploy/docker/datasources/postgres/init.sql",
  252. "sha256": "9a9de62eb5810e5d532e915df8daccb7da4a2e9444d213414471c518b178fea4"
  253. },
  254. {
  255. "kind": "mount_input",
  256. "path": "deploy/docker/datasources/mysql/init.sql",
  257. "sha256": "ee83b3cd45ea98ae5c9416ef8c82e6e6a48f7de43f90633a204d20475e720248"
  258. },
  259. {
  260. "kind": "mount_input",
  261. "path": "deploy/docker/kestra/application.yml",
  262. "sha256": "a6077a6ce982c41f626eab7199573e50e5509ec03a9d96d0dae752b613eaea4d"
  263. },
  264. {
  265. "kind": "mount_input",
  266. "path": "deploy/docker/edge-mtls-nginx.conf",
  267. "sha256": "324465f7be26a748170260a602e2ac0766769b606dd23e2a7a58c2fcc9030149"
  268. }
  269. ],
  270. "unresolved_variable_mounts": [
  271. "${DATAOPS_EDGE_MTLS_CERT_DIR:-./edge-mtls-certs}",
  272. "${EDGE_GATEWAY_SIGNING_PRIVATE_KEY_FILE:-./edge-secrets/edge-gateway-signing.key}"
  273. ]
  274. },
  275. "image_reference_closure": {
  276. "items": [
  277. {
  278. "source": "compose:5",
  279. "reference": "pgvector/pgvector:pg16",
  280. "status": "UNRESOLVED_MUTABLE_TAG",
  281. "gate": "BLOCKED_EXTERNAL"
  282. },
  283. {
  284. "source": "compose:25",
  285. "reference": "postgres:16-alpine",
  286. "status": "UNRESOLVED_MUTABLE_TAG",
  287. "gate": "BLOCKED_EXTERNAL"
  288. },
  289. {
  290. "source": "compose:50",
  291. "reference": "${DATAOPS_MIGRATOR_IMAGE:-dataops-platform-migrator:local}",
  292. "status": "UNRESOLVED_MUTABLE_TAG",
  293. "gate": "BLOCKED_EXTERNAL"
  294. },
  295. {
  296. "source": "compose:74",
  297. "reference": "${DATAOPS_MIGRATOR_IMAGE:-dataops-platform-migrator:local}",
  298. "status": "UNRESOLVED_MUTABLE_TAG",
  299. "gate": "BLOCKED_EXTERNAL"
  300. },
  301. {
  302. "source": "compose:92",
  303. "reference": "postgres:16-alpine",
  304. "status": "UNRESOLVED_MUTABLE_TAG",
  305. "gate": "BLOCKED_EXTERNAL"
  306. },
  307. {
  308. "source": "compose:111",
  309. "reference": "mysql:8.4",
  310. "status": "UNRESOLVED_MUTABLE_TAG",
  311. "gate": "BLOCKED_EXTERNAL"
  312. },
  313. {
  314. "source": "compose:134",
  315. "reference": "neo4j:5.26-community",
  316. "status": "UNRESOLVED_MUTABLE_TAG",
  317. "gate": "BLOCKED_EXTERNAL"
  318. },
  319. {
  320. "source": "compose:155",
  321. "reference": "minio/minio:RELEASE.2025-04-22T22-12-26Z",
  322. "status": "UNRESOLVED_MUTABLE_TAG",
  323. "gate": "BLOCKED_EXTERNAL"
  324. },
  325. {
  326. "source": "compose:174",
  327. "reference": "minio/mc:RELEASE.2025-04-16T18-13-26Z",
  328. "status": "UNRESOLVED_MUTABLE_TAG",
  329. "gate": "BLOCKED_EXTERNAL"
  330. },
  331. {
  332. "source": "compose:189",
  333. "reference": "n8nio/n8n:1.100.1",
  334. "status": "UNRESOLVED_MUTABLE_TAG",
  335. "gate": "BLOCKED_EXTERNAL"
  336. },
  337. {
  338. "source": "compose:223",
  339. "reference": "kestra/kestra:v1.3.20",
  340. "status": "UNRESOLVED_MUTABLE_TAG",
  341. "gate": "BLOCKED_EXTERNAL"
  342. },
  343. {
  344. "source": "compose:257",
  345. "reference": "ghcr.io/kestra-io/mcp-server-python@sha256:1fd62028f60914af31e244ddb0086ed5017420313e2c8547ea9c01b8d24dfc1d",
  346. "status": "IMMUTABLE_DIGEST",
  347. "gate": "PASS_LOCAL"
  348. },
  349. {
  350. "source": "compose:275",
  351. "reference": "dataops-platform-mcp:local",
  352. "status": "UNRESOLVED_MUTABLE_TAG",
  353. "gate": "BLOCKED_EXTERNAL"
  354. },
  355. {
  356. "source": "compose:317",
  357. "reference": "dataops-platform-mcp:local",
  358. "status": "UNRESOLVED_MUTABLE_TAG",
  359. "gate": "BLOCKED_EXTERNAL"
  360. },
  361. {
  362. "source": "compose:350",
  363. "reference": "${DATAOPS_RUNNER_IMAGE:-dataops-platform-runner:local}",
  364. "status": "UNRESOLVED_MUTABLE_TAG",
  365. "gate": "BLOCKED_EXTERNAL"
  366. },
  367. {
  368. "source": "compose:421",
  369. "reference": "${DATAOPS_BACKEND_IMAGE:-dataops-platform-backend:local}",
  370. "status": "UNRESOLVED_MUTABLE_TAG",
  371. "gate": "BLOCKED_EXTERNAL"
  372. },
  373. {
  374. "source": "compose:520",
  375. "reference": "nginx:1.27-alpine",
  376. "status": "UNRESOLVED_MUTABLE_TAG",
  377. "gate": "BLOCKED_EXTERNAL"
  378. },
  379. {
  380. "source": "compose:541",
  381. "reference": "neo4j:5.26-community",
  382. "status": "UNRESOLVED_MUTABLE_TAG",
  383. "gate": "BLOCKED_EXTERNAL"
  384. },
  385. {
  386. "source": "compose:561",
  387. "reference": "ghcr.io/hkuds/lightrag@sha256:67ccf8d9f74eb29da872bf8b3e6513605f5ac601fb0509c5b0ca16d98d2d307d",
  388. "status": "IMMUTABLE_DIGEST",
  389. "gate": "PASS_LOCAL"
  390. },
  391. {
  392. "source": "compose:608",
  393. "reference": "${DATAOPS_LIGHTRAG_PROJECTOR_IMAGE:-dataops-platform-lightrag-projector:local}",
  394. "status": "UNRESOLVED_MUTABLE_TAG",
  395. "gate": "BLOCKED_EXTERNAL"
  396. },
  397. {
  398. "source": "compose:634",
  399. "reference": "${DATAOPS_FRONTEND_IMAGE:-dataops-platform-frontend:local}",
  400. "status": "UNRESOLVED_MUTABLE_TAG",
  401. "gate": "BLOCKED_EXTERNAL"
  402. },
  403. {
  404. "source": "dockerfile:deploy/docker/backend.Dockerfile:1",
  405. "reference": "python:3.11-slim",
  406. "status": "UNRESOLVED_MUTABLE_TAG",
  407. "gate": "BLOCKED_EXTERNAL"
  408. },
  409. {
  410. "source": "dockerfile:deploy/docker/backend.Dockerfile:23",
  411. "reference": "dependencies",
  412. "status": "INTERNAL_BUILD_STAGE",
  413. "gate": "PASS_LOCAL"
  414. },
  415. {
  416. "source": "dockerfile:deploy/docker/backend.Dockerfile:31",
  417. "reference": "dependencies",
  418. "status": "INTERNAL_BUILD_STAGE",
  419. "gate": "PASS_LOCAL"
  420. },
  421. {
  422. "source": "dockerfile:deploy/docker/mcp.Dockerfile:1",
  423. "reference": "python:3.11-slim",
  424. "status": "UNRESOLVED_MUTABLE_TAG",
  425. "gate": "BLOCKED_EXTERNAL"
  426. },
  427. {
  428. "source": "dockerfile:deploy/docker/runner.Dockerfile:1",
  429. "reference": "python:3.11-slim",
  430. "status": "UNRESOLVED_MUTABLE_TAG",
  431. "gate": "BLOCKED_EXTERNAL"
  432. },
  433. {
  434. "source": "dockerfile:deploy/docker/frontend.Dockerfile:1",
  435. "reference": "node:24-bookworm-slim",
  436. "status": "UNRESOLVED_MUTABLE_TAG",
  437. "gate": "BLOCKED_EXTERNAL"
  438. },
  439. {
  440. "source": "dockerfile:deploy/docker/frontend.Dockerfile:20",
  441. "reference": "nginx:1.27-alpine",
  442. "status": "UNRESOLVED_MUTABLE_TAG",
  443. "gate": "BLOCKED_EXTERNAL"
  444. }
  445. ],
  446. "immutable_signed_deployability_status": "BLOCKED_EXTERNAL",
  447. "boundary": "No registry pull was performed. Any tag or variable reference without @sha256 is mutable and blocks immutable/signed deployability acceptance."
  448. },
  449. "excluded_dependent_evidence": [
  450. "docs/phase3/P3_WP14_RELEASE_MANIFEST.json",
  451. "docs/phase3/P3_WP14_RELEASE_TRACEABILITY.json",
  452. "docs/validation/P3_WP14_LOCAL_CONFIG_RENDER.json",
  453. "docs/validation/P3_WP14_LOCAL_VERIFICATION_LEDGER.json",
  454. "docs/validation/P3_WP14_LOCAL_VERIFICATION.log"
  455. ],
  456. "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."
  457. }