@flisk-sh/flisk 1.3.207 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +40 -37
  3. package/cli/dist/agent-runtimes/custom.js +3 -3
  4. package/cli/dist/agent-runtimes/registry.js +3 -3
  5. package/cli/dist/backend-frameworks/registry.js +8 -8
  6. package/cli/dist/backend-languages/python.js +4 -1
  7. package/cli/dist/backend-languages/registry.js +3 -3
  8. package/cli/dist/cli.js +4 -3
  9. package/cli/dist/commands/agent.js +8 -8
  10. package/cli/dist/commands/completion.js +26 -26
  11. package/cli/dist/commands/config.js +8 -8
  12. package/cli/dist/commands/doctor.js +80 -18
  13. package/cli/dist/commands/down.js +1 -1
  14. package/cli/dist/commands/eject.js +10 -10
  15. package/cli/dist/commands/help.js +2 -2
  16. package/cli/dist/commands/import.js +2 -2
  17. package/cli/dist/commands/logs.js +2 -2
  18. package/cli/dist/commands/mcp.js +2 -2
  19. package/cli/dist/commands/networks.js +2 -2
  20. package/cli/dist/commands/open.js +0 -1
  21. package/cli/dist/commands/project.js +19 -19
  22. package/cli/dist/commands/projects.js +1 -1
  23. package/cli/dist/commands/resource.js +21 -21
  24. package/cli/dist/commands/resources.js +2 -2
  25. package/cli/dist/commands/restart.js +7 -4
  26. package/cli/dist/commands/runtime.js +19 -4
  27. package/cli/dist/commands/stack.js +8 -8
  28. package/cli/dist/commands/up.js +23 -23
  29. package/cli/dist/commands/upgrade.js +44 -40
  30. package/cli/dist/frontend-frameworks/registry.js +3 -3
  31. package/cli/dist/generator/extension-fetch.js +12 -9
  32. package/cli/dist/generator/template-engine.js +72 -56
  33. package/cli/dist/mcp/tools.js +2 -2
  34. package/cli/dist/utils/agent-host.js +1 -1
  35. package/cli/dist/utils/cli-command.js +1 -1
  36. package/cli/dist/utils/cold-preflight.js +2 -2
  37. package/cli/dist/utils/constants.js +3 -3
  38. package/cli/dist/utils/discovery-paths.js +2 -2
  39. package/cli/dist/utils/doctor-fix.js +10 -10
  40. package/cli/dist/utils/doctor-report.js +3 -3
  41. package/cli/dist/utils/doctor-runtime.js +4 -3
  42. package/cli/dist/utils/doctor-starlark.js +3 -3
  43. package/cli/dist/utils/doctor-wiring.js +4 -4
  44. package/cli/dist/utils/down-cleanup.js +2 -2
  45. package/cli/dist/utils/env-compat-init.js +8 -0
  46. package/cli/dist/utils/env-compat.js +27 -0
  47. package/cli/dist/utils/env-selection.js +9 -9
  48. package/cli/dist/utils/errors.js +13 -13
  49. package/cli/dist/utils/file-helpers.js +5 -5
  50. package/cli/dist/utils/{tdk-version.js → flisk-version.js} +8 -8
  51. package/cli/dist/utils/generated-paths.js +6 -6
  52. package/cli/dist/utils/host-port-config.js +10 -10
  53. package/cli/dist/utils/host-port-plan.js +3 -3
  54. package/cli/dist/utils/machine-output.js +2 -2
  55. package/cli/dist/utils/native-windows.js +1 -1
  56. package/cli/dist/utils/paths.js +3 -3
  57. package/cli/dist/utils/platform.js +9 -9
  58. package/cli/dist/utils/port-conflict-fix.js +3 -3
  59. package/cli/dist/utils/port-fallback-notice.js +3 -3
  60. package/cli/dist/utils/project-config-defaults.js +1 -1
  61. package/cli/dist/utils/project-features.js +2 -2
  62. package/cli/dist/utils/resource-features.js +3 -3
  63. package/cli/dist/utils/runtime-layout.js +65 -0
  64. package/cli/dist/utils/schema-version-gate.js +3 -2
  65. package/cli/dist/utils/service-urls.js +3 -3
  66. package/cli/dist/utils/services.js +2 -2
  67. package/cli/dist/utils/shared-infra.js +2 -2
  68. package/cli/dist/utils/shared-platform-postgres.js +6 -6
  69. package/cli/dist/utils/tar.js +1 -1
  70. package/cli/dist/utils/tilt.js +1 -1
  71. package/cli/dist/utils/up-readiness.js +1 -1
  72. package/cli/dist/utils/windows-doctor.js +3 -3
  73. package/cli/dist-bundle/{chunk-YZRPX76N.js → chunk-3J6XI3NX.js} +1 -1
  74. package/cli/dist-bundle/chunk-7HR5PVOD.js +54 -0
  75. package/cli/dist-bundle/{chunk-FAHNFTWN.js → chunk-7IXBBU27.js} +2 -2
  76. package/cli/dist-bundle/chunk-BB5BZ37Y.js +10 -0
  77. package/cli/dist-bundle/{chunk-SLKTM6ZO.js → chunk-DUNCELUK.js} +14 -14
  78. package/cli/dist-bundle/chunk-K6SOCO6V.js +3 -0
  79. package/cli/dist-bundle/{chunk-D2DIEX5E.js → chunk-KJOCVAMQ.js} +2 -2
  80. package/cli/dist-bundle/{chunk-6EA4DGCY.js → chunk-KJZUBHLO.js} +1 -1
  81. package/cli/dist-bundle/chunk-L6U555CJ.js +61 -0
  82. package/cli/dist-bundle/chunk-M2R464RM.js +7 -0
  83. package/cli/dist-bundle/{chunk-GOEBYLFN.js → chunk-MINZ25AC.js} +1 -1
  84. package/cli/dist-bundle/chunk-RX6O3PG4.js +2 -0
  85. package/cli/dist-bundle/chunk-SRN64OPO.js +35 -0
  86. package/cli/dist-bundle/chunk-TZNXL3IO.js +2 -0
  87. package/cli/dist-bundle/{chunk-5LRMAY67.js → chunk-UJXR6MZ2.js} +13 -13
  88. package/cli/dist-bundle/{chunk-AGXA5DOQ.js → chunk-VRESY4NR.js} +3 -3
  89. package/cli/dist-bundle/{chunk-53M5D4KE.js → chunk-XD3BBFZB.js} +1 -1
  90. package/cli/dist-bundle/{chunk-GIMHTZNR.js → chunk-YL56J2WX.js} +1 -1
  91. package/cli/dist-bundle/cli.js +254 -254
  92. package/cli/dist-bundle/cold-preflight-BBDDHWRV.js +2 -0
  93. package/cli/dist-bundle/colima-GBURKN54.js +2 -0
  94. package/cli/dist-bundle/{demo-stage-ANHJKDZC.js → demo-stage-HIHO4VV3.js} +2 -2
  95. package/cli/dist-bundle/{devtools-MGITLOWZ.js → devtools-ZD6XIOLD.js} +2 -2
  96. package/cli/dist-bundle/extension-fetch-VEFSCG4B.js +2 -0
  97. package/cli/dist-bundle/native-windows-BWVEYVPO.js +2 -0
  98. package/cli/dist-bundle/{one-command-P6XVAXWV.js → one-command-VNKQAMFJ.js} +2 -2
  99. package/cli/dist-bundle/open-W3QX35R6.js +2 -0
  100. package/cli/dist-bundle/project-FW5LL2KM.js +2 -0
  101. package/cli/dist-bundle/project-templates-EYSQG2EO.js +2 -0
  102. package/cli/dist-bundle/{services-CBXN4SXC.js → services-RGTQ2LXC.js} +2 -2
  103. package/cli/dist-bundle/{stack-progress-6GO2TCRH.js → stack-progress-NIFM5T2K.js} +2 -2
  104. package/cli/dist-bundle/tilt-port-owner-6DO7OJRR.js +2 -0
  105. package/cli/dist-bundle/url-actions-HXJLBTX6.js +2 -0
  106. package/cli/package.json +5 -5
  107. package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
  108. package/cli/shared-platform-engineering/docker-templates/install-deps.sh +2 -2
  109. package/cli/templates/.tiltignore.hbs +2 -2
  110. package/cli/templates/TILT_RESOURCE_DEFAULTS.star.hbs +1 -1
  111. package/cli/templates/TILT_TECH_STACK.star.hbs +1 -1
  112. package/cli/templates/Tiltfile.hbs +21 -21
  113. package/cli/templates/spec.master.hbs +4 -4
  114. package/examples/tdk-example/LICENSE +1 -1
  115. package/examples/tdk-example/Tiltfile +10 -10
  116. package/examples/tdk-example/services/platform/messaging/docker-compose.yml +7 -7
  117. package/examples/tdk-example/services/shop/orders-api/service.json +1 -1
  118. package/examples/tdk-example/services/shop/orders-api/src/index.ts +1 -1
  119. package/examples/tdk-example/services/shop/orders-app/index.html +1 -1
  120. package/examples/tdk-example/services/shop/orders-worker/service.json +1 -1
  121. package/examples/tdk-example/services/shop/orders-worker/src/index.ts +1 -1
  122. package/package.json +39 -12
  123. package/{Tiltfile → runtime/Tiltfile} +9 -5
  124. package/{discovery → runtime/discovery}/AGENTS.md +1 -1
  125. package/{discovery → runtime/discovery}/TILT_DISCOVERY.star +5 -5
  126. package/{discovery → runtime/discovery}/Tiltfile +5 -5
  127. package/{discovery → runtime/discovery}/config.star +5 -5
  128. package/{discovery → runtime/discovery}/constants.star +14 -14
  129. package/{discovery → runtime/discovery}/deterministic.star +1 -1
  130. package/{discovery → runtime/discovery}/discovery_daemon.star +2 -2
  131. package/{discovery → runtime/discovery}/discovery_orchestrator.star +17 -17
  132. package/{discovery → runtime/discovery}/identity-management-backend/service.yaml +2 -2
  133. package/{discovery → runtime/discovery}/incremental_discovery.star +1 -1
  134. package/{discovery → runtime/discovery}/json_manifest_scanner.star +2 -2
  135. package/{discovery → runtime/discovery}/libraries.star +1 -1
  136. package/{discovery → runtime/discovery}/manifest/constants.star +1 -1
  137. package/{discovery → runtime/discovery}/manifest/loading.star +7 -7
  138. package/{discovery → runtime/discovery}/manifest/normalize.star +12 -15
  139. package/{discovery → runtime/discovery}/registry.star +11 -11
  140. package/{discovery → runtime/discovery}/resource_snapshot.py +2 -2
  141. package/{discovery → runtime/discovery}/resource_snapshot.star +6 -6
  142. package/{discovery → runtime/discovery}/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +2 -2
  143. package/{engine → runtime/engine}/AGENTS.md +6 -6
  144. package/{engine → runtime/engine}/README.md +2 -2
  145. package/{engine → runtime/engine}/Tiltfile +5 -5
  146. package/{engine → runtime/engine}/assets/docker/golden-layers.Dockerfile +17 -17
  147. package/{engine → runtime/engine}/assets/docker/wake-gateway/Dockerfile +7 -0
  148. package/{engine → runtime/engine}/entrypoint.star +1 -1
  149. package/{engine → runtime/engine}/paths.star +5 -5
  150. package/{engine → runtime/engine}/schemas/project-schema.json +2 -2
  151. package/{engine → runtime/engine}/schemas/service-schema.json +5 -5
  152. package/{engine → runtime/engine}/scripts/debug-container.sh +3 -3
  153. package/{engine → runtime/engine}/spec.master +3 -3
  154. package/{engine → runtime/engine}/topologies/README.md +3 -3
  155. package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_build.star +5 -5
  156. package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_constants.star +7 -7
  157. package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_dockerfile.star +8 -8
  158. package/{engine → runtime/engine}/topologies/platform/docker/compose/compose.star +12 -12
  159. package/{engine → runtime/engine}/topologies/platform/docker/compose/traefik_standalone.star +21 -6
  160. package/{engine → runtime/engine}/topologies/platform/docker/config/healthcheck.star +7 -7
  161. package/{engine → runtime/engine}/topologies/platform/docker/constants.star +7 -7
  162. package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/language_dockerfile.star +3 -3
  163. package/{engine → runtime/engine}/topologies/platform/docker/layers/l1_base_layers.star +5 -5
  164. package/{engine → runtime/engine}/topologies/platform/docker/layers/l2_dependency_layers.star +14 -14
  165. package/{engine → runtime/engine}/topologies/platform/docker/layers/l3_builder_layers.star +5 -5
  166. package/{engine → runtime/engine}/topologies/platform/docker/layers/l4_runtime_layers.star +8 -8
  167. package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/constants.star +5 -5
  168. package/{engine → runtime/engine}/topologies/platform/docker/networking/api_path_constants.star +5 -5
  169. package/{engine → runtime/engine}/topologies/platform/docker/networking/sablier_container_cycle.star +1 -1
  170. package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_static_routes.star +1 -1
  171. package/{engine → runtime/engine}/topologies/platform/docker/secrets/env_secrets.star +2 -2
  172. package/{engine → runtime/engine}/topologies/platform/docker/secrets/infisical.star +4 -4
  173. package/{engine → runtime/engine}/topologies/platform/registries/verdaccio_loader.star +1 -1
  174. package/{engine → runtime/engine}/topologies/platform/security/secrets.star +1 -1
  175. package/{engine → runtime/engine}/topologies/tilt/common/utils.star +9 -10
  176. package/{engine → runtime/engine}/topologies/tilt/common/utils_debug.star +1 -1
  177. package/{engine → runtime/engine}/topologies/tilt/common/utils_deterministic.star +2 -2
  178. package/{engine → runtime/engine}/topologies/tilt/common/utils_env.star +5 -5
  179. package/{engine → runtime/engine}/topologies/tilt/config/profiles.star +4 -4
  180. package/{engine → runtime/engine}/topologies/tilt/generators/agents_md.star +1 -1
  181. package/{engine → runtime/engine}/topologies/tilt/generators/infisical/README.md +1 -1
  182. package/{engine → runtime/engine}/topologies/tilt/generators/infisical/organization.star +6 -6
  183. package/{engine → runtime/engine}/topologies/tilt/generators/npmrc.star +5 -5
  184. package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_tsconfig.star +1 -1
  185. package/{engine → runtime/engine}/topologies/tilt/generators/typescript/playwright_config.star +1 -1
  186. package/{engine → runtime/engine}/topologies/tilt/generators/vite/helpers.star +7 -7
  187. package/{engine → runtime/engine}/topologies/tilt/generators/vite/templates.star +5 -5
  188. package/{engine → runtime/engine}/topologies/tilt/manifest/json_to_yaml.py +2 -2
  189. package/{engine → runtime/engine}/topologies/tilt/manifest/loader.star +2 -2
  190. package/{engine → runtime/engine}/topologies/tilt/manifest/schema.star +1 -1
  191. package/{engine → runtime/engine}/topologies/tilt/manifest/yaml_to_json.py +1 -1
  192. package/{engine → runtime/engine}/topologies/tilt/resources/build_concurrency.star +3 -3
  193. package/{engine → runtime/engine}/topologies/tilt/resources/databases.star +7 -6
  194. package/{engine → runtime/engine}/topologies/tilt/resources/infra-loader.star +12 -12
  195. package/{engine → runtime/engine}/topologies/tilt/resources/libs_paths.star +1 -1
  196. package/{engine → runtime/engine}/topologies/tilt/resources/libs_resource_definition.star +2 -2
  197. package/{engine → runtime/engine}/topologies/tilt/resources/libs_setup.star +1 -1
  198. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +36 -28
  199. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +1 -1
  200. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/frontend.star +5 -5
  201. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +4 -4
  202. package/{engine → runtime/engine}/topologies/tilt/resources/watchers.star +20 -20
  203. package/{engine → runtime/engine}/where-things-live.star +5 -5
  204. package/{ext → runtime/ext}/Tiltfile +5 -5
  205. package/{ext → runtime/ext}/ide-components/code_viewer/server.py +1 -1
  206. package/{ext → runtime/ext}/ide-components/config_inspector/server.py +2 -2
  207. package/{ext → runtime/ext}/ide-components/file_browser/server.py +1 -1
  208. package/{ext → runtime/ext}/ide-components/shared/config_service.py +2 -2
  209. package/{ext → runtime/ext}/ide-components/shared/file_utils.py +2 -2
  210. package/{ext → runtime/ext}/ide-components/shared/http_utils.py +1 -1
  211. package/{ext → runtime/ext}/ide-components/shared/syntax_highlighter.py +1 -1
  212. package/{ext → runtime/ext}/ide-components/shared/template_engine.py +1 -1
  213. package/{ext → runtime/ext}/ide-components/shared/templates/base.html +1 -1
  214. package/{ext → runtime/ext}/ide-components/shared/tilt_integration.py +1 -1
  215. package/{ext → runtime/ext}/ui-enhancements/tiltfile.py +1 -1
  216. package/runtime/platform/services/platform/proxy/service.yaml +14 -0
  217. package/{shared-platform-engineering → runtime/shared-platform-engineering}/docker-templates/infisical-entrypoint.sh +2 -2
  218. package/{shared-platform-engineering → runtime/shared-platform-engineering}/docker-templates/install-deps.sh +2 -2
  219. package/cli/dist/commands/__tests__/project-e2e-helpers.js +0 -49
  220. package/cli/dist/commands/__tests__/ui-loading-screen.test.js +0 -16
  221. package/cli/dist/generator/__tests__/golden-helpers.js +0 -43
  222. package/cli/dist-bundle/chunk-42IVF3YT.js +0 -3
  223. package/cli/dist-bundle/chunk-AT5MFZ3D.js +0 -10
  224. package/cli/dist-bundle/chunk-BHWJU6HY.js +0 -2
  225. package/cli/dist-bundle/chunk-DWR3LLHS.js +0 -2
  226. package/cli/dist-bundle/chunk-GB6DJJ5N.js +0 -57
  227. package/cli/dist-bundle/chunk-ODYL6LET.js +0 -52
  228. package/cli/dist-bundle/chunk-YTXQPTCN.js +0 -35
  229. package/cli/dist-bundle/chunk-Z2C55UFP.js +0 -7
  230. package/cli/dist-bundle/cold-preflight-7PFKXNK7.js +0 -2
  231. package/cli/dist-bundle/colima-SVZX2UML.js +0 -2
  232. package/cli/dist-bundle/extension-fetch-6XNTDF44.js +0 -2
  233. package/cli/dist-bundle/native-windows-X5XVLFJS.js +0 -2
  234. package/cli/dist-bundle/open-VJZ7W4JR.js +0 -2
  235. package/cli/dist-bundle/project-QSH7LOWI.js +0 -2
  236. package/cli/dist-bundle/project-templates-JDRE7AVL.js +0 -2
  237. package/cli/dist-bundle/tilt-port-owner-SMN5SAQJ.js +0 -2
  238. package/cli/dist-bundle/url-actions-D6ROTHZG.js +0 -2
  239. package/discovery/test_resource_snapshot.py +0 -253
  240. package/engine/assets/docker/wake-gateway/decide.test.ts +0 -177
  241. package/engine/topologies/tilt/manifest/tests/test_integration.star +0 -278
  242. package/engine/topologies/tilt/manifest/tests/test_loader_parser.star +0 -475
  243. package/engine/topologies/tilt/manifest/tests/test_manifest.star +0 -319
  244. package/engine/topologies/tilt/manifest/tests/test_validator.star +0 -472
  245. package/ext/ide-components/shared/test_config_service.py +0 -328
  246. /package/cli/bin/{tdk.js → flisk.js} +0 -0
  247. /package/{discovery → runtime/discovery}/filtering.star +0 -0
  248. /package/{discovery → runtime/discovery}/identity-management-frontend/service.yaml +0 -0
  249. /package/{discovery → runtime/discovery}/identity-sdk/service.yaml +0 -0
  250. /package/{discovery → runtime/discovery}/indexing.star +0 -0
  251. /package/{discovery → runtime/discovery}/loading.star +0 -0
  252. /package/{discovery → runtime/discovery}/manifest/validation.star +0 -0
  253. /package/{discovery → runtime/discovery}/normalization.star +0 -0
  254. /package/{discovery → runtime/discovery}/schemas.star +0 -0
  255. /package/{discovery → runtime/discovery}/services/platform/cdc/debezium/nats-connector/service.yaml +0 -0
  256. /package/{discovery → runtime/discovery}/services/platform/cdc/nats-http-bridge/service.yaml +0 -0
  257. /package/{discovery → runtime/discovery}/services/platform/synthetic-monitor/service.yaml +0 -0
  258. /package/{discovery → runtime/discovery}/validation.star +0 -0
  259. /package/{discovery → runtime/discovery}/versioning.star +0 -0
  260. /package/{engine → runtime/engine}/REFACTORING_MANIFEST_SYSTEM.md +0 -0
  261. /package/{engine → runtime/engine}/assets/docker/wake-gateway/decide.ts +0 -0
  262. /package/{engine → runtime/engine}/assets/docker/wake-gateway/server.ts +0 -0
  263. /package/{engine → runtime/engine}/assets/scripts/cleanup-completed-migrator-images.sh +0 -0
  264. /package/{engine → runtime/engine}/assets/scripts/cleanup-tilt-images.sh +0 -0
  265. /package/{engine → runtime/engine}/assets/scripts/mac-m1-resource-monitor.sh +0 -0
  266. /package/{engine → runtime/engine}/config.star +0 -0
  267. /package/{engine → runtime/engine}/lifecycle/orchestrator.star +0 -0
  268. /package/{engine → runtime/engine}/scripts/README.md +0 -0
  269. /package/{engine → runtime/engine}/scripts/build-and-publish-lib.sh +0 -0
  270. /package/{engine → runtime/engine}/scripts/check-lib-publish.sh +0 -0
  271. /package/{engine → runtime/engine}/scripts/generate-manifest.sh +0 -0
  272. /package/{engine → runtime/engine}/spec.master.example +0 -0
  273. /package/{engine → runtime/engine}/topologies/platform/docker/AGENTS.md +0 -0
  274. /package/{engine → runtime/engine}/topologies/platform/docker/auth/auth.star +0 -0
  275. /package/{engine → runtime/engine}/topologies/platform/docker/build/frontend_build_plan.star +0 -0
  276. /package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image.star +0 -0
  277. /package/{engine → runtime/engine}/topologies/platform/docker/compose/compose_helpers.star +0 -0
  278. /package/{engine → runtime/engine}/topologies/platform/docker/compose/unsafe_value.star +0 -0
  279. /package/{engine → runtime/engine}/topologies/platform/docker/config/bunignore.star +0 -0
  280. /package/{engine → runtime/engine}/topologies/platform/docker/config/dockerignore.star +0 -0
  281. /package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/dockerfile.star +0 -0
  282. /package/{engine → runtime/engine}/topologies/platform/docker/generators/golden_docker_generator_v2.star +0 -0
  283. /package/{engine → runtime/engine}/topologies/platform/docker/index.star +0 -0
  284. /package/{engine → runtime/engine}/topologies/platform/docker/layers/bun_helpers.star +0 -0
  285. /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/index.star +0 -0
  286. /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/infisical_docker.star +0 -0
  287. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/db_readiness.star +0 -0
  288. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/filesystem_setup.star +0 -0
  289. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/migrate_script.star +0 -0
  290. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_build.star +0 -0
  291. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_runtime.star +0 -0
  292. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/secret_resolution.star +0 -0
  293. /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik.star +0 -0
  294. /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_constants.star +0 -0
  295. /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_helpers.star +0 -0
  296. /package/{engine → runtime/engine}/topologies/platform/net/AGENTS.md +0 -0
  297. /package/{engine → runtime/engine}/topologies/platform/net/proxy.star +0 -0
  298. /package/{engine → runtime/engine}/topologies/platform/registries/local.star +0 -0
  299. /package/{engine → runtime/engine}/topologies/platform/security/AGENTS.md +0 -0
  300. /package/{engine → runtime/engine}/topologies/platform/state/AGENTS.md +0 -0
  301. /package/{engine → runtime/engine}/topologies/platform/state/relational.star +0 -0
  302. /package/{engine → runtime/engine}/topologies/tilt/common/AGENTS.md +0 -0
  303. /package/{engine → runtime/engine}/topologies/tilt/common/utils_docker_networks.star +0 -0
  304. /package/{engine → runtime/engine}/topologies/tilt/common/utils_output.star +0 -0
  305. /package/{engine → runtime/engine}/topologies/tilt/config/AGENTS.md +0 -0
  306. /package/{engine → runtime/engine}/topologies/tilt/config/defaults.star +0 -0
  307. /package/{engine → runtime/engine}/topologies/tilt/config/feature_flags.star +0 -0
  308. /package/{engine → runtime/engine}/topologies/tilt/config/global.star +0 -0
  309. /package/{engine → runtime/engine}/topologies/tilt/generators/api_gateway.star +0 -0
  310. /package/{engine → runtime/engine}/topologies/tilt/generators/index.star +0 -0
  311. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/examples.star +0 -0
  312. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/index.star +0 -0
  313. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/machine_identity.star +0 -0
  314. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/path_manager.star +0 -0
  315. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/secrets_generator.star +0 -0
  316. /package/{engine → runtime/engine}/topologies/tilt/generators/nginx_conf.star +0 -0
  317. /package/{engine → runtime/engine}/topologies/tilt/generators/tsconfig.star +0 -0
  318. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_library_tsconfig.star +0 -0
  319. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/common.star +0 -0
  320. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +0 -0
  321. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_tsconfig.star +0 -0
  322. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/include.star +0 -0
  323. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/prisma_config.star +0 -0
  324. /package/{engine → runtime/engine}/topologies/tilt/generators/validators.star +0 -0
  325. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/backend.star +0 -0
  326. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/lit.star +0 -0
  327. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/preact.star +0 -0
  328. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/qwik.star +0 -0
  329. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/react.star +0 -0
  330. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/solid.star +0 -0
  331. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/svelte.star +0 -0
  332. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vanilla.star +0 -0
  333. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vue.star +0 -0
  334. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frontend.star +0 -0
  335. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/generators.star +0 -0
  336. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/library.star +0 -0
  337. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/sdk.star +0 -0
  338. /package/{engine → runtime/engine}/topologies/tilt/generators/vite_config.star +0 -0
  339. /package/{engine → runtime/engine}/topologies/tilt/manifest/AGENTS.md +0 -0
  340. /package/{engine → runtime/engine}/topologies/tilt/manifest/README.md +0 -0
  341. /package/{engine → runtime/engine}/topologies/tilt/manifest/__init__.star +0 -0
  342. /package/{engine → runtime/engine}/topologies/tilt/manifest/constants.star +0 -0
  343. /package/{engine → runtime/engine}/topologies/tilt/manifest/errors.star +0 -0
  344. /package/{engine → runtime/engine}/topologies/tilt/manifest/integration.star +0 -0
  345. /package/{engine → runtime/engine}/topologies/tilt/manifest/mapper.star +0 -0
  346. /package/{engine → runtime/engine}/topologies/tilt/manifest/parser.star +0 -0
  347. /package/{engine → runtime/engine}/topologies/tilt/manifest/validator.star +0 -0
  348. /package/{engine → runtime/engine}/topologies/tilt/resources/AGENTS.md +0 -0
  349. /package/{engine → runtime/engine}/topologies/tilt/resources/conditions.star +0 -0
  350. /package/{engine → runtime/engine}/topologies/tilt/resources/declaration.star +0 -0
  351. /package/{engine → runtime/engine}/topologies/tilt/resources/deps.star +0 -0
  352. /package/{engine → runtime/engine}/topologies/tilt/resources/libs.star +0 -0
  353. /package/{engine → runtime/engine}/topologies/tilt/resources/libs_discovery.star +0 -0
  354. /package/{engine → runtime/engine}/topologies/tilt/resources/libs_tsconfig.star +0 -0
  355. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply.star +0 -0
  356. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +0 -0
  357. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_resource_validation.star +0 -0
  358. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +0 -0
  359. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/builders/typescript.star +0 -0
  360. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +0 -0
  361. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +0 -0
  362. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +0 -0
  363. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/env.star +0 -0
  364. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/helpers.star +0 -0
  365. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator.star +0 -0
  366. /package/{engine → runtime/engine}/topologies/tilt/resources/ordering.star +0 -0
  367. /package/{engine → runtime/engine}/topologies/tilt/resources/shared-platform-postgres.star +0 -0
  368. /package/{engine → runtime/engine}/topologies/tilt/resources/triggers.star +0 -0
  369. /package/{ext → runtime/ext}/ide-components/README.md +0 -0
  370. /package/{ext → runtime/ext}/ide-components/shared/static/styles.css +0 -0
  371. /package/{ext → runtime/ext}/ui-enhancements/cron-status-server.sh +0 -0
  372. /package/{ext → runtime/ext}/ui-enhancements/cron-status-tracker.sh +0 -0
  373. /package/{ext → runtime/ext}/ui-enhancements/extension.yaml +0 -0
  374. /package/{ext → runtime/ext}/ui-enhancements/ui/cron-jobs-tab.css +0 -0
  375. /package/{ext → runtime/ext}/ui-enhancements/ui/help-panel.css +0 -0
  376. /package/{ext → runtime/ext}/ui-enhancements/ui/icons.css +0 -0
  377. /package/{ext → runtime/ext}/ui-enhancements/ui/tooltips.css +0 -0
  378. /package/{shared-platform-engineering → runtime/shared-platform-engineering}/docker-templates/bun-hoisted-symlink-fix.sh +0 -0
  379. /package/{shared-platform-engineering → runtime/shared-platform-engineering}/docker-templates/prisma-bun-client-link-fix.sh +0 -0
  380. /package/{shared-platform-engineering → runtime/shared-platform-engineering}/docker-templates/prisma-normalize-client.sh +0 -0
  381. /package/{specs → runtime/specs}/specs/TILT_SERVICE_DEFAULTS.star +0 -0
  382. /package/{specs → runtime/specs}/specs/TILT_TECH_STACK.star +0 -0
@@ -1,253 +0,0 @@
1
- #!/usr/bin/env python3
2
- # Copyright (c) 2026 TDK Landscape contributors
3
- # SPDX-License-Identifier: MIT
4
- """
5
- 🧪 Tests for resource_snapshot.py
6
-
7
- Run with: python3 -m pytest test_resource_snapshot.py -v
8
- Or: python3 test_resource_snapshot.py
9
- """
10
-
11
- import json
12
- import os
13
- import sys
14
- import tempfile
15
- import shutil
16
- from pathlib import Path
17
- import pytest
18
-
19
- # Add parent directory to path
20
- sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
21
-
22
- from resource_snapshot import (
23
- save_snapshot,
24
- load_snapshot,
25
- diff_snapshots,
26
- get_current_services,
27
- )
28
-
29
-
30
- @pytest.fixture
31
- def temp_workspace(tmp_path):
32
- """Provide a temporary workspace with automatic cleanup."""
33
- original_dir = os.getcwd()
34
- os.chdir(tmp_path)
35
- yield tmp_path
36
- os.chdir(original_dir)
37
-
38
-
39
- class TestSaveSnapshot:
40
- """Tests for save_snapshot function."""
41
-
42
- def test_save_creates_file(self, temp_workspace):
43
- """Test that save_snapshot creates the snapshot file."""
44
- services = ["services/a/service.json", "services/b/service.json"]
45
- save_snapshot(services)
46
-
47
- snapshot_file = Path(".tdk/.tdk-out/snapshots/resource-snapshot.json")
48
- assert snapshot_file.exists(), "Snapshot file should be created"
49
-
50
- # Verify content
51
- with open(snapshot_file) as f:
52
- data = json.load(f)
53
- assert data["count"] == 2
54
- assert data["services"] == services
55
- assert "timestamp" in data
56
-
57
- def test_save_creates_directory(self, temp_workspace):
58
- """Test that save_snapshot creates the .tdk directory if needed."""
59
- services = ["services/test/service.json"]
60
- save_snapshot(services)
61
-
62
- assert Path(".tdk/.tdk-out/snapshots").exists(), ".tdk/.tdk-out/snapshots directory should be created"
63
-
64
-
65
- class TestLoadSnapshot:
66
- """Tests for load_snapshot function."""
67
-
68
- def test_load_existing(self, temp_workspace):
69
- """Test loading an existing snapshot."""
70
- # Create a snapshot first
71
- services = ["services/a/service.json"]
72
- save_snapshot(services)
73
-
74
- # Load it
75
- snapshot = load_snapshot()
76
-
77
- assert snapshot["count"] == 1
78
- assert snapshot["services"] == services
79
- assert "timestamp" in snapshot
80
-
81
- def test_load_nonexistent(self, temp_workspace):
82
- """Test loading when snapshot doesn't exist."""
83
- snapshot = load_snapshot()
84
-
85
- assert snapshot["count"] == 0
86
- assert snapshot["services"] == []
87
- assert snapshot["timestamp"] is None
88
-
89
- def test_load_invalid_json(self, temp_workspace):
90
- """Test loading when snapshot has invalid JSON."""
91
- # Create invalid snapshot
92
- Path(".tdk/.tdk-out/snapshots").mkdir(parents=True, exist_ok=True)
93
- with open(".tdk/.tdk-out/snapshots/resource-snapshot.json", "w") as f:
94
- f.write("not valid json")
95
-
96
- snapshot = load_snapshot()
97
-
98
- # Should return empty snapshot on error
99
- assert snapshot["count"] == 0
100
- assert snapshot["services"] == []
101
-
102
-
103
- class TestDiffSnapshots:
104
- """Tests for diff_snapshots function."""
105
-
106
- def test_detect_added(self):
107
- """Test detecting added services."""
108
- old = {"services": ["a/service.json", "b/service.json"]}
109
- new = ["a/service.json", "b/service.json", "c/service.json"]
110
-
111
- added, removed, modified = diff_snapshots(old, new)
112
-
113
- assert added == {"c/service.json"}
114
- assert removed == set()
115
- assert modified == set()
116
-
117
- def test_detect_removed(self):
118
- """Test detecting removed services."""
119
- old = {"services": ["a/service.json", "b/service.json", "c/service.json"]}
120
- new = ["a/service.json", "b/service.json"]
121
-
122
- added, removed, modified = diff_snapshots(old, new)
123
-
124
- assert added == set()
125
- assert removed == {"c/service.json"}
126
- assert modified == set()
127
-
128
- def test_detect_both(self):
129
- """Test detecting both added and removed."""
130
- old = {"services": ["a/service.json", "b/service.json"]}
131
- new = ["b/service.json", "c/service.json"]
132
-
133
- added, removed, modified = diff_snapshots(old, new)
134
-
135
- assert added == {"c/service.json"}
136
- assert removed == {"a/service.json"}
137
- assert modified == set()
138
-
139
- def test_no_changes(self):
140
- """Test when nothing changed."""
141
- old = {"services": ["a/service.json", "b/service.json"]}
142
- new = ["a/service.json", "b/service.json"]
143
-
144
- added, removed, modified = diff_snapshots(old, new)
145
-
146
- assert added == set()
147
- assert removed == set()
148
- assert modified == set()
149
-
150
- def test_empty_old(self):
151
- """Test when old snapshot is empty."""
152
- old = {"services": []}
153
- new = ["a/service.json", "b/service.json"]
154
-
155
- added, removed, modified = diff_snapshots(old, new)
156
-
157
- assert added == {"a/service.json", "b/service.json"}
158
- assert removed == set()
159
- assert modified == set()
160
-
161
-
162
- class TestGetCurrentServices:
163
- """Tests for get_current_services function."""
164
-
165
- def test_finds_services(self, temp_workspace):
166
- """Test finding service.json files."""
167
- # Create test directory structure
168
- (Path("services/product/a") / "a-backend").mkdir(parents=True)
169
- (Path("services/product/a") / "a-backend" / "service.json").touch()
170
-
171
- (Path("services/product/b") / "b-backend").mkdir(parents=True)
172
- (Path("services/product/b") / "b-backend" / "service.json").touch()
173
-
174
- services = get_current_services("services/product")
175
-
176
- assert len(services) == 2
177
- assert all("service.json" in s for s in services)
178
-
179
- def test_empty_result(self, temp_workspace):
180
- """Test when no services exist."""
181
- # Create empty directory
182
- Path("services/product").mkdir(parents=True)
183
-
184
- services = get_current_services("services/product")
185
-
186
- assert services == []
187
-
188
- def test_nonexistent_root(self, temp_workspace):
189
- """Test when scan root doesn't exist."""
190
- services = get_current_services("nonexistent/path")
191
-
192
- assert services == []
193
-
194
-
195
- def run_tests():
196
- """Run all tests with basic output."""
197
- import tempfile
198
- import inspect
199
-
200
- print("🧪 Running resource_snapshot tests...")
201
- print("=" * 50)
202
-
203
- passed = 0
204
- failed = 0
205
-
206
- test_classes = [
207
- TestSaveSnapshot,
208
- TestLoadSnapshot,
209
- TestDiffSnapshots,
210
- TestGetCurrentServices,
211
- ]
212
-
213
- for test_class in test_classes:
214
- print(f"\n📦 {test_class.__name__}")
215
-
216
- # Get all test methods
217
- for method_name in dir(test_class):
218
- if method_name.startswith("test_"):
219
- test_method = getattr(test_class(), method_name)
220
-
221
- # Check if method needs tmp_path parameter
222
- sig = inspect.signature(test_method)
223
- needs_tmp_path = len(sig.parameters) > 0
224
-
225
- # Create temp directory for test
226
- with tempfile.TemporaryDirectory() as tmp_dir:
227
- try:
228
- if needs_tmp_path:
229
- test_method(Path(tmp_dir))
230
- else:
231
- test_method()
232
- print(f" ✓ {method_name}")
233
- passed += 1
234
- except AssertionError as e:
235
- print(f" ✗ {method_name}: {e}")
236
- failed += 1
237
- except Exception as e:
238
- print(f" ✗ {method_name}: Exception - {e}")
239
- failed += 1
240
-
241
- print("\n" + "=" * 50)
242
- print(f"📊 Results: {passed} passed, {failed} failed")
243
-
244
- if failed == 0:
245
- print("🎉 All tests passed!")
246
- return 0
247
- else:
248
- print(f"⚠️ {failed} test(s) failed")
249
- return 1
250
-
251
-
252
- if __name__ == "__main__":
253
- sys.exit(run_tests())
@@ -1,177 +0,0 @@
1
- // Copyright (c) 2026 Flisk Landscape contributors
2
- // SPDX-License-Identifier: MIT
3
- import { describe, expect, test } from "bun:test";
4
- import {
5
- COMPOSE_START_TIMEOUT_MS,
6
- EARLY_RESPONSE_MS,
7
- MAX_EARLY_RESPONSE_MS,
8
- RETRY_AFTER_SECONDS,
9
- TILT_TRIGGER_TIMEOUT_MS,
10
- decideWakeAction,
11
- earlyResponseMs,
12
- evaluateReadiness,
13
- isGatewayLivenessProbe,
14
- wakeTimeoutMs,
15
- } from "./decide";
16
-
17
- describe("decideWakeAction", () => {
18
- test("never-created resource: tilt trigger only, no Sablier start", () => {
19
- const action = decideWakeAction({
20
- resourceContainerName: "data-governance-api",
21
- resourceState: "absent",
22
- dependencies: [],
23
- });
24
- expect(action.tiltTriggerNames).toEqual(["data-governance-api"]);
25
- expect(action.useSablierStart).toBe(false);
26
- });
27
-
28
- test("previously-run, now-exited resource: both tilt trigger and Sablier start", () => {
29
- const action = decideWakeAction({
30
- resourceContainerName: "data-governance-api",
31
- resourceState: "exited",
32
- dependencies: [],
33
- });
34
- expect(action.tiltTriggerNames).toEqual(["data-governance-api"]);
35
- expect(action.useSablierStart).toBe(true);
36
- });
37
-
38
- test("created-but-not-started resource: both paths apply", () => {
39
- const action = decideWakeAction({
40
- resourceContainerName: "data-governance-api",
41
- resourceState: "created",
42
- dependencies: [],
43
- });
44
- expect(action.useSablierStart).toBe(true);
45
- });
46
-
47
- test("already running: no trigger needed", () => {
48
- const action = decideWakeAction({
49
- resourceContainerName: "data-governance-api",
50
- resourceState: "running",
51
- dependencies: [],
52
- });
53
- expect(action.tiltTriggerNames).toEqual([]);
54
- expect(action.useSablierStart).toBe(false);
55
- });
56
-
57
- test("cold dependency is triggered alongside the resource (task 1.5 finding)", () => {
58
- const action = decideWakeAction({
59
- resourceContainerName: "data-governance-api",
60
- resourceState: "absent",
61
- dependencies: [
62
- { name: "postgres", state: "running" },
63
- { name: "data-governance-api-db-migrator", state: "absent" },
64
- ],
65
- });
66
- expect(action.tiltTriggerNames).toEqual([
67
- "data-governance-api",
68
- "data-governance-api-db-migrator",
69
- ]);
70
- });
71
-
72
- test("never-created resource with compose details: started directly, not queued in Tilt", () => {
73
- const action = decideWakeAction({
74
- resourceContainerName: "data-governance-api",
75
- resourceState: "absent",
76
- dependencies: [{ name: "peer-api", state: "absent" }],
77
- hasComposeInvocation: true,
78
- });
79
- expect(action.useComposeStart).toBe(true);
80
- // Dependencies carry no compose details, so they still go through Tilt.
81
- expect(action.tiltTriggerNames).toEqual(["peer-api"]);
82
- expect(action.useSablierStart).toBe(false);
83
- });
84
-
85
- test("existing (exited) container keeps the Sablier path even with compose details", () => {
86
- const action = decideWakeAction({
87
- resourceContainerName: "data-governance-api",
88
- resourceState: "exited",
89
- dependencies: [],
90
- hasComposeInvocation: true,
91
- });
92
- expect(action.useComposeStart).toBe(false);
93
- expect(action.tiltTriggerNames).toEqual(["data-governance-api"]);
94
- expect(action.useSablierStart).toBe(true);
95
- });
96
-
97
- test("running dependency is not re-triggered", () => {
98
- const action = decideWakeAction({
99
- resourceContainerName: "data-governance-api",
100
- resourceState: "running",
101
- dependencies: [{ name: "postgres", state: "running" }],
102
- });
103
- expect(action.tiltTriggerNames).toEqual([]);
104
- });
105
- });
106
-
107
- describe("wakeTimeoutMs", () => {
108
- test("a direct compose start only waits for boot + healthcheck", () => {
109
- expect(wakeTimeoutMs(true)).toBe(COMPOSE_START_TIMEOUT_MS);
110
- });
111
-
112
- test("the tilt trigger path allows for an image build, under Bun's 255s idle cap", () => {
113
- expect(wakeTimeoutMs(false)).toBe(TILT_TRIGGER_TIMEOUT_MS);
114
- expect(TILT_TRIGGER_TIMEOUT_MS).toBeLessThan(255_000);
115
- });
116
-
117
- test("an explicit X-Wake-Timeout-Ms wins", () => {
118
- expect(wakeTimeoutMs(false, 5_000)).toBe(5_000);
119
- });
120
- });
121
-
122
- describe("earlyResponseMs", () => {
123
- test("holds a waking request for EARLY_RESPONSE_MS by default", () => {
124
- expect(earlyResponseMs()).toBe(EARLY_RESPONSE_MS);
125
- });
126
-
127
- test("the default answers well before Bun's 255s idle cap drops the connection", () => {
128
- expect(EARLY_RESPONSE_MS).toBeLessThan(255_000);
129
- });
130
-
131
- test("an explicit X-Wake-Respond-Within-Ms wins, but is capped under Bun's idle limit", () => {
132
- expect(earlyResponseMs(5_000)).toBe(5_000);
133
- expect(earlyResponseMs(600_000)).toBe(MAX_EARLY_RESPONSE_MS);
134
- expect(MAX_EARLY_RESPONSE_MS).toBeLessThan(255_000);
135
- });
136
-
137
- test("tells the caller to retry soon", () => {
138
- expect(RETRY_AFTER_SECONDS).toBeGreaterThan(0);
139
- expect(RETRY_AFTER_SECONDS * 1000).toBeLessThan(EARLY_RESPONSE_MS);
140
- });
141
- });
142
-
143
- describe("evaluateReadiness", () => {
144
- test("ready once every required name reports healthy", () => {
145
- const outcome = evaluateReadiness(["a", "b"], { a: true, b: true });
146
- expect(outcome.ready).toBe(true);
147
- expect(outcome.pending).toEqual([]);
148
- });
149
-
150
- test("not ready while some names are still unhealthy", () => {
151
- const outcome = evaluateReadiness(["a", "b"], { a: true, b: false });
152
- expect(outcome.ready).toBe(false);
153
- expect(outcome.pending).toEqual(["b"]);
154
- });
155
-
156
- test("missing entries count as not healthy", () => {
157
- const outcome = evaluateReadiness(["a", "b"], { a: true });
158
- expect(outcome.ready).toBe(false);
159
- expect(outcome.pending).toEqual(["b"]);
160
- });
161
- });
162
-
163
- describe("isGatewayLivenessProbe", () => {
164
- test("a bare GET /health from the image HEALTHCHECK is answered by the gateway", () => {
165
- expect(isGatewayLivenessProbe("GET", "/health", new Headers())).toBe(true);
166
- });
167
-
168
- test("a backend /health routed through the wake gateway is proxied, not answered", () => {
169
- const routed = new Headers({ "X-Wake-Resource": "cold-api", "X-Wake-Container": "cold-api-1" });
170
- expect(isGatewayLivenessProbe("GET", "/health", routed)).toBe(false);
171
- });
172
-
173
- test("other methods and paths are not liveness probes", () => {
174
- expect(isGatewayLivenessProbe("POST", "/health", new Headers())).toBe(false);
175
- expect(isGatewayLivenessProbe("GET", "/health/ready", new Headers())).toBe(false);
176
- });
177
- });