@tdk-landscape/tdk-cli-core 1.3.15 → 1.3.22
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/Tiltfile +144 -0
- package/discovery/AGENTS.md +362 -0
- package/discovery/TILT_DISCOVERY.star +424 -0
- package/discovery/Tiltfile +58 -0
- package/discovery/config.star +258 -0
- package/discovery/constants.star +127 -0
- package/discovery/deterministic.star +211 -0
- package/discovery/discovery_daemon.star +191 -0
- package/discovery/discovery_orchestrator.star +460 -0
- package/discovery/filtering.star +5 -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 +213 -0
- package/discovery/indexing.star +7 -0
- package/discovery/json_manifest_scanner.star +51 -0
- package/discovery/libraries.star +46 -0
- package/discovery/loading.star +23 -0
- package/discovery/manifest/constants.star +104 -0
- package/discovery/manifest/loading.star +386 -0
- package/discovery/manifest/normalize.star +281 -0
- package/discovery/manifest/validation.star +108 -0
- package/discovery/normalization.star +11 -0
- package/discovery/registry.star +544 -0
- package/discovery/resource_snapshot.py +382 -0
- package/discovery/resource_snapshot.star +143 -0
- package/discovery/schemas.star +1 -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 +251 -0
- package/discovery/validation.star +78 -0
- package/discovery/versioning.star +1 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +11 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +1 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +36 -41
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/resource.d.ts.map +1 -1
- package/dist/commands/resource.js +51 -55
- package/dist/commands/resource.js.map +1 -1
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +22 -24
- package/dist/commands/stack.js.map +1 -1
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +1 -2
- package/dist/commands/ui.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +1 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/upgrade.d.ts +8 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +59 -18
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/generator/extension-fetch.d.ts +19 -0
- package/dist/generator/extension-fetch.d.ts.map +1 -1
- package/dist/generator/extension-fetch.js +71 -5
- package/dist/generator/extension-fetch.js.map +1 -1
- package/dist/generator/template-engine.d.ts +1 -0
- package/dist/generator/template-engine.d.ts.map +1 -1
- package/dist/generator/template-engine.js +50 -6
- package/dist/generator/template-engine.js.map +1 -1
- package/dist/utils/command-helpers.d.ts.map +1 -1
- package/dist/utils/command-helpers.js +7 -9
- package/dist/utils/command-helpers.js.map +1 -1
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +1 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/errors.d.ts +2 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +6 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/project-features.d.ts.map +1 -1
- package/dist/utils/project-features.js +1 -1
- package/dist/utils/project-features.js.map +1 -1
- package/dist/utils/resource-features.d.ts.map +1 -1
- package/dist/utils/resource-features.js +2 -2
- package/dist/utils/resource-features.js.map +1 -1
- package/dist/utils/tar.js +4 -4
- package/dist/utils/tar.js.map +1 -1
- package/dist/utils/validation.d.ts +7 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +9 -0
- package/dist/utils/validation.js.map +1 -1
- package/engine/AGENTS.md +705 -0
- package/engine/README.md +29 -0
- package/engine/REFACTORING_MANIFEST_SYSTEM.md +974 -0
- package/engine/Tiltfile +80 -0
- package/engine/assets/docker/golden-layers.Dockerfile +221 -0
- package/engine/assets/scripts/cleanup-completed-migrator-images.sh +37 -0
- package/engine/assets/scripts/cleanup-tilt-images.sh +120 -0
- package/engine/assets/scripts/mac-m1-resource-monitor.sh +121 -0
- package/engine/config.star +3 -0
- package/engine/docs/AUTODISCOVERY_TEST.md +182 -0
- package/engine/docs/C4-ARCHITECTURE-operations.md +396 -0
- package/engine/docs/C4-ARCHITECTURE-overview.md +284 -0
- package/engine/docs/C4-ARCHITECTURE.md +17 -0
- package/engine/docs/GOLDEN_IMAGE_INTEGRATION.md +349 -0
- package/engine/docs/MANIFEST_DRIVEN_ARCHITECTURE.md +357 -0
- package/engine/docs/README.md +284 -0
- package/engine/entrypoint.star +97 -0
- package/engine/lifecycle/orchestrator.star +260 -0
- package/engine/paths.star +717 -0
- package/engine/schemas/manifest-schema.json +301 -0
- package/engine/schemas/service-schema.json +301 -0
- package/engine/scripts/README.md +89 -0
- package/engine/scripts/build-and-publish-lib.sh +205 -0
- package/engine/scripts/check-lib-publish.sh +85 -0
- package/engine/scripts/debug-container.sh +258 -0
- package/engine/scripts/generate-manifest.sh +197 -0
- package/engine/spec.master +702 -0
- package/engine/spec.master.example +341 -0
- package/engine/topologies/README.md +34 -0
- package/engine/topologies/platform/docker/AGENTS.md +59 -0
- package/engine/topologies/platform/docker/auth/auth.star +167 -0
- package/engine/topologies/platform/docker/build/golden_image.star +37 -0
- package/engine/topologies/platform/docker/build/golden_image_build.star +82 -0
- package/engine/topologies/platform/docker/build/golden_image_constants.star +93 -0
- package/engine/topologies/platform/docker/build/golden_image_dockerfile.star +291 -0
- package/engine/topologies/platform/docker/compose/compose.star +636 -0
- package/engine/topologies/platform/docker/compose/compose_helpers.star +52 -0
- package/engine/topologies/platform/docker/compose/traefik_standalone.star +53 -0
- package/engine/topologies/platform/docker/config/bunignore.star +142 -0
- package/engine/topologies/platform/docker/config/dockerignore.star +150 -0
- package/engine/topologies/platform/docker/constants.star +170 -0
- package/engine/topologies/platform/docker/dockerfile/dockerfile.star +54 -0
- package/engine/topologies/platform/docker/generators/golden_docker_generator_v2.star +73 -0
- package/engine/topologies/platform/docker/index.star +27 -0
- package/engine/topologies/platform/docker/layers/bun_helpers.star +23 -0
- package/engine/topologies/platform/docker/layers/infisical/index.star +40 -0
- package/engine/topologies/platform/docker/layers/infisical/infisical_docker.star +262 -0
- package/engine/topologies/platform/docker/layers/l1_base_layers.star +87 -0
- package/engine/topologies/platform/docker/layers/l2_dependency_layers.star +125 -0
- package/engine/topologies/platform/docker/layers/l3_builder_layers.star +209 -0
- package/engine/topologies/platform/docker/layers/l4_runtime_layers.star +214 -0
- package/engine/topologies/platform/docker/layers/prisma/constants.star +135 -0
- package/engine/topologies/platform/docker/layers/prisma/db_readiness.star +96 -0
- package/engine/topologies/platform/docker/layers/prisma/filesystem_setup.star +109 -0
- package/engine/topologies/platform/docker/layers/prisma/migrate_script.star +98 -0
- package/engine/topologies/platform/docker/layers/prisma/prisma_build.star +126 -0
- package/engine/topologies/platform/docker/layers/prisma/prisma_runtime.star +161 -0
- package/engine/topologies/platform/docker/layers/prisma/secret_resolution.star +119 -0
- package/engine/topologies/platform/docker/networking/api_path_constants.star +230 -0
- package/engine/topologies/platform/docker/networking/sablier_container_cycle.star +27 -0
- package/engine/topologies/platform/docker/networking/traefik.star +232 -0
- package/engine/topologies/platform/docker/networking/traefik_constants.star +146 -0
- package/engine/topologies/platform/docker/networking/traefik_helpers.star +160 -0
- package/engine/topologies/platform/docker/secrets/infisical.star +135 -0
- package/engine/topologies/platform/net/proxy.star +4 -0
- package/engine/topologies/platform/registries/local.star +4 -0
- package/engine/topologies/platform/security/secrets.star +239 -0
- package/engine/topologies/platform/state/relational.star +4 -0
- package/engine/topologies/tilt/common/AGENTS.md +59 -0
- package/engine/topologies/tilt/common/utils.star +364 -0
- package/engine/topologies/tilt/common/utils_debug.star +69 -0
- package/engine/topologies/tilt/common/utils_deterministic.star +168 -0
- package/engine/topologies/tilt/common/utils_docker_networks.star +46 -0
- package/engine/topologies/tilt/common/utils_env.star +43 -0
- package/engine/topologies/tilt/common/utils_output.star +97 -0
- package/engine/topologies/tilt/config/AGENTS.md +68 -0
- package/engine/topologies/tilt/config/defaults.star +3 -0
- package/engine/topologies/tilt/config/feature_flags.star +10 -0
- package/engine/topologies/tilt/config/global.star +55 -0
- package/engine/topologies/tilt/config/profiles.star +382 -0
- package/engine/topologies/tilt/generators/agents_md.star +62 -0
- package/engine/topologies/tilt/generators/api_gateway.star +145 -0
- package/engine/topologies/tilt/generators/index.star +124 -0
- package/engine/topologies/tilt/generators/infisical/README.md +424 -0
- package/engine/topologies/tilt/generators/infisical/examples.star +312 -0
- package/engine/topologies/tilt/generators/infisical/index.star +57 -0
- package/engine/topologies/tilt/generators/infisical/machine_identity.star +420 -0
- package/engine/topologies/tilt/generators/infisical/organization.star +534 -0
- package/engine/topologies/tilt/generators/infisical/path_manager.star +476 -0
- package/engine/topologies/tilt/generators/infisical/secrets_generator.star +420 -0
- package/engine/topologies/tilt/generators/nginx_conf.star +143 -0
- package/engine/topologies/tilt/generators/npmrc.star +111 -0
- package/engine/topologies/tilt/generators/tsconfig.star +23 -0
- package/engine/topologies/tilt/generators/typescript/backend_library_tsconfig.star +71 -0
- package/engine/topologies/tilt/generators/typescript/backend_tsconfig.star +124 -0
- package/engine/topologies/tilt/generators/typescript/common.star +7 -0
- package/engine/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +76 -0
- package/engine/topologies/tilt/generators/typescript/frontend_tsconfig.star +110 -0
- package/engine/topologies/tilt/generators/typescript/include.star +23 -0
- package/engine/topologies/tilt/generators/typescript/playwright_config.star +40 -0
- package/engine/topologies/tilt/generators/typescript/prisma_config.star +49 -0
- package/engine/topologies/tilt/generators/validators.star +853 -0
- package/engine/topologies/tilt/generators/vite/backend.star +78 -0
- package/engine/topologies/tilt/generators/vite/frontend.star +98 -0
- package/engine/topologies/tilt/generators/vite/generators.star +43 -0
- package/engine/topologies/tilt/generators/vite/helpers.star +244 -0
- package/engine/topologies/tilt/generators/vite/library.star +65 -0
- package/engine/topologies/tilt/generators/vite/sdk.star +73 -0
- package/engine/topologies/tilt/generators/vite/templates.star +737 -0
- package/engine/topologies/tilt/generators/vite_config.star +22 -0
- package/engine/topologies/tilt/manifest/AGENTS.md +61 -0
- package/engine/topologies/tilt/manifest/README.md +693 -0
- package/engine/topologies/tilt/manifest/__init__.star +218 -0
- package/engine/topologies/tilt/manifest/constants.star +252 -0
- package/engine/topologies/tilt/manifest/errors.star +266 -0
- package/engine/topologies/tilt/manifest/integration.star +339 -0
- package/engine/topologies/tilt/manifest/json_to_yaml.py +54 -0
- package/engine/topologies/tilt/manifest/loader.star +214 -0
- package/engine/topologies/tilt/manifest/mapper.star +227 -0
- package/engine/topologies/tilt/manifest/parser.star +400 -0
- package/engine/topologies/tilt/manifest/schema.star +462 -0
- package/engine/topologies/tilt/manifest/tests/test_integration.star +276 -0
- package/engine/topologies/tilt/manifest/tests/test_loader_parser.star +397 -0
- package/engine/topologies/tilt/manifest/tests/test_manifest.star +316 -0
- package/engine/topologies/tilt/manifest/tests/test_validator.star +470 -0
- package/engine/topologies/tilt/manifest/validator.star +717 -0
- package/engine/topologies/tilt/manifest/yaml_to_json.py +18 -0
- package/engine/topologies/tilt/resources/AGENTS.md +71 -0
- package/engine/topologies/tilt/resources/conditions.star +3 -0
- package/engine/topologies/tilt/resources/databases.star +244 -0
- package/engine/topologies/tilt/resources/declaration.star +3 -0
- package/engine/topologies/tilt/resources/deps.star +3 -0
- package/engine/topologies/tilt/resources/infra-loader.star +437 -0
- package/engine/topologies/tilt/resources/libs.star +30 -0
- package/engine/topologies/tilt/resources/libs_discovery.star +102 -0
- package/engine/topologies/tilt/resources/libs_paths.star +79 -0
- package/engine/topologies/tilt/resources/libs_resource_definition.star +151 -0
- package/engine/topologies/tilt/resources/libs_setup.star +164 -0
- package/engine/topologies/tilt/resources/libs_tsconfig.star +37 -0
- package/engine/topologies/tilt/resources/orchestrator/apply.star +77 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +431 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +81 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +148 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_resource_validation.star +36 -0
- package/engine/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +44 -0
- package/engine/topologies/tilt/resources/orchestrator/builders/typescript.star +164 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +75 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +21 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +134 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/env.star +258 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/frontend.star +169 -0
- package/engine/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +524 -0
- package/engine/topologies/tilt/resources/orchestrator/helpers.star +33 -0
- package/engine/topologies/tilt/resources/orchestrator.star +54 -0
- package/engine/topologies/tilt/resources/ordering.star +3 -0
- package/engine/topologies/tilt/resources/triggers.star +3 -0
- package/engine/topologies/tilt/resources/watchers.star +299 -0
- package/engine/where-things-live.star +717 -0
- package/ext/Tiltfile +66 -0
- package/ext/ide-components/README.md +219 -0
- package/ext/ide-components/code_executor/server.py +268 -0
- package/ext/ide-components/code_viewer/server.py +206 -0
- package/ext/ide-components/config_inspector/server.py +1050 -0
- package/ext/ide-components/file_browser/server.py +285 -0
- package/ext/ide-components/shared/config_service.py +469 -0
- package/ext/ide-components/shared/file_utils.py +298 -0
- package/ext/ide-components/shared/http_utils.py +232 -0
- package/ext/ide-components/shared/static/styles.css +1334 -0
- package/ext/ide-components/shared/syntax_highlighter.py +140 -0
- package/ext/ide-components/shared/template_engine.py +123 -0
- package/ext/ide-components/shared/templates/base.html +121 -0
- package/ext/ide-components/shared/test_config_service.py +326 -0
- package/ext/ide-components/shared/tilt_integration.py +158 -0
- package/ext/ui-enhancements/cron-status-server.sh +49 -0
- package/ext/ui-enhancements/cron-status-tracker.sh +146 -0
- package/ext/ui-enhancements/extension.yaml +36 -0
- package/ext/ui-enhancements/tiltfile.py +99 -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 +13 -9
- package/specs/specs/TILT_SERVICE_DEFAULTS.star +205 -0
- package/specs/specs/TILT_TECH_STACK.star +159 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
#!/usr/bin/env starlark
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# 🔧 TILT SERVICE DEFAULTS MASTER CONFIG
|
|
5
|
+
# =============================================================================
|
|
6
|
+
#
|
|
7
|
+
# Defines standard configurations for all services in the TDK Landscape platform.
|
|
8
|
+
# This provides consistent port allocation, health checks, and build settings.
|
|
9
|
+
#
|
|
10
|
+
# See: docs/TILT_MASTER_CONFIGS.md
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
# Port Configuration
|
|
14
|
+
BASE_PORT_FRONTEND = 3000
|
|
15
|
+
BASE_PORT_BACKEND = 4000
|
|
16
|
+
BASE_PORT_HEALTH = 5000
|
|
17
|
+
|
|
18
|
+
# Port ranges
|
|
19
|
+
PORT_RANGE_FRONTEND_START = 3000
|
|
20
|
+
PORT_RANGE_FRONTEND_END = 3999
|
|
21
|
+
PORT_RANGE_BACKEND_START = 4000
|
|
22
|
+
PORT_RANGE_BACKEND_END = 4999
|
|
23
|
+
PORT_RANGE_HEALTH_START = 5000
|
|
24
|
+
PORT_RANGE_HEALTH_END = 5999
|
|
25
|
+
|
|
26
|
+
# Health Check Configuration
|
|
27
|
+
HEALTH_CHECK_PATH = "/health"
|
|
28
|
+
HEALTH_CHECK_LIVE = "/health/live"
|
|
29
|
+
HEALTH_CHECK_READY = "/health/ready"
|
|
30
|
+
HEALTH_CHECK_TIMEOUT = 30
|
|
31
|
+
|
|
32
|
+
# File watch ignore patterns (to prevent fsnotify buffer overflow)
|
|
33
|
+
def get_filewatch_ignore_patterns(resource_path="."):
|
|
34
|
+
"""
|
|
35
|
+
Returns list of file patterns to ignore for Tilt filewatch.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
resource_path: Base path of the service
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
List of patterns to ignore
|
|
42
|
+
"""
|
|
43
|
+
# Common directories that cause fsnotify buffer overflow
|
|
44
|
+
ignores = [
|
|
45
|
+
resource_path + "/node_modules",
|
|
46
|
+
resource_path + "/dist",
|
|
47
|
+
resource_path + "/build",
|
|
48
|
+
resource_path + "/.git",
|
|
49
|
+
resource_path + "/.prisma",
|
|
50
|
+
resource_path + "/.turbo",
|
|
51
|
+
resource_path + "/coverage",
|
|
52
|
+
resource_path + "/tmp",
|
|
53
|
+
resource_path + "/temp",
|
|
54
|
+
resource_path + "/__tests__",
|
|
55
|
+
resource_path + "/test",
|
|
56
|
+
resource_path + "/tests",
|
|
57
|
+
]
|
|
58
|
+
return ignores
|
|
59
|
+
|
|
60
|
+
def get_port_config():
|
|
61
|
+
"""Returns the complete port allocation strategy."""
|
|
62
|
+
return {
|
|
63
|
+
"frontend": {
|
|
64
|
+
"base": BASE_PORT_FRONTEND,
|
|
65
|
+
"range_start": PORT_RANGE_FRONTEND_START,
|
|
66
|
+
"range_end": PORT_RANGE_FRONTEND_END,
|
|
67
|
+
},
|
|
68
|
+
"backend": {
|
|
69
|
+
"base": BASE_PORT_BACKEND,
|
|
70
|
+
"range_start": PORT_RANGE_BACKEND_START,
|
|
71
|
+
"range_end": PORT_RANGE_BACKEND_END,
|
|
72
|
+
},
|
|
73
|
+
"health": {
|
|
74
|
+
"base": BASE_PORT_HEALTH,
|
|
75
|
+
"range_start": PORT_RANGE_HEALTH_START,
|
|
76
|
+
"range_end": PORT_RANGE_HEALTH_END,
|
|
77
|
+
},
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
def get_resource_port(resource_type, domain_index=0, resource_index=0):
|
|
81
|
+
"""
|
|
82
|
+
Calculate service port based on type and indices.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
resource_type: "frontend" or "backend"
|
|
86
|
+
domain_index: Index of the domain (for port allocation)
|
|
87
|
+
resource_index: Index of the service within domain
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
Port number
|
|
91
|
+
"""
|
|
92
|
+
if resource_type == "frontend":
|
|
93
|
+
base = BASE_PORT_FRONTEND
|
|
94
|
+
elif resource_type == "backend":
|
|
95
|
+
base = BASE_PORT_BACKEND
|
|
96
|
+
else:
|
|
97
|
+
fail("Unknown service type: {}".format(resource_type))
|
|
98
|
+
|
|
99
|
+
# Allocate ports: base + (domain_index * 100) + resource_index
|
|
100
|
+
return base + (domain_index * 100) + resource_index
|
|
101
|
+
|
|
102
|
+
def get_health_check_config():
|
|
103
|
+
"""Returns health check endpoint configuration."""
|
|
104
|
+
return {
|
|
105
|
+
"path": HEALTH_CHECK_PATH,
|
|
106
|
+
"live": HEALTH_CHECK_LIVE,
|
|
107
|
+
"ready": HEALTH_CHECK_READY,
|
|
108
|
+
"timeout": HEALTH_CHECK_TIMEOUT,
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
def get_build_config():
|
|
112
|
+
"""Returns Docker build configuration."""
|
|
113
|
+
return {
|
|
114
|
+
"dockerfile": "Dockerfile",
|
|
115
|
+
"context": ".",
|
|
116
|
+
# Auto-detect native arch (arm64 on Apple Silicon, amd64 elsewhere)
|
|
117
|
+
# "platform": "linux/amd64",
|
|
118
|
+
"cache_from": [],
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
def get_runtime_config():
|
|
122
|
+
"""Returns runtime command configuration."""
|
|
123
|
+
return {
|
|
124
|
+
"backend": {
|
|
125
|
+
"command": "bun",
|
|
126
|
+
"args": ["run", "dev"],
|
|
127
|
+
"env": {
|
|
128
|
+
"NODE_ENV": "development",
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
"frontend": {
|
|
132
|
+
"command": "bun",
|
|
133
|
+
"args": ["run", "dev"],
|
|
134
|
+
"env": {
|
|
135
|
+
"NODE_ENV": "development",
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
def get_resource_defaults():
|
|
141
|
+
"""Returns complete service defaults."""
|
|
142
|
+
return {
|
|
143
|
+
"port": get_port_config(),
|
|
144
|
+
"health": get_health_check_config(),
|
|
145
|
+
"build": get_build_config(),
|
|
146
|
+
"runtime": get_runtime_config(),
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
def validate_resource_defaults(config):
|
|
150
|
+
"""
|
|
151
|
+
Validates service configuration against defaults.
|
|
152
|
+
|
|
153
|
+
Args:
|
|
154
|
+
config: Service configuration dict
|
|
155
|
+
|
|
156
|
+
Returns:
|
|
157
|
+
Dict with validation results
|
|
158
|
+
"""
|
|
159
|
+
warnings = []
|
|
160
|
+
errors = []
|
|
161
|
+
|
|
162
|
+
# Validate port allocation
|
|
163
|
+
if "port" in config:
|
|
164
|
+
port = config["port"]
|
|
165
|
+
if port < 1024:
|
|
166
|
+
errors.append("Port {} is in reserved range (< 1024)".format(port))
|
|
167
|
+
elif port > 65535:
|
|
168
|
+
errors.append("Port {} exceeds maximum (65535)".format(port))
|
|
169
|
+
|
|
170
|
+
# Validate health check path
|
|
171
|
+
if "healthCheckPath" in config:
|
|
172
|
+
path = config["healthCheckPath"]
|
|
173
|
+
if not path.startswith("/"):
|
|
174
|
+
errors.append("Health check path must start with /: {}".format(path))
|
|
175
|
+
|
|
176
|
+
return {
|
|
177
|
+
"valid": len(errors) == 0,
|
|
178
|
+
"errors": errors,
|
|
179
|
+
"warnings": warnings,
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
# Export public API
|
|
183
|
+
__all__ = [
|
|
184
|
+
"get_port_config",
|
|
185
|
+
"get_resource_port",
|
|
186
|
+
"get_health_check_config",
|
|
187
|
+
"get_filewatch_ignore_patterns",
|
|
188
|
+
"get_build_config",
|
|
189
|
+
"get_runtime_config",
|
|
190
|
+
"get_resource_defaults",
|
|
191
|
+
"validate_resource_defaults",
|
|
192
|
+
"BASE_PORT_FRONTEND",
|
|
193
|
+
"BASE_PORT_BACKEND",
|
|
194
|
+
"BASE_PORT_HEALTH",
|
|
195
|
+
"PORT_RANGE_FRONTEND_START",
|
|
196
|
+
"PORT_RANGE_FRONTEND_END",
|
|
197
|
+
"PORT_RANGE_BACKEND_START",
|
|
198
|
+
"PORT_RANGE_BACKEND_END",
|
|
199
|
+
"PORT_RANGE_HEALTH_START",
|
|
200
|
+
"PORT_RANGE_HEALTH_END",
|
|
201
|
+
"HEALTH_CHECK_PATH",
|
|
202
|
+
"HEALTH_CHECK_LIVE",
|
|
203
|
+
"HEALTH_CHECK_READY",
|
|
204
|
+
"HEALTH_CHECK_TIMEOUT",
|
|
205
|
+
]
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
#!/usr/bin/env starlark
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# 🏗️ TILT TECH STACK MASTER CONFIG
|
|
5
|
+
# =============================================================================
|
|
6
|
+
#
|
|
7
|
+
# Defines the approved technology choices for the TDK Landscape platform.
|
|
8
|
+
# This is the single source of truth for tech stack validation.
|
|
9
|
+
#
|
|
10
|
+
# See: docs/TILT_MASTER_CONFIGS.md
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
def get_tech_stack():
|
|
14
|
+
"""Returns the complete tech stack definition."""
|
|
15
|
+
return {
|
|
16
|
+
# Core runtime and build tools
|
|
17
|
+
"bundler": "vite",
|
|
18
|
+
"runtime": "bun",
|
|
19
|
+
"language": "typescript",
|
|
20
|
+
|
|
21
|
+
# Database and ORM
|
|
22
|
+
"orm": "prisma",
|
|
23
|
+
|
|
24
|
+
# Messaging and events
|
|
25
|
+
"messaging": "nats",
|
|
26
|
+
|
|
27
|
+
# Development tools
|
|
28
|
+
"linting": "biome",
|
|
29
|
+
"testing": "vitest",
|
|
30
|
+
|
|
31
|
+
# Web framework
|
|
32
|
+
"web_framework": "hono",
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
# Constants for direct import
|
|
36
|
+
BUNDLER = "vite"
|
|
37
|
+
RUNTIME = "bun"
|
|
38
|
+
ORM = "prisma"
|
|
39
|
+
MESSAGING = "nats"
|
|
40
|
+
LINTING = "biome"
|
|
41
|
+
TESTING = "vitest"
|
|
42
|
+
WEB_FRAMEWORK = "hono"
|
|
43
|
+
LANGUAGE = "typescript"
|
|
44
|
+
|
|
45
|
+
TECH_STACK = get_tech_stack()
|
|
46
|
+
|
|
47
|
+
def validate_tech_stack(config, strict=False):
|
|
48
|
+
"""
|
|
49
|
+
Validates a configuration against the platform tech stack.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
config: Dict with tech stack choices to validate
|
|
53
|
+
strict: If True, fails on any non-compliance. If False, warns.
|
|
54
|
+
|
|
55
|
+
Returns:
|
|
56
|
+
Dict with validation results: {"valid": bool, "errors": [], "warnings": []}
|
|
57
|
+
"""
|
|
58
|
+
errors = []
|
|
59
|
+
warnings = []
|
|
60
|
+
|
|
61
|
+
# Check for override reason
|
|
62
|
+
has_override = "_override_reason" in config and config["_override_reason"]
|
|
63
|
+
|
|
64
|
+
# Strict validations (must match platform standard)
|
|
65
|
+
strict_validations = {
|
|
66
|
+
"bundler": "vite",
|
|
67
|
+
"runtime": "bun",
|
|
68
|
+
"orm": "prisma",
|
|
69
|
+
"messaging": "nats",
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
for key, standard in strict_validations.items():
|
|
73
|
+
if key in config:
|
|
74
|
+
value = config[key]
|
|
75
|
+
if value.lower() != standard.lower():
|
|
76
|
+
if has_override:
|
|
77
|
+
warnings.append("Override active: {}='{}' (Reason: {})".format(
|
|
78
|
+
key, value, config["_override_reason"]
|
|
79
|
+
))
|
|
80
|
+
elif strict:
|
|
81
|
+
errors.append(
|
|
82
|
+
"❌ Tech Stack Error: {}: '{}' is not supported. " +
|
|
83
|
+
"Platform standard is '{}'. Use _override_reason to document exceptions.".format(
|
|
84
|
+
key, value, standard
|
|
85
|
+
)
|
|
86
|
+
)
|
|
87
|
+
else:
|
|
88
|
+
warnings.append(
|
|
89
|
+
"⚠️ Tech Stack Warning: {}: '{}' is not standard. " +
|
|
90
|
+
"Platform standard is '{}'.".format(key, value, standard)
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
# Optional validations (warnings if missing or different)
|
|
94
|
+
optional_validations = {
|
|
95
|
+
"linting": "biome",
|
|
96
|
+
"testing": "vitest",
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
for key, standard in optional_validations.items():
|
|
100
|
+
if key in config:
|
|
101
|
+
value = config[key]
|
|
102
|
+
if value.lower() != standard.lower():
|
|
103
|
+
if has_override:
|
|
104
|
+
warnings.append("Override active: {}='{}' (Reason: {})".format(
|
|
105
|
+
key, value, config["_override_reason"]
|
|
106
|
+
))
|
|
107
|
+
else:
|
|
108
|
+
warnings.append(
|
|
109
|
+
"⚠️ Tech Stack Warning: {}: '{}' differs from standard '{}'.".format(
|
|
110
|
+
key, value, standard
|
|
111
|
+
)
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
"valid": len(errors) == 0,
|
|
116
|
+
"errors": errors,
|
|
117
|
+
"warnings": warnings,
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
def assert_tech_stack(config, strict=False):
|
|
121
|
+
"""
|
|
122
|
+
Validates tech stack and fails fast on errors.
|
|
123
|
+
|
|
124
|
+
Args:
|
|
125
|
+
config: Dict with tech stack choices to validate
|
|
126
|
+
strict: If True, fails on any non-compliance
|
|
127
|
+
|
|
128
|
+
Raises:
|
|
129
|
+
Exception: If validation fails with errors
|
|
130
|
+
"""
|
|
131
|
+
result = validate_tech_stack(config, strict)
|
|
132
|
+
|
|
133
|
+
# Print warnings
|
|
134
|
+
for warning in result["warnings"]:
|
|
135
|
+
print(warning)
|
|
136
|
+
|
|
137
|
+
# Fail on errors
|
|
138
|
+
if not result["valid"]:
|
|
139
|
+
for error in result["errors"]:
|
|
140
|
+
print(error)
|
|
141
|
+
fail("Tech stack validation failed. See errors above.")
|
|
142
|
+
|
|
143
|
+
return result
|
|
144
|
+
|
|
145
|
+
# Export public API
|
|
146
|
+
__all__ = [
|
|
147
|
+
"get_tech_stack",
|
|
148
|
+
"validate_tech_stack",
|
|
149
|
+
"assert_tech_stack",
|
|
150
|
+
"BUNDLER",
|
|
151
|
+
"RUNTIME",
|
|
152
|
+
"ORM",
|
|
153
|
+
"MESSAGING",
|
|
154
|
+
"LINTING",
|
|
155
|
+
"TESTING",
|
|
156
|
+
"WEB_FRAMEWORK",
|
|
157
|
+
"LANGUAGE",
|
|
158
|
+
"TECH_STACK",
|
|
159
|
+
]
|