@flisk-sh/flisk 0.0.0-stage → 1.3.190

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 (440) hide show
  1. package/CHANGELOG.md +492 -0
  2. package/LICENSE +21 -0
  3. package/README.md +479 -2
  4. package/Tiltfile +151 -0
  5. package/cli/bin/flisk.js +42 -0
  6. package/cli/dist/agent-runtimes/custom.js +335 -0
  7. package/cli/dist/agent-runtimes/registry.js +34 -0
  8. package/cli/dist/backend-frameworks/elysia.js +38 -0
  9. package/cli/dist/backend-frameworks/express.js +49 -0
  10. package/cli/dist/backend-frameworks/fastify.js +43 -0
  11. package/cli/dist/backend-frameworks/h3.js +37 -0
  12. package/cli/dist/backend-frameworks/koa.js +47 -0
  13. package/cli/dist/backend-frameworks/mcp.js +86 -0
  14. package/cli/dist/backend-frameworks/nestjs.js +55 -0
  15. package/cli/dist/backend-frameworks/registry.js +134 -0
  16. package/cli/dist/backend-frameworks/types.js +1 -0
  17. package/cli/dist/backend-languages/bun.js +76 -0
  18. package/cli/dist/backend-languages/go.js +125 -0
  19. package/cli/dist/backend-languages/node.js +122 -0
  20. package/cli/dist/backend-languages/python.js +94 -0
  21. package/cli/dist/backend-languages/registry.js +37 -0
  22. package/cli/dist/backend-languages/rust.js +82 -0
  23. package/cli/dist/backend-languages/types.js +1 -0
  24. package/cli/dist/cli.js +29 -0
  25. package/cli/dist/commands/__tests__/project-e2e-helpers.js +49 -0
  26. package/cli/dist/commands/__tests__/ui-loading-screen.test.js +16 -0
  27. package/cli/dist/commands/agent.js +182 -0
  28. package/cli/dist/commands/completion-candidates.js +116 -0
  29. package/cli/dist/commands/completion.js +843 -0
  30. package/cli/dist/commands/config.js +362 -0
  31. package/cli/dist/commands/doctor.js +1504 -0
  32. package/cli/dist/commands/down.js +114 -0
  33. package/cli/dist/commands/eject.js +108 -0
  34. package/cli/dist/commands/help.js +152 -0
  35. package/cli/dist/commands/import.js +164 -0
  36. package/cli/dist/commands/logs.js +119 -0
  37. package/cli/dist/commands/maintainers.js +102 -0
  38. package/cli/dist/commands/mcp.js +28 -0
  39. package/cli/dist/commands/networks.js +306 -0
  40. package/cli/dist/commands/project.js +447 -0
  41. package/cli/dist/commands/projects.js +103 -0
  42. package/cli/dist/commands/registry.js +53 -0
  43. package/cli/dist/commands/resource.js +992 -0
  44. package/cli/dist/commands/resources.js +127 -0
  45. package/cli/dist/commands/restart.js +89 -0
  46. package/cli/dist/commands/runtime.js +75 -0
  47. package/cli/dist/commands/stack.js +171 -0
  48. package/cli/dist/commands/stacks.js +71 -0
  49. package/cli/dist/commands/status.js +211 -0
  50. package/cli/dist/commands/ui.js +725 -0
  51. package/cli/dist/commands/up.js +609 -0
  52. package/cli/dist/commands/upgrade.js +840 -0
  53. package/cli/dist/commands/version.js +10 -0
  54. package/cli/dist/components/Accessible.js +11 -0
  55. package/cli/dist/components/BaseTooltip.js +30 -0
  56. package/cli/dist/components/DetailPanel.js +33 -0
  57. package/cli/dist/components/FileTree.js +51 -0
  58. package/cli/dist/components/ResourceSelectInput.js +42 -0
  59. package/cli/dist/components/ResourceTable.js +35 -0
  60. package/cli/dist/components/ServiceIssues.js +13 -0
  61. package/cli/dist/components/TUIHeader.js +27 -0
  62. package/cli/dist/components/TabBar.js +27 -0
  63. package/cli/dist/components/Tooltip.js +13 -0
  64. package/cli/dist/components/index.js +11 -0
  65. package/cli/dist/components/ui-theme.js +120 -0
  66. package/cli/dist/config/platform-standards.js +182 -0
  67. package/cli/dist/frontend-frameworks/lit.js +64 -0
  68. package/cli/dist/frontend-frameworks/preact.js +62 -0
  69. package/cli/dist/frontend-frameworks/qwik.js +61 -0
  70. package/cli/dist/frontend-frameworks/react.js +69 -0
  71. package/cli/dist/frontend-frameworks/registry.js +83 -0
  72. package/cli/dist/frontend-frameworks/solid.js +62 -0
  73. package/cli/dist/frontend-frameworks/svelte.js +67 -0
  74. package/cli/dist/frontend-frameworks/tanstack-router.js +101 -0
  75. package/cli/dist/frontend-frameworks/types.js +1 -0
  76. package/cli/dist/frontend-frameworks/vanilla.js +59 -0
  77. package/cli/dist/frontend-frameworks/vue.js +72 -0
  78. package/cli/dist/generator/__tests__/golden-helpers.js +43 -0
  79. package/cli/dist/generator/extension-fetch.js +291 -0
  80. package/cli/dist/generator/resource-templates.js +133 -0
  81. package/cli/dist/generator/template-engine.js +801 -0
  82. package/cli/dist/index.js +10 -0
  83. package/cli/dist/mcp/server.js +101 -0
  84. package/cli/dist/mcp/tools.js +351 -0
  85. package/cli/dist/program.js +37 -0
  86. package/cli/dist/types/index.js +38 -0
  87. package/cli/dist/utils/agent-host.js +36 -0
  88. package/cli/dist/utils/atomic-write.js +36 -0
  89. package/cli/dist/utils/bun-floor.js +9 -0
  90. package/cli/dist/utils/bun-requirement.js +10 -0
  91. package/cli/dist/utils/cache.js +63 -0
  92. package/cli/dist/utils/cold-preflight.js +257 -0
  93. package/cli/dist/utils/command-helpers.js +57 -0
  94. package/cli/dist/utils/constants.js +160 -0
  95. package/cli/dist/utils/discovery-context.js +71 -0
  96. package/cli/dist/utils/discovery-paths.js +93 -0
  97. package/cli/dist/utils/docker.js +34 -0
  98. package/cli/dist/utils/doctor-crashloop.js +161 -0
  99. package/cli/dist/utils/doctor-fix.js +391 -0
  100. package/cli/dist/utils/doctor-host.js +66 -0
  101. package/cli/dist/utils/doctor-report.js +78 -0
  102. package/cli/dist/utils/doctor-runtime.js +880 -0
  103. package/cli/dist/utils/doctor-starlark.js +132 -0
  104. package/cli/dist/utils/doctor-wiring.js +698 -0
  105. package/cli/dist/utils/down-cleanup.js +125 -0
  106. package/cli/dist/utils/env-validator.js +266 -0
  107. package/cli/dist/utils/errors.js +175 -0
  108. package/cli/dist/utils/exec-async.js +31 -0
  109. package/cli/dist/utils/file-helpers.js +104 -0
  110. package/cli/dist/utils/formatting.js +165 -0
  111. package/cli/dist/utils/generated-paths.js +51 -0
  112. package/cli/dist/utils/help-command.js +11 -0
  113. package/cli/dist/utils/host-port-config.js +140 -0
  114. package/cli/dist/utils/host-port-plan.js +100 -0
  115. package/cli/dist/utils/json-output.js +29 -0
  116. package/cli/dist/utils/machine-output.js +33 -0
  117. package/cli/dist/utils/paths.js +43 -0
  118. package/cli/dist/utils/platform.js +58 -0
  119. package/cli/dist/utils/port-assignment.js +75 -0
  120. package/cli/dist/utils/port-conflict-fix.js +25 -0
  121. package/cli/dist/utils/port-fallback-notice.js +17 -0
  122. package/cli/dist/utils/port-listener-probe.js +20 -0
  123. package/cli/dist/utils/project-config-defaults.js +17 -0
  124. package/cli/dist/utils/project-features.js +91 -0
  125. package/cli/dist/utils/project-templates.js +32 -0
  126. package/cli/dist/utils/prompt.js +97 -0
  127. package/cli/dist/utils/resource-features.js +184 -0
  128. package/cli/dist/utils/resource-kind.js +9 -0
  129. package/cli/dist/utils/schema-version-gate.js +45 -0
  130. package/cli/dist/utils/search-status.js +12 -0
  131. package/cli/dist/utils/secret-redaction.js +73 -0
  132. package/cli/dist/utils/service-config-checks.js +189 -0
  133. package/cli/dist/utils/service-manifest.js +254 -0
  134. package/cli/dist/utils/service-runtime-state.js +66 -0
  135. package/cli/dist/utils/service-urls.js +112 -0
  136. package/cli/dist/utils/services.js +360 -0
  137. package/cli/dist/utils/shared-infra.js +45 -0
  138. package/cli/dist/utils/shared-platform-postgres.js +232 -0
  139. package/cli/dist/utils/single-flight.js +21 -0
  140. package/cli/dist/utils/smoke.js +401 -0
  141. package/cli/dist/utils/spinner.js +40 -0
  142. package/cli/dist/utils/stack-features.js +15 -0
  143. package/cli/dist/utils/stack-status.js +14 -0
  144. package/cli/dist/utils/startup-report.js +78 -0
  145. package/cli/dist/utils/status-message.js +21 -0
  146. package/cli/dist/utils/status-ports.js +33 -0
  147. package/cli/dist/utils/suggestions.js +63 -0
  148. package/cli/dist/utils/tar.js +46 -0
  149. package/cli/dist/utils/tdk-version.js +51 -0
  150. package/cli/dist/utils/terminal-layout.js +19 -0
  151. package/cli/dist/utils/tilt-events.js +194 -0
  152. package/cli/dist/utils/tilt-logs.js +61 -0
  153. package/cli/dist/utils/tilt-port-owner.js +63 -0
  154. package/cli/dist/utils/tilt-process.js +54 -0
  155. package/cli/dist/utils/tilt-resource-state.js +32 -0
  156. package/cli/dist/utils/tilt-startup.js +49 -0
  157. package/cli/dist/utils/tilt-unreachable-message.js +9 -0
  158. package/cli/dist/utils/tilt.js +104 -0
  159. package/cli/dist/utils/ui-keymap.js +129 -0
  160. package/cli/dist/utils/ui-service-state.js +34 -0
  161. package/cli/dist/utils/up-only.js +28 -0
  162. package/cli/dist/utils/up-readiness.js +118 -0
  163. package/cli/dist/utils/url-actions.js +103 -0
  164. package/cli/dist/utils/validation.js +62 -0
  165. package/cli/dist/utils/which.js +56 -0
  166. package/cli/dist/utils/windows-doctor.js +176 -0
  167. package/cli/dist-bundle/chunk-6EA4DGCY.js +2 -0
  168. package/cli/dist-bundle/chunk-BZ4H7MM4.js +3 -0
  169. package/cli/dist-bundle/chunk-CLCUIDBH.js +510 -0
  170. package/cli/dist-bundle/cli.js +2017 -0
  171. package/cli/dist-bundle/cold-preflight-SY26O2IG.js +2 -0
  172. package/cli/dist-bundle/devtools-ZUHXW33W.js +5 -0
  173. package/cli/dist-bundle/extension-fetch-J4FFH7TJ.js +2 -0
  174. package/cli/package.json +83 -0
  175. package/cli/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +25 -0
  176. package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +466 -0
  177. package/cli/shared-platform-engineering/docker-templates/install-deps.sh +154 -0
  178. package/cli/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +14 -0
  179. package/cli/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +58 -0
  180. package/cli/templates/.tiltignore.hbs +72 -0
  181. package/cli/templates/TILT_RESOURCE_DEFAULTS.star.hbs +220 -0
  182. package/cli/templates/TILT_TECH_STACK.star.hbs +149 -0
  183. package/cli/templates/Tiltfile.hbs +381 -0
  184. package/cli/templates/spec.master.hbs +192 -0
  185. package/discovery/AGENTS.md +362 -0
  186. package/discovery/TILT_DISCOVERY.star +429 -0
  187. package/discovery/Tiltfile +58 -0
  188. package/discovery/config.star +265 -0
  189. package/discovery/constants.star +167 -0
  190. package/discovery/deterministic.star +213 -0
  191. package/discovery/discovery_daemon.star +193 -0
  192. package/discovery/discovery_orchestrator.star +492 -0
  193. package/discovery/filtering.star +7 -0
  194. package/discovery/identity-management-backend/service.yaml +26 -0
  195. package/discovery/identity-management-frontend/service.yaml +29 -0
  196. package/discovery/identity-sdk/service.yaml +9 -0
  197. package/discovery/incremental_discovery.star +215 -0
  198. package/discovery/indexing.star +9 -0
  199. package/discovery/json_manifest_scanner.star +57 -0
  200. package/discovery/libraries.star +48 -0
  201. package/discovery/loading.star +25 -0
  202. package/discovery/manifest/constants.star +106 -0
  203. package/discovery/manifest/loading.star +418 -0
  204. package/discovery/manifest/normalize.star +289 -0
  205. package/discovery/manifest/validation.star +110 -0
  206. package/discovery/normalization.star +13 -0
  207. package/discovery/registry.star +562 -0
  208. package/discovery/resource_snapshot.py +384 -0
  209. package/discovery/resource_snapshot.star +145 -0
  210. package/discovery/schemas.star +3 -0
  211. package/discovery/services/platform/cdc/debezium/nats-connector/service.yaml +9 -0
  212. package/discovery/services/platform/cdc/nats-http-bridge/service.yaml +9 -0
  213. package/discovery/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +26 -0
  214. package/discovery/services/platform/synthetic-monitor/service.yaml +9 -0
  215. package/discovery/test_resource_snapshot.py +253 -0
  216. package/discovery/validation.star +80 -0
  217. package/discovery/versioning.star +3 -0
  218. package/engine/AGENTS.md +706 -0
  219. package/engine/README.md +31 -0
  220. package/engine/REFACTORING_MANIFEST_SYSTEM.md +974 -0
  221. package/engine/Tiltfile +86 -0
  222. package/engine/assets/docker/golden-layers.Dockerfile +204 -0
  223. package/engine/assets/docker/wake-gateway/Dockerfile +28 -0
  224. package/engine/assets/docker/wake-gateway/decide.test.ts +177 -0
  225. package/engine/assets/docker/wake-gateway/decide.ts +135 -0
  226. package/engine/assets/docker/wake-gateway/server.ts +363 -0
  227. package/engine/assets/scripts/cleanup-completed-migrator-images.sh +39 -0
  228. package/engine/assets/scripts/cleanup-tilt-images.sh +122 -0
  229. package/engine/assets/scripts/mac-m1-resource-monitor.sh +123 -0
  230. package/engine/config.star +5 -0
  231. package/engine/entrypoint.star +101 -0
  232. package/engine/lifecycle/orchestrator.star +263 -0
  233. package/engine/paths.star +719 -0
  234. package/engine/schemas/project-schema.json +147 -0
  235. package/engine/schemas/service-schema.json +537 -0
  236. package/engine/scripts/README.md +89 -0
  237. package/engine/scripts/build-and-publish-lib.sh +207 -0
  238. package/engine/scripts/check-lib-publish.sh +87 -0
  239. package/engine/scripts/debug-container.sh +265 -0
  240. package/engine/scripts/generate-manifest.sh +200 -0
  241. package/engine/spec.master +702 -0
  242. package/engine/spec.master.example +341 -0
  243. package/engine/topologies/README.md +33 -0
  244. package/engine/topologies/platform/docker/AGENTS.md +59 -0
  245. package/engine/topologies/platform/docker/auth/auth.star +207 -0
  246. package/engine/topologies/platform/docker/build/frontend_build_plan.star +65 -0
  247. package/engine/topologies/platform/docker/build/golden_image.star +37 -0
  248. package/engine/topologies/platform/docker/build/golden_image_build.star +144 -0
  249. package/engine/topologies/platform/docker/build/golden_image_constants.star +100 -0
  250. package/engine/topologies/platform/docker/build/golden_image_dockerfile.star +263 -0
  251. package/engine/topologies/platform/docker/compose/compose.star +637 -0
  252. package/engine/topologies/platform/docker/compose/compose_helpers.star +54 -0
  253. package/engine/topologies/platform/docker/compose/traefik_standalone.star +171 -0
  254. package/engine/topologies/platform/docker/config/bunignore.star +144 -0
  255. package/engine/topologies/platform/docker/config/dockerignore.star +152 -0
  256. package/engine/topologies/platform/docker/config/healthcheck.star +58 -0
  257. package/engine/topologies/platform/docker/constants.star +211 -0
  258. package/engine/topologies/platform/docker/dockerfile/dockerfile.star +56 -0
  259. package/engine/topologies/platform/docker/dockerfile/language_dockerfile.star +264 -0
  260. package/engine/topologies/platform/docker/generators/golden_docker_generator_v2.star +76 -0
  261. package/engine/topologies/platform/docker/index.star +40 -0
  262. package/engine/topologies/platform/docker/layers/bun_helpers.star +25 -0
  263. package/engine/topologies/platform/docker/layers/infisical/index.star +42 -0
  264. package/engine/topologies/platform/docker/layers/infisical/infisical_docker.star +264 -0
  265. package/engine/topologies/platform/docker/layers/l1_base_layers.star +89 -0
  266. package/engine/topologies/platform/docker/layers/l2_dependency_layers.star +147 -0
  267. package/engine/topologies/platform/docker/layers/l3_builder_layers.star +229 -0
  268. package/engine/topologies/platform/docker/layers/l4_runtime_layers.star +282 -0
  269. package/engine/topologies/platform/docker/layers/prisma/constants.star +138 -0
  270. package/engine/topologies/platform/docker/layers/prisma/db_readiness.star +98 -0
  271. package/engine/topologies/platform/docker/layers/prisma/filesystem_setup.star +131 -0
  272. package/engine/topologies/platform/docker/layers/prisma/migrate_script.star +100 -0
  273. package/engine/topologies/platform/docker/layers/prisma/prisma_build.star +128 -0
  274. package/engine/topologies/platform/docker/layers/prisma/prisma_runtime.star +205 -0
  275. package/engine/topologies/platform/docker/layers/prisma/secret_resolution.star +121 -0
  276. package/engine/topologies/platform/docker/networking/api_path_constants.star +206 -0
  277. package/engine/topologies/platform/docker/networking/sablier_container_cycle.star +31 -0
  278. package/engine/topologies/platform/docker/networking/traefik.star +266 -0
  279. package/engine/topologies/platform/docker/networking/traefik_constants.star +148 -0
  280. package/engine/topologies/platform/docker/networking/traefik_helpers.star +162 -0
  281. package/engine/topologies/platform/docker/networking/traefik_static_routes.star +165 -0
  282. package/engine/topologies/platform/docker/secrets/env_secrets.star +74 -0
  283. package/engine/topologies/platform/docker/secrets/infisical.star +109 -0
  284. package/engine/topologies/platform/net/AGENTS.md +64 -0
  285. package/engine/topologies/platform/net/proxy.star +6 -0
  286. package/engine/topologies/platform/registries/local.star +6 -0
  287. package/engine/topologies/platform/registries/verdaccio_loader.star +20 -0
  288. package/engine/topologies/platform/security/AGENTS.md +49 -0
  289. package/engine/topologies/platform/security/secrets.star +241 -0
  290. package/engine/topologies/platform/state/AGENTS.md +64 -0
  291. package/engine/topologies/platform/state/relational.star +6 -0
  292. package/engine/topologies/tilt/common/AGENTS.md +59 -0
  293. package/engine/topologies/tilt/common/utils.star +409 -0
  294. package/engine/topologies/tilt/common/utils_debug.star +71 -0
  295. package/engine/topologies/tilt/common/utils_deterministic.star +170 -0
  296. package/engine/topologies/tilt/common/utils_docker_networks.star +54 -0
  297. package/engine/topologies/tilt/common/utils_env.star +92 -0
  298. package/engine/topologies/tilt/common/utils_output.star +99 -0
  299. package/engine/topologies/tilt/config/AGENTS.md +68 -0
  300. package/engine/topologies/tilt/config/defaults.star +5 -0
  301. package/engine/topologies/tilt/config/feature_flags.star +12 -0
  302. package/engine/topologies/tilt/config/global.star +57 -0
  303. package/engine/topologies/tilt/config/profiles.star +398 -0
  304. package/engine/topologies/tilt/generators/agents_md.star +64 -0
  305. package/engine/topologies/tilt/generators/api_gateway.star +147 -0
  306. package/engine/topologies/tilt/generators/index.star +126 -0
  307. package/engine/topologies/tilt/generators/infisical/README.md +424 -0
  308. package/engine/topologies/tilt/generators/infisical/examples.star +314 -0
  309. package/engine/topologies/tilt/generators/infisical/index.star +59 -0
  310. package/engine/topologies/tilt/generators/infisical/machine_identity.star +422 -0
  311. package/engine/topologies/tilt/generators/infisical/organization.star +536 -0
  312. package/engine/topologies/tilt/generators/infisical/path_manager.star +478 -0
  313. package/engine/topologies/tilt/generators/infisical/secrets_generator.star +422 -0
  314. package/engine/topologies/tilt/generators/nginx_conf.star +145 -0
  315. package/engine/topologies/tilt/generators/npmrc.star +132 -0
  316. package/engine/topologies/tilt/generators/tsconfig.star +25 -0
  317. package/engine/topologies/tilt/generators/typescript/backend_library_tsconfig.star +73 -0
  318. package/engine/topologies/tilt/generators/typescript/backend_tsconfig.star +137 -0
  319. package/engine/topologies/tilt/generators/typescript/common.star +9 -0
  320. package/engine/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +78 -0
  321. package/engine/topologies/tilt/generators/typescript/frontend_tsconfig.star +140 -0
  322. package/engine/topologies/tilt/generators/typescript/include.star +25 -0
  323. package/engine/topologies/tilt/generators/typescript/playwright_config.star +42 -0
  324. package/engine/topologies/tilt/generators/typescript/prisma_config.star +51 -0
  325. package/engine/topologies/tilt/generators/validators.star +868 -0
  326. package/engine/topologies/tilt/generators/vite/backend.star +80 -0
  327. package/engine/topologies/tilt/generators/vite/frameworks/lit.star +92 -0
  328. package/engine/topologies/tilt/generators/vite/frameworks/preact.star +94 -0
  329. package/engine/topologies/tilt/generators/vite/frameworks/qwik.star +94 -0
  330. package/engine/topologies/tilt/generators/vite/frameworks/react.star +128 -0
  331. package/engine/topologies/tilt/generators/vite/frameworks/solid.star +94 -0
  332. package/engine/topologies/tilt/generators/vite/frameworks/svelte.star +94 -0
  333. package/engine/topologies/tilt/generators/vite/frameworks/vanilla.star +92 -0
  334. package/engine/topologies/tilt/generators/vite/frameworks/vue.star +94 -0
  335. package/engine/topologies/tilt/generators/vite/frontend.star +153 -0
  336. package/engine/topologies/tilt/generators/vite/generators.star +45 -0
  337. package/engine/topologies/tilt/generators/vite/helpers.star +256 -0
  338. package/engine/topologies/tilt/generators/vite/library.star +67 -0
  339. package/engine/topologies/tilt/generators/vite/sdk.star +75 -0
  340. package/engine/topologies/tilt/generators/vite/templates.star +460 -0
  341. package/engine/topologies/tilt/generators/vite_config.star +24 -0
  342. package/engine/topologies/tilt/manifest/AGENTS.md +61 -0
  343. package/engine/topologies/tilt/manifest/README.md +679 -0
  344. package/engine/topologies/tilt/manifest/__init__.star +220 -0
  345. package/engine/topologies/tilt/manifest/constants.star +262 -0
  346. package/engine/topologies/tilt/manifest/errors.star +268 -0
  347. package/engine/topologies/tilt/manifest/integration.star +348 -0
  348. package/engine/topologies/tilt/manifest/json_to_yaml.py +61 -0
  349. package/engine/topologies/tilt/manifest/loader.star +239 -0
  350. package/engine/topologies/tilt/manifest/mapper.star +229 -0
  351. package/engine/topologies/tilt/manifest/parser.star +490 -0
  352. package/engine/topologies/tilt/manifest/schema.star +502 -0
  353. package/engine/topologies/tilt/manifest/tests/test_integration.star +278 -0
  354. package/engine/topologies/tilt/manifest/tests/test_loader_parser.star +475 -0
  355. package/engine/topologies/tilt/manifest/tests/test_manifest.star +319 -0
  356. package/engine/topologies/tilt/manifest/tests/test_validator.star +472 -0
  357. package/engine/topologies/tilt/manifest/validator.star +744 -0
  358. package/engine/topologies/tilt/manifest/yaml_to_json.py +20 -0
  359. package/engine/topologies/tilt/resources/AGENTS.md +71 -0
  360. package/engine/topologies/tilt/resources/build_concurrency.star +56 -0
  361. package/engine/topologies/tilt/resources/conditions.star +5 -0
  362. package/engine/topologies/tilt/resources/databases.star +246 -0
  363. package/engine/topologies/tilt/resources/declaration.star +5 -0
  364. package/engine/topologies/tilt/resources/deps.star +5 -0
  365. package/engine/topologies/tilt/resources/infra-loader.star +504 -0
  366. package/engine/topologies/tilt/resources/libs.star +32 -0
  367. package/engine/topologies/tilt/resources/libs_discovery.star +104 -0
  368. package/engine/topologies/tilt/resources/libs_paths.star +81 -0
  369. package/engine/topologies/tilt/resources/libs_resource_definition.star +153 -0
  370. package/engine/topologies/tilt/resources/libs_setup.star +166 -0
  371. package/engine/topologies/tilt/resources/libs_tsconfig.star +39 -0
  372. package/engine/topologies/tilt/resources/orchestrator/apply.star +79 -0
  373. package/engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +864 -0
  374. package/engine/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +90 -0
  375. package/engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +150 -0
  376. package/engine/topologies/tilt/resources/orchestrator/apply_resource_validation.star +38 -0
  377. package/engine/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +46 -0
  378. package/engine/topologies/tilt/resources/orchestrator/builders/typescript.star +193 -0
  379. package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +75 -0
  380. package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +23 -0
  381. package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +136 -0
  382. package/engine/topologies/tilt/resources/orchestrator/generators/env.star +219 -0
  383. package/engine/topologies/tilt/resources/orchestrator/generators/frontend.star +172 -0
  384. package/engine/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +577 -0
  385. package/engine/topologies/tilt/resources/orchestrator/helpers.star +35 -0
  386. package/engine/topologies/tilt/resources/orchestrator.star +56 -0
  387. package/engine/topologies/tilt/resources/ordering.star +5 -0
  388. package/engine/topologies/tilt/resources/shared-platform-postgres.star +30 -0
  389. package/engine/topologies/tilt/resources/triggers.star +5 -0
  390. package/engine/topologies/tilt/resources/watchers.star +304 -0
  391. package/engine/where-things-live.star +719 -0
  392. package/examples/tdk-example/LICENSE +21 -0
  393. package/examples/tdk-example/README.md +23 -0
  394. package/examples/tdk-example/TILT_SERVICE_DEFAULTS.star +42 -0
  395. package/examples/tdk-example/TILT_TECH_STACK.star +67 -0
  396. package/examples/tdk-example/Tiltfile +25 -0
  397. package/examples/tdk-example/services/platform/messaging/docker-compose.yml +26 -0
  398. package/examples/tdk-example/services/shop/orders-api/package.json +20 -0
  399. package/examples/tdk-example/services/shop/orders-api/service.json +14 -0
  400. package/examples/tdk-example/services/shop/orders-api/src/index.ts +81 -0
  401. package/examples/tdk-example/services/shop/orders-app/index.html +12 -0
  402. package/examples/tdk-example/services/shop/orders-app/package.json +23 -0
  403. package/examples/tdk-example/services/shop/orders-app/public/.gitkeep +0 -0
  404. package/examples/tdk-example/services/shop/orders-app/service.json +9 -0
  405. package/examples/tdk-example/services/shop/orders-app/src/main.tsx +9 -0
  406. package/examples/tdk-example/services/shop/orders-app/src/orders.tsx +67 -0
  407. package/examples/tdk-example/services/shop/orders-app/src/style.css +15 -0
  408. package/examples/tdk-example/services/shop/orders-worker/package.json +18 -0
  409. package/examples/tdk-example/services/shop/orders-worker/service.json +13 -0
  410. package/examples/tdk-example/services/shop/orders-worker/src/index.ts +33 -0
  411. package/ext/Tiltfile +66 -0
  412. package/ext/ide-components/README.md +221 -0
  413. package/ext/ide-components/code_viewer/server.py +208 -0
  414. package/ext/ide-components/config_inspector/server.py +1052 -0
  415. package/ext/ide-components/file_browser/server.py +287 -0
  416. package/ext/ide-components/shared/config_service.py +471 -0
  417. package/ext/ide-components/shared/file_utils.py +300 -0
  418. package/ext/ide-components/shared/http_utils.py +234 -0
  419. package/ext/ide-components/shared/static/styles.css +1334 -0
  420. package/ext/ide-components/shared/syntax_highlighter.py +142 -0
  421. package/ext/ide-components/shared/template_engine.py +125 -0
  422. package/ext/ide-components/shared/templates/base.html +121 -0
  423. package/ext/ide-components/shared/test_config_service.py +328 -0
  424. package/ext/ide-components/shared/tilt_integration.py +160 -0
  425. package/ext/ui-enhancements/cron-status-server.sh +51 -0
  426. package/ext/ui-enhancements/cron-status-tracker.sh +148 -0
  427. package/ext/ui-enhancements/extension.yaml +36 -0
  428. package/ext/ui-enhancements/tiltfile.py +101 -0
  429. package/ext/ui-enhancements/ui/cron-jobs-tab.css +396 -0
  430. package/ext/ui-enhancements/ui/help-panel.css +279 -0
  431. package/ext/ui-enhancements/ui/icons.css +125 -0
  432. package/ext/ui-enhancements/ui/tooltips.css +114 -0
  433. package/package.json +94 -4
  434. package/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +25 -0
  435. package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +466 -0
  436. package/shared-platform-engineering/docker-templates/install-deps.sh +154 -0
  437. package/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +14 -0
  438. package/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +58 -0
  439. package/specs/specs/TILT_SERVICE_DEFAULTS.star +207 -0
  440. package/specs/specs/TILT_TECH_STACK.star +161 -0
@@ -0,0 +1,126 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # =============================================================================
4
+ # 🎯 GENERATORS - Master Index
5
+ # =============================================================================
6
+ # All generators for Tilt topology configuration
7
+ # =============================================================================
8
+
9
+ # =============================================================================
10
+ # Legacy Generators (existing)
11
+ # =============================================================================
12
+
13
+ # Load individual generator functions (they export functions, not structs)
14
+ load("./typescript/backend_tsconfig.star", "generate_backend_tsconfig")
15
+ load("./typescript/frontend_tsconfig.star", "generate_frontend_tsconfig")
16
+ load("./typescript/frontend_library_tsconfig.star", "generate_frontend_library_tsconfig")
17
+ load("./typescript/backend_library_tsconfig.star", "generate_backend_library_tsconfig")
18
+ load("./typescript/prisma_config.star", "generate_prisma_config")
19
+ load("./typescript/playwright_config.star", "generate_playwright_config")
20
+
21
+ load("./vite/generators.star", "generate_for_manifest")
22
+ load("./npmrc.star", "PackageConfig")
23
+ load("./agents_md.star", "AgentsMd")
24
+ # NOTE: nginx_conf.star and api_gateway.star loaded from manifest_resource.star
25
+ # to avoid circular imports with discovery/registry
26
+
27
+ # =============================================================================
28
+ # NEW: Pre-Flight Validation Generators (v2.0)
29
+ # =============================================================================
30
+ # These generators prevent vibe-coding failures by validating before build
31
+
32
+ load("./validators.star", "Validators")
33
+ # fixed_frontend_tsconfig.star, dependency_manifest.star, and
34
+ # database_provisioner.star moved to premium/ - none had any call sites
35
+ # outside this file, so they were dead code in the free engine.
36
+
37
+ # =============================================================================
38
+ # 🔐 INFISICAL Secrets Management Generators
39
+ # =============================================================================
40
+ # Provides complete Infisical integration for secret management
41
+
42
+ load("./infisical/index.star", "Infisical")
43
+
44
+ # =============================================================================
45
+ # Legacy Exports (for backward compatibility)
46
+ # =============================================================================
47
+
48
+ # Functions are already loaded directly
49
+ # Vite generator
50
+ Vite = struct(
51
+ for_manifest = generate_for_manifest,
52
+ )
53
+
54
+ # =============================================================================
55
+ # NEW: Pre-Flight Validation Exports
56
+ # =============================================================================
57
+
58
+ # Validators - Pre-flight checks
59
+ Validate = Validators
60
+
61
+ # =============================================================================
62
+ # 🔐 INFISICAL Secrets Management Exports
63
+ # =============================================================================
64
+
65
+ # Complete Infisical integration
66
+ SecretsManagement = Infisical
67
+
68
+ # =============================================================================
69
+ # Master Generation Orchestrator
70
+ # =============================================================================
71
+
72
+ def run_pre_flight_validations(resource_path, manifest, all_services, global_config):
73
+ """
74
+ Runs all pre-flight validations for a service.
75
+
76
+ This is the main entry point for validation. Call this during config-gen
77
+ to catch issues before they cause build failures.
78
+
79
+ Args:
80
+ resource_path: Path to service directory
81
+ manifest: Service manifest dict
82
+ all_services: List of all services for dependency checking
83
+ global_config: Global topology config
84
+
85
+ Returns:
86
+ Validation report dict
87
+ """
88
+ return Validators.run_all_validations(
89
+ resource_path,
90
+ manifest,
91
+ all_services,
92
+ global_config,
93
+ None, # write_fn - will write to .autogenerated/
94
+ )
95
+
96
+ # generate_fixed_frontend_tsconfig, resolve_missing_dependencies, and
97
+ # provision_resource_database moved to premium/ along with the modules
98
+ # they wrapped (fixed_frontend_tsconfig.star, dependency_manifest.star,
99
+ # database_provisioner.star) - none had call sites outside this file.
100
+
101
+ # =============================================================================
102
+ # Exports
103
+ # =============================================================================
104
+
105
+ Generators = struct(
106
+ # Legacy
107
+ generate_backend_tsconfig=generate_backend_tsconfig,
108
+ generate_frontend_tsconfig=generate_frontend_tsconfig,
109
+ generate_frontend_library_tsconfig=generate_frontend_library_tsconfig,
110
+ generate_backend_library_tsconfig=generate_backend_library_tsconfig,
111
+ generate_prisma_config=generate_prisma_config,
112
+ generate_playwright_config=generate_playwright_config,
113
+ Vite=Vite,
114
+
115
+ # NEW: Pre-flight validation
116
+ Validate=Validate,
117
+
118
+ # NEW: Orchestrators
119
+ run_pre_flight_validations=run_pre_flight_validations,
120
+
121
+ # NEW: Infisical Secrets Management
122
+ SecretsManagement=SecretsManagement,
123
+
124
+ # NEW: AGENTS.md Generator for .autogenerated/ folder
125
+ AgentsMd=AgentsMd,
126
+ )
@@ -0,0 +1,424 @@
1
+ # 🔐 Infisical Starlark Generators - Complete Documentation
2
+
3
+ ## Overview
4
+
5
+ The Infisical Starlark generators provide a complete, programmatic way to manage secret injection in the Flisk CLI. This replaces shell-based configuration with type-safe Starlark code.
6
+
7
+ ## Architecture
8
+
9
+ ```
10
+ ┌─────────────────────────────────────────────────────────────────┐
11
+ │ INFISICAL GENERATORS │
12
+ ├─────────────────────────────────────────────────────────────────┤
13
+ │ │
14
+ │ 1. SECRETS GENERATOR (secrets_generator.star) │
15
+ │ ├── generate_for_service() - Service secret config │
16
+ │ ├── generate_docker_compose_env() - Docker Compose env │
17
+ │ ├── generate_entrypoint_env() - Entrypoint configuration │
18
+ │ └── generate_local_env_template() - Local dev .env │
19
+ │ │
20
+ │ 2. PATH MANAGER (path_manager.star) │
21
+ │ ├── plan_resource_path() - Plan Infisical path │
22
+ │ ├── validate_path() - Path validation │
23
+ │ ├── known_paths - 14 predefined service paths │
24
+ │ └── ROOT_PATHS, PLATFORM_PATHS - Path constants │
25
+ │ │
26
+ │ 3. MACHINE IDENTITY (machine_identity.star) │
27
+ │ ├── generate_universal_auth() - Client ID/Secret auth │
28
+ │ ├── generate_development_machine() - Dev machine config │
29
+ │ ├── generate_ci_machine() - CI/CD machine config │
30
+ │ └── AUTH_METHODS - All supported auth methods │
31
+ │ │
32
+ │ 4. ORGANIZATION (organization.star) │
33
+ │ ├── generate_config() - Complete org setup │
34
+ │ ├── ENVIRONMENTS - dev, staging, prod configs │
35
+ │ ├── ROLES - Admin, developer, readonly, etc. │
36
+ │ └── SECRET_TEMPLATES - DATABASE_URL, JWT_SECRET, etc. │
37
+ │ │
38
+ │ 5. DOCKER INTEGRATION (infisical_docker.star) │
39
+ │ ├── runtime_setup() - L4 runtime secret injection │
40
+ │ ├── builder_setup() - L3 builder CLI setup │
41
+ │ └── generate_compose_env() - Docker Compose environment │
42
+ │ │
43
+ └─────────────────────────────────────────────────────────────────┘
44
+ ```
45
+
46
+ ## Quick Start
47
+
48
+ ### 1. Load the Modules
49
+
50
+ ```starlark
51
+ # Option 1: Load complete Infisical module
52
+ load("engine/topologies/tilt/generators/infisical/index.star", "Infisical")
53
+
54
+ # Option 2: Load from generators index (recommended)
55
+ load("engine/topologies/tilt/generators/index.star", "Generators")
56
+ Infisical = Generators.SecretsManagement
57
+
58
+ # Option 3: Load from security module (full integration)
59
+ load("engine/topologies/platform/security/secrets.star", "Secrets")
60
+ ```
61
+
62
+ ### 2. Configure Service Secrets
63
+
64
+ ```starlark
65
+ # Generate complete configuration for a service
66
+ config = Infisical.Secrets.generate_for_service(
67
+ resource_name="user-management-backend",
68
+ secret_path="/services/user",
69
+ resource_type="backend",
70
+ command="bun run src/index.ts",
71
+ )
72
+
73
+ # Access generated configuration
74
+ print(config["resource_name"]) # "user-management-backend"
75
+ print(config["secret_path"]) # "/services/user"
76
+ print(config["required_secrets"]) # ["DATABASE_URL", "JWT_SECRET", "RESOURCE_API_KEY"]
77
+ print(config["docker_compose"]["environment"])
78
+ ```
79
+
80
+ ### 3. Use in Dockerfile Generation
81
+
82
+ ```starlark
83
+ # In L4 runtime layer generation
84
+ load("engine/topologies/platform/docker/layers/infisical/index.star", "InfisicalLayers")
85
+
86
+ def generate_backend_runtime(resource_name, cmd="bun run start"):
87
+ parts = []
88
+
89
+ # ... other Dockerfile setup ...
90
+
91
+ # Use InfisicalDocker for runtime secret injection
92
+ infisical_setup = InfisicalLayers.Docker.runtime_setup(
93
+ resource_name=resource_name,
94
+ resource_type="backend",
95
+ command=cmd,
96
+ use_entrypoint=True,
97
+ )
98
+ parts.append(infisical_setup)
99
+
100
+ return "".join(parts)
101
+ ```
102
+
103
+ ### 4. Use in Docker Compose
104
+
105
+ ```starlark
106
+ # Generate environment variables for docker-compose
107
+ env = Infisical.Docker.generate_compose_env(
108
+ resource_name="user-management-backend",
109
+ resource_type="backend",
110
+ )
111
+
112
+ # Use in dc_resource
113
+ dc_resource("user-management-backend", env=env)
114
+ ```
115
+
116
+ ## Detailed API Reference
117
+
118
+ ### Secrets Generator
119
+
120
+ #### `generate_for_service(resource_name, secret_path, resource_type, command, additional_vars)`
121
+
122
+ Generates complete secret configuration for a service.
123
+
124
+ **Parameters:**
125
+ - `resource_name` (str): Name of the service (e.g., "user-management-backend")
126
+ - `secret_path` (str): Infisical path (e.g., "/services/user")
127
+ - `resource_type` (str): Type of service (backend, frontend, payment, notification)
128
+ - `command` (str): Command to run after secret injection (optional)
129
+ - `additional_vars` (dict): Additional environment variables (optional)
130
+
131
+ **Returns:**
132
+ ```starlark
133
+ {
134
+ "resource_name": str,
135
+ "secret_path": str,
136
+ "resource_type": str,
137
+ "validation": {"valid": bool, "errors": [str]},
138
+ "docker_compose": {"environment": dict},
139
+ "entrypoint": {"environment": dict},
140
+ "kubernetes": {"secret_ref": dict},
141
+ "local_template": str,
142
+ "required_secrets": [str],
143
+ }
144
+ ```
145
+
146
+ #### `generate_for_services_batch(services_config)`
147
+
148
+ Batch configuration for multiple services.
149
+
150
+ ```starlark
151
+ services = [
152
+ {"name": "user", "path": "/services/user", "type": "backend"},
153
+ {"name": "payment", "path": "/services/payment", "type": "payment"},
154
+ ]
155
+ configs = Infisical.Secrets.generate_for_services_batch(services)
156
+ ```
157
+
158
+ ### Path Manager
159
+
160
+ #### `plan_resource_path(resource_name, resource_type, parent_path)`
161
+
162
+ Plans the Infisical path for a service.
163
+
164
+ ```starlark
165
+ plan = Infisical.Paths.plan_resource_path(
166
+ resource_name="user-management-backend",
167
+ resource_type="backend",
168
+ )
169
+
170
+ # Returns:
171
+ # {
172
+ # "resource_name": "user-management-backend",
173
+ # "resource_type": "backend",
174
+ # "parent_path": "/services",
175
+ # "resource_folder": "user",
176
+ # "full_path": "/services/user",
177
+ # "validation": {"valid": True, "errors": [], "warnings": []},
178
+ # "subpaths": ["/services/user/database", ...],
179
+ # }
180
+ ```
181
+
182
+ #### Predefined Service Paths
183
+
184
+ 14 services have predefined paths:
185
+
186
+ ```starlark
187
+ # Access all known paths
188
+ print(Infisical.Paths.known_paths)
189
+
190
+ # Get specific service path
191
+ path = Infisical.Paths.get_known_resource_path("user-management-backend")
192
+ # Returns: "/services/user"
193
+ ```
194
+
195
+ | Service | Path |
196
+ |---------|------|
197
+ | user-management-backend | /services/user |
198
+ | order-management-backend | /services/order |
199
+ | order-planner-backend | /services/order-planner |
200
+ | staff-management-backend | /services/staff |
201
+ | treatment-management-backend | /services/treatment |
202
+ | inventory-management-backend | /services/inventory |
203
+ | website-management-backend | /services/website |
204
+ | gdpr-compliance-backend | /services/gdpr |
205
+ | payment-management-backend | /services/payment |
206
+ | payment-processing-backend | /services/billing |
207
+ | api-gateway | /services/api-gateway |
208
+ | api-gateway-test | /services/api-gateway-test |
209
+ | orchestrator-glue-backend | /services/orchestrator-glue |
210
+
211
+ ### Machine Identity
212
+
213
+ #### `generate_universal_auth(identity_name, access_paths, project_id, environment)`
214
+
215
+ Generates Universal Auth (Client ID + Client Secret) configuration.
216
+
217
+ ```starlark
218
+ config = Infisical.Identity.generate_universal_auth(
219
+ identity_name="dev-machine",
220
+ access_paths=["/services/*", "/platform/*"],
221
+ project_id="bc7cf07f-4002-4148-bca8-78a05c95dea2",
222
+ environment="dev",
223
+ )
224
+ ```
225
+
226
+ #### Predefined Machine Templates
227
+
228
+ ```starlark
229
+ # Development machine (broad access)
230
+ dev_machine = Infisical.Identity.generate_development_machine("dev-machine")
231
+
232
+ # CI/CD machine (for GitHub Actions)
233
+ ci_machine = Infisical.Identity.generate_ci_machine("github-actions")
234
+
235
+ # Service-specific machine (restricted access)
236
+ resource_machine = Infisical.Identity.generate_resource_specific_machine("user")
237
+ ```
238
+
239
+ ### Organization
240
+
241
+ #### `generate_config(org_name, env_names, resource_names)`
242
+
243
+ Generates complete organization configuration.
244
+
245
+ ```starlark
246
+ org = Infisical.Org.generate_config(
247
+ org_name="{project}",
248
+ env_names=["dev", "staging", "prod"],
249
+ resource_names=["user", "order", "payment"],
250
+ )
251
+
252
+ # Returns complete setup including:
253
+ # - Organization metadata
254
+ # - Project configuration
255
+ # - Environments
256
+ # - Roles
257
+ # - Folder structure
258
+ # - Secret templates
259
+ ```
260
+
261
+ ## Migration from Shell Scripts
262
+
263
+ ### Before (Shell-based)
264
+
265
+ ```dockerfile
266
+ # Hardcoded in Dockerfile generation
267
+ COPY --chmod=0755 shared-platform-engineering/docker-templates/infisical-entrypoint.sh /entrypoint.sh
268
+ ENV RESOURCE_NAME=my-service
269
+ ENV INFISICAL_SECRET_PATH=/services/my-service
270
+ ENTRYPOINT ["/entrypoint.sh"]
271
+ CMD ["bun", "run", "start"]
272
+ ```
273
+
274
+ ### After (Starlark generators)
275
+
276
+ ```starlark
277
+ # In your Tiltfile or .star file
278
+ load("engine/topologies/platform/docker/layers/infisical/index.star", "InfisicalLayers")
279
+
280
+ # Generate Dockerfile snippet dynamically
281
+ infisical_setup = InfisicalLayers.Docker.runtime_setup(
282
+ resource_name="my-service",
283
+ secret_path="/services/my-service", # Auto-generated if not provided
284
+ resource_type="backend",
285
+ command="bun run start",
286
+ )
287
+
288
+ # Returns:
289
+ # COPY --chmod=0755 shared-platform-engineering/docker-templates/infisical-entrypoint.sh /entrypoint.sh
290
+ # ENV RESOURCE_NAME=my-service
291
+ # ENV INFISICAL_SECRET_PATH=/services/my-service
292
+ # ENV INFISICAL_TOKEN=${INFISICAL_TOKEN:-}
293
+ # ... (all env vars from generator)
294
+ # ENTRYPOINT ["/entrypoint.sh"]
295
+ # CMD ["bun", "run", "start"]
296
+ ```
297
+
298
+ ## Usage in Tiltfile
299
+
300
+ ### Complete Example
301
+
302
+ ```starlark
303
+ # Load modules
304
+ load("engine/topologies/platform/security/secrets.star", "Secrets")
305
+ load("engine/topologies/tilt/generators/infisical/index.star", "Infisical")
306
+
307
+ # Define services to configure
308
+ services = [
309
+ "user-management-backend",
310
+ "order-management-backend",
311
+ "payment-management-backend",
312
+ ]
313
+
314
+ # Configure all services
315
+ for service in services:
316
+ # Get predefined configuration
317
+ config = Secrets.configure_predefined_service(service)
318
+
319
+ if config:
320
+ # Use in docker_compose
321
+ docker_compose("services/{}/docker-compose.yml".format(service))
322
+ dc_resource(
323
+ service,
324
+ env=config["docker_compose"]["environment"],
325
+ labels=["backend"],
326
+ )
327
+
328
+ # Or configure all at once
329
+ all_configs = Secrets.configure_all_predefined_services()
330
+ ```
331
+
332
+ ## Testing
333
+
334
+ ### Validate Paths
335
+
336
+ ```starlark
337
+ # Validate a custom path
338
+ result = Infisical.Paths.validate_path("/services/my-service")
339
+ print(result["valid"]) # True/False
340
+ print(result["errors"]) # [] or [error messages]
341
+ print(result["normalized"]) # Normalized path
342
+ ```
343
+
344
+ ### Validate Machine Identity
345
+
346
+ ```starlark
347
+ # Check auth method
348
+ result = Infisical.Identity.validate_auth_method("universal-auth")
349
+ print(result["valid"]) # True
350
+ print(result["supported"]) # True
351
+ print(result["deprecated"]) # False
352
+ ```
353
+
354
+ ## File Structure
355
+
356
+ ```
357
+ tdk-cli/engine/topologies/
358
+ ├── tilt/generators/infisical/
359
+ │ ├── index.star # Master module export
360
+ │ ├── secrets_generator.star # Secret injection config
361
+ │ ├── path_manager.star # Path/folder management
362
+ │ ├── machine_identity.star # Machine ID configuration
363
+ │ ├── organization.star # Org setup templates
364
+ │ └── examples.star # Usage examples
365
+ │
366
+ └── platform/docker/layers/infisical/
367
+ ├── index.star # Docker layers index
368
+ └── infisical_docker.star # Dockerfile generation
369
+ ```
370
+
371
+ ## Best Practices
372
+
373
+ 1. **Use Predefined Services**: When possible, use `Secrets.PREDEFINED_RESOURCES` instead of manual configuration.
374
+
375
+ 2. **Validate Early**: Always validate paths and configurations before using them:
376
+ ```starlark
377
+ validation = Infisical.Paths.validate_path(path)
378
+ if not validation["valid"]:
379
+ fail("Invalid path: " + str(validation["errors"]))
380
+ ```
381
+
382
+ 3. **Don't Hardcode Secrets**: Always use generators for secret paths and never hardcode secret values.
383
+
384
+ 4. **Batch Configuration**: Use `generate_for_services_batch()` when configuring multiple services.
385
+
386
+ 5. **Environment Separation**: Use different configurations for dev/staging/prod:
387
+ ```starlark
388
+ if environment == "prod":
389
+ config = Infisical.Identity.generate_production_machine(...)
390
+ else:
391
+ config = Infisical.Identity.generate_development_machine(...)
392
+ ```
393
+
394
+ ## Troubleshooting
395
+
396
+ ### Path Validation Failures
397
+
398
+ ```starlark
399
+ result = Infisical.Paths.validate_path("/invalid/path with spaces")
400
+ # Returns: {"valid": False, "errors": ["Invalid characters: [' ']"]}
401
+ ```
402
+
403
+ Fix: Use the path normalizer
404
+ ```starlark
405
+ normalized = Infisical.Paths.normalize_path("/invalid/path with spaces")
406
+ # Returns: "/invalid/path-with-spaces"
407
+ ```
408
+
409
+ ### Unknown Service
410
+
411
+ ```starlark
412
+ path = Infisical.Paths.get_known_resource_path("unknown-service")
413
+ # Returns: None
414
+
415
+ # Solution: Plan a new path
416
+ plan = Infisical.Paths.plan_resource_path("unknown-service")
417
+ path = plan["full_path"] # "/services/unknown-service"
418
+ ```
419
+
420
+ ## See Also
421
+
422
+ - `examples.star` - Complete usage examples
423
+ - `SECRETS_SETUP_COMPLETE.md` - Infisical setup documentation
424
+ - `MACHINE_IDENTITY.md` - Machine identity setup guide