@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.
- package/CHANGELOG.md +492 -0
- package/LICENSE +21 -0
- package/README.md +479 -2
- package/Tiltfile +151 -0
- package/cli/bin/flisk.js +42 -0
- package/cli/dist/agent-runtimes/custom.js +335 -0
- package/cli/dist/agent-runtimes/registry.js +34 -0
- package/cli/dist/backend-frameworks/elysia.js +38 -0
- package/cli/dist/backend-frameworks/express.js +49 -0
- package/cli/dist/backend-frameworks/fastify.js +43 -0
- package/cli/dist/backend-frameworks/h3.js +37 -0
- package/cli/dist/backend-frameworks/koa.js +47 -0
- package/cli/dist/backend-frameworks/mcp.js +86 -0
- package/cli/dist/backend-frameworks/nestjs.js +55 -0
- package/cli/dist/backend-frameworks/registry.js +134 -0
- package/cli/dist/backend-frameworks/types.js +1 -0
- package/cli/dist/backend-languages/bun.js +76 -0
- package/cli/dist/backend-languages/go.js +125 -0
- package/cli/dist/backend-languages/node.js +122 -0
- package/cli/dist/backend-languages/python.js +94 -0
- package/cli/dist/backend-languages/registry.js +37 -0
- package/cli/dist/backend-languages/rust.js +82 -0
- package/cli/dist/backend-languages/types.js +1 -0
- package/cli/dist/cli.js +29 -0
- package/cli/dist/commands/__tests__/project-e2e-helpers.js +49 -0
- package/cli/dist/commands/__tests__/ui-loading-screen.test.js +16 -0
- package/cli/dist/commands/agent.js +182 -0
- package/cli/dist/commands/completion-candidates.js +116 -0
- package/cli/dist/commands/completion.js +843 -0
- package/cli/dist/commands/config.js +362 -0
- package/cli/dist/commands/doctor.js +1504 -0
- package/cli/dist/commands/down.js +114 -0
- package/cli/dist/commands/eject.js +108 -0
- package/cli/dist/commands/help.js +152 -0
- package/cli/dist/commands/import.js +164 -0
- package/cli/dist/commands/logs.js +119 -0
- package/cli/dist/commands/maintainers.js +102 -0
- package/cli/dist/commands/mcp.js +28 -0
- package/cli/dist/commands/networks.js +306 -0
- package/cli/dist/commands/project.js +447 -0
- package/cli/dist/commands/projects.js +103 -0
- package/cli/dist/commands/registry.js +53 -0
- package/cli/dist/commands/resource.js +992 -0
- package/cli/dist/commands/resources.js +127 -0
- package/cli/dist/commands/restart.js +89 -0
- package/cli/dist/commands/runtime.js +75 -0
- package/cli/dist/commands/stack.js +171 -0
- package/cli/dist/commands/stacks.js +71 -0
- package/cli/dist/commands/status.js +211 -0
- package/cli/dist/commands/ui.js +725 -0
- package/cli/dist/commands/up.js +609 -0
- package/cli/dist/commands/upgrade.js +840 -0
- package/cli/dist/commands/version.js +10 -0
- package/cli/dist/components/Accessible.js +11 -0
- package/cli/dist/components/BaseTooltip.js +30 -0
- package/cli/dist/components/DetailPanel.js +33 -0
- package/cli/dist/components/FileTree.js +51 -0
- package/cli/dist/components/ResourceSelectInput.js +42 -0
- package/cli/dist/components/ResourceTable.js +35 -0
- package/cli/dist/components/ServiceIssues.js +13 -0
- package/cli/dist/components/TUIHeader.js +27 -0
- package/cli/dist/components/TabBar.js +27 -0
- package/cli/dist/components/Tooltip.js +13 -0
- package/cli/dist/components/index.js +11 -0
- package/cli/dist/components/ui-theme.js +120 -0
- package/cli/dist/config/platform-standards.js +182 -0
- package/cli/dist/frontend-frameworks/lit.js +64 -0
- package/cli/dist/frontend-frameworks/preact.js +62 -0
- package/cli/dist/frontend-frameworks/qwik.js +61 -0
- package/cli/dist/frontend-frameworks/react.js +69 -0
- package/cli/dist/frontend-frameworks/registry.js +83 -0
- package/cli/dist/frontend-frameworks/solid.js +62 -0
- package/cli/dist/frontend-frameworks/svelte.js +67 -0
- package/cli/dist/frontend-frameworks/tanstack-router.js +101 -0
- package/cli/dist/frontend-frameworks/types.js +1 -0
- package/cli/dist/frontend-frameworks/vanilla.js +59 -0
- package/cli/dist/frontend-frameworks/vue.js +72 -0
- package/cli/dist/generator/__tests__/golden-helpers.js +43 -0
- package/cli/dist/generator/extension-fetch.js +291 -0
- package/cli/dist/generator/resource-templates.js +133 -0
- package/cli/dist/generator/template-engine.js +801 -0
- package/cli/dist/index.js +10 -0
- package/cli/dist/mcp/server.js +101 -0
- package/cli/dist/mcp/tools.js +351 -0
- package/cli/dist/program.js +37 -0
- package/cli/dist/types/index.js +38 -0
- package/cli/dist/utils/agent-host.js +36 -0
- package/cli/dist/utils/atomic-write.js +36 -0
- package/cli/dist/utils/bun-floor.js +9 -0
- package/cli/dist/utils/bun-requirement.js +10 -0
- package/cli/dist/utils/cache.js +63 -0
- package/cli/dist/utils/cold-preflight.js +257 -0
- package/cli/dist/utils/command-helpers.js +57 -0
- package/cli/dist/utils/constants.js +160 -0
- package/cli/dist/utils/discovery-context.js +71 -0
- package/cli/dist/utils/discovery-paths.js +93 -0
- package/cli/dist/utils/docker.js +34 -0
- package/cli/dist/utils/doctor-crashloop.js +161 -0
- package/cli/dist/utils/doctor-fix.js +391 -0
- package/cli/dist/utils/doctor-host.js +66 -0
- package/cli/dist/utils/doctor-report.js +78 -0
- package/cli/dist/utils/doctor-runtime.js +880 -0
- package/cli/dist/utils/doctor-starlark.js +132 -0
- package/cli/dist/utils/doctor-wiring.js +698 -0
- package/cli/dist/utils/down-cleanup.js +125 -0
- package/cli/dist/utils/env-validator.js +266 -0
- package/cli/dist/utils/errors.js +175 -0
- package/cli/dist/utils/exec-async.js +31 -0
- package/cli/dist/utils/file-helpers.js +104 -0
- package/cli/dist/utils/formatting.js +165 -0
- package/cli/dist/utils/generated-paths.js +51 -0
- package/cli/dist/utils/help-command.js +11 -0
- package/cli/dist/utils/host-port-config.js +140 -0
- package/cli/dist/utils/host-port-plan.js +100 -0
- package/cli/dist/utils/json-output.js +29 -0
- package/cli/dist/utils/machine-output.js +33 -0
- package/cli/dist/utils/paths.js +43 -0
- package/cli/dist/utils/platform.js +58 -0
- package/cli/dist/utils/port-assignment.js +75 -0
- package/cli/dist/utils/port-conflict-fix.js +25 -0
- package/cli/dist/utils/port-fallback-notice.js +17 -0
- package/cli/dist/utils/port-listener-probe.js +20 -0
- package/cli/dist/utils/project-config-defaults.js +17 -0
- package/cli/dist/utils/project-features.js +91 -0
- package/cli/dist/utils/project-templates.js +32 -0
- package/cli/dist/utils/prompt.js +97 -0
- package/cli/dist/utils/resource-features.js +184 -0
- package/cli/dist/utils/resource-kind.js +9 -0
- package/cli/dist/utils/schema-version-gate.js +45 -0
- package/cli/dist/utils/search-status.js +12 -0
- package/cli/dist/utils/secret-redaction.js +73 -0
- package/cli/dist/utils/service-config-checks.js +189 -0
- package/cli/dist/utils/service-manifest.js +254 -0
- package/cli/dist/utils/service-runtime-state.js +66 -0
- package/cli/dist/utils/service-urls.js +112 -0
- package/cli/dist/utils/services.js +360 -0
- package/cli/dist/utils/shared-infra.js +45 -0
- package/cli/dist/utils/shared-platform-postgres.js +232 -0
- package/cli/dist/utils/single-flight.js +21 -0
- package/cli/dist/utils/smoke.js +401 -0
- package/cli/dist/utils/spinner.js +40 -0
- package/cli/dist/utils/stack-features.js +15 -0
- package/cli/dist/utils/stack-status.js +14 -0
- package/cli/dist/utils/startup-report.js +78 -0
- package/cli/dist/utils/status-message.js +21 -0
- package/cli/dist/utils/status-ports.js +33 -0
- package/cli/dist/utils/suggestions.js +63 -0
- package/cli/dist/utils/tar.js +46 -0
- package/cli/dist/utils/tdk-version.js +51 -0
- package/cli/dist/utils/terminal-layout.js +19 -0
- package/cli/dist/utils/tilt-events.js +194 -0
- package/cli/dist/utils/tilt-logs.js +61 -0
- package/cli/dist/utils/tilt-port-owner.js +63 -0
- package/cli/dist/utils/tilt-process.js +54 -0
- package/cli/dist/utils/tilt-resource-state.js +32 -0
- package/cli/dist/utils/tilt-startup.js +49 -0
- package/cli/dist/utils/tilt-unreachable-message.js +9 -0
- package/cli/dist/utils/tilt.js +104 -0
- package/cli/dist/utils/ui-keymap.js +129 -0
- package/cli/dist/utils/ui-service-state.js +34 -0
- package/cli/dist/utils/up-only.js +28 -0
- package/cli/dist/utils/up-readiness.js +118 -0
- package/cli/dist/utils/url-actions.js +103 -0
- package/cli/dist/utils/validation.js +62 -0
- package/cli/dist/utils/which.js +56 -0
- package/cli/dist/utils/windows-doctor.js +176 -0
- package/cli/dist-bundle/chunk-6EA4DGCY.js +2 -0
- package/cli/dist-bundle/chunk-BZ4H7MM4.js +3 -0
- package/cli/dist-bundle/chunk-CLCUIDBH.js +510 -0
- package/cli/dist-bundle/cli.js +2017 -0
- package/cli/dist-bundle/cold-preflight-SY26O2IG.js +2 -0
- package/cli/dist-bundle/devtools-ZUHXW33W.js +5 -0
- package/cli/dist-bundle/extension-fetch-J4FFH7TJ.js +2 -0
- package/cli/package.json +83 -0
- package/cli/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +25 -0
- package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +466 -0
- package/cli/shared-platform-engineering/docker-templates/install-deps.sh +154 -0
- package/cli/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +14 -0
- package/cli/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +58 -0
- package/cli/templates/.tiltignore.hbs +72 -0
- package/cli/templates/TILT_RESOURCE_DEFAULTS.star.hbs +220 -0
- package/cli/templates/TILT_TECH_STACK.star.hbs +149 -0
- package/cli/templates/Tiltfile.hbs +381 -0
- package/cli/templates/spec.master.hbs +192 -0
- package/discovery/AGENTS.md +362 -0
- package/discovery/TILT_DISCOVERY.star +429 -0
- package/discovery/Tiltfile +58 -0
- package/discovery/config.star +265 -0
- package/discovery/constants.star +167 -0
- package/discovery/deterministic.star +213 -0
- package/discovery/discovery_daemon.star +193 -0
- package/discovery/discovery_orchestrator.star +492 -0
- package/discovery/filtering.star +7 -0
- package/discovery/identity-management-backend/service.yaml +26 -0
- package/discovery/identity-management-frontend/service.yaml +29 -0
- package/discovery/identity-sdk/service.yaml +9 -0
- package/discovery/incremental_discovery.star +215 -0
- package/discovery/indexing.star +9 -0
- package/discovery/json_manifest_scanner.star +57 -0
- package/discovery/libraries.star +48 -0
- package/discovery/loading.star +25 -0
- package/discovery/manifest/constants.star +106 -0
- package/discovery/manifest/loading.star +418 -0
- package/discovery/manifest/normalize.star +289 -0
- package/discovery/manifest/validation.star +110 -0
- package/discovery/normalization.star +13 -0
- package/discovery/registry.star +562 -0
- package/discovery/resource_snapshot.py +384 -0
- package/discovery/resource_snapshot.star +145 -0
- package/discovery/schemas.star +3 -0
- package/discovery/services/platform/cdc/debezium/nats-connector/service.yaml +9 -0
- package/discovery/services/platform/cdc/nats-http-bridge/service.yaml +9 -0
- package/discovery/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +26 -0
- package/discovery/services/platform/synthetic-monitor/service.yaml +9 -0
- package/discovery/test_resource_snapshot.py +253 -0
- package/discovery/validation.star +80 -0
- package/discovery/versioning.star +3 -0
- package/engine/AGENTS.md +706 -0
- package/engine/README.md +31 -0
- package/engine/REFACTORING_MANIFEST_SYSTEM.md +974 -0
- package/engine/Tiltfile +86 -0
- package/engine/assets/docker/golden-layers.Dockerfile +204 -0
- package/engine/assets/docker/wake-gateway/Dockerfile +28 -0
- package/engine/assets/docker/wake-gateway/decide.test.ts +177 -0
- package/engine/assets/docker/wake-gateway/decide.ts +135 -0
- package/engine/assets/docker/wake-gateway/server.ts +363 -0
- package/engine/assets/scripts/cleanup-completed-migrator-images.sh +39 -0
- package/engine/assets/scripts/cleanup-tilt-images.sh +122 -0
- package/engine/assets/scripts/mac-m1-resource-monitor.sh +123 -0
- package/engine/config.star +5 -0
- package/engine/entrypoint.star +101 -0
- package/engine/lifecycle/orchestrator.star +263 -0
- package/engine/paths.star +719 -0
- package/engine/schemas/project-schema.json +147 -0
- package/engine/schemas/service-schema.json +537 -0
- package/engine/scripts/README.md +89 -0
- package/engine/scripts/build-and-publish-lib.sh +207 -0
- package/engine/scripts/check-lib-publish.sh +87 -0
- package/engine/scripts/debug-container.sh +265 -0
- package/engine/scripts/generate-manifest.sh +200 -0
- package/engine/spec.master +702 -0
- package/engine/spec.master.example +341 -0
- package/engine/topologies/README.md +33 -0
- package/engine/topologies/platform/docker/AGENTS.md +59 -0
- package/engine/topologies/platform/docker/auth/auth.star +207 -0
- package/engine/topologies/platform/docker/build/frontend_build_plan.star +65 -0
- package/engine/topologies/platform/docker/build/golden_image.star +37 -0
- package/engine/topologies/platform/docker/build/golden_image_build.star +144 -0
- package/engine/topologies/platform/docker/build/golden_image_constants.star +100 -0
- package/engine/topologies/platform/docker/build/golden_image_dockerfile.star +263 -0
- package/engine/topologies/platform/docker/compose/compose.star +637 -0
- package/engine/topologies/platform/docker/compose/compose_helpers.star +54 -0
- package/engine/topologies/platform/docker/compose/traefik_standalone.star +171 -0
- package/engine/topologies/platform/docker/config/bunignore.star +144 -0
- package/engine/topologies/platform/docker/config/dockerignore.star +152 -0
- package/engine/topologies/platform/docker/config/healthcheck.star +58 -0
- package/engine/topologies/platform/docker/constants.star +211 -0
- package/engine/topologies/platform/docker/dockerfile/dockerfile.star +56 -0
- package/engine/topologies/platform/docker/dockerfile/language_dockerfile.star +264 -0
- package/engine/topologies/platform/docker/generators/golden_docker_generator_v2.star +76 -0
- package/engine/topologies/platform/docker/index.star +40 -0
- package/engine/topologies/platform/docker/layers/bun_helpers.star +25 -0
- package/engine/topologies/platform/docker/layers/infisical/index.star +42 -0
- package/engine/topologies/platform/docker/layers/infisical/infisical_docker.star +264 -0
- package/engine/topologies/platform/docker/layers/l1_base_layers.star +89 -0
- package/engine/topologies/platform/docker/layers/l2_dependency_layers.star +147 -0
- package/engine/topologies/platform/docker/layers/l3_builder_layers.star +229 -0
- package/engine/topologies/platform/docker/layers/l4_runtime_layers.star +282 -0
- package/engine/topologies/platform/docker/layers/prisma/constants.star +138 -0
- package/engine/topologies/platform/docker/layers/prisma/db_readiness.star +98 -0
- package/engine/topologies/platform/docker/layers/prisma/filesystem_setup.star +131 -0
- package/engine/topologies/platform/docker/layers/prisma/migrate_script.star +100 -0
- package/engine/topologies/platform/docker/layers/prisma/prisma_build.star +128 -0
- package/engine/topologies/platform/docker/layers/prisma/prisma_runtime.star +205 -0
- package/engine/topologies/platform/docker/layers/prisma/secret_resolution.star +121 -0
- package/engine/topologies/platform/docker/networking/api_path_constants.star +206 -0
- package/engine/topologies/platform/docker/networking/sablier_container_cycle.star +31 -0
- package/engine/topologies/platform/docker/networking/traefik.star +266 -0
- package/engine/topologies/platform/docker/networking/traefik_constants.star +148 -0
- package/engine/topologies/platform/docker/networking/traefik_helpers.star +162 -0
- package/engine/topologies/platform/docker/networking/traefik_static_routes.star +165 -0
- package/engine/topologies/platform/docker/secrets/env_secrets.star +74 -0
- package/engine/topologies/platform/docker/secrets/infisical.star +109 -0
- package/engine/topologies/platform/net/AGENTS.md +64 -0
- package/engine/topologies/platform/net/proxy.star +6 -0
- package/engine/topologies/platform/registries/local.star +6 -0
- package/engine/topologies/platform/registries/verdaccio_loader.star +20 -0
- package/engine/topologies/platform/security/AGENTS.md +49 -0
- package/engine/topologies/platform/security/secrets.star +241 -0
- package/engine/topologies/platform/state/AGENTS.md +64 -0
- package/engine/topologies/platform/state/relational.star +6 -0
- package/engine/topologies/tilt/common/AGENTS.md +59 -0
- package/engine/topologies/tilt/common/utils.star +409 -0
- package/engine/topologies/tilt/common/utils_debug.star +71 -0
- package/engine/topologies/tilt/common/utils_deterministic.star +170 -0
- package/engine/topologies/tilt/common/utils_docker_networks.star +54 -0
- package/engine/topologies/tilt/common/utils_env.star +92 -0
- package/engine/topologies/tilt/common/utils_output.star +99 -0
- package/engine/topologies/tilt/config/AGENTS.md +68 -0
- package/engine/topologies/tilt/config/defaults.star +5 -0
- package/engine/topologies/tilt/config/feature_flags.star +12 -0
- package/engine/topologies/tilt/config/global.star +57 -0
- package/engine/topologies/tilt/config/profiles.star +398 -0
- package/engine/topologies/tilt/generators/agents_md.star +64 -0
- package/engine/topologies/tilt/generators/api_gateway.star +147 -0
- package/engine/topologies/tilt/generators/index.star +126 -0
- package/engine/topologies/tilt/generators/infisical/README.md +424 -0
- package/engine/topologies/tilt/generators/infisical/examples.star +314 -0
- package/engine/topologies/tilt/generators/infisical/index.star +59 -0
- package/engine/topologies/tilt/generators/infisical/machine_identity.star +422 -0
- package/engine/topologies/tilt/generators/infisical/organization.star +536 -0
- package/engine/topologies/tilt/generators/infisical/path_manager.star +478 -0
- package/engine/topologies/tilt/generators/infisical/secrets_generator.star +422 -0
- package/engine/topologies/tilt/generators/nginx_conf.star +145 -0
- package/engine/topologies/tilt/generators/npmrc.star +132 -0
- package/engine/topologies/tilt/generators/tsconfig.star +25 -0
- package/engine/topologies/tilt/generators/typescript/backend_library_tsconfig.star +73 -0
- package/engine/topologies/tilt/generators/typescript/backend_tsconfig.star +137 -0
- package/engine/topologies/tilt/generators/typescript/common.star +9 -0
- package/engine/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +78 -0
- package/engine/topologies/tilt/generators/typescript/frontend_tsconfig.star +140 -0
- package/engine/topologies/tilt/generators/typescript/include.star +25 -0
- package/engine/topologies/tilt/generators/typescript/playwright_config.star +42 -0
- package/engine/topologies/tilt/generators/typescript/prisma_config.star +51 -0
- package/engine/topologies/tilt/generators/validators.star +868 -0
- package/engine/topologies/tilt/generators/vite/backend.star +80 -0
- package/engine/topologies/tilt/generators/vite/frameworks/lit.star +92 -0
- package/engine/topologies/tilt/generators/vite/frameworks/preact.star +94 -0
- package/engine/topologies/tilt/generators/vite/frameworks/qwik.star +94 -0
- package/engine/topologies/tilt/generators/vite/frameworks/react.star +128 -0
- package/engine/topologies/tilt/generators/vite/frameworks/solid.star +94 -0
- package/engine/topologies/tilt/generators/vite/frameworks/svelte.star +94 -0
- package/engine/topologies/tilt/generators/vite/frameworks/vanilla.star +92 -0
- package/engine/topologies/tilt/generators/vite/frameworks/vue.star +94 -0
- package/engine/topologies/tilt/generators/vite/frontend.star +153 -0
- package/engine/topologies/tilt/generators/vite/generators.star +45 -0
- package/engine/topologies/tilt/generators/vite/helpers.star +256 -0
- package/engine/topologies/tilt/generators/vite/library.star +67 -0
- package/engine/topologies/tilt/generators/vite/sdk.star +75 -0
- package/engine/topologies/tilt/generators/vite/templates.star +460 -0
- package/engine/topologies/tilt/generators/vite_config.star +24 -0
- package/engine/topologies/tilt/manifest/AGENTS.md +61 -0
- package/engine/topologies/tilt/manifest/README.md +679 -0
- package/engine/topologies/tilt/manifest/__init__.star +220 -0
- package/engine/topologies/tilt/manifest/constants.star +262 -0
- package/engine/topologies/tilt/manifest/errors.star +268 -0
- package/engine/topologies/tilt/manifest/integration.star +348 -0
- package/engine/topologies/tilt/manifest/json_to_yaml.py +61 -0
- package/engine/topologies/tilt/manifest/loader.star +239 -0
- package/engine/topologies/tilt/manifest/mapper.star +229 -0
- package/engine/topologies/tilt/manifest/parser.star +490 -0
- package/engine/topologies/tilt/manifest/schema.star +502 -0
- package/engine/topologies/tilt/manifest/tests/test_integration.star +278 -0
- package/engine/topologies/tilt/manifest/tests/test_loader_parser.star +475 -0
- package/engine/topologies/tilt/manifest/tests/test_manifest.star +319 -0
- package/engine/topologies/tilt/manifest/tests/test_validator.star +472 -0
- package/engine/topologies/tilt/manifest/validator.star +744 -0
- package/engine/topologies/tilt/manifest/yaml_to_json.py +20 -0
- package/engine/topologies/tilt/resources/AGENTS.md +71 -0
- package/engine/topologies/tilt/resources/build_concurrency.star +56 -0
- package/engine/topologies/tilt/resources/conditions.star +5 -0
- package/engine/topologies/tilt/resources/databases.star +246 -0
- package/engine/topologies/tilt/resources/declaration.star +5 -0
- package/engine/topologies/tilt/resources/deps.star +5 -0
- package/engine/topologies/tilt/resources/infra-loader.star +504 -0
- package/engine/topologies/tilt/resources/libs.star +32 -0
- package/engine/topologies/tilt/resources/libs_discovery.star +104 -0
- package/engine/topologies/tilt/resources/libs_paths.star +81 -0
- package/engine/topologies/tilt/resources/libs_resource_definition.star +153 -0
- package/engine/topologies/tilt/resources/libs_setup.star +166 -0
- package/engine/topologies/tilt/resources/libs_tsconfig.star +39 -0
- package/engine/topologies/tilt/resources/orchestrator/apply.star +79 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +864 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +90 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +150 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_resource_validation.star +38 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +46 -0
- package/engine/topologies/tilt/resources/orchestrator/builders/typescript.star +193 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +75 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +23 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +136 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/env.star +219 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/frontend.star +172 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +577 -0
- package/engine/topologies/tilt/resources/orchestrator/helpers.star +35 -0
- package/engine/topologies/tilt/resources/orchestrator.star +56 -0
- package/engine/topologies/tilt/resources/ordering.star +5 -0
- package/engine/topologies/tilt/resources/shared-platform-postgres.star +30 -0
- package/engine/topologies/tilt/resources/triggers.star +5 -0
- package/engine/topologies/tilt/resources/watchers.star +304 -0
- package/engine/where-things-live.star +719 -0
- package/examples/tdk-example/LICENSE +21 -0
- package/examples/tdk-example/README.md +23 -0
- package/examples/tdk-example/TILT_SERVICE_DEFAULTS.star +42 -0
- package/examples/tdk-example/TILT_TECH_STACK.star +67 -0
- package/examples/tdk-example/Tiltfile +25 -0
- package/examples/tdk-example/services/platform/messaging/docker-compose.yml +26 -0
- package/examples/tdk-example/services/shop/orders-api/package.json +20 -0
- package/examples/tdk-example/services/shop/orders-api/service.json +14 -0
- package/examples/tdk-example/services/shop/orders-api/src/index.ts +81 -0
- package/examples/tdk-example/services/shop/orders-app/index.html +12 -0
- package/examples/tdk-example/services/shop/orders-app/package.json +23 -0
- package/examples/tdk-example/services/shop/orders-app/public/.gitkeep +0 -0
- package/examples/tdk-example/services/shop/orders-app/service.json +9 -0
- package/examples/tdk-example/services/shop/orders-app/src/main.tsx +9 -0
- package/examples/tdk-example/services/shop/orders-app/src/orders.tsx +67 -0
- package/examples/tdk-example/services/shop/orders-app/src/style.css +15 -0
- package/examples/tdk-example/services/shop/orders-worker/package.json +18 -0
- package/examples/tdk-example/services/shop/orders-worker/service.json +13 -0
- package/examples/tdk-example/services/shop/orders-worker/src/index.ts +33 -0
- package/ext/Tiltfile +66 -0
- package/ext/ide-components/README.md +221 -0
- package/ext/ide-components/code_viewer/server.py +208 -0
- package/ext/ide-components/config_inspector/server.py +1052 -0
- package/ext/ide-components/file_browser/server.py +287 -0
- package/ext/ide-components/shared/config_service.py +471 -0
- package/ext/ide-components/shared/file_utils.py +300 -0
- package/ext/ide-components/shared/http_utils.py +234 -0
- package/ext/ide-components/shared/static/styles.css +1334 -0
- package/ext/ide-components/shared/syntax_highlighter.py +142 -0
- package/ext/ide-components/shared/template_engine.py +125 -0
- package/ext/ide-components/shared/templates/base.html +121 -0
- package/ext/ide-components/shared/test_config_service.py +328 -0
- package/ext/ide-components/shared/tilt_integration.py +160 -0
- package/ext/ui-enhancements/cron-status-server.sh +51 -0
- package/ext/ui-enhancements/cron-status-tracker.sh +148 -0
- package/ext/ui-enhancements/extension.yaml +36 -0
- package/ext/ui-enhancements/tiltfile.py +101 -0
- package/ext/ui-enhancements/ui/cron-jobs-tab.css +396 -0
- package/ext/ui-enhancements/ui/help-panel.css +279 -0
- package/ext/ui-enhancements/ui/icons.css +125 -0
- package/ext/ui-enhancements/ui/tooltips.css +114 -0
- package/package.json +94 -4
- package/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +25 -0
- package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +466 -0
- package/shared-platform-engineering/docker-templates/install-deps.sh +154 -0
- package/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +14 -0
- package/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +58 -0
- package/specs/specs/TILT_SERVICE_DEFAULTS.star +207 -0
- package/specs/specs/TILT_TECH_STACK.star +161 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
#!/usr/bin/env starlark
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# 🎯 {{project.name}} - TILT ENTRYPOINT
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# SYSTEM-GENERATED BY Flisk CLI - DO NOT EDIT
|
|
7
|
+
# Source: .tdk/project.json
|
|
8
|
+
# Regenerate with: flisk config regenerate
|
|
9
|
+
# =============================================================================
|
|
10
|
+
|
|
11
|
+
print("🚀 Loading {{project.name}}...")
|
|
12
|
+
|
|
13
|
+
# =============================================================================
|
|
14
|
+
# 📦 REGISTER Flisk EXTENSION
|
|
15
|
+
# =============================================================================
|
|
16
|
+
# The Flisk Tilt extension (engine, discovery, specs, ext) is vendored into
|
|
17
|
+
# this project at generation time (.tdk/.tdk-out/tdk-cli-ext). Resolution:
|
|
18
|
+
# 1. Vendored in-project copy (default - works offline, no GitHub needed)
|
|
19
|
+
# 2. $TDK_EXTENSION_PATH (explicit override to any tdk-cli checkout)
|
|
20
|
+
# 3. Clear failure with instructions (no endless git retry on a missing repo)
|
|
21
|
+
_vendored_tdk_path = config.main_dir + "/tdk-cli-ext"
|
|
22
|
+
_use_local = False
|
|
23
|
+
_local_tdk_path = ""
|
|
24
|
+
|
|
25
|
+
if str(local("test -d " + _vendored_tdk_path + " && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes':
|
|
26
|
+
_use_local = True
|
|
27
|
+
_local_tdk_path = _vendored_tdk_path
|
|
28
|
+
else:
|
|
29
|
+
_env_tdk_path = os.environ.get('TDK_EXTENSION_PATH', '')
|
|
30
|
+
if len(_env_tdk_path) > 0 and str(local("test -d " + _env_tdk_path + " && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes':
|
|
31
|
+
_use_local = True
|
|
32
|
+
_local_tdk_path = _env_tdk_path
|
|
33
|
+
|
|
34
|
+
if not _use_local:
|
|
35
|
+
fail("""
|
|
36
|
+
Flisk extension not found.
|
|
37
|
+
|
|
38
|
+
'flisk up' needs the Flisk Tilt extension (engine/discovery/specs/ext).
|
|
39
|
+
Fix it with one of:
|
|
40
|
+
1) Regenerate the project so the extension is vendored in:
|
|
41
|
+
flisk config regenerate
|
|
42
|
+
(set $TDK_EXTENSION_SOURCE to a tdk-cli checkout if it was not auto-detected)
|
|
43
|
+
2) Point at any tdk-cli checkout:
|
|
44
|
+
export TDK_EXTENSION_PATH=/path/to/tdk-cli
|
|
45
|
+
3) Follow the sandbox guide: https://tdk-landscape.github.io/tdk-website/sandbox/
|
|
46
|
+
""")
|
|
47
|
+
|
|
48
|
+
v1alpha1.extension_repo(name='tdk-cli-local', url='file://' + _local_tdk_path)
|
|
49
|
+
v1alpha1.extension(name='tdk-cli', repo_name='tdk-cli-local', repo_path='')
|
|
50
|
+
|
|
51
|
+
# =============================================================================
|
|
52
|
+
# 📍 PROJECT CONFIGURATION
|
|
53
|
+
# =============================================================================
|
|
54
|
+
# Tiltfile is in .tdk/.tdk-out/, project root is two levels up
|
|
55
|
+
PROJECT_ROOT = config.main_dir + "/../.."
|
|
56
|
+
os.environ['TDK_PROJECT_ROOT'] = PROJECT_ROOT
|
|
57
|
+
|
|
58
|
+
# =============================================================================
|
|
59
|
+
# 🔌 LOAD MASTER CONFIGS & Flisk MODULES
|
|
60
|
+
# =============================================================================
|
|
61
|
+
load("TILT_TECH_STACK.star",
|
|
62
|
+
'assert_tech_stack',
|
|
63
|
+
'TECH_STACK',
|
|
64
|
+
)
|
|
65
|
+
load("TILT_RESOURCE_DEFAULTS.star",
|
|
66
|
+
'BASE_PORT_FRONTEND',
|
|
67
|
+
'BASE_PORT_BACKEND',
|
|
68
|
+
)
|
|
69
|
+
load("spec.master",
|
|
70
|
+
'RESOURCE_DEFAULTS',
|
|
71
|
+
'PRE_ALPHA_RESOURCES',
|
|
72
|
+
'ALPHA_RESOURCES',
|
|
73
|
+
'BETA_RESOURCES',
|
|
74
|
+
'FOCUS_PRE_ALPHA',
|
|
75
|
+
'FOCUS_ALPHA',
|
|
76
|
+
'FOCUS_BETA',
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
# Load Flisk extension modules
|
|
80
|
+
load('ext://tdk-cli',
|
|
81
|
+
'Utils',
|
|
82
|
+
'Manifest',
|
|
83
|
+
'Config',
|
|
84
|
+
'Orchestrator',
|
|
85
|
+
'Watchers',
|
|
86
|
+
'Infra',
|
|
87
|
+
'Docker',
|
|
88
|
+
'FrontendBuildPlan',
|
|
89
|
+
'load_ui_enhancements',
|
|
90
|
+
'APP_RESOURCES',
|
|
91
|
+
'GLOBAL_CONFIG_EXPORT',
|
|
92
|
+
'Registry',
|
|
93
|
+
'resource_defers_start',
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
# =============================================================================
|
|
97
|
+
# 🏗️ VALIDATE & INITIALIZE
|
|
98
|
+
# =============================================================================
|
|
99
|
+
assert_tech_stack({
|
|
100
|
+
"bundler": TECH_STACK['bundler'],
|
|
101
|
+
"runtime": TECH_STACK['runtime'],
|
|
102
|
+
"orm": TECH_STACK['orm'],
|
|
103
|
+
"messaging": TECH_STACK['messaging'],
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
# =============================================================================
|
|
107
|
+
# 🎨 UI ENHANCEMENTS
|
|
108
|
+
# =============================================================================
|
|
109
|
+
load_ui_enhancements({
|
|
110
|
+
'enable_tooltips': True,
|
|
111
|
+
'enable_icons': True,
|
|
112
|
+
'enable_help_panel': True,
|
|
113
|
+
'enable_cron_jobs_tab': True,
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
# =============================================================================
|
|
117
|
+
# 📋 PARSE CLI ARGUMENTS
|
|
118
|
+
# =============================================================================
|
|
119
|
+
config.define_string_list('focus', usage='Services to focus on')
|
|
120
|
+
config.define_bool('no-frontend', usage='Skip frontend services')
|
|
121
|
+
config.define_bool('include-monitoring', usage='Include monitoring stack')
|
|
122
|
+
config.define_string_list('verbose', usage='Verbose logging')
|
|
123
|
+
config.define_bool('no-auto-init-new', usage='Do not auto-init new services')
|
|
124
|
+
|
|
125
|
+
for resource_name in RESOURCE_DEFAULTS.keys():
|
|
126
|
+
config.define_bool(resource_name, usage='Enable ' + resource_name)
|
|
127
|
+
|
|
128
|
+
config.define_string_list('args', args=True, usage='Positional arguments')
|
|
129
|
+
cfg = config.parse()
|
|
130
|
+
|
|
131
|
+
# =============================================================================
|
|
132
|
+
# 🔮 AUTO-DISCOVERY
|
|
133
|
+
# =============================================================================
|
|
134
|
+
_AUTO_DISCOVER_ENABLED = os.environ.get('AUTO_DISCOVER', 'true').lower() == 'true'
|
|
135
|
+
_DISCOVERY_SCAN_INTERVAL = int(os.environ.get('DISCOVERY_SCAN_INTERVAL', '5'))
|
|
136
|
+
_AUTO_INIT_NEW_RESOURCES = not cfg.get('no-auto-init-new', False)
|
|
137
|
+
|
|
138
|
+
# Auto-discovery enabled ({{discovery.interval}}s interval)
|
|
139
|
+
_AUTO_DISCOVER_ENABLED = _AUTO_DISCOVER_ENABLED
|
|
140
|
+
|
|
141
|
+
# =============================================================================
|
|
142
|
+
# 📝 LOGGING
|
|
143
|
+
# =============================================================================
|
|
144
|
+
_LOG_LEVEL = "verbose" if (cfg.get('verbose') or os.environ.get('VERBOSE', '').lower() == 'true') else "normal"
|
|
145
|
+
|
|
146
|
+
def get_log_level():
|
|
147
|
+
return _LOG_LEVEL
|
|
148
|
+
|
|
149
|
+
def is_verbose():
|
|
150
|
+
return _LOG_LEVEL == "verbose"
|
|
151
|
+
|
|
152
|
+
os.environ['TILT_LOG_LEVEL'] = _LOG_LEVEL
|
|
153
|
+
if _LOG_LEVEL == "verbose":
|
|
154
|
+
os.environ['VERBOSE'] = 'true'
|
|
155
|
+
|
|
156
|
+
# =============================================================================
|
|
157
|
+
# 🌍 ENVIRONMENT SETUP
|
|
158
|
+
# =============================================================================
|
|
159
|
+
is_macos = str(local('uname -s', quiet=True)).strip() == 'Darwin'
|
|
160
|
+
Utils.load_dotenv(PROJECT_ROOT)
|
|
161
|
+
|
|
162
|
+
# =============================================================================
|
|
163
|
+
# 🎯 FOCUS MODE
|
|
164
|
+
# =============================================================================
|
|
165
|
+
FOCUS_MODE, FOCUS_ENABLED_ALL, FOCUS_ENABLED_RESOURCES = Config.apply_focus(cfg)
|
|
166
|
+
# Load ALWAYS_ENABLED_INFRA from project.json (falls back to defaults if not specified)
|
|
167
|
+
ALWAYS_ENABLED_INFRA = {{starlarkArray alwaysEnabledInfra}}
|
|
168
|
+
|
|
169
|
+
def should_enable(resource_name):
|
|
170
|
+
# Always-enabled infra (proxy/Traefik, verdaccio, database-management) must stay
|
|
171
|
+
# enabled independent of focus mode: FOCUS_MODE collapses to False whenever the pre-alpha
|
|
172
|
+
# stack bucket is empty (the default on a freshly generated project.json), which used to
|
|
173
|
+
# silently disable Traefik and friends on every out-of-the-box `flisk up`.
|
|
174
|
+
if resource_name in ALWAYS_ENABLED_INFRA:
|
|
175
|
+
return RESOURCE_DEFAULTS.get(resource_name, True)
|
|
176
|
+
if FOCUS_MODE and FOCUS_ENABLED_ALL:
|
|
177
|
+
if resource_name in FOCUS_ENABLED_ALL:
|
|
178
|
+
return True
|
|
179
|
+
for domain in FOCUS_ENABLED_ALL:
|
|
180
|
+
if resource_name.startswith(domain + "-"):
|
|
181
|
+
return True
|
|
182
|
+
return Utils.should_enable(resource_name, cfg, RESOURCE_DEFAULTS)
|
|
183
|
+
|
|
184
|
+
# =============================================================================
|
|
185
|
+
# 🏗️ INFRASTRUCTURE SERVICES
|
|
186
|
+
# =============================================================================
|
|
187
|
+
|
|
188
|
+
print("🏗️ Loading infrastructure services...")
|
|
189
|
+
# load_all returns the golden-layers build resource's name. It has to reach
|
|
190
|
+
# TILT_CONTEXT below: app and migrator resources add it to their resource_deps
|
|
191
|
+
# so their images build only after the base images exist. Dropping it lets
|
|
192
|
+
# every service image build start at once, fail with "pull access denied" on a
|
|
193
|
+
# machine that has no base images yet, and never retry.
|
|
194
|
+
GOLDEN_IMAGE_RESOURCE = Infra.load_all(
|
|
195
|
+
should_enable=should_enable,
|
|
196
|
+
fix_docker_networks_fn=Utils.fix_docker_networks,
|
|
197
|
+
docker_provider=Docker,
|
|
198
|
+
write_fn=Utils.write_file_if_changed,
|
|
199
|
+
project_root=PROJECT_ROOT,
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
# =============================================================================
|
|
203
|
+
# 📚 INITIALIZE Flisk
|
|
204
|
+
# =============================================================================
|
|
205
|
+
print("🚀 Initializing Flisk...")
|
|
206
|
+
|
|
207
|
+
# Use pre-loaded APP_RESOURCES from Flisk registry (already initialized with all services)
|
|
208
|
+
# Registry.reinitialize() is only needed if we want to force a fresh discovery
|
|
209
|
+
_app_resources_list = APP_RESOURCES
|
|
210
|
+
|
|
211
|
+
# First run or cache cleared — build registry from manifests
|
|
212
|
+
if len(_app_resources_list) == 0:
|
|
213
|
+
_app_resources_list = Registry.reinitialize()
|
|
214
|
+
|
|
215
|
+
# If still empty, load directly from manifest files
|
|
216
|
+
if len(_app_resources_list) == 0:
|
|
217
|
+
_app_resources_list = Manifest.load_all(PROJECT_ROOT)
|
|
218
|
+
|
|
219
|
+
print("📦 Loaded {} services".format(len(_app_resources_list)))
|
|
220
|
+
|
|
221
|
+
# Create Tilt resources for all services
|
|
222
|
+
TILT_CONTEXT = {
|
|
223
|
+
'should_enable': should_enable,
|
|
224
|
+
'write_file': Utils.write_file_if_changed,
|
|
225
|
+
'global_config': GLOBAL_CONFIG_EXPORT,
|
|
226
|
+
'project_root': PROJECT_ROOT,
|
|
227
|
+
'all_services': _app_resources_list,
|
|
228
|
+
'golden_image_resource': GOLDEN_IMAGE_RESOURCE,
|
|
229
|
+
'focus_mode': FOCUS_MODE,
|
|
230
|
+
'focus_enabled_resources': FOCUS_ENABLED_RESOURCES,
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
print("🚀 Creating Tilt resources for {} services...".format(len(_app_resources_list)))
|
|
234
|
+
for app_service in _app_resources_list:
|
|
235
|
+
Orchestrator.apply_service(app_service, TILT_CONTEXT)
|
|
236
|
+
|
|
237
|
+
# Setup file watchers
|
|
238
|
+
Watchers.setup_package_json(_app_resources_list, should_enable)
|
|
239
|
+
|
|
240
|
+
# Apply focus mode filter
|
|
241
|
+
# Build known Tilt resource names (and a stack-name -> resource-name index) from
|
|
242
|
+
# discovered services to filter focus list. Focus targets are stack names (e.g.
|
|
243
|
+
# "app", "billing") from spec.master, which do NOT always match the resource
|
|
244
|
+
# name prefix (stack "app" maps to resources "dashboard-api"/"dashboard-app",
|
|
245
|
+
# not "app-*") - so stack membership must be resolved explicitly rather than
|
|
246
|
+
# assumed via string prefix.
|
|
247
|
+
_KNOWN_TILT_RESOURCES = set()
|
|
248
|
+
_DEFERRED_IMAGE_RESOURCES = set()
|
|
249
|
+
_KNOWN_TILT_RESOURCES.add('service-discovery-daemon')
|
|
250
|
+
_KNOWN_TILT_RESOURCES.add('init-networks')
|
|
251
|
+
_KNOWN_TILT_RESOURCES.add('postgres')
|
|
252
|
+
_KNOWN_TILT_RESOURCES.add('nats')
|
|
253
|
+
_KNOWN_TILT_RESOURCES.add('infisical')
|
|
254
|
+
_KNOWN_TILT_RESOURCES.add('infisical-db')
|
|
255
|
+
_KNOWN_TILT_RESOURCES.add('infisical-redis')
|
|
256
|
+
_KNOWN_TILT_RESOURCES.add('traefik')
|
|
257
|
+
_KNOWN_TILT_RESOURCES.add('verdaccio')
|
|
258
|
+
_KNOWN_TILT_RESOURCES.add('golden-layers-build')
|
|
259
|
+
_STACK_TO_RESOURCE_NAMES = {}
|
|
260
|
+
for _KNOWN_SVC in _app_resources_list:
|
|
261
|
+
_KNOWN_SVC_NAME = _KNOWN_SVC.get('name', '')
|
|
262
|
+
_KNOWN_SVC_STACK = _KNOWN_SVC.get('stack', '')
|
|
263
|
+
if _KNOWN_SVC_NAME:
|
|
264
|
+
for _KNOWN_RES in _KNOWN_SVC.get('resources', []):
|
|
265
|
+
_KNOWN_RES_NAME = _KNOWN_RES.get('name', '')
|
|
266
|
+
if _KNOWN_RES_NAME:
|
|
267
|
+
_KNOWN_TILT_RESOURCES.add(_KNOWN_RES_NAME)
|
|
268
|
+
_KNOWN_TILT_RESOURCES.add(_KNOWN_RES_NAME + '-run-only')
|
|
269
|
+
_KNOWN_TILT_RESOURCES.add(_KNOWN_RES_NAME + '-config-gen')
|
|
270
|
+
# A frontend whose build script is the standard `tsc && vite build` gets a
|
|
271
|
+
# non-blocking <service>-typecheck resource (see Docker frontend registration).
|
|
272
|
+
# Name it here, from the same plan and path, so focus mode can enable it.
|
|
273
|
+
if _KNOWN_RES.get('frontend', False) and not should_enable('backends-only'):
|
|
274
|
+
_KNOWN_RES_DIR = PROJECT_ROOT + '/' + _KNOWN_RES.get('_resource_path', _KNOWN_SVC.get('path', '') + '/' + _KNOWN_RES_NAME)
|
|
275
|
+
if FrontendBuildPlan(_KNOWN_RES_DIR + '/package.json')['typecheck']:
|
|
276
|
+
_KNOWN_TILT_RESOURCES.add(_KNOWN_RES_NAME + '-typecheck')
|
|
277
|
+
_KNOWN_RES_MANIFEST = _KNOWN_RES.get('_manifest', {})
|
|
278
|
+
_KNOWN_RES_SABLIER = _KNOWN_RES_MANIFEST.get('sablier', {})
|
|
279
|
+
# Mirrors _register_single_resource: the prebuild only exists for
|
|
280
|
+
# a resource that gets a docker_build (has syncs, not a library/sdk/BYO).
|
|
281
|
+
# Read `syncs` from the resource, not from `_manifest`: `_manifest` is the
|
|
282
|
+
# ORIGINAL service.json, which has no `syncs` unless the author wrote one,
|
|
283
|
+
# while the resource carries the normalized default that registration uses.
|
|
284
|
+
# Reading the original left a scaffolded deferStart service's `<name>-image`
|
|
285
|
+
# registered but never enabled, so `flisk up <stack>` never built its image.
|
|
286
|
+
if resource_defers_start(_KNOWN_RES_MANIFEST) and _KNOWN_RES_MANIFEST.get('appType', 'backend') not in ['library', 'sdk', 'bring-your-own'] and _KNOWN_RES.get('syncs'):
|
|
287
|
+
_DEFERRED_IMAGE_RESOURCES.add(_KNOWN_RES_NAME + '-image')
|
|
288
|
+
if _KNOWN_SVC_STACK:
|
|
289
|
+
_STACK_TO_RESOURCE_NAMES.setdefault(_KNOWN_SVC_STACK, [])
|
|
290
|
+
_STACK_TO_RESOURCE_NAMES[_KNOWN_SVC_STACK].append(_KNOWN_RES_NAME)
|
|
291
|
+
if FOCUS_MODE and FOCUS_ENABLED_RESOURCES:
|
|
292
|
+
_FILTERED_RESOURCES = []
|
|
293
|
+
for _R in FOCUS_ENABLED_RESOURCES:
|
|
294
|
+
if _R in _KNOWN_TILT_RESOURCES:
|
|
295
|
+
_FILTERED_RESOURCES.append(_R)
|
|
296
|
+
if _R + '-typecheck' in _KNOWN_TILT_RESOURCES:
|
|
297
|
+
_FILTERED_RESOURCES.append(_R + '-typecheck')
|
|
298
|
+
# Focus expansion normally resolves stack names to concrete
|
|
299
|
+
# resources before this loop, so the stack branch below is not
|
|
300
|
+
# reached for the common `flisk up <stack>` path. Keep a deferred
|
|
301
|
+
# service's separate image prebuild enabled alongside that
|
|
302
|
+
# concrete resource in the expanded focus list.
|
|
303
|
+
if _R + '-image' in _DEFERRED_IMAGE_RESOURCES:
|
|
304
|
+
_FILTERED_RESOURCES.append(_R + '-image')
|
|
305
|
+
elif _R in _STACK_TO_RESOURCE_NAMES:
|
|
306
|
+
for _STACK_RES_NAME in _STACK_TO_RESOURCE_NAMES[_R]:
|
|
307
|
+
_FILTERED_RESOURCES.append(_STACK_RES_NAME)
|
|
308
|
+
_FILTERED_RESOURCES.append(_STACK_RES_NAME + '-run-only')
|
|
309
|
+
_FILTERED_RESOURCES.append(_STACK_RES_NAME + '-config-gen')
|
|
310
|
+
# deferStart backends prebuild their image in a separate
|
|
311
|
+
# local_resource because their dc_resource is not auto-init.
|
|
312
|
+
# Keep that prebuild in focus mode so `flisk up <stack>` still
|
|
313
|
+
# prepares the image before the first request wakes the service.
|
|
314
|
+
# Only when it exists: without a license deferStart is off and
|
|
315
|
+
# no `-image` resource is registered, and Tilt errors on an
|
|
316
|
+
# enabled name it cannot find.
|
|
317
|
+
if _STACK_RES_NAME + '-image' in _DEFERRED_IMAGE_RESOURCES:
|
|
318
|
+
_FILTERED_RESOURCES.append(_STACK_RES_NAME + '-image')
|
|
319
|
+
if _STACK_RES_NAME + '-typecheck' in _KNOWN_TILT_RESOURCES:
|
|
320
|
+
_FILTERED_RESOURCES.append(_STACK_RES_NAME + '-typecheck')
|
|
321
|
+
else:
|
|
322
|
+
_MATCHED = [kr for kr in _KNOWN_TILT_RESOURCES if kr != 'service-discovery-daemon' and kr.startswith(_R + '-')]
|
|
323
|
+
_FILTERED_RESOURCES.extend(_MATCHED)
|
|
324
|
+
# NATS is gated by the same 'database-management' should_enable() check as
|
|
325
|
+
# postgres (see infra-loader.star), so it belongs with the infra that is
|
|
326
|
+
# always kept enabled here -- otherwise config.set_enabled_resources()
|
|
327
|
+
# below disables it on every out-of-the-box `flisk up` (pre-alpha always
|
|
328
|
+
# activates this focus-filter branch), and any resource that enables the
|
|
329
|
+
# 'nats' feature never gets a broker to connect to.
|
|
330
|
+
#
|
|
331
|
+
# services/platform/messaging/docker-compose.yml is user-authored (Flisk
|
|
332
|
+
# does not generate it) and may declare more than nats/redis -- e.g. a
|
|
333
|
+
# local mail catcher standing in for a managed email provider. Every
|
|
334
|
+
# service it declares is loaded via docker_compose() in infra-loader.star,
|
|
335
|
+
# so it must be enabled here too, or it is silently disabled the same way.
|
|
336
|
+
_ALWAYS_ENABLED_INFRA_RESOURCES = ['init-networks', 'traefik', 'golden-layers-build']
|
|
337
|
+
if should_enable('database-management') or TILT_CONTEXT.get('_shared_platform_postgres_force_started', False):
|
|
338
|
+
_ALWAYS_ENABLED_INFRA_RESOURCES.append('postgres')
|
|
339
|
+
_messaging_compose_path = PROJECT_ROOT + '/services/platform/messaging/docker-compose.yml'
|
|
340
|
+
if str(local("test -f '" + _messaging_compose_path + "' && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes':
|
|
341
|
+
# infra-loader.star only creates these Tilt resources when this file
|
|
342
|
+
# exists, so only add them here when they actually exist to add.
|
|
343
|
+
_messaging_compose_doc = read_yaml(_messaging_compose_path, default={})
|
|
344
|
+
for _messaging_svc_name in _messaging_compose_doc.get('services', {}).keys():
|
|
345
|
+
_ALWAYS_ENABLED_INFRA_RESOURCES.append(_messaging_svc_name)
|
|
346
|
+
if 'nats' not in _ALWAYS_ENABLED_INFRA_RESOURCES:
|
|
347
|
+
_ALWAYS_ENABLED_INFRA_RESOURCES.append('nats')
|
|
348
|
+
for _INFRA in _ALWAYS_ENABLED_INFRA_RESOURCES:
|
|
349
|
+
_FILTERED_RESOURCES.append(_INFRA)
|
|
350
|
+
for _KR in _KNOWN_TILT_RESOURCES:
|
|
351
|
+
if _KR.startswith('provision-db-'):
|
|
352
|
+
_FILTERED_RESOURCES.append(_KR)
|
|
353
|
+
_FILTERED_RESOURCES = sorted(set(_FILTERED_RESOURCES))
|
|
354
|
+
if _FILTERED_RESOURCES:
|
|
355
|
+
config.set_enabled_resources(_FILTERED_RESOURCES)
|
|
356
|
+
print("🎯 Focus mode: {} resources".format(len(_FILTERED_RESOURCES)))
|
|
357
|
+
else:
|
|
358
|
+
print("⚠️ No known resources matched focus targets:", ", ".join(FOCUS_ENABLED_RESOURCES))
|
|
359
|
+
|
|
360
|
+
# =============================================================================
|
|
361
|
+
# 👁️ AUTO-DISCOVERY DAEMON
|
|
362
|
+
# =============================================================================
|
|
363
|
+
if _AUTO_DISCOVER_ENABLED:
|
|
364
|
+
watch_file('snapshots/resource-snapshot.json')
|
|
365
|
+
|
|
366
|
+
# Get extension install path: vendored copy inside this project
|
|
367
|
+
discovery_path = _local_tdk_path + "/discovery"
|
|
368
|
+
|
|
369
|
+
daemon_script = discovery_path + '/resource_snapshot.py'
|
|
370
|
+
daemon_cmd = "cd " + config.main_dir + " && python3 \"" + daemon_script + "\" watch"
|
|
371
|
+
|
|
372
|
+
local_resource('service-discovery-daemon',
|
|
373
|
+
serve_cmd=daemon_cmd,
|
|
374
|
+
deps=[daemon_script],
|
|
375
|
+
auto_init=True, labels=['discovery'],
|
|
376
|
+
links=[link('file:///snapshots/resource-snapshot.json', 'Resource Snapshot')]
|
|
377
|
+
)
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
print("\n✅ {{project.name}} Tilt ready!")
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
#!/usr/bin/env starlark
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# 🎨 PROJECT SPEC - Stack-Based Configuration
|
|
4
|
+
# =============================================================================
|
|
5
|
+
#
|
|
6
|
+
# SYSTEM-GENERATED BY Flisk CLI - DO NOT EDIT
|
|
7
|
+
# Source: .tdk/project.json + Flisk Platform Standards v{{version}}
|
|
8
|
+
# Output: .tdk/.tdk-out/
|
|
9
|
+
# Regenerate with: flisk config regenerate
|
|
10
|
+
#
|
|
11
|
+
# 🏗️ ARCHITECTURE: Project → Stack → Service (PSR Model)
|
|
12
|
+
# Services are organized into stacks by release phase.
|
|
13
|
+
#
|
|
14
|
+
# 📖 USAGE:
|
|
15
|
+
# In your Tiltfile or topology module:
|
|
16
|
+
#
|
|
17
|
+
# load("{}/spec.master".format(PROJECT_ROOT),
|
|
18
|
+
# "RESOURCE_DEFAULTS",
|
|
19
|
+
# "PRE_ALPHA_RESOURCES",
|
|
20
|
+
# "ALPHA_RESOURCES",
|
|
21
|
+
# "BETA_RESOURCES",
|
|
22
|
+
# "OUT_OF_SCOPE_RESOURCES",
|
|
23
|
+
# "FOCUS_PRE_ALPHA",
|
|
24
|
+
# "FOCUS_ALPHA",
|
|
25
|
+
# "FOCUS_BETA",
|
|
26
|
+
# )
|
|
27
|
+
#
|
|
28
|
+
# =============================================================================
|
|
29
|
+
|
|
30
|
+
# =============================================================================
|
|
31
|
+
# 🎯 STACK DEFINITIONS
|
|
32
|
+
# =============================================================================
|
|
33
|
+
# Services are organized by release phase (stack) for progressive rollout.
|
|
34
|
+
# Each phase builds on the previous one.
|
|
35
|
+
|
|
36
|
+
# =============================================================================
|
|
37
|
+
# 🥚 PRE-ALPHA STACK (MVP - Default Startup)
|
|
38
|
+
# =============================================================================
|
|
39
|
+
# Core infrastructure services - minimal footprint for rapid development
|
|
40
|
+
|
|
41
|
+
PRE_ALPHA_RESOURCES = {
|
|
42
|
+
{{#each phases.pre_alpha.enabledStacks}}
|
|
43
|
+
"{{this}}": True, # {{lookup ../serviceDescriptions this}}
|
|
44
|
+
{{/each}}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
# =============================================================================
|
|
48
|
+
# 🔬 ALPHA STACK (Core Business Services)
|
|
49
|
+
# =============================================================================
|
|
50
|
+
# Essential business services for alpha launch.
|
|
51
|
+
|
|
52
|
+
ALPHA_RESOURCES = {
|
|
53
|
+
{{#each phases.alpha.enabledStacks}}
|
|
54
|
+
"{{this}}": False, # {{lookup ../serviceDescriptions this}}
|
|
55
|
+
{{/each}}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
# =============================================================================
|
|
59
|
+
# 🚀 BETA STACK (Extended Features)
|
|
60
|
+
# =============================================================================
|
|
61
|
+
# Additional services for beta release.
|
|
62
|
+
|
|
63
|
+
BETA_RESOURCES = {
|
|
64
|
+
{{#each phases.beta.enabledStacks}}
|
|
65
|
+
"{{this}}": False, # {{lookup ../serviceDescriptions this}}
|
|
66
|
+
{{/each}}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
# =============================================================================
|
|
70
|
+
# 🚫 OUT OF SCOPE
|
|
71
|
+
# =============================================================================
|
|
72
|
+
# These services are excluded from discovery/loading entirely.
|
|
73
|
+
# To enable, remove from this list and add to appropriate stack above.
|
|
74
|
+
|
|
75
|
+
OUT_OF_SCOPE_RESOURCES = [
|
|
76
|
+
{{#each phases.out_of_scope.enabledStacks}}
|
|
77
|
+
"{{this}}", # {{lookup ../serviceDescriptions this}}
|
|
78
|
+
{{/each}}
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
# =============================================================================
|
|
82
|
+
# 🔧 OPTIONAL INFRASTRUCTURE RESOURCES
|
|
83
|
+
# =============================================================================
|
|
84
|
+
# High-resource infrastructure - enable only when needed
|
|
85
|
+
|
|
86
|
+
OPTIONAL_INFRA_RESOURCES = {
|
|
87
|
+
{{#each optionalInfra}}
|
|
88
|
+
"{{@key}}": {{starlark this}}, # {{lookup ../infraDescriptions @key}}
|
|
89
|
+
{{/each}}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
# =============================================================================
|
|
93
|
+
# 📦 COMBINED DEFAULTS (Used by Tilt System)
|
|
94
|
+
# =============================================================================
|
|
95
|
+
# Merges all service configs for easy access
|
|
96
|
+
|
|
97
|
+
DEFAULTS = {}
|
|
98
|
+
DEFAULTS.update(PRE_ALPHA_RESOURCES)
|
|
99
|
+
DEFAULTS.update(ALPHA_RESOURCES)
|
|
100
|
+
DEFAULTS.update(BETA_RESOURCES)
|
|
101
|
+
DEFAULTS.update(OPTIONAL_INFRA_RESOURCES)
|
|
102
|
+
|
|
103
|
+
# Alias for Tiltfile compatibility
|
|
104
|
+
RESOURCE_DEFAULTS = DEFAULTS
|
|
105
|
+
|
|
106
|
+
# =============================================================================
|
|
107
|
+
# 🎯 FOCUS FILTERS (for CLI --focus parameter)
|
|
108
|
+
# =============================================================================
|
|
109
|
+
# Predefined service groups for easy startup
|
|
110
|
+
|
|
111
|
+
FOCUS_PRE_ALPHA = list(PRE_ALPHA_RESOURCES.keys())
|
|
112
|
+
FOCUS_ALPHA = list(PRE_ALPHA_RESOURCES.keys()) + list(ALPHA_RESOURCES.keys())
|
|
113
|
+
FOCUS_BETA = list(PRE_ALPHA_RESOURCES.keys()) + list(ALPHA_RESOURCES.keys()) + list(BETA_RESOURCES.keys())
|
|
114
|
+
|
|
115
|
+
# =============================================================================
|
|
116
|
+
# 📁 PATH OVERRIDES
|
|
117
|
+
# =============================================================================
|
|
118
|
+
|
|
119
|
+
SPEC_OVERRIDE = struct(
|
|
120
|
+
DISCOVERY = struct(
|
|
121
|
+
RESOURCE_PATTERNS = {{starlarkArray discovery.paths}},
|
|
122
|
+
),
|
|
123
|
+
|
|
124
|
+
OUTPUT = struct(
|
|
125
|
+
BASE_DIR = "./.tdk",
|
|
126
|
+
SNAPSHOT_FILE = "./.tdk/.tdk-out/snapshots/resource-snapshot.json",
|
|
127
|
+
AUTOGENERATED_FOLDER = ".autogenerated",
|
|
128
|
+
),
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
# Top-level aliases for Tilt discovery compatibility
|
|
132
|
+
RESOURCE_PATTERNS = {{starlarkArray discovery.paths}}
|
|
133
|
+
|
|
134
|
+
# =============================================================================
|
|
135
|
+
# ⚙️ CONSTANTS OVERRIDES
|
|
136
|
+
# =============================================================================
|
|
137
|
+
|
|
138
|
+
CONSTANTS_OVERRIDE = struct(
|
|
139
|
+
SUPPORTED_FEATURES = [
|
|
140
|
+
"{{tech.messaging}}",
|
|
141
|
+
"{{tech.orm}}",
|
|
142
|
+
"{{tech.bundler}}-node",
|
|
143
|
+
],
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
# =============================================================================
|
|
147
|
+
# 🎯 PROJECT-SPECIFIC METADATA
|
|
148
|
+
# =============================================================================
|
|
149
|
+
|
|
150
|
+
PROJECT = struct(
|
|
151
|
+
NAME = "{{project.name}}",
|
|
152
|
+
VERSION = "{{project.version}}",
|
|
153
|
+
|
|
154
|
+
PHASES = struct(
|
|
155
|
+
PRE_ALPHA = FOCUS_PRE_ALPHA,
|
|
156
|
+
ALPHA = FOCUS_ALPHA,
|
|
157
|
+
BETA = FOCUS_BETA,
|
|
158
|
+
),
|
|
159
|
+
|
|
160
|
+
# Backward compatibility for older extension code that reads PROJECT.STACKS.
|
|
161
|
+
STACKS = struct(
|
|
162
|
+
PRE_ALPHA = FOCUS_PRE_ALPHA,
|
|
163
|
+
ALPHA = FOCUS_ALPHA,
|
|
164
|
+
BETA = FOCUS_BETA,
|
|
165
|
+
),
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
# =============================================================================
|
|
169
|
+
# 📝 CHANGE LOG
|
|
170
|
+
# =============================================================================
|
|
171
|
+
# Generated by Flisk CLI v{{version}}
|
|
172
|
+
# =============================================================================
|
|
173
|
+
|
|
174
|
+
# =============================================================================
|
|
175
|
+
# 📦 EXPORTS
|
|
176
|
+
# =============================================================================
|
|
177
|
+
|
|
178
|
+
__all__ = [
|
|
179
|
+
"RESOURCE_DEFAULTS",
|
|
180
|
+
"DEFAULTS",
|
|
181
|
+
"PRE_ALPHA_RESOURCES",
|
|
182
|
+
"ALPHA_RESOURCES",
|
|
183
|
+
"BETA_RESOURCES",
|
|
184
|
+
"OUT_OF_SCOPE_RESOURCES",
|
|
185
|
+
"OPTIONAL_INFRA_RESOURCES",
|
|
186
|
+
"FOCUS_PRE_ALPHA",
|
|
187
|
+
"FOCUS_ALPHA",
|
|
188
|
+
"FOCUS_BETA",
|
|
189
|
+
"SPEC_OVERRIDE",
|
|
190
|
+
"CONSTANTS_OVERRIDE",
|
|
191
|
+
"PROJECT",
|
|
192
|
+
]
|