@tdk-landscape/tdk-cli-core 1.3.14
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/README.md +293 -0
- package/bin/tdk.js +14 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +64 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +294 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +220 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +176 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/down.d.ts +3 -0
- package/dist/commands/down.d.ts.map +1 -0
- package/dist/commands/down.js +32 -0
- package/dist/commands/down.js.map +1 -0
- package/dist/commands/help.d.ts +2 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +130 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/networks.d.ts +3 -0
- package/dist/commands/networks.d.ts.map +1 -0
- package/dist/commands/networks.js +260 -0
- package/dist/commands/networks.js.map +1 -0
- package/dist/commands/project.d.ts +3 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +360 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/projects.d.ts +3 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +71 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/resource.d.ts +69 -0
- package/dist/commands/resource.d.ts.map +1 -0
- package/dist/commands/resource.js +572 -0
- package/dist/commands/resource.js.map +1 -0
- package/dist/commands/resources.d.ts +3 -0
- package/dist/commands/resources.d.ts.map +1 -0
- package/dist/commands/resources.js +73 -0
- package/dist/commands/resources.js.map +1 -0
- package/dist/commands/stack.d.ts +3 -0
- package/dist/commands/stack.d.ts.map +1 -0
- package/dist/commands/stack.js +103 -0
- package/dist/commands/stack.js.map +1 -0
- package/dist/commands/stacks.d.ts +3 -0
- package/dist/commands/stacks.d.ts.map +1 -0
- package/dist/commands/stacks.js +43 -0
- package/dist/commands/stacks.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +71 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/ui.d.ts +3 -0
- package/dist/commands/ui.d.ts.map +1 -0
- package/dist/commands/ui.js +446 -0
- package/dist/commands/ui.js.map +1 -0
- package/dist/commands/up.d.ts +3 -0
- package/dist/commands/up.d.ts.map +1 -0
- package/dist/commands/up.js +149 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/commands/upgrade.d.ts +3 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +454 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/version.d.ts +3 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +9 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/components/Accessible.d.ts +8 -0
- package/dist/components/Accessible.d.ts.map +1 -0
- package/dist/components/Accessible.js +10 -0
- package/dist/components/Accessible.js.map +1 -0
- package/dist/components/BaseTooltip.d.ts +4 -0
- package/dist/components/BaseTooltip.d.ts.map +1 -0
- package/dist/components/BaseTooltip.js +28 -0
- package/dist/components/BaseTooltip.js.map +1 -0
- package/dist/components/DetailPanel.d.ts +4 -0
- package/dist/components/DetailPanel.d.ts.map +1 -0
- package/dist/components/DetailPanel.js +18 -0
- package/dist/components/DetailPanel.js.map +1 -0
- package/dist/components/FileTree.d.ts +4 -0
- package/dist/components/FileTree.d.ts.map +1 -0
- package/dist/components/FileTree.js +47 -0
- package/dist/components/FileTree.js.map +1 -0
- package/dist/components/ResourceSelectInput.d.ts +4 -0
- package/dist/components/ResourceSelectInput.d.ts.map +1 -0
- package/dist/components/ResourceSelectInput.js +7 -0
- package/dist/components/ResourceSelectInput.js.map +1 -0
- package/dist/components/ResourceTable.d.ts +4 -0
- package/dist/components/ResourceTable.d.ts.map +1 -0
- package/dist/components/ResourceTable.js +18 -0
- package/dist/components/ResourceTable.js.map +1 -0
- package/dist/components/TabBar.d.ts +4 -0
- package/dist/components/TabBar.d.ts.map +1 -0
- package/dist/components/TabBar.js +17 -0
- package/dist/components/TabBar.js.map +1 -0
- package/dist/components/Tooltip.d.ts +12 -0
- package/dist/components/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip.js +12 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +8 -0
- package/dist/components/index.js.map +1 -0
- package/dist/config/platform-standards.d.ts +159 -0
- package/dist/config/platform-standards.d.ts.map +1 -0
- package/dist/config/platform-standards.js +181 -0
- package/dist/config/platform-standards.js.map +1 -0
- package/dist/generator/extension-fetch.d.ts +9 -0
- package/dist/generator/extension-fetch.d.ts.map +1 -0
- package/dist/generator/extension-fetch.js +153 -0
- package/dist/generator/extension-fetch.js.map +1 -0
- package/dist/generator/template-engine.d.ts +60 -0
- package/dist/generator/template-engine.d.ts.map +1 -0
- package/dist/generator/template-engine.js +416 -0
- package/dist/generator/template-engine.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +236 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +17 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/cache.d.ts +19 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +64 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/command-helpers.d.ts +17 -0
- package/dist/utils/command-helpers.d.ts.map +1 -0
- package/dist/utils/command-helpers.js +48 -0
- package/dist/utils/command-helpers.js.map +1 -0
- package/dist/utils/constants.d.ts +50 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +100 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/discovery-context.d.ts +4 -0
- package/dist/utils/discovery-context.d.ts.map +1 -0
- package/dist/utils/discovery-context.js +39 -0
- package/dist/utils/discovery-context.js.map +1 -0
- package/dist/utils/docker.d.ts +3 -0
- package/dist/utils/docker.d.ts.map +1 -0
- package/dist/utils/docker.js +13 -0
- package/dist/utils/docker.js.map +1 -0
- package/dist/utils/env-validator.d.ts +15 -0
- package/dist/utils/env-validator.d.ts.map +1 -0
- package/dist/utils/env-validator.js +95 -0
- package/dist/utils/env-validator.js.map +1 -0
- package/dist/utils/errors.d.ts +28 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +127 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/file-helpers.d.ts +14 -0
- package/dist/utils/file-helpers.d.ts.map +1 -0
- package/dist/utils/file-helpers.js +45 -0
- package/dist/utils/file-helpers.js.map +1 -0
- package/dist/utils/formatting.d.ts +30 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +164 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/paths.d.ts +3 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +41 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/port-assignment.d.ts +6 -0
- package/dist/utils/port-assignment.d.ts.map +1 -0
- package/dist/utils/port-assignment.js +75 -0
- package/dist/utils/port-assignment.js.map +1 -0
- package/dist/utils/project-features.d.ts +23 -0
- package/dist/utils/project-features.d.ts.map +1 -0
- package/dist/utils/project-features.js +98 -0
- package/dist/utils/project-features.js.map +1 -0
- package/dist/utils/project-templates.d.ts +7 -0
- package/dist/utils/project-templates.d.ts.map +1 -0
- package/dist/utils/project-templates.js +24 -0
- package/dist/utils/project-templates.js.map +1 -0
- package/dist/utils/resource-features.d.ts +28 -0
- package/dist/utils/resource-features.d.ts.map +1 -0
- package/dist/utils/resource-features.js +148 -0
- package/dist/utils/resource-features.js.map +1 -0
- package/dist/utils/services.d.ts +18 -0
- package/dist/utils/services.d.ts.map +1 -0
- package/dist/utils/services.js +291 -0
- package/dist/utils/services.js.map +1 -0
- package/dist/utils/stack-features.d.ts +22 -0
- package/dist/utils/stack-features.d.ts.map +1 -0
- package/dist/utils/stack-features.js +13 -0
- package/dist/utils/stack-features.js.map +1 -0
- package/dist/utils/tar.d.ts +7 -0
- package/dist/utils/tar.d.ts.map +1 -0
- package/dist/utils/tar.js +21 -0
- package/dist/utils/tar.js.map +1 -0
- package/dist/utils/tilt.d.ts +18 -0
- package/dist/utils/tilt.d.ts.map +1 -0
- package/dist/utils/tilt.js +77 -0
- package/dist/utils/tilt.js.map +1 -0
- package/dist/utils/validation.d.ts +9 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +49 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +72 -0
- package/templates/.tiltignore.hbs +73 -0
- package/templates/TILT_RESOURCE_DEFAULTS.star.hbs +221 -0
- package/templates/TILT_TECH_STACK.star.hbs +150 -0
- package/templates/Tiltfile.hbs +295 -0
- package/templates/spec.master.hbs +186 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
#!/usr/bin/env starlark
|
|
2
|
+
# -*- coding: utf-8 -*}
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# 🎯 {{project.name}} - TILT ENTRYPOINT
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# SYSTEM-GENERATED BY TDK CLI - DO NOT EDIT
|
|
7
|
+
# Source: .tdk/project.json
|
|
8
|
+
# Generated: {{timestamp}}
|
|
9
|
+
# Run 'tdk project' to regenerate
|
|
10
|
+
# =============================================================================
|
|
11
|
+
|
|
12
|
+
print("🚀 Loading {{project.name}}...")
|
|
13
|
+
|
|
14
|
+
# =============================================================================
|
|
15
|
+
# 📦 REGISTER TDK EXTENSION
|
|
16
|
+
# =============================================================================
|
|
17
|
+
# The TDK Tilt extension (engine, discovery, specs, ext) is vendored into
|
|
18
|
+
# this project at generation time (.tdk/.tdk-out/tdk-cli-ext). Resolution:
|
|
19
|
+
# 1. Vendored in-project copy (default - works offline, no GitHub needed)
|
|
20
|
+
# 2. $TDK_EXTENSION_PATH (explicit override to any tdk-cli checkout)
|
|
21
|
+
# 3. Clear failure with instructions (no endless git retry on a missing repo)
|
|
22
|
+
_vendored_tdk_path = config.main_dir + "/tdk-cli-ext"
|
|
23
|
+
_use_local = False
|
|
24
|
+
_local_tdk_path = ""
|
|
25
|
+
|
|
26
|
+
if str(local("test -d " + _vendored_tdk_path + " && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes':
|
|
27
|
+
_use_local = True
|
|
28
|
+
_local_tdk_path = _vendored_tdk_path
|
|
29
|
+
else:
|
|
30
|
+
_env_tdk_path = os.environ.get('TDK_EXTENSION_PATH', '')
|
|
31
|
+
if len(_env_tdk_path) > 0 and str(local("test -d " + _env_tdk_path + " && echo yes || echo no", quiet=True, echo_off=True)).strip() == 'yes':
|
|
32
|
+
_use_local = True
|
|
33
|
+
_local_tdk_path = _env_tdk_path
|
|
34
|
+
|
|
35
|
+
if not _use_local:
|
|
36
|
+
fail("""
|
|
37
|
+
TDK extension not found.
|
|
38
|
+
|
|
39
|
+
'tdk up' needs the TDK Tilt extension (engine/discovery/specs/ext).
|
|
40
|
+
Fix it with one of:
|
|
41
|
+
1) Regenerate the project so the extension is vendored in:
|
|
42
|
+
tdk project --yes
|
|
43
|
+
(set $TDK_EXTENSION_SOURCE to a tdk-cli checkout if it was not auto-detected)
|
|
44
|
+
2) Point at any tdk-cli checkout:
|
|
45
|
+
export TDK_EXTENSION_PATH=/path/to/tdk-cli
|
|
46
|
+
3) Follow the sandbox guide: https://tdk-landscape.github.io/tdk-website/sandbox/
|
|
47
|
+
""")
|
|
48
|
+
|
|
49
|
+
v1alpha1.extension_repo(name='tdk-cli-local', url='file://' + _local_tdk_path)
|
|
50
|
+
v1alpha1.extension(name='tdk-cli', repo_name='tdk-cli-local', repo_path='')
|
|
51
|
+
|
|
52
|
+
# =============================================================================
|
|
53
|
+
# 📍 PROJECT CONFIGURATION
|
|
54
|
+
# =============================================================================
|
|
55
|
+
# Tiltfile is in .tdk/.tdk-out/, project root is two levels up
|
|
56
|
+
PROJECT_ROOT = config.main_dir + "/../.."
|
|
57
|
+
os.environ['TDK_PROJECT_ROOT'] = PROJECT_ROOT
|
|
58
|
+
|
|
59
|
+
# =============================================================================
|
|
60
|
+
# 🔌 LOAD MASTER CONFIGS & TDK MODULES
|
|
61
|
+
# =============================================================================
|
|
62
|
+
load("TILT_TECH_STACK.star",
|
|
63
|
+
'assert_tech_stack',
|
|
64
|
+
'TECH_STACK',
|
|
65
|
+
)
|
|
66
|
+
load("TILT_RESOURCE_DEFAULTS.star",
|
|
67
|
+
'BASE_PORT_FRONTEND',
|
|
68
|
+
'BASE_PORT_BACKEND',
|
|
69
|
+
)
|
|
70
|
+
load("spec.master",
|
|
71
|
+
'RESOURCE_DEFAULTS',
|
|
72
|
+
'PRE_ALPHA_RESOURCES',
|
|
73
|
+
'ALPHA_RESOURCES',
|
|
74
|
+
'BETA_RESOURCES',
|
|
75
|
+
'FOCUS_PRE_ALPHA',
|
|
76
|
+
'FOCUS_ALPHA',
|
|
77
|
+
'FOCUS_BETA',
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
# Load TDK extension modules
|
|
81
|
+
load('ext://tdk-cli',
|
|
82
|
+
'Utils',
|
|
83
|
+
'Manifest',
|
|
84
|
+
'Config',
|
|
85
|
+
'Orchestrator',
|
|
86
|
+
'Watchers',
|
|
87
|
+
'Infra',
|
|
88
|
+
'Docker',
|
|
89
|
+
'load_ui_enhancements',
|
|
90
|
+
'APP_RESOURCES',
|
|
91
|
+
'GLOBAL_CONFIG_EXPORT',
|
|
92
|
+
'Registry',
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
# =============================================================================
|
|
96
|
+
# 🏗️ VALIDATE & INITIALIZE
|
|
97
|
+
# =============================================================================
|
|
98
|
+
assert_tech_stack({
|
|
99
|
+
"bundler": TECH_STACK['bundler'],
|
|
100
|
+
"runtime": TECH_STACK['runtime'],
|
|
101
|
+
"orm": TECH_STACK['orm'],
|
|
102
|
+
"messaging": TECH_STACK['messaging'],
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
# =============================================================================
|
|
106
|
+
# 🎨 UI ENHANCEMENTS
|
|
107
|
+
# =============================================================================
|
|
108
|
+
load_ui_enhancements({
|
|
109
|
+
'enable_tooltips': True,
|
|
110
|
+
'enable_icons': True,
|
|
111
|
+
'enable_help_panel': True,
|
|
112
|
+
'enable_cron_jobs_tab': True,
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
# =============================================================================
|
|
116
|
+
# 📋 PARSE CLI ARGUMENTS
|
|
117
|
+
# =============================================================================
|
|
118
|
+
config.define_string_list('focus', usage='Services to focus on')
|
|
119
|
+
config.define_bool('no-frontend', usage='Skip frontend services')
|
|
120
|
+
config.define_bool('include-monitoring', usage='Include monitoring stack')
|
|
121
|
+
config.define_string_list('verbose', usage='Verbose logging')
|
|
122
|
+
config.define_bool('no-auto-init-new', usage='Do not auto-init new services')
|
|
123
|
+
|
|
124
|
+
for resource_name in RESOURCE_DEFAULTS.keys():
|
|
125
|
+
config.define_bool(resource_name, usage='Enable ' + resource_name)
|
|
126
|
+
|
|
127
|
+
config.define_string_list('args', args=True, usage='Positional arguments')
|
|
128
|
+
cfg = config.parse()
|
|
129
|
+
|
|
130
|
+
# =============================================================================
|
|
131
|
+
# 🔮 AUTO-DISCOVERY
|
|
132
|
+
# =============================================================================
|
|
133
|
+
_AUTO_DISCOVER_ENABLED = os.environ.get('AUTO_DISCOVER', 'true').lower() == 'true'
|
|
134
|
+
_DISCOVERY_SCAN_INTERVAL = int(os.environ.get('DISCOVERY_SCAN_INTERVAL', '5'))
|
|
135
|
+
_AUTO_INIT_NEW_RESOURCES = not cfg.get('no-auto-init-new', False)
|
|
136
|
+
|
|
137
|
+
# Auto-discovery enabled ({{discovery.interval}}s interval)
|
|
138
|
+
_AUTO_DISCOVER_ENABLED = _AUTO_DISCOVER_ENABLED
|
|
139
|
+
|
|
140
|
+
# =============================================================================
|
|
141
|
+
# 📝 LOGGING
|
|
142
|
+
# =============================================================================
|
|
143
|
+
_LOG_LEVEL = "verbose" if (cfg.get('verbose') or os.environ.get('VERBOSE', '').lower() == 'true') else "normal"
|
|
144
|
+
|
|
145
|
+
def get_log_level():
|
|
146
|
+
return _LOG_LEVEL
|
|
147
|
+
|
|
148
|
+
def is_verbose():
|
|
149
|
+
return _LOG_LEVEL == "verbose"
|
|
150
|
+
|
|
151
|
+
os.environ['TILT_LOG_LEVEL'] = _LOG_LEVEL
|
|
152
|
+
if _LOG_LEVEL == "verbose":
|
|
153
|
+
os.environ['VERBOSE'] = 'true'
|
|
154
|
+
|
|
155
|
+
# =============================================================================
|
|
156
|
+
# 🌍 ENVIRONMENT SETUP
|
|
157
|
+
# =============================================================================
|
|
158
|
+
is_macos = str(local('uname -s', quiet=True)).strip() == 'Darwin'
|
|
159
|
+
Utils.load_dotenv(PROJECT_ROOT)
|
|
160
|
+
|
|
161
|
+
# =============================================================================
|
|
162
|
+
# 🎯 FOCUS MODE
|
|
163
|
+
# =============================================================================
|
|
164
|
+
FOCUS_MODE, FOCUS_ENABLED_ALL, FOCUS_ENABLED_RESOURCES = Config.apply_focus(cfg)
|
|
165
|
+
# Load ALWAYS_ENABLED_INFRA from project.json (falls back to defaults if not specified)
|
|
166
|
+
ALWAYS_ENABLED_INFRA = {{starlarkArray alwaysEnabledInfra}}
|
|
167
|
+
|
|
168
|
+
def should_enable(resource_name):
|
|
169
|
+
# Always-enabled infra (proxy/Traefik, verdaccio, database-management, infisical) must stay
|
|
170
|
+
# enabled independent of focus mode: FOCUS_MODE collapses to False whenever the pre-alpha
|
|
171
|
+
# stack bucket is empty (the default on a freshly generated project.json), which used to
|
|
172
|
+
# silently disable Traefik and friends on every out-of-the-box `tdk up`.
|
|
173
|
+
if resource_name in ALWAYS_ENABLED_INFRA:
|
|
174
|
+
return RESOURCE_DEFAULTS.get(resource_name, True)
|
|
175
|
+
if FOCUS_MODE and FOCUS_ENABLED_ALL:
|
|
176
|
+
if resource_name in FOCUS_ENABLED_ALL:
|
|
177
|
+
return True
|
|
178
|
+
for domain in FOCUS_ENABLED_ALL:
|
|
179
|
+
if resource_name.startswith(domain + "-"):
|
|
180
|
+
return True
|
|
181
|
+
return Utils.should_enable(resource_name, cfg, RESOURCE_DEFAULTS)
|
|
182
|
+
|
|
183
|
+
# =============================================================================
|
|
184
|
+
# 🏗️ INFRASTRUCTURE SERVICES
|
|
185
|
+
# =============================================================================
|
|
186
|
+
|
|
187
|
+
print("🏗️ Loading infrastructure services...")
|
|
188
|
+
Infra.load_all(
|
|
189
|
+
should_enable=should_enable,
|
|
190
|
+
fix_docker_networks_fn=Utils.fix_docker_networks,
|
|
191
|
+
docker_provider=Docker,
|
|
192
|
+
write_fn=Utils.write_file_if_changed,
|
|
193
|
+
project_root=PROJECT_ROOT,
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
# =============================================================================
|
|
197
|
+
# 📚 INITIALIZE TDK
|
|
198
|
+
# =============================================================================
|
|
199
|
+
print("🚀 Initializing TDK...")
|
|
200
|
+
|
|
201
|
+
# Use pre-loaded APP_RESOURCES from TDK registry (already initialized with all services)
|
|
202
|
+
# Registry.reinitialize() is only needed if we want to force a fresh discovery
|
|
203
|
+
_app_resources_list = APP_RESOURCES
|
|
204
|
+
|
|
205
|
+
# First run or cache cleared — build registry from manifests
|
|
206
|
+
if len(_app_resources_list) == 0:
|
|
207
|
+
_app_resources_list = Registry.reinitialize()
|
|
208
|
+
|
|
209
|
+
# If still empty, load directly from manifest files
|
|
210
|
+
if len(_app_resources_list) == 0:
|
|
211
|
+
_app_resources_list = Manifest.load_all(PROJECT_ROOT)
|
|
212
|
+
|
|
213
|
+
print("📦 Loaded {} services".format(len(_app_resources_list)))
|
|
214
|
+
|
|
215
|
+
# Create Tilt resources for all services
|
|
216
|
+
TILT_CONTEXT = {
|
|
217
|
+
'should_enable': should_enable,
|
|
218
|
+
'write_file': Utils.write_file_if_changed,
|
|
219
|
+
'global_config': GLOBAL_CONFIG_EXPORT,
|
|
220
|
+
'project_root': PROJECT_ROOT,
|
|
221
|
+
'all_services': _app_resources_list,
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
print("🚀 Creating Tilt resources for {} services...".format(len(_app_resources_list)))
|
|
225
|
+
for app_service in _app_resources_list:
|
|
226
|
+
Orchestrator.apply_service(app_service, TILT_CONTEXT)
|
|
227
|
+
|
|
228
|
+
# Setup file watchers
|
|
229
|
+
Watchers.setup_package_json(_app_resources_list, should_enable)
|
|
230
|
+
|
|
231
|
+
# Apply focus mode filter
|
|
232
|
+
# Build known Tilt resource names from discovered services to filter focus list
|
|
233
|
+
_KNOWN_TILT_RESOURCES = set()
|
|
234
|
+
_KNOWN_TILT_RESOURCES.add('service-discovery-daemon')
|
|
235
|
+
_KNOWN_TILT_RESOURCES.add('init-networks')
|
|
236
|
+
_KNOWN_TILT_RESOURCES.add('postgres')
|
|
237
|
+
_KNOWN_TILT_RESOURCES.add('nats')
|
|
238
|
+
_KNOWN_TILT_RESOURCES.add('infisical')
|
|
239
|
+
_KNOWN_TILT_RESOURCES.add('infisical-db')
|
|
240
|
+
_KNOWN_TILT_RESOURCES.add('infisical-redis')
|
|
241
|
+
_KNOWN_TILT_RESOURCES.add('traefik')
|
|
242
|
+
_KNOWN_TILT_RESOURCES.add('verdaccio')
|
|
243
|
+
_KNOWN_TILT_RESOURCES.add('golden-layers-build')
|
|
244
|
+
for _KNOWN_SVC in _app_resources_list:
|
|
245
|
+
_KNOWN_SVC_NAME = _KNOWN_SVC.get('name', '')
|
|
246
|
+
if _KNOWN_SVC_NAME:
|
|
247
|
+
for _KNOWN_RES in _KNOWN_SVC.get('resources', []):
|
|
248
|
+
_KNOWN_RES_NAME = _KNOWN_RES.get('name', '')
|
|
249
|
+
if _KNOWN_RES_NAME:
|
|
250
|
+
_KNOWN_TILT_RESOURCES.add(_KNOWN_RES_NAME)
|
|
251
|
+
_KNOWN_TILT_RESOURCES.add(_KNOWN_RES_NAME + '-run-only')
|
|
252
|
+
_KNOWN_TILT_RESOURCES.add(_KNOWN_RES_NAME + '-config-gen')
|
|
253
|
+
if FOCUS_MODE and FOCUS_ENABLED_RESOURCES:
|
|
254
|
+
_FILTERED_RESOURCES = []
|
|
255
|
+
for _R in FOCUS_ENABLED_RESOURCES:
|
|
256
|
+
if _R in _KNOWN_TILT_RESOURCES:
|
|
257
|
+
_FILTERED_RESOURCES.append(_R)
|
|
258
|
+
else:
|
|
259
|
+
_MATCHED = [kr for kr in _KNOWN_TILT_RESOURCES if kr != 'service-discovery-daemon' and kr.startswith(_R + '-')]
|
|
260
|
+
_FILTERED_RESOURCES.extend(_MATCHED)
|
|
261
|
+
for _INFRA in ['init-networks', 'postgres', 'traefik', 'golden-layers-build']:
|
|
262
|
+
if _INFRA in _KNOWN_TILT_RESOURCES:
|
|
263
|
+
_FILTERED_RESOURCES.append(_INFRA)
|
|
264
|
+
for _KR in _KNOWN_TILT_RESOURCES:
|
|
265
|
+
if _KR.startswith('provision-db-'):
|
|
266
|
+
_FILTERED_RESOURCES.append(_KR)
|
|
267
|
+
_FILTERED_RESOURCES = sorted(set(_FILTERED_RESOURCES))
|
|
268
|
+
if _FILTERED_RESOURCES:
|
|
269
|
+
config.set_enabled_resources(_FILTERED_RESOURCES)
|
|
270
|
+
print("🎯 Focus mode: {} resources".format(len(_FILTERED_RESOURCES)))
|
|
271
|
+
else:
|
|
272
|
+
print("⚠️ No known resources matched focus targets:", ", ".join(FOCUS_ENABLED_RESOURCES))
|
|
273
|
+
|
|
274
|
+
# =============================================================================
|
|
275
|
+
# 👁️ AUTO-DISCOVERY DAEMON
|
|
276
|
+
# =============================================================================
|
|
277
|
+
if _AUTO_DISCOVER_ENABLED:
|
|
278
|
+
watch_file('snapshots/resource-snapshot.json')
|
|
279
|
+
|
|
280
|
+
# Get extension install path: vendored copy inside this project
|
|
281
|
+
discovery_path = _local_tdk_path + "/discovery"
|
|
282
|
+
|
|
283
|
+
daemon_script = discovery_path + '/resource_snapshot.py'
|
|
284
|
+
daemon_cmd = "cd " + config.main_dir + " && python3 \"" + daemon_script + "\" watch"
|
|
285
|
+
|
|
286
|
+
local_resource('service-discovery-daemon',
|
|
287
|
+
serve_cmd=daemon_cmd,
|
|
288
|
+
deps=[daemon_script],
|
|
289
|
+
auto_init=True, labels=['discovery'],
|
|
290
|
+
links=[link('file:///snapshots/resource-snapshot.json', 'Resource Snapshot')]
|
|
291
|
+
)
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
print("\n✅ {{project.name}} Tilt ready!")
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
#!/usr/bin/env starlark
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# 🎨 PROJECT SPEC - Stack-Based Configuration
|
|
4
|
+
# =============================================================================
|
|
5
|
+
#
|
|
6
|
+
# SYSTEM-GENERATED BY TDK CLI - DO NOT EDIT
|
|
7
|
+
# Source: .tdk/project.json + TDK Platform Standards v{{version}}
|
|
8
|
+
# Output: .tdk/.tdk-out/
|
|
9
|
+
# Generated: {{timestamp}}
|
|
10
|
+
# Run 'tdk project' to update
|
|
11
|
+
#
|
|
12
|
+
# 🏗️ ARCHITECTURE: Project → Stack → Service (PSR Model)
|
|
13
|
+
# Services are organized into stacks by release phase.
|
|
14
|
+
#
|
|
15
|
+
# 📖 USAGE:
|
|
16
|
+
# In your Tiltfile or topology module:
|
|
17
|
+
#
|
|
18
|
+
# load("{}/spec.master".format(PROJECT_ROOT),
|
|
19
|
+
# "RESOURCE_DEFAULTS",
|
|
20
|
+
# "PRE_ALPHA_RESOURCES",
|
|
21
|
+
# "ALPHA_RESOURCES",
|
|
22
|
+
# "BETA_RESOURCES",
|
|
23
|
+
# "OUT_OF_SCOPE_RESOURCES",
|
|
24
|
+
# "FOCUS_PRE_ALPHA",
|
|
25
|
+
# "FOCUS_ALPHA",
|
|
26
|
+
# "FOCUS_BETA",
|
|
27
|
+
# )
|
|
28
|
+
#
|
|
29
|
+
# =============================================================================
|
|
30
|
+
|
|
31
|
+
# =============================================================================
|
|
32
|
+
# 🎯 STACK DEFINITIONS
|
|
33
|
+
# =============================================================================
|
|
34
|
+
# Services are organized by release phase (stack) for progressive rollout.
|
|
35
|
+
# Each phase builds on the previous one.
|
|
36
|
+
|
|
37
|
+
# =============================================================================
|
|
38
|
+
# 🥚 PRE-ALPHA STACK (MVP - Default Startup)
|
|
39
|
+
# =============================================================================
|
|
40
|
+
# Core infrastructure services - minimal footprint for rapid development
|
|
41
|
+
|
|
42
|
+
PRE_ALPHA_RESOURCES = {
|
|
43
|
+
{{#each stacks.pre_alpha.services}}
|
|
44
|
+
"{{this}}": True, # {{lookup ../serviceDescriptions this}}
|
|
45
|
+
{{/each}}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
# =============================================================================
|
|
49
|
+
# 🔬 ALPHA STACK (Core Business Services)
|
|
50
|
+
# =============================================================================
|
|
51
|
+
# Essential business services for alpha launch.
|
|
52
|
+
|
|
53
|
+
ALPHA_RESOURCES = {
|
|
54
|
+
{{#each stacks.alpha.services}}
|
|
55
|
+
"{{this}}": False, # {{lookup ../serviceDescriptions this}}
|
|
56
|
+
{{/each}}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
# =============================================================================
|
|
60
|
+
# 🚀 BETA STACK (Extended Features)
|
|
61
|
+
# =============================================================================
|
|
62
|
+
# Additional services for beta release.
|
|
63
|
+
|
|
64
|
+
BETA_RESOURCES = {
|
|
65
|
+
{{#each stacks.beta.services}}
|
|
66
|
+
"{{this}}": False, # {{lookup ../serviceDescriptions this}}
|
|
67
|
+
{{/each}}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
# =============================================================================
|
|
71
|
+
# 🚫 OUT OF SCOPE
|
|
72
|
+
# =============================================================================
|
|
73
|
+
# These services are excluded from discovery/loading entirely.
|
|
74
|
+
# To enable, remove from this list and add to appropriate stack above.
|
|
75
|
+
|
|
76
|
+
OUT_OF_SCOPE_RESOURCES = [
|
|
77
|
+
{{#each stacks.out_of_scope.services}}
|
|
78
|
+
"{{this}}", # {{lookup ../serviceDescriptions this}}
|
|
79
|
+
{{/each}}
|
|
80
|
+
]
|
|
81
|
+
|
|
82
|
+
# =============================================================================
|
|
83
|
+
# 🔧 OPTIONAL INFRASTRUCTURE RESOURCES
|
|
84
|
+
# =============================================================================
|
|
85
|
+
# High-resource infrastructure - enable only when needed
|
|
86
|
+
|
|
87
|
+
OPTIONAL_INFRA_RESOURCES = {
|
|
88
|
+
{{#each optionalInfra}}
|
|
89
|
+
"{{@key}}": {{starlark this}}, # {{lookup ../infraDescriptions @key}}
|
|
90
|
+
{{/each}}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
# =============================================================================
|
|
94
|
+
# 📦 COMBINED DEFAULTS (Used by Tilt System)
|
|
95
|
+
# =============================================================================
|
|
96
|
+
# Merges all service configs for easy access
|
|
97
|
+
|
|
98
|
+
DEFAULTS = {}
|
|
99
|
+
DEFAULTS.update(PRE_ALPHA_RESOURCES)
|
|
100
|
+
DEFAULTS.update(ALPHA_RESOURCES)
|
|
101
|
+
DEFAULTS.update(BETA_RESOURCES)
|
|
102
|
+
DEFAULTS.update(OPTIONAL_INFRA_RESOURCES)
|
|
103
|
+
|
|
104
|
+
# Alias for Tiltfile compatibility
|
|
105
|
+
RESOURCE_DEFAULTS = DEFAULTS
|
|
106
|
+
|
|
107
|
+
# =============================================================================
|
|
108
|
+
# 🎯 FOCUS FILTERS (for CLI --focus parameter)
|
|
109
|
+
# =============================================================================
|
|
110
|
+
# Predefined service groups for easy startup
|
|
111
|
+
|
|
112
|
+
FOCUS_PRE_ALPHA = list(PRE_ALPHA_RESOURCES.keys())
|
|
113
|
+
FOCUS_ALPHA = list(PRE_ALPHA_RESOURCES.keys()) + list(ALPHA_RESOURCES.keys())
|
|
114
|
+
FOCUS_BETA = list(PRE_ALPHA_RESOURCES.keys()) + list(ALPHA_RESOURCES.keys()) + list(BETA_RESOURCES.keys())
|
|
115
|
+
|
|
116
|
+
# =============================================================================
|
|
117
|
+
# 📁 PATH OVERRIDES
|
|
118
|
+
# =============================================================================
|
|
119
|
+
|
|
120
|
+
SPEC_OVERRIDE = struct(
|
|
121
|
+
DISCOVERY = struct(
|
|
122
|
+
RESOURCE_PATTERNS = {{starlarkArray discovery.paths}},
|
|
123
|
+
),
|
|
124
|
+
|
|
125
|
+
OUTPUT = struct(
|
|
126
|
+
BASE_DIR = "./.tdk",
|
|
127
|
+
SNAPSHOT_FILE = "./.tdk/.tdk-out/snapshots/resource-snapshot.json",
|
|
128
|
+
AUTOGENERATED_FOLDER = ".autogenerated",
|
|
129
|
+
),
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
# Top-level aliases for Tilt discovery compatibility
|
|
133
|
+
RESOURCE_PATTERNS = {{starlarkArray discovery.paths}}
|
|
134
|
+
|
|
135
|
+
# =============================================================================
|
|
136
|
+
# ⚙️ CONSTANTS OVERRIDES
|
|
137
|
+
# =============================================================================
|
|
138
|
+
|
|
139
|
+
CONSTANTS_OVERRIDE = struct(
|
|
140
|
+
SUPPORTED_FEATURES = [
|
|
141
|
+
"{{tech.messaging}}",
|
|
142
|
+
"{{tech.orm}}",
|
|
143
|
+
"{{tech.bundler}}-node",
|
|
144
|
+
],
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
# =============================================================================
|
|
148
|
+
# 🎯 PROJECT-SPECIFIC METADATA
|
|
149
|
+
# =============================================================================
|
|
150
|
+
|
|
151
|
+
PROJECT = struct(
|
|
152
|
+
NAME = "{{project.name}}",
|
|
153
|
+
VERSION = "{{project.version}}",
|
|
154
|
+
|
|
155
|
+
STACKS = struct(
|
|
156
|
+
PRE_ALPHA = FOCUS_PRE_ALPHA,
|
|
157
|
+
ALPHA = FOCUS_ALPHA,
|
|
158
|
+
BETA = FOCUS_BETA,
|
|
159
|
+
),
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
# =============================================================================
|
|
163
|
+
# 📝 CHANGE LOG
|
|
164
|
+
# =============================================================================
|
|
165
|
+
# {{timestamp}}: Generated by TDK CLI v{{version}}
|
|
166
|
+
# =============================================================================
|
|
167
|
+
|
|
168
|
+
# =============================================================================
|
|
169
|
+
# 📦 EXPORTS
|
|
170
|
+
# =============================================================================
|
|
171
|
+
|
|
172
|
+
__all__ = [
|
|
173
|
+
"RESOURCE_DEFAULTS",
|
|
174
|
+
"DEFAULTS",
|
|
175
|
+
"PRE_ALPHA_RESOURCES",
|
|
176
|
+
"ALPHA_RESOURCES",
|
|
177
|
+
"BETA_RESOURCES",
|
|
178
|
+
"OUT_OF_SCOPE_RESOURCES",
|
|
179
|
+
"OPTIONAL_INFRA_RESOURCES",
|
|
180
|
+
"FOCUS_PRE_ALPHA",
|
|
181
|
+
"FOCUS_ALPHA",
|
|
182
|
+
"FOCUS_BETA",
|
|
183
|
+
"SPEC_OVERRIDE",
|
|
184
|
+
"CONSTANTS_OVERRIDE",
|
|
185
|
+
"PROJECT",
|
|
186
|
+
]
|