@tdk-landscape/tdk-cli-core 1.3.38 → 1.3.40

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 (40) hide show
  1. package/dist/commands/doctor.d.ts +2 -0
  2. package/dist/commands/doctor.d.ts.map +1 -1
  3. package/dist/commands/doctor.js +104 -8
  4. package/dist/commands/doctor.js.map +1 -1
  5. package/dist/generator/extension-fetch.d.ts +7 -0
  6. package/dist/generator/extension-fetch.d.ts.map +1 -1
  7. package/dist/generator/extension-fetch.js +40 -21
  8. package/dist/generator/extension-fetch.js.map +1 -1
  9. package/dist/generator/template-engine.d.ts.map +1 -1
  10. package/dist/generator/template-engine.js +40 -15
  11. package/dist/generator/template-engine.js.map +1 -1
  12. package/dist/types/index.d.ts +6 -0
  13. package/dist/types/index.d.ts.map +1 -1
  14. package/dist/types/index.js.map +1 -1
  15. package/dist/utils/docker.d.ts +3 -2
  16. package/dist/utils/docker.d.ts.map +1 -1
  17. package/dist/utils/docker.js +12 -6
  18. package/dist/utils/docker.js.map +1 -1
  19. package/dist/utils/errors.d.ts +1 -0
  20. package/dist/utils/errors.d.ts.map +1 -1
  21. package/dist/utils/errors.js +10 -2
  22. package/dist/utils/errors.js.map +1 -1
  23. package/dist/utils/port-assignment.d.ts.map +1 -1
  24. package/dist/utils/port-assignment.js +6 -0
  25. package/dist/utils/port-assignment.js.map +1 -1
  26. package/dist/utils/resource-features.d.ts.map +1 -1
  27. package/dist/utils/resource-features.js +12 -0
  28. package/dist/utils/resource-features.js.map +1 -1
  29. package/dist/utils/tilt.d.ts +1 -0
  30. package/dist/utils/tilt.d.ts.map +1 -1
  31. package/dist/utils/tilt.js +2 -1
  32. package/dist/utils/tilt.js.map +1 -1
  33. package/engine/schemas/service-schema.json +20 -0
  34. package/engine/topologies/platform/docker/compose/traefik_standalone.star +20 -0
  35. package/engine/topologies/platform/docker/networking/sablier_container_cycle.star +25 -23
  36. package/engine/topologies/platform/docker/networking/traefik.star +10 -20
  37. package/engine/topologies/platform/registries/verdaccio_loader.star +18 -0
  38. package/engine/topologies/tilt/manifest/schema.star +29 -1
  39. package/engine/topologies/tilt/resources/infra-loader.star +5 -31
  40. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAEzF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9F,eAAO,MAAM,wBAAwB,YAAI,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAEnF,MAAM,MAAM,qBAAqB,GAAG,OAAO,CACzC,YAAY,EACZ,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAC1C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAItF;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,aAAa,EAAE,iBAAiB,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,iBAAiB,CAAC;IACjC,WAAW,EAAE,eAAe,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC;CAAG;AACtD,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;CAAG;AAEhE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,SAAS,EAAE,sBAAsB,CAAC;QAClC,KAAK,EAAE,sBAAsB,CAAC;QAC9B,IAAI,EAAE,sBAAsB,CAAC;QAC7B,YAAY,EAAE,sBAAsB,CAAC;KACtC,CAAC;IACF,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,4BAA4B,CAAC;QACxC,KAAK,EAAE,4BAA4B,CAAC;QACpC,IAAI,EAAE,4BAA4B,CAAC;QACnC,YAAY,EAAE,4BAA4B,CAAC;KAC5C,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,EAAE,oBAAoB,CAAC;IACrC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,UAAU,CAAC,QAAQ,CAAC,GACpB,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,SAAS,GACT,UAAU,GACV,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAMD,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,CAAC;CACzB;AAMD,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAC9C,qBAAqB,EACrB,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAC/C,CAAC;AAMF,MAAM,MAAM,oBAAoB,GAC5B,sBAAsB,GACtB,6BAA6B,GAC7B,aAAa,CAAC;AAElB;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,IAAI,oBAAoB,CAOzF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AA4DA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAOnF,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAK,wBAA8C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC7F,CAAC;AACJ,CAAC;AAsQD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAsB;QACpC,sBAAsB;QACtB,6BAA6B;QAC7B,aAAa;KACd,CAAC;IACF,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAkEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAOnF,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAK,wBAA8C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC7F,CAAC;AACJ,CAAC;AAsQD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAsB;QACpC,sBAAsB;QACtB,6BAA6B;QAC7B,aAAa;KACd,CAAC;IACF,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC"}
@@ -1,3 +1,4 @@
1
- /** True if Docker, Colima, or Podman is installed and its daemon is reachable. */
2
- export declare function isDockerAvailable(): boolean;
1
+ export type ContainerRuntimeStatus = "running" | "unresponsive" | "missing";
2
+ /** Whether Docker, Colima, or Podman is reachable, hung, or absent. */
3
+ export declare function getContainerRuntimeStatus(): ContainerRuntimeStatus;
3
4
  //# sourceMappingURL=docker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/utils/docker.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C"}
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/utils/docker.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAAC;AAE5E,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,sBAAsB,CAWlE"}
@@ -1,13 +1,19 @@
1
1
  import { execSync } from "node:child_process";
2
- /** True if Docker, Colima, or Podman is installed and its daemon is reachable. */
3
- export function isDockerAvailable() {
2
+ // A wedged daemon makes `docker ps` block forever instead of failing.
3
+ const RUNTIME_CHECK_TIMEOUT_MS = 10_000;
4
+ /** Whether Docker, Colima, or Podman is reachable, hung, or absent. */
5
+ export function getContainerRuntimeStatus() {
6
+ let sawTimeout = false;
4
7
  for (const command of ["docker ps", "colima status", "podman ps"]) {
5
8
  try {
6
- execSync(command, { stdio: "ignore" });
7
- return true;
9
+ execSync(command, { stdio: "ignore", timeout: RUNTIME_CHECK_TIMEOUT_MS });
10
+ return "running";
11
+ }
12
+ catch (err) {
13
+ if (err.code === "ETIMEDOUT")
14
+ sawTimeout = true;
8
15
  }
9
- catch { }
10
16
  }
11
- return false;
17
+ return sawTimeout ? "unresponsive" : "missing";
12
18
  }
13
19
  //# sourceMappingURL=docker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/utils/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,kFAAkF;AAClF,MAAM,UAAU,iBAAiB;IAC/B,KAAK,MAAM,OAAO,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC;YACH,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/utils/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,sEAAsE;AACtE,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAIxC,uEAAuE;AACvE,MAAM,UAAU,yBAAyB;IACvC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,OAAO,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC;YACH,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAC1E,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,WAAW;gBAAE,UAAU,GAAG,IAAI,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC"}
@@ -11,6 +11,7 @@ declare class TdkError extends Error {
11
11
  export declare const errorFactories: {
12
12
  tiltNotInstalled: () => TdkError;
13
13
  dockerNotAvailable: () => TdkError;
14
+ dockerNotResponding: () => TdkError;
14
15
  stackNotFound: (name: string) => TdkError;
15
16
  resourceNotFound: (name: string) => TdkError;
16
17
  directoryExists: (path: string) => TdkError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAK/D;AAED,cAAM,QAAS,SAAQ,KAAK;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IAExB,YAAY,OAAO,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,EAAO,EAAE,QAAQ,GAAE,MAAU,EAK5E;IAED,OAAO,IAAI,IAAI,CAEd;IAED,kEAAkE;IAClE,IAAI,IAAI,KAAK,CAGZ;CACF;AAED,eAAO,MAAM,cAAc;IACzB,gBAAgB;IAOhB,kBAAkB;IAOlB,aAAa,SAAS,MAAM;IAK5B,gBAAgB,SAAS,MAAM;IAK/B,eAAe,SAAS,MAAM;IAK9B,WAAW,SAAS,MAAM;IAK1B,YAAY;CAKb,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,MAAM,CAQ3C;AAOD,wBAAsB,UAAU,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CASpB;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAoBpB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,KAAK,CAG7E;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAGjF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAK/D;AAED,cAAM,QAAS,SAAQ,KAAK;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IAExB,YAAY,OAAO,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,EAAO,EAAE,QAAQ,GAAE,MAAU,EAK5E;IAED,OAAO,IAAI,IAAI,CAEd;IAED,kEAAkE;IAClE,IAAI,IAAI,KAAK,CAGZ;CACF;AAED,eAAO,MAAM,cAAc;IACzB,gBAAgB;IAOhB,kBAAkB;IAOlB,mBAAmB;IAKnB,aAAa,SAAS,MAAM;IAK5B,gBAAgB,SAAS,MAAM;IAK/B,eAAe,SAAS,MAAM;IAK9B,WAAW,SAAS,MAAM;IAK1B,YAAY;CAKb,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,MAAM,CAQ3C;AAOD,wBAAsB,UAAU,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CASpB;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAuBpB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,KAAK,CAG7E;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAGjF"}
@@ -1,6 +1,6 @@
1
1
  import chalk from "chalk";
2
2
  import { QUICKSTART_DOCS_URL } from "./constants.js";
3
- import { isDockerAvailable } from "./docker.js";
3
+ import { getContainerRuntimeStatus } from "./docker.js";
4
4
  import { findProjectRoot } from "./paths.js";
5
5
  import { isTiltAvailable } from "./tilt.js";
6
6
  export function getErrorMessage(err) {
@@ -43,6 +43,10 @@ export const errorFactories = {
43
43
  "Or start the Docker service on Linux: `sudo systemctl start docker`",
44
44
  `Setup guide: ${QUICKSTART_DOCS_URL}`,
45
45
  ]),
46
+ dockerNotResponding: () => new TdkError("Docker is running but not responding (`docker ps` hung for 10s)", [
47
+ "Quit and reopen Docker Desktop, or run `colima restart`",
48
+ "Then verify with: `docker ps`",
49
+ ]),
46
50
  stackNotFound: (name) => new TdkError(`Stack "${name}" not found`, [
47
51
  "Run `tdk stacks` to see available stacks",
48
52
  "Run `tdk stack` to assign resources to a stack",
@@ -90,7 +94,11 @@ export async function runCommand(action, options) {
90
94
  }
91
95
  export async function withTiltCheck(action, options) {
92
96
  const problems = [];
93
- if (!isDockerAvailable()) {
97
+ const runtime = getContainerRuntimeStatus();
98
+ if (runtime === "unresponsive") {
99
+ problems.push(errorFactories.dockerNotResponding());
100
+ }
101
+ else if (runtime === "missing") {
94
102
  problems.push(errorFactories.dockerNotAvailable());
95
103
  }
96
104
  if (!(await isTiltAvailable())) {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"port-assignment.d.ts","sourceRoot":"","sources":["../../src/utils/port-assignment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAgBxF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CA0B9F;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAQzE;AAcD,wBAAgB,UAAU,CACxB,YAAY,EAAE,0BAA0B,EACxC,iBAAiB,EAAE,kBAAkB,EAAE,GACtC,MAAM,CAcR"}
1
+ {"version":3,"file":"port-assignment.d.ts","sourceRoot":"","sources":["../../src/utils/port-assignment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAuBxF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CA0B9F;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAQzE;AAcD,wBAAgB,UAAU,CACxB,YAAY,EAAE,0BAA0B,EACxC,iBAAiB,EAAE,kBAAkB,EAAE,GACtC,MAAM,CAcR"}
@@ -10,6 +10,12 @@ function isPortAvailable(port) {
10
10
  server.on("error", () => {
11
11
  resolve(true);
12
12
  });
13
+ // A connect that neither accepts nor refuses means something is holding
14
+ // the port (e.g. a firewall drop) - treat it as taken rather than wait.
15
+ server.setTimeout(1000, () => {
16
+ server.destroy();
17
+ resolve(false);
18
+ });
13
19
  });
14
20
  }
15
21
  export async function checkPortStatus(port) {
@@ -1 +1 @@
1
- {"version":3,"file":"port-assignment.js","sourceRoot":"","sources":["../../src/utils/port-assignment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"port-assignment.js","sourceRoot":"","sources":["../../src/utils/port-assignment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-features.d.ts","sourceRoot":"","sources":["../../src/utils/resource-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CAC5C;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAgJ7D,CAAC;AAEF;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAejF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,YAAY,GAAG,eAAe,EAAE,CAErF"}
1
+ {"version":3,"file":"resource-features.d.ts","sourceRoot":"","sources":["../../src/utils/resource-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CAC5C;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA+J7D,CAAC;AAEF;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAejF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,YAAY,GAAG,eAAe,EAAE,CAErF"}
@@ -134,6 +134,18 @@ export const RESOURCE_FEATURES = {
134
134
  generator_file: "engine/topologies/tilt/generators/vite/helpers.star, engine/topologies/tilt/generators/typescript/backend_tsconfig.star",
135
135
  output_file: ".autogenerated/vite.config.*.ts, .autogenerated/tsconfig.*.json",
136
136
  },
137
+ sablier: {
138
+ name: "sablier",
139
+ description: "On-demand scaling: stop this resource when idle, wake it on the next request via a " +
140
+ "`sablier: {enable: true}` manifest block (not the featuresEnabled array) " +
141
+ "(Premium - requires TDK_LICENSE_KEY; free tier writes a disabled stub; see " +
142
+ "hasSablierLicense() in extension-fetch.ts KNOWN_RESOURCES/PREMIUM_PATH_MAP)",
143
+ applies_to: ["backend", "frontend"],
144
+ enabled_by_default: false,
145
+ category: "premium",
146
+ generator_file: "engine/topologies/platform/docker/networking/sablier_container_cycle.star (stub; real generator in tdk-cli-extensions/premium/networking/), engine/topologies/platform/docker/networking/traefik.star",
147
+ output_file: "(Traefik + Sablier Docker labels on the resource's own compose service, no autogenerated file)",
148
+ },
137
149
  };
138
150
  /**
139
151
  * Get default features for a resource type
@@ -1 +1 @@
1
- {"version":3,"file":"resource-features.js","sourceRoot":"","sources":["../../src/utils/resource-features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-features.js","sourceRoot":"","sources":["../../src/utils/resource-features.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare function runTilt(command: string, args?: string[], options?: {
3
3
  verbose?: boolean;
4
4
  quiet?: boolean;
5
5
  inheritStdio?: boolean;
6
+ timeoutMs?: number;
6
7
  }): Promise<TiltCommandResult>;
7
8
  export declare function isTiltAvailable(): Promise<boolean>;
8
9
  export declare function getTiltfilePath(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"tilt.d.ts","sourceRoot":"","sources":["../../src/utils/tilt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,GACL,OAAO,CAAC,iBAAiB,CAAC,CAsC5B;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAQxD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAOD,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,MAAM,EAAE,CAcV;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,EAAE,CAS7E"}
1
+ {"version":3,"file":"tilt.d.ts","sourceRoot":"","sources":["../../src/utils/tilt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,iBAAiB,CAAC,CAuC5B;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAQxD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAOD,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,MAAM,EAAE,CAcV;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,EAAE,CAS7E"}
@@ -10,6 +10,7 @@ export function runTilt(command, args = [], options = {}) {
10
10
  const child = spawn("tilt", tiltArgs, {
11
11
  stdio: options.inheritStdio ? "inherit" : "pipe",
12
12
  shell: false,
13
+ timeout: options.timeoutMs,
13
14
  });
14
15
  let stdout = "";
15
16
  let stderr = "";
@@ -35,7 +36,7 @@ export function runTilt(command, args = [], options = {}) {
35
36
  }
36
37
  export async function isTiltAvailable() {
37
38
  try {
38
- const result = await runTilt("version", [], { inheritStdio: false });
39
+ const result = await runTilt("version", [], { inheritStdio: false, timeoutMs: 10_000 });
39
40
  return result.exitCode === 0;
40
41
  }
41
42
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"tilt.js","sourceRoot":"","sources":["../../src/utils/tilt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tilt.js","sourceRoot":"","sources":["../../src/utils/tilt.ts"],"names":[],"mappings":"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"}
@@ -265,6 +265,26 @@
265
265
  ],
266
266
  "type": "string"
267
267
  },
268
+ "sablier": {
269
+ "description": "On-demand scaling: stop this container when idle, wake it on the next request.\nNot recommended for databases or other stateful resources with in-flight writes.\n(Premium - requires TDK_LICENSE_KEY; see hasSablierLicense() in extension-fetch.ts)",
270
+ "properties": {
271
+ "enable": {
272
+ "default": false,
273
+ "description": "Scale this resource to zero when idle",
274
+ "type": "boolean"
275
+ },
276
+ "group": {
277
+ "description": "Resources sharing a group wake and sleep together. Defaults to `stack`.",
278
+ "type": "string"
279
+ },
280
+ "sessionDuration": {
281
+ "default": "10m",
282
+ "description": "How long the resource stays up after its last request (Go duration, e.g. \"10m\", \"1h\").",
283
+ "type": "string"
284
+ }
285
+ },
286
+ "type": "object"
287
+ },
268
288
  "syncs": {
269
289
  "description": "Directories to sync for hot-reload.\nAuto-computed if not specified:\nâ€ĸ backend: ['src', 'prisma']\nâ€ĸ frontend: ['src', 'public']",
270
290
  "items": {
@@ -22,6 +22,8 @@ services:
22
22
  image: traefik:v3.6.8
23
23
  container_name: {name}_traefik
24
24
  restart: unless-stopped
25
+ depends_on:
26
+ - sablier
25
27
  command:
26
28
  - "--api.insecure=true"
27
29
  - "--ping=true"
@@ -32,6 +34,11 @@ services:
32
34
  - "--entrypoints.web.address=:80"
33
35
  - "--entrypoints.websecure.address=:443"
34
36
  - "--log.level=INFO"
37
+ # On-demand scaling: routes to stopped containers (opt-in via a
38
+ # resource's `sablier:` manifest block), keeps idle services from
39
+ # burning memory. Requires Traefik >=3.6 (see allownonrunning below).
40
+ - "--experimental.plugins.sablier.moduleName=github.com/sablierapp/sablier-traefik-plugin"
41
+ - "--experimental.plugins.sablier.version=v1.3.1"
35
42
  ports:
36
43
  - "80:80"
37
44
  - "8080:8080"
@@ -46,6 +53,19 @@ services:
46
53
  retries: 6
47
54
  start_period: 10s
48
55
 
56
+ sablier:
57
+ image: sablierapp/sablier:1.18.0
58
+ container_name: {name}_sablier
59
+ restart: unless-stopped
60
+ command:
61
+ - "start"
62
+ - "--provider.name=docker"
63
+ volumes:
64
+ # Read-write: Sablier stops/starts containers via the Docker API.
65
+ - /var/run/docker.sock:/var/run/docker.sock
66
+ networks:
67
+ - traefik-public
68
+
49
69
  networks:
50
70
  traefik-public:
51
71
  name: {network}
@@ -1,27 +1,29 @@
1
- def _sablier_middleware_suffix(manifest):
2
- """Return (middleware_suffix, group, enabled) for a manifest's Sablier block.
1
+ # =============================================================================
2
+ # On-demand scaling: Sablier + Traefik (free-tier stub)
3
+ # =============================================================================
4
+ # Path: engine/topologies/platform/docker/networking/sablier_container_cycle.star
5
+ # =============================================================================
6
+ # The real generator (Sablier + Traefik label wiring that stops idle
7
+ # containers and wakes them on the next request) is part of a paid TDK
8
+ # license. When a valid license grants the "sablier" resource,
9
+ # cli/src/generator/template-engine.ts (vendorTdkExtension) overwrites this
10
+ # file with the licensed version fetched via extension-fetch.ts before Tilt
11
+ # loads it. Same function signatures either way, so nothing else in the
12
+ # generator pipeline changes -- every call site just gets "disabled" back
13
+ # for a manifest's `sablier` block until then.
14
+ # =============================================================================
3
15
 
4
- When a workload opts in via a `sablier` block, it is fronted by the file-provider
5
- middleware `sablier-<group>@file` (defined in the platform proxy dynamic config).
6
- The leading comma lets callers append the suffix to an existing middlewares list.
7
- """
8
- sablier_cfg = manifest.get('sablier', {}) if manifest else {}
9
- if not sablier_cfg.get('enable', False):
10
- return "", "", False
11
- group = sablier_cfg.get('group', manifest.get('stack', '') if manifest else '')
12
- if not group:
13
- return ",sablier-base@file", "", True
14
- return ",sablier-" + group + "@file", group, True
15
16
 
17
+ def _sablier_config(_manifest):
18
+ """Free-tier stub - see module header. Always disabled."""
19
+ return False, "", ""
16
20
 
17
- def _sablier_container_labels(group, indent):
18
- """Container labels that let Sablier discover, wake, and stop this workload.
19
21
 
20
- `traefik.docker.allownonrunning=true` keeps the router registered while the
21
- container is stopped, so the next request can trigger the wake.
22
- """
23
- lines = [indent + '- "sablier.enable=true"']
24
- if group:
25
- lines.append(indent + '- "sablier.group=' + group + '"')
26
- lines.append(indent + '- "traefik.docker.allownonrunning=true"')
27
- return "\n" + "\n".join(lines)
22
+ def _sablier_middleware_suffix(_manifest, _res_name):
23
+ """Free-tier stub - see module header. Always disabled."""
24
+ return "", False
25
+
26
+
27
+ def _sablier_container_labels(_manifest, _res_name, _indent):
28
+ """Free-tier stub - see module header. No labels to add."""
29
+ return ""
@@ -31,21 +31,10 @@ load("./traefik_helpers.star",
31
31
  "get_api_path",
32
32
  "project_backend_rule",
33
33
  )
34
- # load("./sablier_container_cycle.star",
35
- # "_sablier_middleware_suffix",
36
- # "_sablier_container_labels",
37
- # )
38
-
39
- def _sablier_middleware_suffix(_):
40
- # Stub: no Sablier middleware needed
41
- return "", "", False
42
-
43
- def _sablier_container_labels(_, __):
44
- # Stub: no extra labels needed
45
- return ""
46
-
47
-
48
- # Sablier functions imported from sablier_container_cycle.star
34
+ load("./sablier_container_cycle.star",
35
+ "_sablier_middleware_suffix",
36
+ "_sablier_container_labels",
37
+ )
49
38
 
50
39
 
51
40
  def get_frontend_traefik_labels(res_name, domain, base_path, port, traefik_host=None, manifest=None):
@@ -66,7 +55,7 @@ def get_frontend_traefik_labels(res_name, domain, base_path, port, traefik_host=
66
55
  maintenance_middleware = ",maintenance@file"
67
56
 
68
57
  # On-demand scaling: attach the Sablier middleware when opted in via the manifest
69
- sablier_middleware, sablier_group, sablier_enabled = _sablier_middleware_suffix(manifest)
58
+ sablier_middleware, sablier_enabled = _sablier_middleware_suffix(manifest, res_name)
70
59
 
71
60
  labels = """ - "{traefik_enable_label}"
72
61
  - 'traefik.http.routers.{res_name}.rule={frontend_route_rule}'
@@ -90,7 +79,7 @@ def get_frontend_traefik_labels(res_name, domain, base_path, port, traefik_host=
90
79
  )
91
80
 
92
81
  if sablier_enabled:
93
- labels += _sablier_container_labels(sablier_group, " ")
82
+ labels += _sablier_container_labels(manifest, res_name, " ")
94
83
 
95
84
  return labels
96
85
 
@@ -118,7 +107,7 @@ def get_backend_traefik_labels(
118
107
  maintenance_middleware = ",maintenance@file"
119
108
 
120
109
  # On-demand scaling: attach the Sablier middleware when opted in via the manifest
121
- sablier_middleware, sablier_group, sablier_enabled = _sablier_middleware_suffix(manifest)
110
+ sablier_middleware, sablier_enabled = _sablier_middleware_suffix(manifest, resource_entry_name)
122
111
 
123
112
  # Build middleware config only if traefik_path is not empty
124
113
  if traefik_path:
@@ -161,7 +150,7 @@ def get_backend_traefik_labels(
161
150
 
162
151
  # Emit Sablier discovery labels so the Sablier container can wake/stop this workload
163
152
  if sablier_enabled:
164
- labels += _sablier_container_labels(sablier_group, " ")
153
+ labels += _sablier_container_labels(manifest, resource_entry_name, " ")
165
154
 
166
155
  # Generate project localhost routing to match `tdk up` URLs:
167
156
  # http://api.{project}.localhost/api/{resource-name}
@@ -204,7 +193,7 @@ def get_backend_traefik_labels(
204
193
  - "traefik.http.routers.{resource_entry_name}-management.rule=Host(`{api_host}`) && PathPrefix(`{management_path}`)"
205
194
  - "traefik.http.routers.{resource_entry_name}-management.entrypoints={project_entrypoints}"
206
195
  - "traefik.http.routers.{resource_entry_name}-management.service={traefik_resource_name}"
207
- - "traefik.http.routers.{resource_entry_name}-management.middlewares={middleware_name}-management"
196
+ - "traefik.http.routers.{resource_entry_name}-management.middlewares={middleware_name}-management{sablier_middleware}"
208
197
  - "traefik.http.middlewares.{middleware_name}-management.stripprefix.prefixes={management_path}"
209
198
  - "traefik.http.routers.{resource_entry_name}-management.priority={mgmt_priority}"
210
199
  """.format(
@@ -214,6 +203,7 @@ def get_backend_traefik_labels(
214
203
  management_path=management_path,
215
204
  project_entrypoints=project_entrypoints,
216
205
  middleware_name=middleware_name,
206
+ sablier_middleware=sablier_middleware,
217
207
  mgmt_priority=TRAEFIK_FRONTEND_PRIORITY_BASE + len(management_path),
218
208
  )
219
209
 
@@ -0,0 +1,18 @@
1
+ # =============================================================================
2
+ # đŸ“Ļ VERDACCIO (NPM Registry) - loader (free-tier stub)
3
+ # =============================================================================
4
+ # Path: engine/topologies/platform/registries/verdaccio_loader.star
5
+ # =============================================================================
6
+ # The real loader (stands up the Verdaccio private npm registry container and
7
+ # wires it into the project's Docker network) is part of a paid TDK license.
8
+ # When a valid license grants the "verdaccio" resource,
9
+ # cli/src/generator/template-engine.ts (vendorTdkExtension) overwrites this
10
+ # file with the licensed version fetched via extension-fetch.ts before Tilt
11
+ # loads it. Same function signature either way, so nothing else in the
12
+ # loader pipeline changes.
13
+ # =============================================================================
14
+
15
+
16
+ def load_verdaccio(_should_enable, _root_prefix="", _env_file=None):
17
+ """Free-tier stub - see module header. Always skipped."""
18
+ print("â„šī¸ Verdaccio skipped — requires a TDK Premium license (run `tdk upgrade`)")
@@ -8,7 +8,7 @@
8
8
 
9
9
  # === INLINED CONSTANTS for pure extension loading ===
10
10
  VALID_STACKS = () # Stacks are project-specific, discovered dynamically
11
- VALID_FEATURES = "api-client", "env-config", "api-index", "prisma", "ddd", "nats", "redis", "infisical", "vitest", "traefik", "websocket", "graphql", "grpc", "vite-node", "maintenance"
11
+ VALID_FEATURES = "api-client", "env-config", "api-index", "prisma", "ddd", "nats", "redis", "infisical", "vitest", "traefik", "websocket", "graphql", "grpc", "vite-node", "maintenance", "sablier"
12
12
  PORT_RANGES = {"frontend": {"min": 3000, "max": 5999}, "backend": {"min": 4000, "max": 5999}, "worker": {"min": 6000, "max": 6999}, "migrator": {"min": 7000, "max": 7999}, "sdk": {"min": 3000, "max": 9999}, "library": {"min": 3000, "max": 9999}}
13
13
  RUNTIME = "bun"
14
14
  TRAEFIK_CONFIG = {"entrypoint": "web", "network": "traefik-public", "default_host": "localhost", "default_port": 8080, "tls_enabled": False, "entrypoints": ["web"], "middlewares": [], "tls": {"enabled": False}, "healthcheck_path": "/health", "healthcheck_interval": "10s", "healthcheck_timeout": "5s", "frontend_priority_base": 100}
@@ -252,6 +252,34 @@ MANIFEST_SCHEMA = {
252
252
  },
253
253
  'description': 'Traefik reverse proxy configuration',
254
254
  },
255
+
256
+ # Sablier Configuration (on-demand start/stop for idle resources)
257
+ 'sablier': {
258
+ 'type': 'dict',
259
+ 'required': False,
260
+ 'schema': {
261
+ 'enable': {
262
+ 'type': 'boolean',
263
+ 'required': False,
264
+ 'default': False,
265
+ 'description': 'Scale this resource to zero when idle; Sablier wakes it on the next request',
266
+ },
267
+ 'group': {
268
+ 'type': 'string',
269
+ 'required': False,
270
+ 'description': 'Resources sharing a group wake and sleep together (defaults to `stack`)',
271
+ 'example': 'restaurant',
272
+ },
273
+ 'sessionDuration': {
274
+ 'type': 'string',
275
+ 'required': False,
276
+ 'default': '10m',
277
+ 'description': 'How long the resource stays up after its last request, as a Go duration (e.g. "10m", "1h")',
278
+ 'example': '10m',
279
+ },
280
+ },
281
+ '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)',
282
+ },
255
283
  }
256
284
 
257
285
  # Cross-field validation constraints
@@ -20,6 +20,7 @@
20
20
 
21
21
  load("../../platform/docker/constants.star", "PlatformDockerConstants")
22
22
  load("../../platform/docker/compose/traefik_standalone.star", "generate_standalone_traefik_compose")
23
+ load("../../platform/registries/verdaccio_loader.star", "load_verdaccio")
23
24
 
24
25
  # =============================================================================
25
26
  # đŸ—ƒī¸ DATABASE MANAGEMENT
@@ -129,38 +130,11 @@ def _load_database_management(should_enable, root_prefix="", env_file=None, writ
129
130
  # =============================================================================
130
131
  # đŸ“Ļ VERDACCIO (NPM Registry)
131
132
  # =============================================================================
133
+ # Loader lives in ../../platform/registries/verdaccio_loader.star (a free-tier
134
+ # stub in this public repo; the paid CLI overlay swaps it for the real loader
135
+ # — see that module's header comment).
132
136
 
133
- def _load_verdaccio(should_enable, root_prefix="", env_file=None):
134
- """Load Verdaccio private npm registry (premium feature — requires TDK_LICENSE_KEY)."""
135
- # Verdaccio is a premium feature. Skip entirely when no license key is set.
136
- if not os.environ.get("TDK_LICENSE_KEY", ""):
137
- print("â„šī¸ Verdaccio skipped — TDK_LICENSE_KEY not set (premium feature)")
138
- return
139
- if not should_enable(PlatformDockerConstants.VERDACCIO_RESOURCE_NAME):
140
- print("DEBUG INFRA: Verdaccio not enabled")
141
- return
142
-
143
- # Use absolute path for docker-compose to ensure correct working directory
144
- if root_prefix:
145
- compose_file = root_prefix + 'docker-compose.verdaccio.yml'
146
- else:
147
- # Use project root from environment or relative path
148
- project_root = os.environ.get('TDK_PROJECT_ROOT', '.')
149
- compose_file = project_root + '/docker-compose.verdaccio.yml'
150
- if not _file_exists(compose_file):
151
- print("DEBUG INFRA: Skipping Verdaccio (compose file not found)")
152
- return
153
- print("DEBUG INFRA: Loading Verdaccio from {} with env_file={}".format(compose_file, env_file))
154
- _docker_compose(compose_file, env_file)
155
- print("DEBUG INFRA: Calling dc_resource for verdaccio")
156
- dc_resource(PlatformDockerConstants.VERDACCIO_RESOURCE_NAME, labels=['infra.tools', 'registry'], resource_deps=['init-networks'], auto_init=True)
157
- print("DEBUG INFRA: dc_resource for verdaccio completed")
158
- local_resource(PlatformDockerConstants.VERDACCIO_CONNECT_NETWORK_RESOURCE,
159
- cmd='docker network connect ' + PlatformDockerConstants.NETWORK_BACKEND + ' ' + PlatformDockerConstants.VERDACCIO_CONTAINER_NAME + ' 2>/dev/null || true',
160
- labels=['infra.tools', 'registry'],
161
- resource_deps=[PlatformDockerConstants.VERDACCIO_RESOURCE_NAME, 'init-networks'],
162
- auto_init=True
163
- )
137
+ _load_verdaccio = load_verdaccio
164
138
 
165
139
 
166
140
  # =============================================================================