@flisk-sh/flisk 1.3.207 → 1.4.0

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 (376) 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/__tests__/project-e2e-helpers.js +6 -6
  10. package/cli/dist/commands/agent.js +8 -8
  11. package/cli/dist/commands/completion.js +26 -26
  12. package/cli/dist/commands/config.js +8 -8
  13. package/cli/dist/commands/doctor.js +18 -18
  14. package/cli/dist/commands/down.js +1 -1
  15. package/cli/dist/commands/eject.js +10 -10
  16. package/cli/dist/commands/help.js +2 -2
  17. package/cli/dist/commands/import.js +2 -2
  18. package/cli/dist/commands/logs.js +2 -2
  19. package/cli/dist/commands/mcp.js +2 -2
  20. package/cli/dist/commands/networks.js +2 -2
  21. package/cli/dist/commands/open.js +0 -1
  22. package/cli/dist/commands/project.js +19 -19
  23. package/cli/dist/commands/projects.js +1 -1
  24. package/cli/dist/commands/resource.js +21 -21
  25. package/cli/dist/commands/resources.js +2 -2
  26. package/cli/dist/commands/restart.js +7 -4
  27. package/cli/dist/commands/runtime.js +15 -3
  28. package/cli/dist/commands/stack.js +8 -8
  29. package/cli/dist/commands/up.js +23 -23
  30. package/cli/dist/commands/upgrade.js +44 -40
  31. package/cli/dist/frontend-frameworks/registry.js +3 -3
  32. package/cli/dist/generator/extension-fetch.js +12 -9
  33. package/cli/dist/generator/template-engine.js +66 -53
  34. package/cli/dist/mcp/tools.js +2 -2
  35. package/cli/dist/utils/agent-host.js +1 -1
  36. package/cli/dist/utils/cli-command.js +1 -1
  37. package/cli/dist/utils/cold-preflight.js +2 -2
  38. package/cli/dist/utils/constants.js +3 -3
  39. package/cli/dist/utils/discovery-paths.js +2 -2
  40. package/cli/dist/utils/doctor-fix.js +10 -10
  41. package/cli/dist/utils/doctor-report.js +3 -3
  42. package/cli/dist/utils/doctor-runtime.js +4 -3
  43. package/cli/dist/utils/doctor-starlark.js +3 -3
  44. package/cli/dist/utils/doctor-wiring.js +4 -4
  45. package/cli/dist/utils/down-cleanup.js +2 -2
  46. package/cli/dist/utils/env-compat-init.js +8 -0
  47. package/cli/dist/utils/env-compat.js +27 -0
  48. package/cli/dist/utils/env-selection.js +9 -9
  49. package/cli/dist/utils/errors.js +13 -13
  50. package/cli/dist/utils/file-helpers.js +5 -5
  51. package/cli/dist/utils/{tdk-version.js → flisk-version.js} +8 -8
  52. package/cli/dist/utils/generated-paths.js +6 -6
  53. package/cli/dist/utils/host-port-config.js +10 -10
  54. package/cli/dist/utils/host-port-plan.js +3 -3
  55. package/cli/dist/utils/machine-output.js +2 -2
  56. package/cli/dist/utils/native-windows.js +1 -1
  57. package/cli/dist/utils/paths.js +3 -3
  58. package/cli/dist/utils/platform.js +9 -9
  59. package/cli/dist/utils/port-conflict-fix.js +3 -3
  60. package/cli/dist/utils/port-fallback-notice.js +3 -3
  61. package/cli/dist/utils/project-config-defaults.js +1 -1
  62. package/cli/dist/utils/project-features.js +2 -2
  63. package/cli/dist/utils/resource-features.js +3 -3
  64. package/cli/dist/utils/runtime-layout.js +58 -0
  65. package/cli/dist/utils/schema-version-gate.js +3 -2
  66. package/cli/dist/utils/service-urls.js +3 -3
  67. package/cli/dist/utils/services.js +2 -2
  68. package/cli/dist/utils/shared-infra.js +2 -2
  69. package/cli/dist/utils/shared-platform-postgres.js +6 -6
  70. package/cli/dist/utils/tar.js +1 -1
  71. package/cli/dist/utils/tilt.js +1 -1
  72. package/cli/dist/utils/up-readiness.js +1 -1
  73. package/cli/dist/utils/windows-doctor.js +3 -3
  74. package/cli/dist-bundle/{chunk-D2DIEX5E.js → chunk-36SOQVAL.js} +2 -2
  75. package/cli/dist-bundle/{chunk-YZRPX76N.js → chunk-3J6XI3NX.js} +1 -1
  76. package/cli/dist-bundle/chunk-5EZ4EX6U.js +2 -0
  77. package/cli/dist-bundle/chunk-763VK575.js +54 -0
  78. package/cli/dist-bundle/{chunk-5LRMAY67.js → chunk-B6Q5VKL7.js} +13 -13
  79. package/cli/dist-bundle/{chunk-AGXA5DOQ.js → chunk-BWK6MPCB.js} +3 -3
  80. package/cli/dist-bundle/{chunk-SLKTM6ZO.js → chunk-D7N2GGJH.js} +14 -14
  81. package/cli/dist-bundle/chunk-HEMPQKD6.js +7 -0
  82. package/cli/dist-bundle/chunk-ICXF6PXA.js +35 -0
  83. package/cli/dist-bundle/chunk-K6SOCO6V.js +3 -0
  84. package/cli/dist-bundle/{chunk-6EA4DGCY.js → chunk-KJZUBHLO.js} +1 -1
  85. package/cli/dist-bundle/{chunk-GOEBYLFN.js → chunk-MINZ25AC.js} +1 -1
  86. package/cli/dist-bundle/{chunk-FAHNFTWN.js → chunk-PVBAGX5X.js} +2 -2
  87. package/cli/dist-bundle/chunk-QQEV6D74.js +2 -0
  88. package/cli/dist-bundle/chunk-VHFFSBVJ.js +10 -0
  89. package/cli/dist-bundle/chunk-VMB5673O.js +57 -0
  90. package/cli/dist-bundle/{chunk-53M5D4KE.js → chunk-XD3BBFZB.js} +1 -1
  91. package/cli/dist-bundle/{chunk-GIMHTZNR.js → chunk-YL56J2WX.js} +1 -1
  92. package/cli/dist-bundle/cli.js +254 -254
  93. package/cli/dist-bundle/cold-preflight-ABU26DYW.js +2 -0
  94. package/cli/dist-bundle/colima-GBURKN54.js +2 -0
  95. package/cli/dist-bundle/{demo-stage-ANHJKDZC.js → demo-stage-EBIUCJBX.js} +2 -2
  96. package/cli/dist-bundle/{devtools-MGITLOWZ.js → devtools-ZD6XIOLD.js} +2 -2
  97. package/cli/dist-bundle/extension-fetch-VEFSCG4B.js +2 -0
  98. package/cli/dist-bundle/native-windows-BWVEYVPO.js +2 -0
  99. package/cli/dist-bundle/{one-command-P6XVAXWV.js → one-command-VNKQAMFJ.js} +2 -2
  100. package/cli/dist-bundle/open-2KSAF6M2.js +2 -0
  101. package/cli/dist-bundle/project-YD3C4ZV3.js +2 -0
  102. package/cli/dist-bundle/project-templates-EYSQG2EO.js +2 -0
  103. package/cli/dist-bundle/{services-CBXN4SXC.js → services-V6Q55JR5.js} +2 -2
  104. package/cli/dist-bundle/{stack-progress-6GO2TCRH.js → stack-progress-NIFM5T2K.js} +2 -2
  105. package/cli/dist-bundle/tilt-port-owner-MWJ7P6NB.js +2 -0
  106. package/cli/dist-bundle/url-actions-HXJLBTX6.js +2 -0
  107. package/cli/package.json +5 -5
  108. package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
  109. package/cli/shared-platform-engineering/docker-templates/install-deps.sh +2 -2
  110. package/cli/templates/.tiltignore.hbs +2 -2
  111. package/cli/templates/TILT_RESOURCE_DEFAULTS.star.hbs +1 -1
  112. package/cli/templates/TILT_TECH_STACK.star.hbs +1 -1
  113. package/cli/templates/Tiltfile.hbs +21 -21
  114. package/cli/templates/spec.master.hbs +4 -4
  115. package/examples/tdk-example/LICENSE +1 -1
  116. package/examples/tdk-example/Tiltfile +10 -10
  117. package/examples/tdk-example/services/platform/messaging/docker-compose.yml +7 -7
  118. package/examples/tdk-example/services/shop/orders-api/service.json +1 -1
  119. package/examples/tdk-example/services/shop/orders-api/src/index.ts +1 -1
  120. package/examples/tdk-example/services/shop/orders-app/index.html +1 -1
  121. package/examples/tdk-example/services/shop/orders-worker/service.json +1 -1
  122. package/examples/tdk-example/services/shop/orders-worker/src/index.ts +1 -1
  123. package/package.json +29 -11
  124. package/{Tiltfile → runtime/Tiltfile} +9 -5
  125. package/{discovery → runtime/discovery}/AGENTS.md +1 -1
  126. package/{discovery → runtime/discovery}/TILT_DISCOVERY.star +5 -5
  127. package/{discovery → runtime/discovery}/Tiltfile +5 -5
  128. package/{discovery → runtime/discovery}/config.star +5 -5
  129. package/{discovery → runtime/discovery}/constants.star +14 -14
  130. package/{discovery → runtime/discovery}/deterministic.star +1 -1
  131. package/{discovery → runtime/discovery}/discovery_daemon.star +2 -2
  132. package/{discovery → runtime/discovery}/discovery_orchestrator.star +17 -17
  133. package/{discovery → runtime/discovery}/identity-management-backend/service.yaml +2 -2
  134. package/{discovery → runtime/discovery}/incremental_discovery.star +1 -1
  135. package/{discovery → runtime/discovery}/json_manifest_scanner.star +2 -2
  136. package/{discovery → runtime/discovery}/libraries.star +1 -1
  137. package/{discovery → runtime/discovery}/manifest/constants.star +1 -1
  138. package/{discovery → runtime/discovery}/manifest/loading.star +7 -7
  139. package/{discovery → runtime/discovery}/manifest/normalize.star +12 -15
  140. package/{discovery → runtime/discovery}/registry.star +11 -11
  141. package/{discovery → runtime/discovery}/resource_snapshot.py +2 -2
  142. package/{discovery → runtime/discovery}/resource_snapshot.star +6 -6
  143. package/{discovery → runtime/discovery}/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +2 -2
  144. package/{discovery → runtime/discovery}/test_resource_snapshot.py +6 -6
  145. package/{engine → runtime/engine}/AGENTS.md +6 -6
  146. package/{engine → runtime/engine}/README.md +2 -2
  147. package/{engine → runtime/engine}/Tiltfile +5 -5
  148. package/{engine → runtime/engine}/assets/docker/golden-layers.Dockerfile +17 -17
  149. package/{engine → runtime/engine}/assets/docker/wake-gateway/Dockerfile +7 -0
  150. package/{engine → runtime/engine}/entrypoint.star +1 -1
  151. package/{engine → runtime/engine}/paths.star +5 -5
  152. package/{engine → runtime/engine}/schemas/project-schema.json +2 -2
  153. package/{engine → runtime/engine}/schemas/service-schema.json +5 -5
  154. package/{engine → runtime/engine}/scripts/debug-container.sh +3 -3
  155. package/{engine → runtime/engine}/spec.master +3 -3
  156. package/{engine → runtime/engine}/topologies/README.md +3 -3
  157. package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_build.star +5 -5
  158. package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_constants.star +7 -7
  159. package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_dockerfile.star +8 -8
  160. package/{engine → runtime/engine}/topologies/platform/docker/compose/compose.star +12 -12
  161. package/{engine → runtime/engine}/topologies/platform/docker/compose/traefik_standalone.star +21 -6
  162. package/{engine → runtime/engine}/topologies/platform/docker/config/healthcheck.star +7 -7
  163. package/{engine → runtime/engine}/topologies/platform/docker/constants.star +7 -7
  164. package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/language_dockerfile.star +3 -3
  165. package/{engine → runtime/engine}/topologies/platform/docker/layers/l1_base_layers.star +5 -5
  166. package/{engine → runtime/engine}/topologies/platform/docker/layers/l2_dependency_layers.star +14 -14
  167. package/{engine → runtime/engine}/topologies/platform/docker/layers/l3_builder_layers.star +5 -5
  168. package/{engine → runtime/engine}/topologies/platform/docker/layers/l4_runtime_layers.star +8 -8
  169. package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/constants.star +5 -5
  170. package/{engine → runtime/engine}/topologies/platform/docker/networking/api_path_constants.star +5 -5
  171. package/{engine → runtime/engine}/topologies/platform/docker/networking/sablier_container_cycle.star +1 -1
  172. package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_static_routes.star +1 -1
  173. package/{engine → runtime/engine}/topologies/platform/docker/secrets/env_secrets.star +2 -2
  174. package/{engine → runtime/engine}/topologies/platform/docker/secrets/infisical.star +4 -4
  175. package/{engine → runtime/engine}/topologies/platform/registries/verdaccio_loader.star +1 -1
  176. package/{engine → runtime/engine}/topologies/platform/security/secrets.star +1 -1
  177. package/{engine → runtime/engine}/topologies/tilt/common/utils.star +9 -10
  178. package/{engine → runtime/engine}/topologies/tilt/common/utils_debug.star +1 -1
  179. package/{engine → runtime/engine}/topologies/tilt/common/utils_deterministic.star +2 -2
  180. package/{engine → runtime/engine}/topologies/tilt/common/utils_env.star +5 -5
  181. package/{engine → runtime/engine}/topologies/tilt/config/profiles.star +4 -4
  182. package/{engine → runtime/engine}/topologies/tilt/generators/agents_md.star +1 -1
  183. package/{engine → runtime/engine}/topologies/tilt/generators/infisical/README.md +1 -1
  184. package/{engine → runtime/engine}/topologies/tilt/generators/infisical/organization.star +6 -6
  185. package/{engine → runtime/engine}/topologies/tilt/generators/npmrc.star +5 -5
  186. package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_tsconfig.star +1 -1
  187. package/{engine → runtime/engine}/topologies/tilt/generators/typescript/playwright_config.star +1 -1
  188. package/{engine → runtime/engine}/topologies/tilt/generators/vite/helpers.star +7 -7
  189. package/{engine → runtime/engine}/topologies/tilt/generators/vite/templates.star +5 -5
  190. package/{engine → runtime/engine}/topologies/tilt/manifest/json_to_yaml.py +2 -2
  191. package/{engine → runtime/engine}/topologies/tilt/manifest/loader.star +2 -2
  192. package/{engine → runtime/engine}/topologies/tilt/manifest/schema.star +1 -1
  193. package/{engine → runtime/engine}/topologies/tilt/manifest/yaml_to_json.py +1 -1
  194. package/{engine → runtime/engine}/topologies/tilt/resources/build_concurrency.star +3 -3
  195. package/{engine → runtime/engine}/topologies/tilt/resources/databases.star +7 -6
  196. package/{engine → runtime/engine}/topologies/tilt/resources/infra-loader.star +12 -12
  197. package/{engine → runtime/engine}/topologies/tilt/resources/libs_paths.star +1 -1
  198. package/{engine → runtime/engine}/topologies/tilt/resources/libs_resource_definition.star +2 -2
  199. package/{engine → runtime/engine}/topologies/tilt/resources/libs_setup.star +1 -1
  200. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +36 -28
  201. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +1 -1
  202. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/frontend.star +5 -5
  203. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +4 -4
  204. package/{engine → runtime/engine}/topologies/tilt/resources/watchers.star +20 -20
  205. package/{engine → runtime/engine}/where-things-live.star +5 -5
  206. package/{ext → runtime/ext}/Tiltfile +5 -5
  207. package/{ext → runtime/ext}/ide-components/code_viewer/server.py +1 -1
  208. package/{ext → runtime/ext}/ide-components/config_inspector/server.py +2 -2
  209. package/{ext → runtime/ext}/ide-components/file_browser/server.py +1 -1
  210. package/{ext → runtime/ext}/ide-components/shared/config_service.py +2 -2
  211. package/{ext → runtime/ext}/ide-components/shared/file_utils.py +2 -2
  212. package/{ext → runtime/ext}/ide-components/shared/http_utils.py +1 -1
  213. package/{ext → runtime/ext}/ide-components/shared/syntax_highlighter.py +1 -1
  214. package/{ext → runtime/ext}/ide-components/shared/template_engine.py +1 -1
  215. package/{ext → runtime/ext}/ide-components/shared/templates/base.html +1 -1
  216. package/{ext → runtime/ext}/ide-components/shared/test_config_service.py +1 -1
  217. package/{ext → runtime/ext}/ide-components/shared/tilt_integration.py +1 -1
  218. package/{ext → runtime/ext}/ui-enhancements/tiltfile.py +1 -1
  219. package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
  220. package/shared-platform-engineering/docker-templates/install-deps.sh +2 -2
  221. package/cli/dist-bundle/chunk-42IVF3YT.js +0 -3
  222. package/cli/dist-bundle/chunk-AT5MFZ3D.js +0 -10
  223. package/cli/dist-bundle/chunk-BHWJU6HY.js +0 -2
  224. package/cli/dist-bundle/chunk-DWR3LLHS.js +0 -2
  225. package/cli/dist-bundle/chunk-GB6DJJ5N.js +0 -57
  226. package/cli/dist-bundle/chunk-ODYL6LET.js +0 -52
  227. package/cli/dist-bundle/chunk-YTXQPTCN.js +0 -35
  228. package/cli/dist-bundle/chunk-Z2C55UFP.js +0 -7
  229. package/cli/dist-bundle/cold-preflight-7PFKXNK7.js +0 -2
  230. package/cli/dist-bundle/colima-SVZX2UML.js +0 -2
  231. package/cli/dist-bundle/extension-fetch-6XNTDF44.js +0 -2
  232. package/cli/dist-bundle/native-windows-X5XVLFJS.js +0 -2
  233. package/cli/dist-bundle/open-VJZ7W4JR.js +0 -2
  234. package/cli/dist-bundle/project-QSH7LOWI.js +0 -2
  235. package/cli/dist-bundle/project-templates-JDRE7AVL.js +0 -2
  236. package/cli/dist-bundle/tilt-port-owner-SMN5SAQJ.js +0 -2
  237. package/cli/dist-bundle/url-actions-D6ROTHZG.js +0 -2
  238. /package/cli/bin/{tdk.js → flisk.js} +0 -0
  239. /package/{discovery → runtime/discovery}/filtering.star +0 -0
  240. /package/{discovery → runtime/discovery}/identity-management-frontend/service.yaml +0 -0
  241. /package/{discovery → runtime/discovery}/identity-sdk/service.yaml +0 -0
  242. /package/{discovery → runtime/discovery}/indexing.star +0 -0
  243. /package/{discovery → runtime/discovery}/loading.star +0 -0
  244. /package/{discovery → runtime/discovery}/manifest/validation.star +0 -0
  245. /package/{discovery → runtime/discovery}/normalization.star +0 -0
  246. /package/{discovery → runtime/discovery}/schemas.star +0 -0
  247. /package/{discovery → runtime/discovery}/services/platform/cdc/debezium/nats-connector/service.yaml +0 -0
  248. /package/{discovery → runtime/discovery}/services/platform/cdc/nats-http-bridge/service.yaml +0 -0
  249. /package/{discovery → runtime/discovery}/services/platform/synthetic-monitor/service.yaml +0 -0
  250. /package/{discovery → runtime/discovery}/validation.star +0 -0
  251. /package/{discovery → runtime/discovery}/versioning.star +0 -0
  252. /package/{engine → runtime/engine}/REFACTORING_MANIFEST_SYSTEM.md +0 -0
  253. /package/{engine → runtime/engine}/assets/docker/wake-gateway/decide.test.ts +0 -0
  254. /package/{engine → runtime/engine}/assets/docker/wake-gateway/decide.ts +0 -0
  255. /package/{engine → runtime/engine}/assets/docker/wake-gateway/server.ts +0 -0
  256. /package/{engine → runtime/engine}/assets/scripts/cleanup-completed-migrator-images.sh +0 -0
  257. /package/{engine → runtime/engine}/assets/scripts/cleanup-tilt-images.sh +0 -0
  258. /package/{engine → runtime/engine}/assets/scripts/mac-m1-resource-monitor.sh +0 -0
  259. /package/{engine → runtime/engine}/config.star +0 -0
  260. /package/{engine → runtime/engine}/lifecycle/orchestrator.star +0 -0
  261. /package/{engine → runtime/engine}/scripts/README.md +0 -0
  262. /package/{engine → runtime/engine}/scripts/build-and-publish-lib.sh +0 -0
  263. /package/{engine → runtime/engine}/scripts/check-lib-publish.sh +0 -0
  264. /package/{engine → runtime/engine}/scripts/generate-manifest.sh +0 -0
  265. /package/{engine → runtime/engine}/spec.master.example +0 -0
  266. /package/{engine → runtime/engine}/topologies/platform/docker/AGENTS.md +0 -0
  267. /package/{engine → runtime/engine}/topologies/platform/docker/auth/auth.star +0 -0
  268. /package/{engine → runtime/engine}/topologies/platform/docker/build/frontend_build_plan.star +0 -0
  269. /package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image.star +0 -0
  270. /package/{engine → runtime/engine}/topologies/platform/docker/compose/compose_helpers.star +0 -0
  271. /package/{engine → runtime/engine}/topologies/platform/docker/compose/unsafe_value.star +0 -0
  272. /package/{engine → runtime/engine}/topologies/platform/docker/config/bunignore.star +0 -0
  273. /package/{engine → runtime/engine}/topologies/platform/docker/config/dockerignore.star +0 -0
  274. /package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/dockerfile.star +0 -0
  275. /package/{engine → runtime/engine}/topologies/platform/docker/generators/golden_docker_generator_v2.star +0 -0
  276. /package/{engine → runtime/engine}/topologies/platform/docker/index.star +0 -0
  277. /package/{engine → runtime/engine}/topologies/platform/docker/layers/bun_helpers.star +0 -0
  278. /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/index.star +0 -0
  279. /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/infisical_docker.star +0 -0
  280. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/db_readiness.star +0 -0
  281. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/filesystem_setup.star +0 -0
  282. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/migrate_script.star +0 -0
  283. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_build.star +0 -0
  284. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_runtime.star +0 -0
  285. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/secret_resolution.star +0 -0
  286. /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik.star +0 -0
  287. /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_constants.star +0 -0
  288. /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_helpers.star +0 -0
  289. /package/{engine → runtime/engine}/topologies/platform/net/AGENTS.md +0 -0
  290. /package/{engine → runtime/engine}/topologies/platform/net/proxy.star +0 -0
  291. /package/{engine → runtime/engine}/topologies/platform/registries/local.star +0 -0
  292. /package/{engine → runtime/engine}/topologies/platform/security/AGENTS.md +0 -0
  293. /package/{engine → runtime/engine}/topologies/platform/state/AGENTS.md +0 -0
  294. /package/{engine → runtime/engine}/topologies/platform/state/relational.star +0 -0
  295. /package/{engine → runtime/engine}/topologies/tilt/common/AGENTS.md +0 -0
  296. /package/{engine → runtime/engine}/topologies/tilt/common/utils_docker_networks.star +0 -0
  297. /package/{engine → runtime/engine}/topologies/tilt/common/utils_output.star +0 -0
  298. /package/{engine → runtime/engine}/topologies/tilt/config/AGENTS.md +0 -0
  299. /package/{engine → runtime/engine}/topologies/tilt/config/defaults.star +0 -0
  300. /package/{engine → runtime/engine}/topologies/tilt/config/feature_flags.star +0 -0
  301. /package/{engine → runtime/engine}/topologies/tilt/config/global.star +0 -0
  302. /package/{engine → runtime/engine}/topologies/tilt/generators/api_gateway.star +0 -0
  303. /package/{engine → runtime/engine}/topologies/tilt/generators/index.star +0 -0
  304. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/examples.star +0 -0
  305. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/index.star +0 -0
  306. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/machine_identity.star +0 -0
  307. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/path_manager.star +0 -0
  308. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/secrets_generator.star +0 -0
  309. /package/{engine → runtime/engine}/topologies/tilt/generators/nginx_conf.star +0 -0
  310. /package/{engine → runtime/engine}/topologies/tilt/generators/tsconfig.star +0 -0
  311. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_library_tsconfig.star +0 -0
  312. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/common.star +0 -0
  313. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +0 -0
  314. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_tsconfig.star +0 -0
  315. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/include.star +0 -0
  316. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/prisma_config.star +0 -0
  317. /package/{engine → runtime/engine}/topologies/tilt/generators/validators.star +0 -0
  318. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/backend.star +0 -0
  319. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/lit.star +0 -0
  320. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/preact.star +0 -0
  321. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/qwik.star +0 -0
  322. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/react.star +0 -0
  323. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/solid.star +0 -0
  324. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/svelte.star +0 -0
  325. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vanilla.star +0 -0
  326. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vue.star +0 -0
  327. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frontend.star +0 -0
  328. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/generators.star +0 -0
  329. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/library.star +0 -0
  330. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/sdk.star +0 -0
  331. /package/{engine → runtime/engine}/topologies/tilt/generators/vite_config.star +0 -0
  332. /package/{engine → runtime/engine}/topologies/tilt/manifest/AGENTS.md +0 -0
  333. /package/{engine → runtime/engine}/topologies/tilt/manifest/README.md +0 -0
  334. /package/{engine → runtime/engine}/topologies/tilt/manifest/__init__.star +0 -0
  335. /package/{engine → runtime/engine}/topologies/tilt/manifest/constants.star +0 -0
  336. /package/{engine → runtime/engine}/topologies/tilt/manifest/errors.star +0 -0
  337. /package/{engine → runtime/engine}/topologies/tilt/manifest/integration.star +0 -0
  338. /package/{engine → runtime/engine}/topologies/tilt/manifest/mapper.star +0 -0
  339. /package/{engine → runtime/engine}/topologies/tilt/manifest/parser.star +0 -0
  340. /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_integration.star +0 -0
  341. /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_loader_parser.star +0 -0
  342. /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_manifest.star +0 -0
  343. /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_validator.star +0 -0
  344. /package/{engine → runtime/engine}/topologies/tilt/manifest/validator.star +0 -0
  345. /package/{engine → runtime/engine}/topologies/tilt/resources/AGENTS.md +0 -0
  346. /package/{engine → runtime/engine}/topologies/tilt/resources/conditions.star +0 -0
  347. /package/{engine → runtime/engine}/topologies/tilt/resources/declaration.star +0 -0
  348. /package/{engine → runtime/engine}/topologies/tilt/resources/deps.star +0 -0
  349. /package/{engine → runtime/engine}/topologies/tilt/resources/libs.star +0 -0
  350. /package/{engine → runtime/engine}/topologies/tilt/resources/libs_discovery.star +0 -0
  351. /package/{engine → runtime/engine}/topologies/tilt/resources/libs_tsconfig.star +0 -0
  352. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply.star +0 -0
  353. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +0 -0
  354. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_resource_validation.star +0 -0
  355. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +0 -0
  356. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/builders/typescript.star +0 -0
  357. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +0 -0
  358. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +0 -0
  359. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +0 -0
  360. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/env.star +0 -0
  361. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/helpers.star +0 -0
  362. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator.star +0 -0
  363. /package/{engine → runtime/engine}/topologies/tilt/resources/ordering.star +0 -0
  364. /package/{engine → runtime/engine}/topologies/tilt/resources/shared-platform-postgres.star +0 -0
  365. /package/{engine → runtime/engine}/topologies/tilt/resources/triggers.star +0 -0
  366. /package/{ext → runtime/ext}/ide-components/README.md +0 -0
  367. /package/{ext → runtime/ext}/ide-components/shared/static/styles.css +0 -0
  368. /package/{ext → runtime/ext}/ui-enhancements/cron-status-server.sh +0 -0
  369. /package/{ext → runtime/ext}/ui-enhancements/cron-status-tracker.sh +0 -0
  370. /package/{ext → runtime/ext}/ui-enhancements/extension.yaml +0 -0
  371. /package/{ext → runtime/ext}/ui-enhancements/ui/cron-jobs-tab.css +0 -0
  372. /package/{ext → runtime/ext}/ui-enhancements/ui/help-panel.css +0 -0
  373. /package/{ext → runtime/ext}/ui-enhancements/ui/icons.css +0 -0
  374. /package/{ext → runtime/ext}/ui-enhancements/ui/tooltips.css +0 -0
  375. /package/{specs → runtime/specs}/specs/TILT_SERVICE_DEFAULTS.star +0 -0
  376. /package/{specs → runtime/specs}/specs/TILT_TECH_STACK.star +0 -0
@@ -19,19 +19,19 @@
19
19
  # =============================================================================
20
20
 
21
21
  # Load project name for dynamic defaults
22
- # Use TDK_PROJECT_ROOT env var set by Tilt, fallback to current directory
22
+ # Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
23
23
  def _load_project_names():
24
- project_root = os.environ.get('TDK_PROJECT_ROOT', '')
25
- project_json_path = '.tdk/project.json'
24
+ project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
25
+ project_json_path = '.flisk/project.json'
26
26
  if project_root:
27
27
  project_json_path = project_root + '/' + project_json_path
28
28
 
29
29
  if os.path.exists(project_json_path):
30
30
  _project_json = read_json(project_json_path)
31
- _PROJECT_NAME = _project_json.get('project', {}).get('name', 'tdk-project')
31
+ _PROJECT_NAME = _project_json.get('project', {}).get('name', 'flisk-project')
32
32
  _PROJECT_NAME_DISPLAY = _PROJECT_NAME.replace('-', ' ').title()
33
33
  return _PROJECT_NAME, _PROJECT_NAME_DISPLAY
34
- return 'tdk-project', 'Tdk Project'
34
+ return 'flisk-project', 'Flisk Project'
35
35
 
36
36
  _PROJECT_NAME, _PROJECT_NAME_DISPLAY = _load_project_names()
37
37
 
@@ -447,7 +447,7 @@ def _generate_organization_config(org_name=None, project_name=None, env_names=No
447
447
  Generate complete organization configuration.
448
448
 
449
449
  Args:
450
- org_name: Organization name (default: from project.json or 'tdk-project')
450
+ org_name: Organization name (default: from project.json or 'flisk-project')
451
451
  project_name: Project name (default: {org_name}-secrets)
452
452
  env_names: List of environments (default: [dev, staging, prod])
453
453
  resource_names: List of services to create folders for
@@ -21,17 +21,17 @@ load("../../../topologies/tilt/common/utils.star", "Utils")
21
21
  OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
22
22
 
23
23
  # Load npm scope from project.json (or use project name as default)
24
- # Use TDK_PROJECT_ROOT env var set by Tilt, fallback to current directory
24
+ # Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
25
25
  def _load_npm_scope():
26
- project_root = os.environ.get('TDK_PROJECT_ROOT', '')
27
- project_json_path = '.tdk/project.json'
26
+ project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
27
+ project_json_path = '.flisk/project.json'
28
28
  if project_root:
29
29
  project_json_path = project_root + '/' + project_json_path
30
30
 
31
31
  if os.path.exists(project_json_path):
32
32
  _project_json = read_json(project_json_path)
33
- return _project_json.get('project', {}).get('name', 'tdk-project')
34
- return 'tdk-project'
33
+ return _project_json.get('project', {}).get('name', 'flisk-project')
34
+ return 'flisk-project'
35
35
 
36
36
  _NPM_SCOPE = _load_npm_scope()
37
37
  load("../../../topologies/tilt/manifest/constants.star", "PACKAGE_CONFIG_FILENAMES")
@@ -32,7 +32,7 @@ def generate_backend_tsconfig(resource_path, prisma_path, write_fn, internal_dep
32
32
  "@prisma/client": [prisma_path]
33
33
  }
34
34
  # DDD is premium - same gate as generate_backend_path_aliases() in vite/helpers.star.
35
- ddd_enabled = features and 'ddd' in features and os.environ.get('TDK_LICENSE_KEY', '') != ''
35
+ ddd_enabled = features and 'ddd' in features and os.environ.get('FLISK_LICENSE_KEY', '') != ''
36
36
  if ddd_enabled:
37
37
  paths["@application/*"] = ["../src/application/*"]
38
38
  paths["@domain/*"] = ["../src/domain/*"]
@@ -7,7 +7,7 @@
7
7
  # =============================================================================
8
8
  # The real generator is part of a paid Flisk license. When a valid license
9
9
  # grants the "playwright" resource, cli/src/generator/template-engine.ts
10
- # (vendorTdkExtension) overwrites this file with the licensed version
10
+ # (vendorFliskExtension) overwrites this file with the licensed version
11
11
  # fetched via extension-fetch.ts before Tilt loads it. Same function
12
12
  # signature either way, so nothing else in the generator pipeline changes.
13
13
  # =============================================================================
@@ -10,17 +10,17 @@
10
10
  load('../../../../topologies/tilt/common/utils.star', 'Utils')
11
11
 
12
12
  # Load npm scope from project.json (or use project name as default)
13
- # Use TDK_PROJECT_ROOT env var set by Tilt, fallback to current directory
13
+ # Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
14
14
  def _load_npm_scope():
15
- project_root = os.environ.get('TDK_PROJECT_ROOT', '')
16
- project_json_path = '.tdk/project.json'
15
+ project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
16
+ project_json_path = '.flisk/project.json'
17
17
  if project_root:
18
18
  project_json_path = project_root + '/' + project_json_path
19
19
 
20
20
  if os.path.exists(project_json_path):
21
21
  _project_json = read_json(project_json_path)
22
- return _project_json.get('project', {}).get('name', 'tdk-project')
23
- return 'tdk-project'
22
+ return _project_json.get('project', {}).get('name', 'flisk-project')
23
+ return 'flisk-project'
24
24
 
25
25
  _NPM_SCOPE = _load_npm_scope()
26
26
  # =============================================================================
@@ -156,7 +156,7 @@ def generate_proxy_block(api_base_path, backend_port, additional_routes, stack='
156
156
 
157
157
 
158
158
  def generate_backend_path_aliases(resource_path, manifest):
159
- """Generate TypeScript path aliases for DDD architecture (Premium - requires TDK_LICENSE_KEY)."""
159
+ """Generate TypeScript path aliases for DDD architecture (Premium - requires FLISK_LICENSE_KEY)."""
160
160
  lines = []
161
161
 
162
162
  # DDD is a premium feature: requires both "ddd" in the resource's service.json
@@ -166,7 +166,7 @@ def generate_backend_path_aliases(resource_path, manifest):
166
166
  # hand-edited features: ["ddd"] with no key at all is still blocked, but real
167
167
  # entitlement is checked client-side by hasDddLicense() in extension-fetch.ts
168
168
  # before the CLI ever writes "ddd" into a resource's features array.
169
- ddd_enabled = 'ddd' in manifest.get('featuresEnabled', []) and os.environ.get('TDK_LICENSE_KEY', '') != ''
169
+ ddd_enabled = 'ddd' in manifest.get('featuresEnabled', []) and os.environ.get('FLISK_LICENSE_KEY', '') != ''
170
170
 
171
171
  if ddd_enabled:
172
172
  ddd_aliases = [
@@ -8,17 +8,17 @@
8
8
  # =============================================================================
9
9
 
10
10
  # Load npm scope from project.json (or use project name as default)
11
- # Use TDK_PROJECT_ROOT env var set by Tilt, fallback to current directory
11
+ # Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
12
12
  def _load_npm_scope():
13
- project_root = os.environ.get('TDK_PROJECT_ROOT', '')
14
- project_json_path = '.tdk/project.json'
13
+ project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
14
+ project_json_path = '.flisk/project.json'
15
15
  if project_root:
16
16
  project_json_path = project_root + '/' + project_json_path
17
17
 
18
18
  if os.path.exists(project_json_path):
19
19
  _project_json = read_json(project_json_path)
20
- return _project_json.get('project', {}).get('name', 'tdk-project')
21
- return 'tdk-project'
20
+ return _project_json.get('project', {}).get('name', 'flisk-project')
21
+ return 'flisk-project'
22
22
 
23
23
  _NPM_SCOPE = _load_npm_scope()
24
24
 
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python3
2
- # Copyright (c) 2026 TDK Landscape contributors
2
+ # Copyright (c) 2026 Flisk Landscape contributors
3
3
  # SPDX-License-Identifier: MIT
4
4
  """Convert JSON manifest to Tilt-compatible YAML resource"""
5
5
  import sys
@@ -17,7 +17,7 @@ try:
17
17
  data = json.load(f)
18
18
 
19
19
  # The YAML is a generated, committed mirror used only for Tilt resource tracking. A secret that someone put in service.json must
20
- # not be copied into it (the JWT secret belongs in the project .env; `tdk doctor` warns about it).
20
+ # not be copied into it (the JWT secret belongs in the project .env; `flisk doctor` warns about it).
21
21
  data = {key: value for key, value in data.items() if key not in ("jwtSecret",)}
22
22
 
23
23
  # Deterministic: the mirror is regenerated on every run, so a wall-clock time or random uid would change the file each time.
@@ -38,7 +38,7 @@ def load_from_file(path):
38
38
  YAML files are generated from JSON for Tilt resource tracking only.
39
39
  """
40
40
  # Prepend project root to relative paths for correct resolution
41
- project_root = os.environ.get('TDK_PROJECT_ROOT', '')
41
+ project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
42
42
  if project_root and not path.startswith('/'):
43
43
  full_path = project_root + '/' + path
44
44
  else:
@@ -136,7 +136,7 @@ def _get_manifest_filename(resource_path):
136
136
  Returns: filename if exists, None otherwise (triggers synthesis)
137
137
  """
138
138
  # Prepend project root to relative paths for correct resolution
139
- project_root = os.environ.get('TDK_PROJECT_ROOT', '')
139
+ project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
140
140
  if project_root and not resource_path.startswith('/'):
141
141
  base_path = project_root + '/' + resource_path
142
142
  else:
@@ -284,7 +284,7 @@ MANIFEST_SCHEMA = {
284
284
  'description': 'Skip this resource during flisk up entirely (no container is created or started); a Traefik static route wakes it and its dependencies on the first request instead. Requires enable: true.',
285
285
  },
286
286
  },
287
- 'description': 'On-demand scaling via Sablier: stop idle containers, wake them on the next request. Not recommended for stateful resources (databases) with in-flight writes. (Premium - requires TDK_LICENSE_KEY; see hasSablierLicense() in extension-fetch.ts)',
287
+ 'description': 'On-demand scaling via Sablier: stop idle containers, wake them on the next request. Not recommended for stateful resources (databases) with in-flight writes. (Premium - requires FLISK_LICENSE_KEY; see hasSablierLicense() in extension-fetch.ts)',
288
288
  },
289
289
  }
290
290
 
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python3
2
- # Copyright (c) 2026 TDK Landscape contributors
2
+ # Copyright (c) 2026 Flisk Landscape contributors
3
3
  # SPDX-License-Identifier: MIT
4
4
  """Convert YAML manifest to JSON for Tilt"""
5
5
  import sys
@@ -5,7 +5,7 @@
5
5
  # memory, instead of Tilt's default, so a warm `flisk up` on a machine with spare
6
6
  # capacity builds more than three images at once.
7
7
  #
8
- # Override with TDK_MAX_PARALLEL_BUILDS=<positive integer>.
8
+ # Override with FLISK_MAX_PARALLEL_BUILDS=<positive integer>.
9
9
  # =============================================================================
10
10
 
11
11
  MIN_PARALLEL_BUILDS = 3
@@ -42,10 +42,10 @@ def compute_max_parallel_builds(cpus, memory_bytes):
42
42
 
43
43
  def configure_build_concurrency():
44
44
  """Calls update_settings once with the chosen max_parallel_updates. Call at Tiltfile load."""
45
- override = os.environ.get('TDK_MAX_PARALLEL_BUILDS', '').strip()
45
+ override = os.environ.get('FLISK_MAX_PARALLEL_BUILDS', '').strip()
46
46
  if _is_positive_int(override):
47
47
  value = int(override)
48
- print("🧮 Parallel builds: " + str(value) + " (TDK_MAX_PARALLEL_BUILDS)")
48
+ print("🧮 Parallel builds: " + str(value) + " (FLISK_MAX_PARALLEL_BUILDS)")
49
49
  else:
50
50
  resources = _engine_resources()
51
51
  if resources == None:
@@ -37,7 +37,7 @@ def provision_database(resource_name, db_name=None):
37
37
 
38
38
  Args:
39
39
  resource_name: Service name (e.g., 'users', 'orders')
40
- db_name: Optional custom database name (defaults to TDK_{resource_name})
40
+ db_name: Optional custom database name (defaults to FLISK_{resource_name})
41
41
 
42
42
  Returns:
43
43
  local_resource for the database provisioning task
@@ -155,25 +155,26 @@ def create_db_status_resource(should_enable_db_management):
155
155
  Create a local_resource for database virtualization status.
156
156
  """
157
157
  return local_resource('db-virtualization-status',
158
- cmd='''
158
+ # Fixed script; names are passed as argv ($1 = host, $2 = user, $3 = database, $4 = project prefix).
159
+ cmd=['sh', '-c', '''
159
160
  echo "🗃️ ═══════════════════════════════════════════════════════════════"
160
161
  echo "🗃️ DATABASE VIRTUALIZATION STATUS (BigTech Pattern)"
161
162
  echo "🗃️ ═══════════════════════════════════════════════════════════════"
162
163
  echo ""
163
164
 
164
- if ! docker exec ''' + PlatformDockerConstants.DB_HOST + ''' pg_isready -U ''' + PlatformDockerConstants.DB_USER + ''' -d ''' + PlatformDockerConstants.get_db_name('example') + ''' >/dev/null 2>&1; then
165
+ if ! docker exec $1 pg_isready -U $2 -d $3 >/dev/null 2>&1; then
165
166
  echo "⚠️ PostgreSQL container not running"
166
167
  exit 0
167
168
  fi
168
169
 
169
170
  echo "📊 LOGICAL DATABASES:"
170
- docker exec ''' + PlatformDockerConstants.DB_HOST + ''' psql -U ''' + PlatformDockerConstants.DB_USER + ''' -d ''' + PlatformDockerConstants.get_db_name('example') + ''' -c "
171
+ docker exec $1 psql -U $2 -d $3 -c "
171
172
  SELECT
172
173
  datname as \\"Database Name\\",
173
174
  pg_size_pretty(pg_database_size(datname)) as \\"Size\\",
174
175
  (SELECT count(*) FROM pg_stat_activity WHERE datname = d.datname) as \\"Active Connections\\"
175
176
  FROM pg_database d
176
- WHERE datname LIKE \'''' + PlatformDockerConstants.PROJECT_NAME + '''_%\'
177
+ WHERE datname LIKE '$4_%'
177
178
  ORDER BY datname;
178
179
  "
179
180
 
@@ -184,7 +185,7 @@ echo " ✅ Virtualized: 1 PostgreSQL container × ~512MB = ~512MB RAM"
184
185
  echo " 📉 SAVINGS: ~98% RAM reduction!"
185
186
  echo ""
186
187
  echo "🗃️ ═══════════════════════════════════════════════════════════════"
187
- ''',
188
+ ''', 'sh', PlatformDockerConstants.DB_HOST, PlatformDockerConstants.DB_USER, PlatformDockerConstants.get_db_name('example'), PlatformDockerConstants.PROJECT_NAME],
188
189
  labels=['infra.database', 'virtualization'],
189
190
  resource_deps=['postgres'] if should_enable_db_management else [],
190
191
  auto_init=False
@@ -34,7 +34,7 @@ load("../../platform/registries/verdaccio_loader.star", "load_verdaccio")
34
34
 
35
35
  def _file_exists(path):
36
36
  """Check if a file exists."""
37
- result = str(local("test -f '{path}' && echo 'yes' || echo 'no'".format(path=path), quiet=True, echo_off=True)).strip()
37
+ result = str(local(["sh", "-c", 'test -f "$1" && echo yes || echo no', "sh", path], quiet=True, echo_off=True)).strip()
38
38
  return result == 'yes'
39
39
 
40
40
 
@@ -68,7 +68,7 @@ def _generate_database_management_compose():
68
68
  return """###############################################################################
69
69
  # SYSTEM-GENERATED - DO NOT EDIT
70
70
  # Stack feature: database-management
71
- # Source: .tdk/project.json stacks.*.services includes "database-management"
71
+ # Source: .flisk/project.json stacks.*.services includes "database-management"
72
72
  ###############################################################################
73
73
 
74
74
  services:
@@ -99,15 +99,15 @@ networks:
99
99
 
100
100
  volumes:
101
101
  {name}_postgres_data:
102
- """.format(name=name, database_network=database_network, host_port=os.environ.get('TDK_POSTGRES_PORT', '15432'), bind_address=os.environ.get('TDK_BIND_ADDRESS', '127.0.0.1'))
102
+ """.format(name=name, database_network=database_network, host_port=os.environ.get('FLISK_POSTGRES_PORT', '15432'), bind_address=os.environ.get('FLISK_BIND_ADDRESS', '127.0.0.1'))
103
103
 
104
104
 
105
105
  def _ensure_database_management_compose(root_prefix, write_fn):
106
106
  """Ensure the database-management stack feature has its compose file.
107
107
 
108
108
  write_fn is expected to be Utils.write_file_if_changed, which prepends
109
- TDK_PROJECT_ROOT to relative paths — the same base as root_prefix when
110
- the Tiltfile sets TDK_PROJECT_ROOT = PROJECT_ROOT. A custom write_fn that
109
+ FLISK_PROJECT_ROOT to relative paths — the same base as root_prefix when
110
+ the Tiltfile sets FLISK_PROJECT_ROOT = PROJECT_ROOT. A custom write_fn that
111
111
  does not prepend may write a different file; if the path we return is
112
112
  absolute and still missing after the relative write, write that exact
113
113
  path once so the exists-check and the write cannot diverge.
@@ -238,16 +238,16 @@ def _load_infisical(should_enable, root_prefix="", env_file=None):
238
238
 
239
239
  def _load_standalone_traefik(root_prefix, env_file, write_fn):
240
240
  """Generate and load a self-contained Traefik compose for standalone projects."""
241
- compose_rel = ".tdk/.tdk-out/docker-compose.traefik.yml"
241
+ compose_rel = ".flisk/.flisk-out/docker-compose.traefik.yml"
242
242
  # The free-tier stub always reports "disabled"; the licensed module reports
243
243
  # enabled for a manifest that opts in. Probing it keeps this file free of any
244
244
  # license logic while starting the sablier containers only when they can work.
245
245
  _, sablier_enabled = sablier_middleware_suffix({"sablier": {"enable": True}}, "probe")
246
246
  content = generate_standalone_traefik_compose(
247
247
  sablier_enabled,
248
- os.environ.get('TDK_HTTP_PORT', '8080'),
249
- os.environ.get('TDK_HTTPS_PORT', '8443'),
250
- os.environ.get('TDK_BIND_ADDRESS', '127.0.0.1'),
248
+ os.environ.get('FLISK_HTTP_PORT', '8080'),
249
+ os.environ.get('FLISK_HTTPS_PORT', '8443'),
250
+ os.environ.get('FLISK_BIND_ADDRESS', '127.0.0.1'),
251
251
  )
252
252
  if write_fn:
253
253
  write_fn(compose_rel, content)
@@ -388,7 +388,7 @@ def _load_golden_image(should_enable, docker_provider, project_root='.'):
388
388
 
389
389
  project_root must be passed through here the same way every other
390
390
  infra loader below receives it (as root_prefix) - local_resource cmds
391
- run relative to the Tiltfile's own directory (.tdk/.tdk-out/), not
391
+ run relative to the Tiltfile's own directory (.flisk/.flisk-out/), not
392
392
  the project root, so an unprefixed project-root-relative path like
393
393
  GOLDEN_DOCKERFILE resolves to the wrong file otherwise.
394
394
  """
@@ -410,7 +410,7 @@ def _generate_golden_dockerfile(should_enable, docker_provider, write_fn):
410
410
  if not should_enable('golden-image'):
411
411
  return
412
412
 
413
- dockerfile_path = '.tdk/.tdk-out/golden-layers.Dockerfile'
413
+ dockerfile_path = '.flisk/.flisk-out/golden-layers.Dockerfile'
414
414
  content = docker_provider.golden_image.generate_dockerfile()
415
415
  write_fn(dockerfile_path, content)
416
416
 
@@ -453,7 +453,7 @@ def load_all_infrastructure(should_enable, fix_docker_networks_fn=None, docker_p
453
453
  _generate_golden_dockerfile(should_enable, docker_provider, write_fn)
454
454
  golden_image_resource = _load_golden_image(should_enable, docker_provider, project_root=project_root or '.')
455
455
 
456
- # Get project root prefix for paths (e.g., "../../" from .tdk/.tdk-out/)
456
+ # Get project root prefix for paths (e.g., "../../" from .flisk/.flisk-out/)
457
457
  # Ensure root_prefix ends with / for proper path concatenation
458
458
  root_prefix = project_root if project_root else ""
459
459
  if root_prefix and not root_prefix.endswith('/'):
@@ -9,7 +9,7 @@ load('../../../topologies/tilt/common/utils.star', 'Utils')
9
9
 
10
10
  def get_lib_path_from_package_name(ctx, package_name):
11
11
  """
12
- Converts @tdk/platform-logger -> shared-platform-engineering/platform-logger
12
+ Converts @flisk/platform-logger -> shared-platform-engineering/platform-logger
13
13
 
14
14
  Returns:
15
15
  Tuple of (path, label, tilt_resource_name) or (None, None, None) if not a library
@@ -94,7 +94,7 @@ def define_library_resource(ctx, name, path, labels, internal_deps=None, consume
94
94
  or global_config.get('verdaccio_url_local')
95
95
  or PlatformDockerConstants.VERDACCIO_URL_DOCKER
96
96
  )
97
- internal_scope = ctx.get('internal_scope', '@tdk/')
97
+ internal_scope = ctx.get('internal_scope', '@flisk/')
98
98
  pkg_name = internal_scope + name
99
99
 
100
100
  if write_fn and generate_vite_fn:
@@ -115,7 +115,7 @@ def define_library_resource(ctx, name, path, labels, internal_deps=None, consume
115
115
  if consumer_paths:
116
116
  consumer_paths_str = ','.join(consumer_paths)
117
117
 
118
- publish_cmd = './engine/scripts/build-and-publish-lib.sh "' + path + '" "' + registry + '" "' + pkg_name + '" "' + consumer_paths_str + '"'
118
+ publish_cmd = ['./engine/scripts/build-and-publish-lib.sh', path, registry, pkg_name, consumer_paths_str]
119
119
 
120
120
  # Sanitize name to remove invalid characters for Tilt resource names
121
121
  # e.g., "introvertic/ui" -> "introvertic-ui"
@@ -24,7 +24,7 @@ def setup_libraries(ctx, should_enable_fn, ddd_libs, platform_libs, product_libs
24
24
  Dict mapping package_name -> tilt_resource_name
25
25
  """
26
26
  library_map = {}
27
- internal_scope = ctx.get('internal_scope', '@tdk/')
27
+ internal_scope = ctx.get('internal_scope', '@flisk/')
28
28
  library_roots = ctx.get('library_roots', {})
29
29
  print("📚 setup_libraries called for " + str(len(platform_libs) + len(product_libs) + len(ddd_libs)) + " potential libraries")
30
30
 
@@ -83,7 +83,7 @@ def _env_file_if_exists(env_file):
83
83
  """.env is gitignored (no .env.example shipped) across every Flisk example repo, so a
84
84
  fresh clone must not hard-require it: docker_compose()'s env_file kwarg type-checks as
85
85
  path|string (rejects None), so only return a path when the file actually exists."""
86
- exists = str(local("test -f '" + env_file + "' && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes'
86
+ exists = str(local(["sh", "-c", 'test -f "$1" && echo yes || echo no', "sh", env_file], quiet=True, echo_off=True)).strip() == 'yes'
87
87
  return env_file if exists else None
88
88
 
89
89
 
@@ -104,7 +104,7 @@ def _build_infra_dependencies(resource_name, should_enable, ctx, has_backend=Fal
104
104
  if should_enable(PlatformDockerConstants.VERDACCIO_RESOURCE_NAME):
105
105
  project_root = ctx.get('project_root', '')
106
106
  verdaccio_compose = ((project_root.rstrip('/') + '/') if project_root else '') + 'docker-compose.verdaccio.yml'
107
- if str(local("test -f '" + verdaccio_compose + "' && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes':
107
+ if str(local(["sh", "-c", 'test -f "$1" && echo yes || echo no', "sh", verdaccio_compose], quiet=True, echo_off=True)).strip() == 'yes':
108
108
  infra_deps.append(PlatformDockerConstants.VERDACCIO_RESOURCE_NAME)
109
109
  if should_enable('golden-image') and ctx.get('golden_image_resource'):
110
110
  infra_deps.append(ctx['golden_image_resource'])
@@ -226,7 +226,7 @@ def resource_defers_start(manifest):
226
226
  """True when a manifest opts into `sablier.enable` + `sablier.deferStart`
227
227
  AND the licensed sablier module is actually active.
228
228
 
229
- deferStart stays behind the same TDK_LICENSE_KEY gate as the rest of
229
+ deferStart stays behind the same FLISK_LICENSE_KEY gate as the rest of
230
230
  `sablier` (an explicit product decision, not just the opt-in manifest
231
231
  flag): the free-tier stub's sablier_middleware_suffix() always reports
232
232
  `enabled=False` regardless of what the manifest says, so checking through
@@ -310,7 +310,7 @@ def _register_replicas(config, auto_init_apps):
310
310
  def _live_update_sync_source(project_root, full_res_path, sync_path):
311
311
  """Local path Tilt watches for a live-update sync.
312
312
 
313
- Tilt resolves sync() local paths against the Tiltfile directory (.tdk/.tdk-out), not
313
+ Tilt resolves sync() local paths against the Tiltfile directory (.flisk/.flisk-out), not
314
314
  the docker_build context, so a project-relative path never matches the changed files
315
315
  and every edit falls back to a full image rebuild ("Found file(s) not matching any
316
316
  sync"). Anchor it at the project root, like the Dockerfile and build context.
@@ -335,7 +335,7 @@ def _build_live_update_rules(res_path, full_res_path, syncs, project_root='', la
335
335
  return []
336
336
 
337
337
  if go_live_reload:
338
- # Opted-in Go development loop: sync the sources into the development image, where the tdk-go-watch script rebuilds and restarts.
338
+ # Opted-in Go development loop: sync the sources into the development image, where the flisk-go-watch script rebuilds and restarts.
339
339
  # Dependency and Dockerfile changes cannot be picked up by a restart, so they fall back to a full image rebuild.
340
340
  source_dir = _live_update_sync_source(project_root, full_res_path, '')
341
341
  return [
@@ -442,14 +442,18 @@ def _register_deferred_image_prebuild(config, auto_init_apps):
442
442
  ignore_content = TypescriptBuilders.prebuild_dockerignore(dockerfile, project_root, config['res_path'])
443
443
  # BuildKit reads `<dockerfile>.dockerignore` for `-f <dockerfile>`; the
444
444
  # original Dockerfile already has a (denylist) one, hence the copy.
445
- cmd = (
446
- "cp '" + dockerfile + "' '" + prebuild_dockerfile + "'"
447
- + " && printf '%s' '" + ignore_content + "' > '" + prebuild_dockerfile + ".dockerignore'"
448
- + " && docker build --network host --target " + target
449
- + " -f '" + prebuild_dockerfile + "'"
450
- + " -t '" + _app_image_name(config['resource_name'], config['res_name']) + "'"
451
- + " '" + (project_root or '.') + "'"
452
- )
445
+ cmd = [
446
+ "sh", "-c",
447
+ 'cp "$1" "$2" && printf "%s" "$3" > "$2.dockerignore"' +
448
+ ' && docker build --network host --target "$4" -f "$2" -t "$5" "$6"',
449
+ "sh",
450
+ dockerfile,
451
+ prebuild_dockerfile,
452
+ ignore_content,
453
+ target,
454
+ _app_image_name(config['resource_name'], config['res_name']),
455
+ project_root or '.',
456
+ ]
453
457
  local_resource(
454
458
  name=config['res_name'] + '-image',
455
459
  cmd=cmd,
@@ -494,23 +498,22 @@ def _register_run_only_resource(config, resource_path, compose_project_name, aut
494
498
  compose_file = root + '/' + compose_file
495
499
  port_override = root + '/' + port_override
496
500
  env_file = project_env_file(root)
497
- compose_files = '-f ' + compose_file
498
- if str(local("test -f '" + port_override + "' && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes':
499
- compose_files = compose_files + ' -f ' + port_override
501
+ compose_files = ['-f', compose_file]
502
+ if str(local(["sh", "-c", 'test -f "$1" && echo yes || echo no', "sh", port_override], quiet=True, echo_off=True)).strip() == 'yes':
503
+ compose_files = compose_files + ['-f', port_override]
500
504
  # .env is gitignored (no .env.example shipped) across every Flisk example repo, so a
501
505
  # fresh clone must not hard-require it: only pass --env-file when it actually exists.
502
- env_file_flag = ''
503
- if str(local("test -f '" + env_file + "' && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes':
504
- env_file_flag = ' --env-file ' + env_file
506
+ env_file_flag = []
507
+ if str(local(["sh", "-c", 'test -f "$1" && echo yes || echo no', "sh", env_file], quiet=True, echo_off=True)).strip() == 'yes':
508
+ env_file_flag = ['--env-file', env_file]
509
+ # Built as an argv list (extend, not `+`) so no argument is ever joined into shell text.
510
+ run_only_argv = ['docker', 'compose', '-p', compose_project_name]
511
+ run_only_argv.extend(compose_files)
512
+ run_only_argv.extend(env_file_flag)
513
+ run_only_argv.extend(['up', '-d', '--no-build', config['res_name']])
505
514
  local_resource(
506
515
  name=config['res_name'] + '-run-only',
507
- cmd='docker compose -p '
508
- + compose_project_name
509
- + ' '
510
- + compose_files
511
- + env_file_flag
512
- + ' up -d --no-build '
513
- + config['res_name'],
516
+ cmd=run_only_argv,
514
517
  labels=config['labels'] + ['run-only'],
515
518
  # The run-only Compose command uses the image produced by the main
516
519
  # resource. Keep it behind that resource so --no-build cannot race
@@ -604,7 +607,12 @@ def _register_frontend_typecheck(res, service_dir, typecheck_cmd):
604
607
  """
605
608
  local_resource(
606
609
  name=res['name'] + '-typecheck',
607
- cmd="cd '" + service_dir + "' && { bunx tsc --version >/dev/null 2>&1 || { echo 'typecheck needs host dependencies: run bun install in " + service_dir + "'; exit 1; }; } && " + typecheck_cmd,
610
+ # Fixed script, variable parts passed as argv ($1 = service dir, $2 = typecheck command), never spliced into the shell text.
611
+ cmd=[
612
+ 'sh', '-c',
613
+ 'cd "$1" && { bunx tsc --version >/dev/null 2>&1 || { echo "typecheck needs host dependencies: run bun install in $1"; exit 1; }; } && eval "$2"',
614
+ 'sh', service_dir, typecheck_cmd,
615
+ ],
608
616
  deps=[service_dir + '/src', service_dir + '/tsconfig.json'],
609
617
  labels=['app.' + res['name'], 'typecheck'],
610
618
  # tsc --noEmit writes no files, so it can run alongside the image builds.
@@ -844,7 +852,7 @@ def register_compose_resources(resource_config, ctx, runtime_flags, manifest_sta
844
852
  _docker_compose_app(compose_file, compose_project_name, env_file)
845
853
  port_override_rel = resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/docker-compose.port-override.yml'
846
854
  port_override = project_root + '/' + port_override_rel if project_root else port_override_rel
847
- if str(local("test -f '" + port_override + "' && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes':
855
+ if str(local(["sh", "-c", 'test -f "$1" && echo yes || echo no', "sh", port_override], quiet=True, echo_off=True)).strip() == 'yes':
848
856
  debug_log("COMPOSE: Applying port override {}".format(port_override))
849
857
  _docker_compose_app(port_override, compose_project_name, env_file)
850
858
  else:
@@ -27,7 +27,7 @@ def _find_backend_resource_path(resource_config):
27
27
  continue
28
28
 
29
29
  candidate = resource_path + '/' + res['name']
30
- prisma_check = local("test -d " + candidate + "/prisma && echo yes || echo no", quiet=True)
30
+ prisma_check = local(["sh", "-c", 'test -d "$1/prisma" && echo yes || echo no', "sh", candidate], quiet=True)
31
31
  prisma_check_stdout = getattr(prisma_check, "stdout", prisma_check)
32
32
  has_prisma = str(prisma_check_stdout).strip() == 'yes'
33
33
 
@@ -8,17 +8,17 @@
8
8
  # =============================================================================
9
9
 
10
10
  # Load npm scope from project.json
11
- # Use TDK_PROJECT_ROOT env var set by Tilt, fallback to current directory
11
+ # Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
12
12
  def _load_npm_scope():
13
- project_root = os.environ.get('TDK_PROJECT_ROOT', '')
14
- project_json_path = '.tdk/project.json'
13
+ project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
14
+ project_json_path = '.flisk/project.json'
15
15
  if project_root:
16
16
  project_json_path = project_root + '/' + project_json_path
17
17
 
18
18
  if os.path.exists(project_json_path):
19
19
  _project_json = read_json(project_json_path)
20
- return _project_json.get('project', {}).get('name', 'tdk-project')
21
- return 'tdk-project'
20
+ return _project_json.get('project', {}).get('name', 'flisk-project')
21
+ return 'flisk-project'
22
22
 
23
23
  _NPM_SCOPE = _load_npm_scope()
24
24
 
@@ -484,8 +484,8 @@ def _generate_yaml_manifest(resource_path, manifest, write_file):
484
484
 
485
485
  # Check if YAML already exists and is up-to-date by comparing with JSON
486
486
  json_path = resource_path + "/" + MANIFEST_FILENAME
487
- json_mtime = local("stat -f %m " + json_path + " 2>/dev/null || stat -c %Y " + json_path + " 2>/dev/null || echo 0", quiet=True)
488
- yaml_mtime = local("stat -f %m " + yaml_path + " 2>/dev/null || stat -c %Y " + yaml_path + " 2>/dev/null || echo 0", quiet=True)
487
+ json_mtime = local(["sh", "-c", "stat -f %m \"$1\" 2>/dev/null || stat -c %Y \"$1\" 2>/dev/null || echo 0", "sh", json_path], quiet=True)
488
+ yaml_mtime = local(["sh", "-c", "stat -f %m \"$1\" 2>/dev/null || stat -c %Y \"$1\" 2>/dev/null || echo 0", "sh", yaml_path], quiet=True)
489
489
 
490
490
  if str(json_mtime).strip() <= str(yaml_mtime).strip() and yaml_mtime != "0":
491
491
  # YAML is up-to-date, skip generation
@@ -493,9 +493,9 @@ def _generate_yaml_manifest(resource_path, manifest, write_file):
493
493
 
494
494
  # Generate YAML using the json_to_yaml.py converter
495
495
  # NOTE: Path relative to Flisk CLI installation root (where this file is located)
496
- # json_to_yaml.py is in engine/topologies/tilt/manifest/ relative to tdk-cli root
496
+ # json_to_yaml.py is in engine/topologies/tilt/manifest/ relative to flisk-cli root
497
497
  converter_path = "engine/topologies/tilt/manifest/json_to_yaml.py"
498
- yaml_content = str(local("python3 " + converter_path + " " + json_path, quiet=True)).strip()
498
+ yaml_content = str(local(["python3", converter_path, json_path], quiet=True)).strip()
499
499
  write_file(yaml_path, yaml_content)
500
500
 
501
501