@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,424 @@
|
|
|
1
|
+
#!/usr/bin/env starlark
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# 🔍 TILT DISCOVERY CONFIGURATION - MASTER CONFIG
|
|
4
|
+
# =============================================================================
|
|
5
|
+
#
|
|
6
|
+
# ⚠️ DEVELOPER NOTICE: This is a SYSTEM CONFIG file.
|
|
7
|
+
# For human-friendly docs, see: TILT_CONFIG.md
|
|
8
|
+
#
|
|
9
|
+
# This file defines service discovery settings for the TDK Landscape platform.
|
|
10
|
+
# Discovery automatically finds and registers services from the filesystem.
|
|
11
|
+
#
|
|
12
|
+
# 📖 TO EDIT DISCOVERY SETTINGS:
|
|
13
|
+
# Edit: TILT_DISCOVERY.star (this file) for platform-wide discovery behavior
|
|
14
|
+
#
|
|
15
|
+
# 🔗 ARCHITECTURE:
|
|
16
|
+
# - TILT_TECH_STACK.star: Technology choices
|
|
17
|
+
# - TILT_RESOURCE_DEFAULTS.star: Service defaults (ports, health checks)
|
|
18
|
+
# - TILT_DISCOVERY.star: Discovery-specific settings (scan intervals, synthesis)
|
|
19
|
+
# - spec.master: Project-specific service lists
|
|
20
|
+
#
|
|
21
|
+
# =============================================================================
|
|
22
|
+
|
|
23
|
+
# =============================================================================
|
|
24
|
+
# DISCOVERY SCAN CONFIGURATION
|
|
25
|
+
# =============================================================================
|
|
26
|
+
# How and when the discovery daemon scans for services.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def get_discovery_scan_config():
|
|
30
|
+
"""Return discovery scan configuration.
|
|
31
|
+
|
|
32
|
+
Returns:
|
|
33
|
+
dict: Scan behavior settings
|
|
34
|
+
"""
|
|
35
|
+
return {
|
|
36
|
+
# Filesystem scan interval in seconds (for auto-discovery daemon)
|
|
37
|
+
"scan_interval_seconds": 5,
|
|
38
|
+
|
|
39
|
+
# Maximum scan timeout in milliseconds
|
|
40
|
+
"max_scan_timeout_ms": 5000,
|
|
41
|
+
|
|
42
|
+
# Initial scan delay on startup (allows services to stabilize)
|
|
43
|
+
"initial_scan_delay_seconds": 2,
|
|
44
|
+
|
|
45
|
+
# Debounce delay for filesystem changes (prevents excessive rescans)
|
|
46
|
+
"scan_debounce_ms": 100,
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
# =============================================================================
|
|
51
|
+
# MANIFEST DISCOVERY CONFIGURATION
|
|
52
|
+
# =============================================================================
|
|
53
|
+
# Settings for manifest file discovery and synthesis.
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def get_manifest_discovery_config():
|
|
57
|
+
"""Return manifest discovery configuration.
|
|
58
|
+
|
|
59
|
+
Returns:
|
|
60
|
+
dict: Manifest discovery settings
|
|
61
|
+
"""
|
|
62
|
+
return {
|
|
63
|
+
# Maximum manifests per root before warning
|
|
64
|
+
"max_manifests_per_root": 50,
|
|
65
|
+
|
|
66
|
+
# Maximum manifest file size in bytes (1MB)
|
|
67
|
+
"max_manifest_size_bytes": 1048576,
|
|
68
|
+
|
|
69
|
+
# Manifest filename patterns to search for
|
|
70
|
+
"manifest_filenames": [
|
|
71
|
+
"service.json",
|
|
72
|
+
],
|
|
73
|
+
|
|
74
|
+
# Enable synthesis for services without manifests
|
|
75
|
+
"synthesis_enabled": True,
|
|
76
|
+
|
|
77
|
+
# Synthesis port defaults by service type
|
|
78
|
+
"synthesis_port_defaults": {
|
|
79
|
+
"frontend": 3000,
|
|
80
|
+
"backend": 4000,
|
|
81
|
+
"sdk": 5175,
|
|
82
|
+
"migrator": 4000,
|
|
83
|
+
"worker": 4000,
|
|
84
|
+
"library": None, # Libraries don't have ports
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
# Service type detection patterns (suffixes)
|
|
88
|
+
"resource_type_patterns": {
|
|
89
|
+
"frontend": "-frontend",
|
|
90
|
+
"backend": "-backend",
|
|
91
|
+
"sdk": "-sdk",
|
|
92
|
+
"migrator": "-migrator",
|
|
93
|
+
"worker": "-worker",
|
|
94
|
+
"library": "-library",
|
|
95
|
+
},
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
# =============================================================================
|
|
100
|
+
# SERVICE SYNTHESIS CONFIGURATION
|
|
101
|
+
# =============================================================================
|
|
102
|
+
# Auto-compute settings for manifest synthesis.
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def get_synthesis_config():
|
|
106
|
+
"""Return resource synthesis configuration.
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
dict: Auto-compute settings for synthesized manifests
|
|
110
|
+
"""
|
|
111
|
+
return {
|
|
112
|
+
# Enable auto-computation of ports from service type + domain
|
|
113
|
+
"auto_compute_ports": True,
|
|
114
|
+
|
|
115
|
+
# Enable auto-computation of Traefik paths from domain
|
|
116
|
+
"auto_compute_traefik": True,
|
|
117
|
+
|
|
118
|
+
# Enable auto-computation of database names from domain + service
|
|
119
|
+
"auto_compute_database_name": True,
|
|
120
|
+
|
|
121
|
+
# Enable auto-computation of backendName for frontends
|
|
122
|
+
"auto_compute_backend_name": True,
|
|
123
|
+
|
|
124
|
+
# Enable auto-computation of basePath for frontends
|
|
125
|
+
"auto_compute_base_path": True,
|
|
126
|
+
|
|
127
|
+
# Database naming pattern: {project}_{domain}_{resource_function}
|
|
128
|
+
# Example: services/product/users/user-management-backend -> {project}_user_management
|
|
129
|
+
"database_name_pattern": "TDK_{domain}_{function}",
|
|
130
|
+
|
|
131
|
+
# Backend name pattern for frontends: {domain}-management-backend
|
|
132
|
+
"backend_name_pattern": "{domain}-management-backend",
|
|
133
|
+
|
|
134
|
+
# Base path pattern for frontends: /{domain}s
|
|
135
|
+
"base_path_pattern": "/{domain}s",
|
|
136
|
+
|
|
137
|
+
# Traefik path prefix pattern for backends: /api/{domain}s
|
|
138
|
+
"traefik_path_pattern": "/api/{domain}s",
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
# =============================================================================
|
|
143
|
+
# DOMAIN CONFIGURATION
|
|
144
|
+
# =============================================================================
|
|
145
|
+
# Business stacks are defined in .tdk/project.json per project.
|
|
146
|
+
# This function returns an empty list - stacks are discovered dynamically.
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def get_valid_stacks():
|
|
150
|
+
"""Return list of valid business stacks from project config.
|
|
151
|
+
|
|
152
|
+
Returns:
|
|
153
|
+
list: Valid stack names (loaded from .tdk/project.json)
|
|
154
|
+
"""
|
|
155
|
+
# Stacks are project-specific and loaded from project.json
|
|
156
|
+
# Return empty list - actual stacks discovered from filesystem
|
|
157
|
+
return []
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
# =============================================================================
|
|
161
|
+
# SERVICE TYPE CONFIGURATION
|
|
162
|
+
# =============================================================================
|
|
163
|
+
# Valid service types for the platform.
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def get_valid_resource_types():
|
|
167
|
+
"""Return list of valid resource types.
|
|
168
|
+
|
|
169
|
+
Returns:
|
|
170
|
+
list: Valid resource type names
|
|
171
|
+
"""
|
|
172
|
+
return [
|
|
173
|
+
"frontend",
|
|
174
|
+
"backend",
|
|
175
|
+
"library",
|
|
176
|
+
"migrator",
|
|
177
|
+
"sdk",
|
|
178
|
+
"worker",
|
|
179
|
+
]
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
# =============================================================================
|
|
183
|
+
# RESOURCE-LEVEL FEATURES CONFIGURATION
|
|
184
|
+
# =============================================================================
|
|
185
|
+
# Valid values for a single resource's `features: []` array in its
|
|
186
|
+
# service.json (code generators plus per-resource infra capabilities).
|
|
187
|
+
# Distinct from project-level features (cli/src/utils/project-features.ts),
|
|
188
|
+
# which are infra/optional services enabled project-wide via project.json.
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
def get_valid_resource_features():
|
|
192
|
+
"""Return list of valid resource-level feature flags.
|
|
193
|
+
|
|
194
|
+
Returns:
|
|
195
|
+
list: Valid feature flag names for a resource's `features: []` array
|
|
196
|
+
"""
|
|
197
|
+
return [
|
|
198
|
+
# Resource-level features (code generators)
|
|
199
|
+
"api-client",
|
|
200
|
+
"env-config",
|
|
201
|
+
"api-index",
|
|
202
|
+
"prisma",
|
|
203
|
+
# Infrastructure features
|
|
204
|
+
"nats",
|
|
205
|
+
"redis",
|
|
206
|
+
"infisical",
|
|
207
|
+
"vitest",
|
|
208
|
+
"traefik",
|
|
209
|
+
"websocket",
|
|
210
|
+
"graphql",
|
|
211
|
+
"grpc",
|
|
212
|
+
"vite-node",
|
|
213
|
+
"maintenance",
|
|
214
|
+
]
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
# =============================================================================
|
|
218
|
+
# PORT CONFIGURATION
|
|
219
|
+
# =============================================================================
|
|
220
|
+
# Port range definitions for validation.
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
def get_port_ranges():
|
|
224
|
+
"""Return port ranges by resource type.
|
|
225
|
+
|
|
226
|
+
Returns:
|
|
227
|
+
dict: Port range definitions
|
|
228
|
+
"""
|
|
229
|
+
return {
|
|
230
|
+
"frontend": {"min": 3000, "max": 5999},
|
|
231
|
+
"backend": {"min": 4000, "max": 5999},
|
|
232
|
+
"worker": {"min": 4000, "max": 6999},
|
|
233
|
+
"migrator": {"min": 7000, "max": 7999},
|
|
234
|
+
"sdk": {"min": 3000, "max": 9999}, # SDKs don't have strict rules
|
|
235
|
+
"library": {"min": 3000, "max": 9999}, # Libraries don't have ports
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
# =============================================================================
|
|
240
|
+
# DEPENDENCY RESOLUTION CONFIGURATION
|
|
241
|
+
# =============================================================================
|
|
242
|
+
# Settings for resolving service dependencies.
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
def get_dependency_resolution_config():
|
|
246
|
+
"""Return dependency resolution configuration.
|
|
247
|
+
|
|
248
|
+
Returns:
|
|
249
|
+
dict: Dependency resolution settings
|
|
250
|
+
"""
|
|
251
|
+
return {
|
|
252
|
+
# Maximum number of dependencies per service
|
|
253
|
+
"max_dependencies": 10,
|
|
254
|
+
|
|
255
|
+
# Maximum depth for dependency graph traversal
|
|
256
|
+
"max_dependency_depth": 5,
|
|
257
|
+
|
|
258
|
+
# Enable circular dependency detection
|
|
259
|
+
"detect_circular_dependencies": True,
|
|
260
|
+
|
|
261
|
+
# Library dependency patterns (package.json prefixes)
|
|
262
|
+
"library_dependency_prefixes": [
|
|
263
|
+
"@tdk/",
|
|
264
|
+
],
|
|
265
|
+
|
|
266
|
+
# Default internal dependencies for service types
|
|
267
|
+
"default_dependencies": {
|
|
268
|
+
"backend": [], # No default deps, explicit only
|
|
269
|
+
"frontend": [], # Backend deps computed from backendName
|
|
270
|
+
"migrator": [],
|
|
271
|
+
"worker": ["nats"],
|
|
272
|
+
},
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
# =============================================================================
|
|
277
|
+
# DISCOVERY PATHS CONFIGURATION
|
|
278
|
+
# =============================================================================
|
|
279
|
+
# Where to search for services.
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
def get_discovery_paths():
|
|
283
|
+
"""Return paths to scan for resources.
|
|
284
|
+
|
|
285
|
+
Returns:
|
|
286
|
+
list: Directory paths to scan
|
|
287
|
+
"""
|
|
288
|
+
return [
|
|
289
|
+
"services/product",
|
|
290
|
+
"services/platform",
|
|
291
|
+
"shared-product-engineering",
|
|
292
|
+
"shared-platform-engineering",
|
|
293
|
+
"shared-ddd-layers",
|
|
294
|
+
]
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
# =============================================================================
|
|
298
|
+
# COMPLETE DISCOVERY CONFIGURATION
|
|
299
|
+
# =============================================================================
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
def get_discovery_defaults():
|
|
303
|
+
"""Return complete discovery configuration.
|
|
304
|
+
|
|
305
|
+
Returns:
|
|
306
|
+
dict: All discovery settings
|
|
307
|
+
"""
|
|
308
|
+
return {
|
|
309
|
+
"scan": get_discovery_scan_config(),
|
|
310
|
+
"manifest": get_manifest_discovery_config(),
|
|
311
|
+
"synthesis": get_synthesis_config(),
|
|
312
|
+
"stacks": get_valid_stacks(),
|
|
313
|
+
"resource_types": get_valid_resource_types(),
|
|
314
|
+
"features": get_valid_resource_features(),
|
|
315
|
+
"port_ranges": get_port_ranges(),
|
|
316
|
+
"dependencies": get_dependency_resolution_config(),
|
|
317
|
+
"paths": get_discovery_paths(),
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
# =============================================================================
|
|
322
|
+
# FEATURE FLAGS CONFIGURATION
|
|
323
|
+
# =============================================================================
|
|
324
|
+
# Feature flags for gradual rollout of new functionality.
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
def get_feature_flags():
|
|
328
|
+
"""Return feature flags for gradual rollout.
|
|
329
|
+
|
|
330
|
+
These flags control the activation of new infrastructure features,
|
|
331
|
+
allowing for safe, gradual rollout across the platform.
|
|
332
|
+
|
|
333
|
+
Returns:
|
|
334
|
+
dict: Feature flag states
|
|
335
|
+
"""
|
|
336
|
+
return {
|
|
337
|
+
# Enable new auto-computation defaults (ports, database names, etc.)
|
|
338
|
+
"auto_compute_defaults": True,
|
|
339
|
+
|
|
340
|
+
# Enable override detection and warnings
|
|
341
|
+
"override_detection": True,
|
|
342
|
+
|
|
343
|
+
# Enable synthesis-by-default for new services
|
|
344
|
+
"synthesis_by_default": True,
|
|
345
|
+
|
|
346
|
+
# Enable hardcoded value detection in validation
|
|
347
|
+
"hardcoded_value_detection": True,
|
|
348
|
+
|
|
349
|
+
# Enable CLI auto-fix capabilities
|
|
350
|
+
"cli_auto_fix": True,
|
|
351
|
+
|
|
352
|
+
# Enable strict validation mode (treats warnings as errors)
|
|
353
|
+
"strict_validation": False,
|
|
354
|
+
|
|
355
|
+
# Enable new port allocation strategy
|
|
356
|
+
"new_port_allocation": True,
|
|
357
|
+
|
|
358
|
+
# Enable master config validation
|
|
359
|
+
"master_config_validation": True,
|
|
360
|
+
|
|
361
|
+
# Migration mode - enables transitional compatibility
|
|
362
|
+
"migration_mode": False,
|
|
363
|
+
|
|
364
|
+
# Rollback plan available
|
|
365
|
+
"rollback_enabled": True,
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
# =============================================================================
|
|
370
|
+
# MODULE EXPORTS
|
|
371
|
+
# =============================================================================
|
|
372
|
+
|
|
373
|
+
# Configuration exports
|
|
374
|
+
DISCOVERY_SCAN_CONFIG = get_discovery_scan_config()
|
|
375
|
+
MANIFEST_DISCOVERY_CONFIG = get_manifest_discovery_config()
|
|
376
|
+
SYNTHESIS_CONFIG = get_synthesis_config()
|
|
377
|
+
VALID_STACKS = get_valid_stacks()
|
|
378
|
+
VALID_RESOURCE_TYPES = get_valid_resource_types()
|
|
379
|
+
VALID_RESOURCE_FEATURES = get_valid_resource_features()
|
|
380
|
+
PORT_RANGES = get_port_ranges()
|
|
381
|
+
DEPENDENCY_CONFIG = get_dependency_resolution_config()
|
|
382
|
+
DISCOVERY_PATHS = get_discovery_paths()
|
|
383
|
+
DISCOVERY_DEFAULTS = get_discovery_defaults()
|
|
384
|
+
FEATURE_FLAGS = get_feature_flags()
|
|
385
|
+
|
|
386
|
+
# Individual constants for convenience
|
|
387
|
+
MAX_MANIFESTS_PER_ROOT = MANIFEST_DISCOVERY_CONFIG["max_manifests_per_root"]
|
|
388
|
+
SCAN_INTERVAL_SECONDS = DISCOVERY_SCAN_CONFIG["scan_interval_seconds"]
|
|
389
|
+
MAX_SCAN_TIMEOUT_MS = DISCOVERY_SCAN_CONFIG["max_scan_timeout_ms"]
|
|
390
|
+
SYNTHESIS_ENABLED = MANIFEST_DISCOVERY_CONFIG["synthesis_enabled"]
|
|
391
|
+
MAX_DEPENDENCIES = DEPENDENCY_CONFIG["max_dependencies"]
|
|
392
|
+
|
|
393
|
+
__all__ = [
|
|
394
|
+
# Functions
|
|
395
|
+
"get_discovery_scan_config",
|
|
396
|
+
"get_manifest_discovery_config",
|
|
397
|
+
"get_synthesis_config",
|
|
398
|
+
"get_valid_stacks",
|
|
399
|
+
"get_valid_resource_types",
|
|
400
|
+
"get_valid_resource_features",
|
|
401
|
+
"get_port_ranges",
|
|
402
|
+
"get_dependency_resolution_config",
|
|
403
|
+
"get_discovery_paths",
|
|
404
|
+
"get_discovery_defaults",
|
|
405
|
+
"get_feature_flags",
|
|
406
|
+
|
|
407
|
+
# Constants
|
|
408
|
+
"DISCOVERY_SCAN_CONFIG",
|
|
409
|
+
"MANIFEST_DISCOVERY_CONFIG",
|
|
410
|
+
"SYNTHESIS_CONFIG",
|
|
411
|
+
"VALID_STACKS",
|
|
412
|
+
"VALID_RESOURCE_TYPES",
|
|
413
|
+
"VALID_RESOURCE_FEATURES",
|
|
414
|
+
"PORT_RANGES",
|
|
415
|
+
"DEPENDENCY_CONFIG",
|
|
416
|
+
"DISCOVERY_PATHS",
|
|
417
|
+
"DISCOVERY_DEFAULTS",
|
|
418
|
+
"FEATURE_FLAGS",
|
|
419
|
+
"MAX_MANIFESTS_PER_ROOT",
|
|
420
|
+
"SCAN_INTERVAL_SECONDS",
|
|
421
|
+
"MAX_SCAN_TIMEOUT_MS",
|
|
422
|
+
"SYNTHESIS_ENABLED",
|
|
423
|
+
"MAX_DEPENDENCIES",
|
|
424
|
+
]
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# 🎯 TDK-DISCOVERY - Service Discovery Plugin
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# This is the Tiltfile entry point for the tdk-discovery repo.
|
|
5
|
+
# It exports manifest loading, registry, and auto-discovery daemon.
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# v1alpha1.extension_repo(name='tdk-discovery', url='https://github.com/tdk-landscape/tdk-discovery')
|
|
9
|
+
# load('ext://tdk-discovery', 'get_discovery_path', 'run_daemon', ...)
|
|
10
|
+
# =============================================================================
|
|
11
|
+
|
|
12
|
+
# Constants
|
|
13
|
+
load('./constants.star',
|
|
14
|
+
_MANIFEST_FILENAME='MANIFEST_FILENAME',
|
|
15
|
+
_MANIFEST_FILENAME_YAML='MANIFEST_FILENAME_YAML',
|
|
16
|
+
_RESOURCES_ROOT='RESOURCES_ROOT',
|
|
17
|
+
_DISCOVERY_SCAN_ROOTS='DISCOVERY_SCAN_ROOTS',
|
|
18
|
+
_SCAN_ROOT_PATTERNS='SCAN_ROOT_PATTERNS'
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
# Discovery modules
|
|
22
|
+
load('./discovery_orchestrator.star', _initialize_discovery='initialize_discovery')
|
|
23
|
+
load('./discovery_daemon.star', _run_discovery_daemon='run_discovery_daemon')
|
|
24
|
+
load('./resource_snapshot.star', _get_resource_snapshot_path='get_resource_snapshot_path')
|
|
25
|
+
|
|
26
|
+
# =============================================================================
|
|
27
|
+
# RE-EXPORTS
|
|
28
|
+
# =============================================================================
|
|
29
|
+
|
|
30
|
+
# Constants
|
|
31
|
+
MANIFEST_FILENAME = _MANIFEST_FILENAME
|
|
32
|
+
MANIFEST_FILENAME_YAML = _MANIFEST_FILENAME_YAML
|
|
33
|
+
RESOURCES_ROOT = _RESOURCES_ROOT
|
|
34
|
+
DISCOVERY_SCAN_ROOTS = _DISCOVERY_SCAN_ROOTS
|
|
35
|
+
SCAN_ROOT_PATTERNS = _SCAN_ROOT_PATTERNS
|
|
36
|
+
|
|
37
|
+
# Functions
|
|
38
|
+
initialize_discovery = _initialize_discovery
|
|
39
|
+
run_discovery_daemon = _run_discovery_daemon
|
|
40
|
+
get_resource_snapshot_path = _get_resource_snapshot_path
|
|
41
|
+
|
|
42
|
+
# =============================================================================
|
|
43
|
+
# UTILITIES
|
|
44
|
+
# =============================================================================
|
|
45
|
+
|
|
46
|
+
def get_discovery_path():
|
|
47
|
+
"""Return the path to the discovery module."""
|
|
48
|
+
return '.'
|
|
49
|
+
|
|
50
|
+
def get_resource_snapshot_script():
|
|
51
|
+
"""Return the path to the service snapshot script."""
|
|
52
|
+
return './resource_snapshot.py'
|
|
53
|
+
|
|
54
|
+
def get_daemon_command():
|
|
55
|
+
"""Return the command to run the discovery daemon."""
|
|
56
|
+
return 'python3 ./resource_snapshot.py daemon'
|
|
57
|
+
|
|
58
|
+
print("✅ TDK Discovery loaded: manifest scanning and auto-discovery")
|