@flisk-sh/flisk 1.3.207 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +40 -37
- package/cli/dist/agent-runtimes/custom.js +3 -3
- package/cli/dist/agent-runtimes/registry.js +3 -3
- package/cli/dist/backend-frameworks/registry.js +8 -8
- package/cli/dist/backend-languages/python.js +4 -1
- package/cli/dist/backend-languages/registry.js +3 -3
- package/cli/dist/cli.js +4 -3
- package/cli/dist/commands/__tests__/project-e2e-helpers.js +6 -6
- package/cli/dist/commands/agent.js +8 -8
- package/cli/dist/commands/completion.js +26 -26
- package/cli/dist/commands/config.js +8 -8
- package/cli/dist/commands/doctor.js +18 -18
- package/cli/dist/commands/down.js +1 -1
- package/cli/dist/commands/eject.js +10 -10
- package/cli/dist/commands/help.js +2 -2
- package/cli/dist/commands/import.js +2 -2
- package/cli/dist/commands/logs.js +2 -2
- package/cli/dist/commands/mcp.js +2 -2
- package/cli/dist/commands/networks.js +2 -2
- package/cli/dist/commands/open.js +0 -1
- package/cli/dist/commands/project.js +19 -19
- package/cli/dist/commands/projects.js +1 -1
- package/cli/dist/commands/resource.js +21 -21
- package/cli/dist/commands/resources.js +2 -2
- package/cli/dist/commands/restart.js +7 -4
- package/cli/dist/commands/runtime.js +15 -3
- package/cli/dist/commands/stack.js +8 -8
- package/cli/dist/commands/up.js +23 -23
- package/cli/dist/commands/upgrade.js +44 -40
- package/cli/dist/frontend-frameworks/registry.js +3 -3
- package/cli/dist/generator/extension-fetch.js +12 -9
- package/cli/dist/generator/template-engine.js +66 -53
- package/cli/dist/mcp/tools.js +2 -2
- package/cli/dist/utils/agent-host.js +1 -1
- package/cli/dist/utils/cli-command.js +1 -1
- package/cli/dist/utils/cold-preflight.js +2 -2
- package/cli/dist/utils/constants.js +3 -3
- package/cli/dist/utils/discovery-paths.js +2 -2
- package/cli/dist/utils/doctor-fix.js +10 -10
- package/cli/dist/utils/doctor-report.js +3 -3
- package/cli/dist/utils/doctor-runtime.js +4 -3
- package/cli/dist/utils/doctor-starlark.js +3 -3
- package/cli/dist/utils/doctor-wiring.js +4 -4
- package/cli/dist/utils/down-cleanup.js +2 -2
- package/cli/dist/utils/env-compat-init.js +8 -0
- package/cli/dist/utils/env-compat.js +27 -0
- package/cli/dist/utils/env-selection.js +9 -9
- package/cli/dist/utils/errors.js +13 -13
- package/cli/dist/utils/file-helpers.js +5 -5
- package/cli/dist/utils/{tdk-version.js → flisk-version.js} +8 -8
- package/cli/dist/utils/generated-paths.js +6 -6
- package/cli/dist/utils/host-port-config.js +10 -10
- package/cli/dist/utils/host-port-plan.js +3 -3
- package/cli/dist/utils/machine-output.js +2 -2
- package/cli/dist/utils/native-windows.js +1 -1
- package/cli/dist/utils/paths.js +3 -3
- package/cli/dist/utils/platform.js +9 -9
- package/cli/dist/utils/port-conflict-fix.js +3 -3
- package/cli/dist/utils/port-fallback-notice.js +3 -3
- package/cli/dist/utils/project-config-defaults.js +1 -1
- package/cli/dist/utils/project-features.js +2 -2
- package/cli/dist/utils/resource-features.js +3 -3
- package/cli/dist/utils/runtime-layout.js +58 -0
- package/cli/dist/utils/schema-version-gate.js +3 -2
- package/cli/dist/utils/service-urls.js +3 -3
- package/cli/dist/utils/services.js +2 -2
- package/cli/dist/utils/shared-infra.js +2 -2
- package/cli/dist/utils/shared-platform-postgres.js +6 -6
- package/cli/dist/utils/tar.js +1 -1
- package/cli/dist/utils/tilt.js +1 -1
- package/cli/dist/utils/up-readiness.js +1 -1
- package/cli/dist/utils/windows-doctor.js +3 -3
- package/cli/dist-bundle/{chunk-D2DIEX5E.js → chunk-36SOQVAL.js} +2 -2
- package/cli/dist-bundle/{chunk-YZRPX76N.js → chunk-3J6XI3NX.js} +1 -1
- package/cli/dist-bundle/chunk-5EZ4EX6U.js +2 -0
- package/cli/dist-bundle/chunk-763VK575.js +54 -0
- package/cli/dist-bundle/{chunk-5LRMAY67.js → chunk-B6Q5VKL7.js} +13 -13
- package/cli/dist-bundle/{chunk-AGXA5DOQ.js → chunk-BWK6MPCB.js} +3 -3
- package/cli/dist-bundle/{chunk-SLKTM6ZO.js → chunk-D7N2GGJH.js} +14 -14
- package/cli/dist-bundle/chunk-HEMPQKD6.js +7 -0
- package/cli/dist-bundle/chunk-ICXF6PXA.js +35 -0
- package/cli/dist-bundle/chunk-K6SOCO6V.js +3 -0
- package/cli/dist-bundle/{chunk-6EA4DGCY.js → chunk-KJZUBHLO.js} +1 -1
- package/cli/dist-bundle/{chunk-GOEBYLFN.js → chunk-MINZ25AC.js} +1 -1
- package/cli/dist-bundle/{chunk-FAHNFTWN.js → chunk-PVBAGX5X.js} +2 -2
- package/cli/dist-bundle/chunk-QQEV6D74.js +2 -0
- package/cli/dist-bundle/chunk-VHFFSBVJ.js +10 -0
- package/cli/dist-bundle/chunk-VMB5673O.js +57 -0
- package/cli/dist-bundle/{chunk-53M5D4KE.js → chunk-XD3BBFZB.js} +1 -1
- package/cli/dist-bundle/{chunk-GIMHTZNR.js → chunk-YL56J2WX.js} +1 -1
- package/cli/dist-bundle/cli.js +254 -254
- package/cli/dist-bundle/cold-preflight-ABU26DYW.js +2 -0
- package/cli/dist-bundle/colima-GBURKN54.js +2 -0
- package/cli/dist-bundle/{demo-stage-ANHJKDZC.js → demo-stage-EBIUCJBX.js} +2 -2
- package/cli/dist-bundle/{devtools-MGITLOWZ.js → devtools-ZD6XIOLD.js} +2 -2
- package/cli/dist-bundle/extension-fetch-VEFSCG4B.js +2 -0
- package/cli/dist-bundle/native-windows-BWVEYVPO.js +2 -0
- package/cli/dist-bundle/{one-command-P6XVAXWV.js → one-command-VNKQAMFJ.js} +2 -2
- package/cli/dist-bundle/open-2KSAF6M2.js +2 -0
- package/cli/dist-bundle/project-YD3C4ZV3.js +2 -0
- package/cli/dist-bundle/project-templates-EYSQG2EO.js +2 -0
- package/cli/dist-bundle/{services-CBXN4SXC.js → services-V6Q55JR5.js} +2 -2
- package/cli/dist-bundle/{stack-progress-6GO2TCRH.js → stack-progress-NIFM5T2K.js} +2 -2
- package/cli/dist-bundle/tilt-port-owner-MWJ7P6NB.js +2 -0
- package/cli/dist-bundle/url-actions-HXJLBTX6.js +2 -0
- package/cli/package.json +5 -5
- package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
- package/cli/shared-platform-engineering/docker-templates/install-deps.sh +2 -2
- package/cli/templates/.tiltignore.hbs +2 -2
- package/cli/templates/TILT_RESOURCE_DEFAULTS.star.hbs +1 -1
- package/cli/templates/TILT_TECH_STACK.star.hbs +1 -1
- package/cli/templates/Tiltfile.hbs +21 -21
- package/cli/templates/spec.master.hbs +4 -4
- package/examples/tdk-example/LICENSE +1 -1
- package/examples/tdk-example/Tiltfile +10 -10
- package/examples/tdk-example/services/platform/messaging/docker-compose.yml +7 -7
- package/examples/tdk-example/services/shop/orders-api/service.json +1 -1
- package/examples/tdk-example/services/shop/orders-api/src/index.ts +1 -1
- package/examples/tdk-example/services/shop/orders-app/index.html +1 -1
- package/examples/tdk-example/services/shop/orders-worker/service.json +1 -1
- package/examples/tdk-example/services/shop/orders-worker/src/index.ts +1 -1
- package/package.json +29 -11
- package/{Tiltfile → runtime/Tiltfile} +9 -5
- package/{discovery → runtime/discovery}/AGENTS.md +1 -1
- package/{discovery → runtime/discovery}/TILT_DISCOVERY.star +5 -5
- package/{discovery → runtime/discovery}/Tiltfile +5 -5
- package/{discovery → runtime/discovery}/config.star +5 -5
- package/{discovery → runtime/discovery}/constants.star +14 -14
- package/{discovery → runtime/discovery}/deterministic.star +1 -1
- package/{discovery → runtime/discovery}/discovery_daemon.star +2 -2
- package/{discovery → runtime/discovery}/discovery_orchestrator.star +17 -17
- package/{discovery → runtime/discovery}/identity-management-backend/service.yaml +2 -2
- package/{discovery → runtime/discovery}/incremental_discovery.star +1 -1
- package/{discovery → runtime/discovery}/json_manifest_scanner.star +2 -2
- package/{discovery → runtime/discovery}/libraries.star +1 -1
- package/{discovery → runtime/discovery}/manifest/constants.star +1 -1
- package/{discovery → runtime/discovery}/manifest/loading.star +7 -7
- package/{discovery → runtime/discovery}/manifest/normalize.star +12 -15
- package/{discovery → runtime/discovery}/registry.star +11 -11
- package/{discovery → runtime/discovery}/resource_snapshot.py +2 -2
- package/{discovery → runtime/discovery}/resource_snapshot.star +6 -6
- package/{discovery → runtime/discovery}/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +2 -2
- package/{discovery → runtime/discovery}/test_resource_snapshot.py +6 -6
- package/{engine → runtime/engine}/AGENTS.md +6 -6
- package/{engine → runtime/engine}/README.md +2 -2
- package/{engine → runtime/engine}/Tiltfile +5 -5
- package/{engine → runtime/engine}/assets/docker/golden-layers.Dockerfile +17 -17
- package/{engine → runtime/engine}/assets/docker/wake-gateway/Dockerfile +7 -0
- package/{engine → runtime/engine}/entrypoint.star +1 -1
- package/{engine → runtime/engine}/paths.star +5 -5
- package/{engine → runtime/engine}/schemas/project-schema.json +2 -2
- package/{engine → runtime/engine}/schemas/service-schema.json +5 -5
- package/{engine → runtime/engine}/scripts/debug-container.sh +3 -3
- package/{engine → runtime/engine}/spec.master +3 -3
- package/{engine → runtime/engine}/topologies/README.md +3 -3
- package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_build.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_constants.star +7 -7
- package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_dockerfile.star +8 -8
- package/{engine → runtime/engine}/topologies/platform/docker/compose/compose.star +12 -12
- package/{engine → runtime/engine}/topologies/platform/docker/compose/traefik_standalone.star +21 -6
- package/{engine → runtime/engine}/topologies/platform/docker/config/healthcheck.star +7 -7
- package/{engine → runtime/engine}/topologies/platform/docker/constants.star +7 -7
- package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/language_dockerfile.star +3 -3
- package/{engine → runtime/engine}/topologies/platform/docker/layers/l1_base_layers.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/layers/l2_dependency_layers.star +14 -14
- package/{engine → runtime/engine}/topologies/platform/docker/layers/l3_builder_layers.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/layers/l4_runtime_layers.star +8 -8
- package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/constants.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/networking/api_path_constants.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/networking/sablier_container_cycle.star +1 -1
- package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_static_routes.star +1 -1
- package/{engine → runtime/engine}/topologies/platform/docker/secrets/env_secrets.star +2 -2
- package/{engine → runtime/engine}/topologies/platform/docker/secrets/infisical.star +4 -4
- package/{engine → runtime/engine}/topologies/platform/registries/verdaccio_loader.star +1 -1
- package/{engine → runtime/engine}/topologies/platform/security/secrets.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/common/utils.star +9 -10
- package/{engine → runtime/engine}/topologies/tilt/common/utils_debug.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/common/utils_deterministic.star +2 -2
- package/{engine → runtime/engine}/topologies/tilt/common/utils_env.star +5 -5
- package/{engine → runtime/engine}/topologies/tilt/config/profiles.star +4 -4
- package/{engine → runtime/engine}/topologies/tilt/generators/agents_md.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/generators/infisical/README.md +1 -1
- package/{engine → runtime/engine}/topologies/tilt/generators/infisical/organization.star +6 -6
- package/{engine → runtime/engine}/topologies/tilt/generators/npmrc.star +5 -5
- package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_tsconfig.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/generators/typescript/playwright_config.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/generators/vite/helpers.star +7 -7
- package/{engine → runtime/engine}/topologies/tilt/generators/vite/templates.star +5 -5
- package/{engine → runtime/engine}/topologies/tilt/manifest/json_to_yaml.py +2 -2
- package/{engine → runtime/engine}/topologies/tilt/manifest/loader.star +2 -2
- package/{engine → runtime/engine}/topologies/tilt/manifest/schema.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/manifest/yaml_to_json.py +1 -1
- package/{engine → runtime/engine}/topologies/tilt/resources/build_concurrency.star +3 -3
- package/{engine → runtime/engine}/topologies/tilt/resources/databases.star +7 -6
- package/{engine → runtime/engine}/topologies/tilt/resources/infra-loader.star +12 -12
- package/{engine → runtime/engine}/topologies/tilt/resources/libs_paths.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/resources/libs_resource_definition.star +2 -2
- package/{engine → runtime/engine}/topologies/tilt/resources/libs_setup.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +36 -28
- package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/frontend.star +5 -5
- package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +4 -4
- package/{engine → runtime/engine}/topologies/tilt/resources/watchers.star +20 -20
- package/{engine → runtime/engine}/where-things-live.star +5 -5
- package/{ext → runtime/ext}/Tiltfile +5 -5
- package/{ext → runtime/ext}/ide-components/code_viewer/server.py +1 -1
- package/{ext → runtime/ext}/ide-components/config_inspector/server.py +2 -2
- package/{ext → runtime/ext}/ide-components/file_browser/server.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/config_service.py +2 -2
- package/{ext → runtime/ext}/ide-components/shared/file_utils.py +2 -2
- package/{ext → runtime/ext}/ide-components/shared/http_utils.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/syntax_highlighter.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/template_engine.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/templates/base.html +1 -1
- package/{ext → runtime/ext}/ide-components/shared/test_config_service.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/tilt_integration.py +1 -1
- package/{ext → runtime/ext}/ui-enhancements/tiltfile.py +1 -1
- package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
- package/shared-platform-engineering/docker-templates/install-deps.sh +2 -2
- package/cli/dist-bundle/chunk-42IVF3YT.js +0 -3
- package/cli/dist-bundle/chunk-AT5MFZ3D.js +0 -10
- package/cli/dist-bundle/chunk-BHWJU6HY.js +0 -2
- package/cli/dist-bundle/chunk-DWR3LLHS.js +0 -2
- package/cli/dist-bundle/chunk-GB6DJJ5N.js +0 -57
- package/cli/dist-bundle/chunk-ODYL6LET.js +0 -52
- package/cli/dist-bundle/chunk-YTXQPTCN.js +0 -35
- package/cli/dist-bundle/chunk-Z2C55UFP.js +0 -7
- package/cli/dist-bundle/cold-preflight-7PFKXNK7.js +0 -2
- package/cli/dist-bundle/colima-SVZX2UML.js +0 -2
- package/cli/dist-bundle/extension-fetch-6XNTDF44.js +0 -2
- package/cli/dist-bundle/native-windows-X5XVLFJS.js +0 -2
- package/cli/dist-bundle/open-VJZ7W4JR.js +0 -2
- package/cli/dist-bundle/project-QSH7LOWI.js +0 -2
- package/cli/dist-bundle/project-templates-JDRE7AVL.js +0 -2
- package/cli/dist-bundle/tilt-port-owner-SMN5SAQJ.js +0 -2
- package/cli/dist-bundle/url-actions-D6ROTHZG.js +0 -2
- /package/cli/bin/{tdk.js → flisk.js} +0 -0
- /package/{discovery → runtime/discovery}/filtering.star +0 -0
- /package/{discovery → runtime/discovery}/identity-management-frontend/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/identity-sdk/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/indexing.star +0 -0
- /package/{discovery → runtime/discovery}/loading.star +0 -0
- /package/{discovery → runtime/discovery}/manifest/validation.star +0 -0
- /package/{discovery → runtime/discovery}/normalization.star +0 -0
- /package/{discovery → runtime/discovery}/schemas.star +0 -0
- /package/{discovery → runtime/discovery}/services/platform/cdc/debezium/nats-connector/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/services/platform/cdc/nats-http-bridge/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/services/platform/synthetic-monitor/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/validation.star +0 -0
- /package/{discovery → runtime/discovery}/versioning.star +0 -0
- /package/{engine → runtime/engine}/REFACTORING_MANIFEST_SYSTEM.md +0 -0
- /package/{engine → runtime/engine}/assets/docker/wake-gateway/decide.test.ts +0 -0
- /package/{engine → runtime/engine}/assets/docker/wake-gateway/decide.ts +0 -0
- /package/{engine → runtime/engine}/assets/docker/wake-gateway/server.ts +0 -0
- /package/{engine → runtime/engine}/assets/scripts/cleanup-completed-migrator-images.sh +0 -0
- /package/{engine → runtime/engine}/assets/scripts/cleanup-tilt-images.sh +0 -0
- /package/{engine → runtime/engine}/assets/scripts/mac-m1-resource-monitor.sh +0 -0
- /package/{engine → runtime/engine}/config.star +0 -0
- /package/{engine → runtime/engine}/lifecycle/orchestrator.star +0 -0
- /package/{engine → runtime/engine}/scripts/README.md +0 -0
- /package/{engine → runtime/engine}/scripts/build-and-publish-lib.sh +0 -0
- /package/{engine → runtime/engine}/scripts/check-lib-publish.sh +0 -0
- /package/{engine → runtime/engine}/scripts/generate-manifest.sh +0 -0
- /package/{engine → runtime/engine}/spec.master.example +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/auth/auth.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/build/frontend_build_plan.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/compose/compose_helpers.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/compose/unsafe_value.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/config/bunignore.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/config/dockerignore.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/dockerfile.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/generators/golden_docker_generator_v2.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/bun_helpers.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/infisical_docker.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/db_readiness.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/filesystem_setup.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/migrate_script.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_build.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_runtime.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/secret_resolution.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_constants.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_helpers.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/net/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/platform/net/proxy.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/registries/local.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/security/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/platform/state/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/platform/state/relational.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/common/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/common/utils_docker_networks.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/common/utils_output.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/config/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/config/defaults.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/config/feature_flags.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/config/global.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/api_gateway.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/examples.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/machine_identity.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/path_manager.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/secrets_generator.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/nginx_conf.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_library_tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/common.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/include.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/prisma_config.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/validators.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/backend.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/lit.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/preact.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/qwik.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/react.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/solid.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/svelte.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vanilla.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vue.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frontend.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/generators.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/library.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/sdk.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite_config.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/README.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/__init__.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/constants.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/errors.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/integration.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/mapper.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/parser.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_integration.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_loader_parser.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_manifest.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_validator.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/validator.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/conditions.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/declaration.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/deps.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/libs.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/libs_discovery.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/libs_tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_resource_validation.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/builders/typescript.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/env.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/helpers.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/ordering.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/shared-platform-postgres.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/triggers.star +0 -0
- /package/{ext → runtime/ext}/ide-components/README.md +0 -0
- /package/{ext → runtime/ext}/ide-components/shared/static/styles.css +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/cron-status-server.sh +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/cron-status-tracker.sh +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/extension.yaml +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/ui/cron-jobs-tab.css +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/ui/help-panel.css +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/ui/icons.css +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/ui/tooltips.css +0 -0
- /package/{specs → runtime/specs}/specs/TILT_SERVICE_DEFAULTS.star +0 -0
- /package/{specs → runtime/specs}/specs/TILT_TECH_STACK.star +0 -0
package/{engine → runtime/engine}/topologies/platform/docker/compose/traefik_standalone.star
RENAMED
|
@@ -80,12 +80,13 @@ volumes:
|
|
|
80
80
|
name=name,
|
|
81
81
|
gateway_container=PlatformDockerConstants.TRAEFIK_WAKE_GATEWAY_CONTAINER,
|
|
82
82
|
gateway_port=PlatformDockerConstants.TRAEFIK_WAKE_GATEWAY_PORT,
|
|
83
|
-
vendored_gateway_dir="
|
|
83
|
+
vendored_gateway_dir="flisk-cli-ext/engine/assets/docker/wake-gateway",
|
|
84
84
|
tilt_dev_dir=os.environ.get("HOME", "") + "/.tilt-dev",
|
|
85
85
|
project_root_mount=_project_root_mount(),
|
|
86
|
+
docker_socket_gid=_docker_socket_gid(),
|
|
86
87
|
) if sablier_enabled else "",
|
|
87
88
|
dynamic_dir_name=PlatformDockerConstants.TRAEFIK_DYNAMIC_DIR_REL.split("/")[-1],
|
|
88
|
-
vendored_gateway_dir="
|
|
89
|
+
vendored_gateway_dir="flisk-cli-ext/engine/assets/docker/wake-gateway",
|
|
89
90
|
gateway_container=PlatformDockerConstants.TRAEFIK_WAKE_GATEWAY_CONTAINER,
|
|
90
91
|
gateway_port=PlatformDockerConstants.TRAEFIK_WAKE_GATEWAY_PORT,
|
|
91
92
|
tilt_dev_dir=os.environ.get("HOME", "") + "/.tilt-dev",
|
|
@@ -95,6 +96,16 @@ volumes:
|
|
|
95
96
|
)
|
|
96
97
|
|
|
97
98
|
|
|
99
|
+
def _docker_socket_gid():
|
|
100
|
+
"""Group ID the wake gateway joins to reach /var/run/docker.sock.
|
|
101
|
+
|
|
102
|
+
Docker Desktop exposes the socket as root:root (gid 0). On Linux hosts it
|
|
103
|
+
is usually root:docker, whose gid varies, so set FLISK_DOCKER_SOCKET_GID to
|
|
104
|
+
the socket's gid there (`stat -c %g /var/run/docker.sock`).
|
|
105
|
+
"""
|
|
106
|
+
return os.environ.get("FLISK_DOCKER_SOCKET_GID", "0")
|
|
107
|
+
|
|
108
|
+
|
|
98
109
|
def _project_root_mount():
|
|
99
110
|
"""Read-only mount of the project at its own absolute host path.
|
|
100
111
|
|
|
@@ -102,7 +113,7 @@ def _project_root_mount():
|
|
|
102
113
|
itself (bypassing Tilt's build queue), using the compose files Tilt uses.
|
|
103
114
|
Compose resolves relative paths in them (env_file etc.) client-side, so
|
|
104
115
|
they must exist at the same absolute paths inside the gateway container.
|
|
105
|
-
Empty when
|
|
116
|
+
Empty when FLISK_PROJECT_ROOT is unset (the generated Tiltfile sets it).
|
|
106
117
|
"""
|
|
107
118
|
root = project_root_abspath()
|
|
108
119
|
if not root:
|
|
@@ -111,8 +122,8 @@ def _project_root_mount():
|
|
|
111
122
|
|
|
112
123
|
|
|
113
124
|
def project_root_abspath():
|
|
114
|
-
"""Absolute, normalized project root (
|
|
115
|
-
return normalize_abs_path(os.environ.get("
|
|
125
|
+
"""Absolute, normalized project root (FLISK_PROJECT_ROOT), or "" when unset."""
|
|
126
|
+
return normalize_abs_path(os.environ.get("FLISK_PROJECT_ROOT", ""))
|
|
116
127
|
|
|
117
128
|
|
|
118
129
|
_SABLIER_DEPENDS_ON = """ depends_on:
|
|
@@ -162,9 +173,13 @@ _SABLIER_SERVICES = """ sablier:
|
|
|
162
173
|
- TILT_PORT=10350
|
|
163
174
|
- SABLIER_URL=http://sablier:10000
|
|
164
175
|
- PORT={gateway_port}
|
|
176
|
+
# Non-root (see the Dockerfile): the Docker socket is root-owned, so the
|
|
177
|
+
# gateway joins the socket's group instead of running as root.
|
|
178
|
+
group_add:
|
|
179
|
+
- "{docker_socket_gid}"
|
|
165
180
|
volumes:
|
|
166
181
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
167
|
-
- {tilt_dev_dir}:/
|
|
182
|
+
- {tilt_dev_dir}:/home/bun/.tilt-dev:ro{project_root_mount}
|
|
168
183
|
networks:
|
|
169
184
|
- traefik-public
|
|
170
185
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
# Compose 2.20.2+ (checked by `flisk doctor`).
|
|
11
11
|
#
|
|
12
12
|
# Override per run with environment variables, e.g.:
|
|
13
|
-
#
|
|
13
|
+
# FLISK_HEALTHCHECK_INTERVAL_SECONDS=15 flisk up
|
|
14
14
|
# =============================================================================
|
|
15
15
|
|
|
16
16
|
|
|
@@ -23,12 +23,12 @@ def _env_int(name, default):
|
|
|
23
23
|
|
|
24
24
|
DOCKER_HEALTHCHECK = {
|
|
25
25
|
"path": "/health",
|
|
26
|
-
"interval_seconds": _env_int("
|
|
27
|
-
"start_interval_seconds": _env_int("
|
|
28
|
-
"timeout_seconds": _env_int("
|
|
29
|
-
"start_period_seconds": _env_int("
|
|
30
|
-
"frontend_start_period_seconds": _env_int("
|
|
31
|
-
"retries": _env_int("
|
|
26
|
+
"interval_seconds": _env_int("FLISK_HEALTHCHECK_INTERVAL_SECONDS", 30),
|
|
27
|
+
"start_interval_seconds": _env_int("FLISK_HEALTHCHECK_START_INTERVAL_SECONDS", 2),
|
|
28
|
+
"timeout_seconds": _env_int("FLISK_HEALTHCHECK_TIMEOUT_SECONDS", 5),
|
|
29
|
+
"start_period_seconds": _env_int("FLISK_HEALTHCHECK_START_PERIOD_SECONDS", 30),
|
|
30
|
+
"frontend_start_period_seconds": _env_int("FLISK_HEALTHCHECK_START_PERIOD_SECONDS", 30),
|
|
31
|
+
"retries": _env_int("FLISK_HEALTHCHECK_RETRIES", 3),
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
|
|
@@ -9,21 +9,21 @@
|
|
|
9
9
|
# =============================================================================
|
|
10
10
|
|
|
11
11
|
# Load project name from project.json (makes Flisk CLI portable across projects)
|
|
12
|
-
# Falls back to '
|
|
13
|
-
# Use
|
|
12
|
+
# Falls back to 'flisk_project' / 'flisk-project' if project.json not found
|
|
13
|
+
# Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
|
|
14
14
|
def _load_project_names():
|
|
15
|
-
project_root = os.environ.get('
|
|
16
|
-
project_json_path = '.
|
|
15
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
|
|
16
|
+
project_json_path = '.flisk/project.json'
|
|
17
17
|
if project_root:
|
|
18
18
|
project_json_path = project_root + '/' + project_json_path
|
|
19
19
|
|
|
20
20
|
if os.path.exists(project_json_path):
|
|
21
21
|
_project_json = read_json(project_json_path)
|
|
22
|
-
_PROJECT_NAME_HYPHEN = _project_json.get('project', {}).get('name', '
|
|
22
|
+
_PROJECT_NAME_HYPHEN = _project_json.get('project', {}).get('name', 'flisk-project')
|
|
23
23
|
# Convert hyphenated name to underscore (e.g., "my-project" -> "my_project")
|
|
24
24
|
_PROJECT_NAME = _PROJECT_NAME_HYPHEN.replace('-', '_')
|
|
25
25
|
return _PROJECT_NAME, _PROJECT_NAME_HYPHEN
|
|
26
|
-
return "
|
|
26
|
+
return "flisk_project", "flisk-project"
|
|
27
27
|
|
|
28
28
|
_PROJECT_NAME, _PROJECT_NAME_HYPHEN = _load_project_names()
|
|
29
29
|
|
|
@@ -67,7 +67,7 @@ NETWORK_PROXY = PROJECT_NAME + "_proxy"
|
|
|
67
67
|
# Traefik file-provider dynamic config: one generated YAML per `sablier.deferStart`
|
|
68
68
|
# resource's static route (see openspec/changes/prioritized-cold-start), mounted
|
|
69
69
|
# read-only into the standalone Traefik container at /etc/traefik/dynamic.
|
|
70
|
-
TRAEFIK_DYNAMIC_DIR_REL = ".
|
|
70
|
+
TRAEFIK_DYNAMIC_DIR_REL = ".flisk/.flisk-out/traefik-dynamic"
|
|
71
71
|
TRAEFIK_WAKE_GATEWAY_CONTAINER = PROJECT_NAME_HYPHEN + "-wake-gateway"
|
|
72
72
|
TRAEFIK_WAKE_GATEWAY_PORT = 9999
|
|
73
73
|
|
package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/language_dockerfile.star
RENAMED
|
@@ -223,11 +223,11 @@ ENV GOFLAGS=-buildvcs=false CGO_ENABLED=0
|
|
|
223
223
|
# Prime the build cache inside the image (a cache mount would not be kept), so the first edit recompiles only what changed.
|
|
224
224
|
# Same flags as the watcher's builds (and CGO off like the production stage), so the primed binary and cache match every later one.
|
|
225
225
|
RUN go build -ldflags='-s -w' -o /tmp/app .
|
|
226
|
-
COPY --chmod=755 <<'
|
|
226
|
+
COPY --chmod=755 <<'FLISK_GO_DEV_WATCH' /usr/local/bin/flisk-go-watch
|
|
227
227
|
{watch_script}
|
|
228
|
-
|
|
228
|
+
FLISK_GO_DEV_WATCH
|
|
229
229
|
EXPOSE {port}
|
|
230
|
-
CMD ["
|
|
230
|
+
CMD ["flisk-go-watch"]
|
|
231
231
|
"""
|
|
232
232
|
|
|
233
233
|
def generate_language_dockerfile(res_path, language, port = BASE_PORT_BACKEND, dev = False):
|
|
@@ -13,17 +13,17 @@ ALPINE_BASE = "alpine:3.22"
|
|
|
13
13
|
load('../../../../../discovery/config.star', 'GLOBAL_CONFIG')
|
|
14
14
|
|
|
15
15
|
# Load project name for dynamic golden image naming
|
|
16
|
-
# Use
|
|
16
|
+
# Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
|
|
17
17
|
def _load_golden_prefix():
|
|
18
|
-
project_root = os.environ.get('
|
|
19
|
-
project_json_path = '.
|
|
18
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
|
|
19
|
+
project_json_path = '.flisk/project.json'
|
|
20
20
|
if project_root:
|
|
21
21
|
project_json_path = project_root + '/' + project_json_path
|
|
22
22
|
|
|
23
23
|
if os.path.exists(project_json_path):
|
|
24
24
|
_project_json = read_json(project_json_path)
|
|
25
|
-
return _project_json.get('project', {}).get('name', '
|
|
26
|
-
return '
|
|
25
|
+
return _project_json.get('project', {}).get('name', 'flisk-project')
|
|
26
|
+
return 'flisk-project'
|
|
27
27
|
|
|
28
28
|
_GOLDEN_PREFIX = _load_golden_prefix()
|
|
29
29
|
|
package/{engine → runtime/engine}/topologies/platform/docker/layers/l2_dependency_layers.star
RENAMED
|
@@ -20,17 +20,17 @@ load('../../../tilt/manifest/constants.star', 'AUTOGENERATED_CONFIG_PATHS', 'GEN
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
# Load project name for dynamic golden image naming
|
|
23
|
-
# Use
|
|
23
|
+
# Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
|
|
24
24
|
def _load_golden_prefix():
|
|
25
|
-
project_root = os.environ.get('
|
|
26
|
-
project_json_path = '.
|
|
25
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
|
|
26
|
+
project_json_path = '.flisk/project.json'
|
|
27
27
|
if project_root:
|
|
28
28
|
project_json_path = project_root + '/' + project_json_path
|
|
29
29
|
|
|
30
30
|
if os.path.exists(project_json_path):
|
|
31
31
|
_project_json = read_json(project_json_path)
|
|
32
|
-
return _project_json.get('project', {}).get('name', '
|
|
33
|
-
return '
|
|
32
|
+
return _project_json.get('project', {}).get('name', 'flisk-project')
|
|
33
|
+
return 'flisk-project'
|
|
34
34
|
|
|
35
35
|
_GOLDEN_PREFIX = _load_golden_prefix()
|
|
36
36
|
|
|
@@ -55,14 +55,14 @@ def normalize_res_path(res_path):
|
|
|
55
55
|
return res_path
|
|
56
56
|
if not res_path.startswith('/'):
|
|
57
57
|
return res_path
|
|
58
|
-
project_root = os.environ.get('
|
|
59
|
-
cmd =
|
|
60
|
-
"python3
|
|
61
|
-
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '.')
|
|
59
|
+
cmd = [
|
|
60
|
+
"python3",
|
|
61
|
+
"-c",
|
|
62
|
+
"import os, sys; print(os.path.relpath(os.path.realpath(sys.argv[1]), os.path.realpath(sys.argv[2])))",
|
|
63
|
+
res_path,
|
|
64
|
+
project_root,
|
|
65
|
+
]
|
|
66
66
|
relative = str(local(cmd, quiet=True, echo_off=True)).strip()
|
|
67
67
|
if relative:
|
|
68
68
|
return relative
|
|
@@ -137,7 +137,7 @@ RUN echo '🔍 DEPENDENCY INSTALLATION DIAGNOSTICS (debug)' && \\
|
|
|
137
137
|
+ "/usr/local/bin/install-deps.sh && end_ts=$(date +%s) && echo \"install-deps duration: $((end_ts-start_ts))s\"\n"
|
|
138
138
|
# Guarantee /app/node_modules/.bun exists so L3's COPY --link never
|
|
139
139
|
# fails with "not found". Bun's isolated linker only creates this dir
|
|
140
|
-
# when hoisted packages are present; without
|
|
140
|
+
# when hoisted packages are present; without FLISK_LICENSE_KEY the public-
|
|
141
141
|
# npm install may skip it entirely.
|
|
142
142
|
+ "RUN mkdir -p /app/node_modules/.bun\n"
|
|
143
143
|
)
|
|
@@ -36,17 +36,17 @@ load('./prisma/prisma_build.star',
|
|
|
36
36
|
load('./infisical/infisical_docker.star', 'InfisicalDocker')
|
|
37
37
|
|
|
38
38
|
# Load project name for dynamic golden image naming
|
|
39
|
-
# Use
|
|
39
|
+
# Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
|
|
40
40
|
def _load_golden_prefix():
|
|
41
|
-
project_root = os.environ.get('
|
|
42
|
-
project_json_path = '.
|
|
41
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
|
|
42
|
+
project_json_path = '.flisk/project.json'
|
|
43
43
|
if project_root:
|
|
44
44
|
project_json_path = project_root + '/' + project_json_path
|
|
45
45
|
|
|
46
46
|
if os.path.exists(project_json_path):
|
|
47
47
|
_project_json = read_json(project_json_path)
|
|
48
|
-
return _project_json.get('project', {}).get('name', '
|
|
49
|
-
return '
|
|
48
|
+
return _project_json.get('project', {}).get('name', 'flisk-project')
|
|
49
|
+
return 'flisk-project'
|
|
50
50
|
|
|
51
51
|
_GOLDEN_PREFIX = _load_golden_prefix()
|
|
52
52
|
|
|
@@ -38,17 +38,17 @@ load('./infisical/infisical_docker.star', 'InfisicalDocker')
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
# Load project name for dynamic golden image naming
|
|
41
|
-
# Use
|
|
41
|
+
# Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
|
|
42
42
|
def _load_golden_prefix():
|
|
43
|
-
project_root = os.environ.get('
|
|
44
|
-
project_json_path = '.
|
|
43
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
|
|
44
|
+
project_json_path = '.flisk/project.json'
|
|
45
45
|
if project_root:
|
|
46
46
|
project_json_path = project_root + '/' + project_json_path
|
|
47
47
|
|
|
48
48
|
if os.path.exists(project_json_path):
|
|
49
49
|
_project_json = read_json(project_json_path)
|
|
50
|
-
return _project_json.get('project', {}).get('name', '
|
|
51
|
-
return '
|
|
50
|
+
return _project_json.get('project', {}).get('name', 'flisk-project')
|
|
51
|
+
return 'flisk-project'
|
|
52
52
|
|
|
53
53
|
_GOLDEN_PREFIX = _load_golden_prefix()
|
|
54
54
|
|
|
@@ -95,7 +95,7 @@ def resolve_bun_start_command(res_path, cmd = DEFAULT_BUN_START_COMMAND):
|
|
|
95
95
|
return cmd
|
|
96
96
|
package_json_path = res_path + '/package.json'
|
|
97
97
|
if not res_path.startswith('/'):
|
|
98
|
-
package_json_path = os.environ.get('
|
|
98
|
+
package_json_path = os.environ.get('FLISK_PROJECT_ROOT', '.') + '/' + package_json_path
|
|
99
99
|
if not os.path.exists(package_json_path):
|
|
100
100
|
return cmd
|
|
101
101
|
package_json = read_json(package_json_path, default = {}) or {}
|
|
@@ -173,12 +173,12 @@ def L4_generate_backend_runtime(res_path, port = BASE_PORT_BACKEND, cmd = 'bun r
|
|
|
173
173
|
parts.append("RUN apk add --no-cache hugo\n")
|
|
174
174
|
parts.append("USER bun\n")
|
|
175
175
|
|
|
176
|
-
# A files-durability agent keeps its checkpoints in /var/lib/
|
|
176
|
+
# A files-durability agent keeps its checkpoints in /var/lib/flisk-agent, a named volume. Docker seeds a new volume with the
|
|
177
177
|
# image directory's owner, so create the directory owned by bun, or the agent cannot write its first checkpoint (EACCES).
|
|
178
178
|
agent_cfg = manifest.get('agent') if manifest else None
|
|
179
179
|
if type(agent_cfg) == 'dict' and agent_cfg.get('durability', 'files') == 'files':
|
|
180
180
|
parts.append("USER root\n")
|
|
181
|
-
parts.append("RUN mkdir -p /var/lib/
|
|
181
|
+
parts.append("RUN mkdir -p /var/lib/flisk-agent && chown bun:bun /var/lib/flisk-agent\n")
|
|
182
182
|
parts.append("USER bun\n")
|
|
183
183
|
|
|
184
184
|
if has_prisma_config:
|
|
@@ -69,17 +69,17 @@ PRISMA_MIGRATE_DEPLOY_SUBCOMMAND = "migrate deploy"
|
|
|
69
69
|
PRISMA_GENERATE_SUBCOMMAND = "generate"
|
|
70
70
|
|
|
71
71
|
# Load project name for dynamic golden image naming
|
|
72
|
-
# Use
|
|
72
|
+
# Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
|
|
73
73
|
def _load_golden_prefix():
|
|
74
|
-
project_root = os.environ.get('
|
|
75
|
-
project_json_path = '.
|
|
74
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
|
|
75
|
+
project_json_path = '.flisk/project.json'
|
|
76
76
|
if project_root:
|
|
77
77
|
project_json_path = project_root + '/' + project_json_path
|
|
78
78
|
|
|
79
79
|
if os.path.exists(project_json_path):
|
|
80
80
|
_project_json = read_json(project_json_path)
|
|
81
|
-
return _project_json.get('project', {}).get('name', '
|
|
82
|
-
return '
|
|
81
|
+
return _project_json.get('project', {}).get('name', 'flisk-project')
|
|
82
|
+
return 'flisk-project'
|
|
83
83
|
|
|
84
84
|
_GOLDEN_PREFIX = _load_golden_prefix()
|
|
85
85
|
|
package/{engine → runtime/engine}/topologies/platform/docker/networking/api_path_constants.star
RENAMED
|
@@ -164,17 +164,17 @@ def get_api_path_for_resource(resource_name):
|
|
|
164
164
|
get_api_path_for_service = get_api_path_for_resource
|
|
165
165
|
|
|
166
166
|
# Load project name for dynamic localhost domain
|
|
167
|
-
# Use
|
|
167
|
+
# Use FLISK_PROJECT_ROOT env var set by Tilt, fallback to current directory
|
|
168
168
|
def _load_project_localhost():
|
|
169
|
-
project_root = os.environ.get('
|
|
170
|
-
project_json_path = '.
|
|
169
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
|
|
170
|
+
project_json_path = '.flisk/project.json'
|
|
171
171
|
if project_root:
|
|
172
172
|
project_json_path = project_root + '/' + project_json_path
|
|
173
173
|
|
|
174
174
|
if os.path.exists(project_json_path):
|
|
175
175
|
_project_json = read_json(project_json_path)
|
|
176
|
-
return _project_json.get('project', {}).get('name', '
|
|
177
|
-
return "
|
|
176
|
+
return _project_json.get('project', {}).get('name', 'flisk-project') + ".localhost"
|
|
177
|
+
return "flisk-project.localhost"
|
|
178
178
|
|
|
179
179
|
_PROJECT_LOCALHOST = _load_project_localhost()
|
|
180
180
|
|
package/{engine → runtime/engine}/topologies/platform/docker/networking/sablier_container_cycle.star
RENAMED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# The real generator (Sablier + Traefik label wiring that stops idle
|
|
9
9
|
# containers and wakes them on the next request) is part of a paid Flisk
|
|
10
10
|
# license. When a valid license grants the "sablier" resource,
|
|
11
|
-
# cli/src/generator/template-engine.ts (
|
|
11
|
+
# cli/src/generator/template-engine.ts (vendorFliskExtension) overwrites this
|
|
12
12
|
# file with the licensed version fetched via extension-fetch.ts before Tilt
|
|
13
13
|
# loads it. Same function signatures either way, so nothing else in the
|
|
14
14
|
# generator pipeline changes -- every call site just gets "disabled" back
|
package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_static_routes.star
RENAMED
|
@@ -36,7 +36,7 @@ def normalize_abs_path(path):
|
|
|
36
36
|
"""Absolute path with `.`/`..` segments collapsed, or "" for "".
|
|
37
37
|
|
|
38
38
|
Tilt's os.path.abspath does not collapse `..` (confirmed:
|
|
39
|
-
abspath("/a/.
|
|
39
|
+
abspath("/a/.flisk/.flisk-out/../..") comes back unchanged), and the
|
|
40
40
|
generated Tiltfile's project root is exactly that shape
|
|
41
41
|
(config.main_dir + "/../.."). The gateway's project mount and the compose
|
|
42
42
|
paths in its route headers must match byte-for-byte, so both go through here.
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# Docker Compose's own `${NAME}` interpolation, so nothing secret is ever written to a generated, committed file. A required secret
|
|
10
10
|
# uses `${NAME:?message}`, so Compose refuses to start the service when the name is missing; an optional one defaults to empty.
|
|
11
11
|
#
|
|
12
|
-
# `
|
|
12
|
+
# `FLISK_SECRET_PROVIDER=infisical` leaves the names to Infisical instead, and nothing is injected here.
|
|
13
13
|
# =============================================================================
|
|
14
14
|
|
|
15
15
|
DEFAULT_SECRET_PROVIDER = 'env-file'
|
|
@@ -20,7 +20,7 @@ _NAME_REST = _NAME_FIRST + '0123456789'
|
|
|
20
20
|
|
|
21
21
|
def get_secret_provider():
|
|
22
22
|
"""The selected provider: `env-file` (default) or `infisical`."""
|
|
23
|
-
provider = str(os.environ.get('
|
|
23
|
+
provider = str(os.environ.get('FLISK_SECRET_PROVIDER', '')).strip().lower()
|
|
24
24
|
return provider if provider else DEFAULT_SECRET_PROVIDER
|
|
25
25
|
|
|
26
26
|
|
|
@@ -39,13 +39,13 @@ def get_infisical_environment_vars(as_array=True, resource_name=None, resource_t
|
|
|
39
39
|
String with environment variables in YAML format
|
|
40
40
|
"""
|
|
41
41
|
env = {
|
|
42
|
-
"
|
|
43
|
-
"
|
|
42
|
+
"FLISK_SECRET_PROVIDER": "${FLISK_SECRET_PROVIDER:-env-file}",
|
|
43
|
+
"FLISK_ENV": "${TILT_ENV:-development}",
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
if resource_name:
|
|
47
|
-
env["
|
|
48
|
-
env["
|
|
47
|
+
env["FLISK_RESOURCE_NAME"] = resource_name
|
|
48
|
+
env["FLISK_RESOURCE_TYPE"] = resource_type
|
|
49
49
|
|
|
50
50
|
if as_array:
|
|
51
51
|
lines = []
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# The real loader (stands up the Verdaccio private npm registry container and
|
|
9
9
|
# wires it into the project's Docker network) is part of a paid Flisk license.
|
|
10
10
|
# When a valid license grants the "verdaccio" resource,
|
|
11
|
-
# cli/src/generator/template-engine.ts (
|
|
11
|
+
# cli/src/generator/template-engine.ts (vendorFliskExtension) overwrites this
|
|
12
12
|
# file with the licensed version fetched via extension-fetch.ts before Tilt
|
|
13
13
|
# loads it. Same function signature either way, so nothing else in the
|
|
14
14
|
# loader pipeline changes.
|
|
@@ -150,7 +150,7 @@ def _generate_org_config(org_name=None, environments=None, resource_names=None):
|
|
|
150
150
|
# Predefined Services Configuration
|
|
151
151
|
# =============================================================================
|
|
152
152
|
|
|
153
|
-
# Project-specific service configurations should be defined in .
|
|
153
|
+
# Project-specific service configurations should be defined in .flisk/project.json
|
|
154
154
|
# This dict is kept for backward compatibility but should be empty for generic Flisk CLI
|
|
155
155
|
PREDEFINED_RESOURCES = {}
|
|
156
156
|
|
|
@@ -62,7 +62,7 @@ MIGRATED_PACKAGES = {
|
|
|
62
62
|
load("../manifest/constants.star", "MANIFEST_FILENAME")
|
|
63
63
|
|
|
64
64
|
# List of all shared platform networks
|
|
65
|
-
# All networks use PROJECT_NAME format (e.g.,
|
|
65
|
+
# All networks use PROJECT_NAME format (e.g., flisk_project_*)
|
|
66
66
|
PLATFORM_NETWORKS = [
|
|
67
67
|
PlatformDockerConstants.NETWORK_TRAEFIK_PUBLIC,
|
|
68
68
|
PlatformDockerConstants.PROJECT_NAME + "_traefik-private",
|
|
@@ -79,7 +79,7 @@ PLATFORM_NETWORKS = [
|
|
|
79
79
|
|
|
80
80
|
def get_internal_deps(resource_path):
|
|
81
81
|
"""
|
|
82
|
-
Extract all @
|
|
82
|
+
Extract all @flisk/* dependencies from a service's package.json.
|
|
83
83
|
"""
|
|
84
84
|
pkg_json_path = resource_path + '/package.json'
|
|
85
85
|
pkg_content = read_file(pkg_json_path, default='')
|
|
@@ -105,7 +105,7 @@ def get_internal_deps(resource_path):
|
|
|
105
105
|
|
|
106
106
|
def resolve_lib_path(package_name):
|
|
107
107
|
"""
|
|
108
|
-
Resolve @
|
|
108
|
+
Resolve @flisk/* package name to workspace path using naming conventions.
|
|
109
109
|
|
|
110
110
|
Checks MIGRATED_PACKAGES first for packages that have been moved from their
|
|
111
111
|
conventional locations, then falls back to standard naming conventions.
|
|
@@ -274,7 +274,7 @@ def _is_allowed_generated_path(file_path, project_root):
|
|
|
274
274
|
return False
|
|
275
275
|
if '.autogenerated' in parts:
|
|
276
276
|
return True
|
|
277
|
-
if path.startswith('.
|
|
277
|
+
if path.startswith('.flisk/.flisk-out/'):
|
|
278
278
|
return True
|
|
279
279
|
if path == 'services/platform/database-management/docker-compose.yml':
|
|
280
280
|
return True
|
|
@@ -291,8 +291,7 @@ def _write_generated_file(file_path, content):
|
|
|
291
291
|
dir_path = file_path.rsplit('/', 1)[0]
|
|
292
292
|
if not dir_path:
|
|
293
293
|
dir_path = '/'
|
|
294
|
-
|
|
295
|
-
cmd = "mkdir -p '" + dir_path + "' && printf '%s' '" + safe_content + "' > '" + file_path + "'"
|
|
294
|
+
cmd = ["sh", "-c", 'mkdir -p "$1" && printf "%s" "$2" > "$3"', "sh", dir_path, expected + '\n', file_path]
|
|
296
295
|
local(cmd, quiet=True, echo_off=True)
|
|
297
296
|
|
|
298
297
|
def write_file_if_changed(file_path, content):
|
|
@@ -301,13 +300,13 @@ def write_file_if_changed(file_path, content):
|
|
|
301
300
|
Uses Tilt's native read_file() - fast and silent.
|
|
302
301
|
|
|
303
302
|
If file_path is relative (doesn't start with /), it will be written relative
|
|
304
|
-
to the project root (
|
|
303
|
+
to the project root (FLISK_PROJECT_ROOT env var) instead of Tilt working dir.
|
|
305
304
|
"""
|
|
306
305
|
if content == None:
|
|
307
306
|
content = ""
|
|
308
307
|
|
|
309
308
|
# For relative paths, prepend project root to ensure files go to correct location
|
|
310
|
-
project_root = os.environ.get('
|
|
309
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '.')
|
|
311
310
|
if not file_path.startswith('/'):
|
|
312
311
|
# Remove leading ./ if present in file_path
|
|
313
312
|
clean_file_path = file_path[2:] if file_path.startswith('./') else file_path
|
|
@@ -333,10 +332,10 @@ def write_file_if_changed(file_path, content):
|
|
|
333
332
|
normalized = file_path.replace('\\', '/')
|
|
334
333
|
generated_marker = '/.autogenerated/'
|
|
335
334
|
marker_index = normalized.rfind(generated_marker)
|
|
336
|
-
if marker_index >= 0 and '/.
|
|
335
|
+
if marker_index >= 0 and '/.flisk-contract/' not in normalized:
|
|
337
336
|
service_root = normalized[:marker_index]
|
|
338
337
|
generated_rel = normalized[marker_index + len(generated_marker):]
|
|
339
|
-
contract_root = service_root + '/.autogenerated/.
|
|
338
|
+
contract_root = service_root + '/.autogenerated/.flisk-contract'
|
|
340
339
|
_write_generated_file(contract_root + '/' + generated_rel, expected)
|
|
341
340
|
manifest_content = read_file(service_root + '/service.json', default='')
|
|
342
341
|
if manifest_content:
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# 🛠️ TILT SDK - DEBUG UTILITIES
|
|
5
5
|
# =============================================================================
|
|
6
6
|
|
|
7
|
-
DEBUG_MODE = (os.environ.get('
|
|
7
|
+
DEBUG_MODE = (os.environ.get('FLISK_DEBUG') or os.environ.get('TILT_DEBUG', 'false')).lower() in ['true', '1', 'yes']
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
def debug_log(message, data=None):
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# =============================================================================
|
|
9
9
|
#
|
|
10
10
|
# Usage:
|
|
11
|
-
# load('ext://
|
|
11
|
+
# load('ext://flisk-cli', 'deterministic_find', 'deterministic_local')
|
|
12
12
|
#
|
|
13
13
|
# files = deterministic_find('./services', 'service.json')
|
|
14
14
|
# result = deterministic_local('bun install')
|
|
@@ -46,7 +46,7 @@ def deterministic_find(path, pattern):
|
|
|
46
46
|
Returns:
|
|
47
47
|
Sorted list of files (alphabetical, cross-platform consistent)
|
|
48
48
|
"""
|
|
49
|
-
cmd = "find
|
|
49
|
+
cmd = ["sh", "-c", 'find "$1" -type f -name "$2" 2>/dev/null | sort', "sh", path, pattern]
|
|
50
50
|
result = str(local(cmd, quiet=True, echo_off=True)).strip()
|
|
51
51
|
if result:
|
|
52
52
|
return result.split('\n')
|
|
@@ -10,7 +10,7 @@ _DOTENV_NAME_REST = _DOTENV_NAME_FIRST + '0123456789'
|
|
|
10
10
|
|
|
11
11
|
# The environment variable `flisk up --env-file <path>` sets. The CLI resolves the path and
|
|
12
12
|
# exports it, so the engine reads one file for the whole run.
|
|
13
|
-
PROJECT_ENV_FILE_VAR = '
|
|
13
|
+
PROJECT_ENV_FILE_VAR = 'FLISK_ENV_FILE'
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
def _is_dotenv_name(name):
|
|
@@ -63,7 +63,7 @@ def _dotenv_value(raw):
|
|
|
63
63
|
def project_env_file(project_root=''):
|
|
64
64
|
"""The project env file of this run.
|
|
65
65
|
|
|
66
|
-
`flisk up --env-file <path>` exports
|
|
66
|
+
`flisk up --env-file <path>` exports FLISK_ENV_FILE, and the run then reads that file instead of the
|
|
67
67
|
project `.env` - for the Tilt environment and for the Compose interpolation alike. Without the
|
|
68
68
|
variable the project `.env` is used, which is what every run did before the option existed.
|
|
69
69
|
|
|
@@ -79,15 +79,15 @@ def project_env_file(project_root=''):
|
|
|
79
79
|
def load_dotenv(project_root=''):
|
|
80
80
|
"""Load the project env file of this run into os.environ.
|
|
81
81
|
|
|
82
|
-
The Tiltfile lives in `.
|
|
83
|
-
project-root file. Prefer an explicit project_root, then
|
|
82
|
+
The Tiltfile lives in `.flisk/.flisk-out/`, so a bare `.env` lookup misses the
|
|
83
|
+
project-root file. Prefer an explicit project_root, then FLISK_PROJECT_ROOT.
|
|
84
84
|
|
|
85
85
|
The file is read with `read_file` and parsed here: nothing goes through a shell, so a path containing a quote is fine, and Tilt
|
|
86
86
|
re-evaluates the Tiltfile when the .env changes. Lines may be `NAME=value` or `export NAME=value`; comments, blank lines and
|
|
87
87
|
lines that are not an assignment to a valid name are ignored. A missing file does nothing.
|
|
88
88
|
"""
|
|
89
89
|
if not project_root:
|
|
90
|
-
project_root = os.environ.get('
|
|
90
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
|
|
91
91
|
env_path = project_env_file(project_root)
|
|
92
92
|
content = str(read_file(env_path, default=''))
|
|
93
93
|
if not content:
|
|
@@ -137,18 +137,18 @@ def get_all_needed_services(targets, skip_frontend = False):
|
|
|
137
137
|
|
|
138
138
|
def _load_focus_lists():
|
|
139
139
|
"""Load focus lists from project spec.master directly."""
|
|
140
|
-
project_root = os.environ.get('
|
|
140
|
+
project_root = os.environ.get('FLISK_PROJECT_ROOT', '')
|
|
141
141
|
if not project_root:
|
|
142
142
|
return ([], [], [])
|
|
143
143
|
|
|
144
144
|
# Load from spec.master
|
|
145
145
|
spec_paths = [
|
|
146
|
-
project_root + "/.
|
|
146
|
+
project_root + "/.flisk/.flisk-out/spec.master",
|
|
147
147
|
project_root + "/spec.master",
|
|
148
148
|
]
|
|
149
149
|
|
|
150
150
|
for spec_path in spec_paths:
|
|
151
|
-
check_cmd = "test -f
|
|
151
|
+
check_cmd = ["sh", "-c", "test -f \"$1\" && echo 'yes' || echo 'no'", "sh", spec_path]
|
|
152
152
|
exists = str(local(check_cmd, quiet=True, echo_off=True)).strip() == 'yes'
|
|
153
153
|
if exists:
|
|
154
154
|
# Parse PRE_ALPHA_RESOURCES from spec.master
|
|
@@ -156,7 +156,7 @@ def _load_focus_lists():
|
|
|
156
156
|
alpha = []
|
|
157
157
|
beta = []
|
|
158
158
|
|
|
159
|
-
content = str(local("
|
|
159
|
+
content = str(local(["sh", "-c", "cat \"$1\" 2>/dev/null || true", "sh", spec_path], quiet=True, echo_off=True))
|
|
160
160
|
|
|
161
161
|
# Simple parsing for PRE_ALPHA_RESOURCES = {"key": True, ...}
|
|
162
162
|
if "PRE_ALPHA_RESOURCES" in content:
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# manifest-driven architecture, the do/don't table, and the emergency
|
|
10
10
|
# override procedure) are a paid Flisk feature. When a valid license grants
|
|
11
11
|
# the "agents-md" resource, cli/src/generator/template-engine.ts
|
|
12
|
-
# (
|
|
12
|
+
# (vendorFliskExtension) overwrites this file with the licensed version
|
|
13
13
|
# fetched via extension-fetch.ts before Tilt loads it. Same function
|
|
14
14
|
# signature either way, so nothing else in the generator pipeline changes.
|
|
15
15
|
# =============================================================================
|
|
@@ -354,7 +354,7 @@ print(result["deprecated"]) # False
|
|
|
354
354
|
## File Structure
|
|
355
355
|
|
|
356
356
|
```
|
|
357
|
-
|
|
357
|
+
flisk-cli/engine/topologies/
|
|
358
358
|
├── tilt/generators/infisical/
|
|
359
359
|
│ ├── index.star # Master module export
|
|
360
360
|
│ ├── secrets_generator.star # Secret injection config
|