@tdk-landscape/tdk-cli-core 1.3.146 → 1.3.148
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 +2 -0
- package/cli/dist/commands/doctor.js +8 -4
- package/cli/dist/commands/status.js +15 -0
- package/cli/dist/components/BaseTooltip.js +2 -2
- package/cli/dist/utils/doctor-runtime.js +2 -2
- package/cli/dist/utils/host-port-config.js +43 -2
- package/cli/dist/utils/shared-infra.js +45 -0
- package/cli/dist-bundle/{chunk-SWAGCVPQ.js → chunk-4RTR7KXM.js} +56 -55
- package/cli/dist-bundle/cli.js +255 -255
- package/cli/dist-bundle/{cold-preflight-2ZV2PDU2.js → cold-preflight-SJPUDOFL.js} +1 -1
- package/cli/package.json +1 -1
- package/discovery/AGENTS.md +3 -3
- package/discovery/config.star +1 -1
- package/engine/AGENTS.md +15 -15
- package/engine/README.md +1 -1
- package/engine/assets/docker/golden-layers.Dockerfile +8 -25
- package/engine/topologies/platform/docker/build/golden_image_build.star +7 -1
- package/engine/topologies/platform/docker/build/golden_image_constants.star +13 -6
- package/engine/topologies/platform/docker/build/golden_image_dockerfile.star +8 -27
- package/engine/topologies/platform/docker/layers/prisma/constants.star +2 -1
- package/engine/topologies/tilt/manifest/README.md +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{createRequire as __tdkRequire}from'node:module';const require=__tdkRequire(import.meta.url);
|
|
2
|
-
import{
|
|
2
|
+
import{tb as a,ub as b,vb as c,wb as d,xb as e}from"./chunk-4RTR7KXM.js";import"./chunk-42IVF3YT.js";import"./chunk-6EA4DGCY.js";export{e as assertMachineReadyOrExit,d as formatColdPreflight,a as nodeTooOld,b as requireVerifiedDockerVersions,c as runColdPreflight};
|
package/cli/package.json
CHANGED
package/discovery/AGENTS.md
CHANGED
|
@@ -147,8 +147,8 @@ If issues arise with Phase 2:
|
|
|
147
147
|
```bash
|
|
148
148
|
# Restore Phase 1 behavior
|
|
149
149
|
tilt down
|
|
150
|
-
git checkout
|
|
151
|
-
git checkout
|
|
150
|
+
git checkout discovery/constants.star
|
|
151
|
+
git checkout discovery/discovery_orchestrator.star
|
|
152
152
|
tilt up
|
|
153
153
|
```
|
|
154
154
|
|
|
@@ -323,7 +323,7 @@ initialize_discovery(_DISCOVERY_CACHE)
|
|
|
323
323
|
|
|
324
324
|
**Pass 2:** Export to autogenerated Tilt resources
|
|
325
325
|
1. `registry.star` reads from discovery cache
|
|
326
|
-
2. Generates `.
|
|
326
|
+
2. Generates `.tdk/.tdk-out/product_autogenerated_*/` files
|
|
327
327
|
3. Creates Tilt resources from generated files
|
|
328
328
|
|
|
329
329
|
## Important Notes
|
package/discovery/config.star
CHANGED
|
@@ -179,7 +179,7 @@ def get_global_config():
|
|
|
179
179
|
"golden_l2_image": PlatformDockerConstants.PROJECT_NAME_HYPHEN + "-l2:latest",
|
|
180
180
|
"golden_l3_backend_image": PlatformDockerConstants.PROJECT_NAME_HYPHEN + "-l3-backend:latest",
|
|
181
181
|
"golden_l3_frontend_image": PlatformDockerConstants.PROJECT_NAME_HYPHEN + "-l3-frontend:latest",
|
|
182
|
-
"golden_l3_migrator_image": PlatformDockerConstants.PROJECT_NAME_HYPHEN + "-l3-
|
|
182
|
+
"golden_l3_migrator_image": PlatformDockerConstants.PROJECT_NAME_HYPHEN + "-l3-backend:latest",
|
|
183
183
|
"golden_l4_backend_image": PlatformDockerConstants.PROJECT_NAME_HYPHEN + "-l4-backend:latest",
|
|
184
184
|
"golden_l4_frontend_image": PlatformDockerConstants.PROJECT_NAME_HYPHEN + "-l4-frontend:latest",
|
|
185
185
|
"golden_l4_migrator_image": PlatformDockerConstants.PROJECT_NAME_HYPHEN + "-l4-migrator:latest",
|
package/engine/AGENTS.md
CHANGED
|
@@ -34,7 +34,7 @@ You don't just manage services; you map, design, and optimize the topology that
|
|
|
34
34
|
|
|
35
35
|
**Topology Architecture:**
|
|
36
36
|
```
|
|
37
|
-
|
|
37
|
+
engine/topologies/
|
|
38
38
|
├── platform/ # Infrastructure topology
|
|
39
39
|
│ ├── docker/ # Dockerfile, compose, golden image
|
|
40
40
|
│ ├── net/ # Proxy, networking
|
|
@@ -105,7 +105,7 @@ You don't just manage services; you map, design, and optimize the topology that
|
|
|
105
105
|
|
|
106
106
|
**The Core Pattern (1 manifest → 1 resource → 10 generators):**
|
|
107
107
|
```starlark
|
|
108
|
-
#
|
|
108
|
+
# engine/topologies/tilt/resources/orchestrator/apply.star
|
|
109
109
|
load("./generators/manifest_resource.star", "ManifestResource")
|
|
110
110
|
|
|
111
111
|
for resource in resource_config.get('resources', []):
|
|
@@ -135,7 +135,7 @@ for resource in resource_config.get('resources', []):
|
|
|
135
135
|
|
|
136
136
|
**Registry Loading:**
|
|
137
137
|
```starlark
|
|
138
|
-
#
|
|
138
|
+
# discovery/registry.star
|
|
139
139
|
load("./discovery.star", "initialize_discovery")
|
|
140
140
|
|
|
141
141
|
_DISCOVERY_CACHE = {
|
|
@@ -159,7 +159,7 @@ def get_resource_by_name(name):
|
|
|
159
159
|
|
|
160
160
|
**Autogenerated Services List:**
|
|
161
161
|
```starlark
|
|
162
|
-
# .
|
|
162
|
+
# .tdk/.tdk-out/product_autogenerated_resource_manifests/services.autogenerated.star
|
|
163
163
|
APP_RESOURCES_AUTOGENERATED = [
|
|
164
164
|
{
|
|
165
165
|
'name': 'order-planner',
|
|
@@ -187,7 +187,7 @@ APP_RESOURCES_AUTOGENERATED = [
|
|
|
187
187
|
|
|
188
188
|
**Vite Config Generator:**
|
|
189
189
|
```starlark
|
|
190
|
-
#
|
|
190
|
+
# engine/topologies/tilt/generators/vite_config.star
|
|
191
191
|
def generate_for_manifest(manifest, backend_manifest, write_fn):
|
|
192
192
|
app_type = manifest.get('appType')
|
|
193
193
|
|
|
@@ -209,7 +209,7 @@ def generate_for_manifest(manifest, backend_manifest, write_fn):
|
|
|
209
209
|
|
|
210
210
|
**TSConfig Generator:**
|
|
211
211
|
```starlark
|
|
212
|
-
#
|
|
212
|
+
# engine/topologies/tilt/generators/tsconfig.star
|
|
213
213
|
def generate_backend(path, prisma_path, write_fn, internal_deps, is_docker):
|
|
214
214
|
config = {
|
|
215
215
|
"compilerOptions": {
|
|
@@ -226,7 +226,7 @@ def generate_backend(path, prisma_path, write_fn, internal_deps, is_docker):
|
|
|
226
226
|
|
|
227
227
|
**Dockerfile Generation:**
|
|
228
228
|
```starlark
|
|
229
|
-
#
|
|
229
|
+
# engine/topologies/platform/docker/dockerfile/dockerfile.star
|
|
230
230
|
def generate_app_dockerfile(path, resource_name, start_command):
|
|
231
231
|
return '''
|
|
232
232
|
# L1: Golden Image Base
|
|
@@ -263,7 +263,7 @@ golden-image-l1 (Base)
|
|
|
263
263
|
|
|
264
264
|
**Golden Image Module:**
|
|
265
265
|
```starlark
|
|
266
|
-
#
|
|
266
|
+
# engine/topologies/platform/docker/build/golden_image.star
|
|
267
267
|
GoldenImage = struct(
|
|
268
268
|
build_l1 = _build_l1_base,
|
|
269
269
|
build_l2 = _build_l2_deps,
|
|
@@ -283,7 +283,7 @@ GoldenImage = struct(
|
|
|
283
283
|
|
|
284
284
|
**Per-Service Database Provisioning:**
|
|
285
285
|
```starlark
|
|
286
|
-
#
|
|
286
|
+
# engine/topologies/platform/state/relational.star
|
|
287
287
|
load("./prisma/db_readiness.star", "wait_for_db")
|
|
288
288
|
load("./prisma/migrate_script.star", "generate_migrate_script")
|
|
289
289
|
|
|
@@ -308,7 +308,7 @@ def get_database_url(resource_name):
|
|
|
308
308
|
|
|
309
309
|
**Database Readiness Checks:**
|
|
310
310
|
```starlark
|
|
311
|
-
#
|
|
311
|
+
# engine/topologies/platform/docker/layers/prisma/db_readiness.star
|
|
312
312
|
def wait_for_db(db_url, timeout=30):
|
|
313
313
|
"""Waits for PostgreSQL to be ready"""
|
|
314
314
|
return '''
|
|
@@ -324,7 +324,7 @@ done
|
|
|
324
324
|
|
|
325
325
|
**Traefik Configuration:**
|
|
326
326
|
```starlark
|
|
327
|
-
#
|
|
327
|
+
# engine/topologies/platform/net/proxy.star
|
|
328
328
|
def generate_traefik_labels(resource_name, port, host, path_prefix):
|
|
329
329
|
return {
|
|
330
330
|
'traefik.enable': 'true',
|
|
@@ -338,7 +338,7 @@ def generate_traefik_labels(resource_name, port, host, path_prefix):
|
|
|
338
338
|
|
|
339
339
|
**Library Discovery & Setup:**
|
|
340
340
|
```starlark
|
|
341
|
-
#
|
|
341
|
+
# engine/topologies/tilt/resources/deps.star
|
|
342
342
|
def discover_resource_libraries(ctx, resource_path):
|
|
343
343
|
"""Discovers @tdk/* dependencies from package.json"""
|
|
344
344
|
package_json = read_json(resource_path + "/package.json")
|
|
@@ -385,7 +385,7 @@ def setup_libraries(ctx, should_enable, DDD_LIBS, PLATFORM_LIBS, PRODUCT_LIBS, g
|
|
|
385
385
|
```
|
|
386
386
|
❌ DON'T MODIFY:
|
|
387
387
|
- **/autogenerated/*.autogenerated.*
|
|
388
|
-
- .
|
|
388
|
+
- .tdk/.tdk-out/product_autogenerated_*/*
|
|
389
389
|
- **/services.autogenerated.star
|
|
390
390
|
- **/domains.autogenerated.star
|
|
391
391
|
```
|
|
@@ -395,7 +395,7 @@ def setup_libraries(ctx, should_enable, DDD_LIBS, PLATFORM_LIBS, PRODUCT_LIBS, g
|
|
|
395
395
|
✅ MODIFY THESE INSTEAD:
|
|
396
396
|
- service.json (or let synthesis auto-configure from directory)
|
|
397
397
|
- package.json (dependencies)
|
|
398
|
-
-
|
|
398
|
+
- discovery/registry.star
|
|
399
399
|
```
|
|
400
400
|
|
|
401
401
|
### Manifest-Driven Rule
|
|
@@ -639,7 +639,7 @@ load('ext://live_update', 'sync', 'run') # Remove this line!
|
|
|
639
639
|
4. Verify in Tilt UI
|
|
640
640
|
|
|
641
641
|
### Adding New Generator
|
|
642
|
-
1. Create generator in
|
|
642
|
+
1. Create generator in `engine/topologies/tilt/generators/`
|
|
643
643
|
2. Export in `index.star`
|
|
644
644
|
3. Call from `manifest_resource.star`
|
|
645
645
|
4. Test with single manifest
|
package/engine/README.md
CHANGED
|
@@ -24,7 +24,7 @@ This directory contains the TDK Landscape Tilt infrastructure framework - the co
|
|
|
24
24
|
|
|
25
25
|
When you see `.tilt-engine/` in paths, know that this is framework code (not generated output).
|
|
26
26
|
|
|
27
|
-
Generated/output files go in `.
|
|
27
|
+
Generated/output files go in `.tdk/.tdk-out/` (which is gitignored).
|
|
28
28
|
|
|
29
29
|
## Learn More
|
|
30
30
|
|
|
@@ -17,13 +17,16 @@
|
|
|
17
17
|
# This Dockerfile builds 8 golden images:
|
|
18
18
|
# - tdk-project-l1:latest - OS base + Bun runtime
|
|
19
19
|
# - tdk-project-l2:latest - Dependencies installed
|
|
20
|
-
# - tdk-project-l3-backend:latest - Backend build tools (Prisma, no Infisical CLI)
|
|
20
|
+
# - tdk-project-l3-backend:latest - Backend and migrator build tools (Prisma, no Infisical CLI)
|
|
21
21
|
# - tdk-project-l3-frontend:latest - Frontend build tools (no Prisma)
|
|
22
|
-
# - tdk-project-
|
|
23
|
-
# - tdk-project-l4-backend:latest - Backend production runtime
|
|
22
|
+
# - tdk-project-l4-backend:latest - Backend production runtime (Bun)
|
|
23
|
+
# - tdk-project-l4-backend-node:latest - Backend production runtime (Node.js)
|
|
24
24
|
# - tdk-project-l4-frontend:latest - Frontend production runtime (Nginx)
|
|
25
25
|
# - tdk-project-l4-migrator:latest - Migrator production runtime
|
|
26
26
|
#
|
|
27
|
+
# Migrators build on l3-backend: a separate l3-migrator stage installed the same Prisma
|
|
28
|
+
# and produced identical layers under a second image name.
|
|
29
|
+
#
|
|
27
30
|
# Services use these as base images to skip heavy dependency installation.
|
|
28
31
|
#
|
|
29
32
|
# ⚠️ SKIP_INFISICAL_SETUP Support:
|
|
@@ -100,26 +103,6 @@ LABEL layer="l3-frontend" description="Frontend build tools without Prisma
|
|
|
100
103
|
RUN echo "Bun version: $(bun --version)"
|
|
101
104
|
|
|
102
105
|
|
|
103
|
-
# =============================================================================
|
|
104
|
-
# L3-MIGRATOR: MIGRATOR BUILD TOOLS (PRISMA)
|
|
105
|
-
# =============================================================================
|
|
106
|
-
FROM l2_golden AS l3_migrator_golden
|
|
107
|
-
|
|
108
|
-
LABEL layer="l3-migrator" description="Migrator build tools with Prisma" maintainer="tdk-project"
|
|
109
|
-
|
|
110
|
-
# Install Prisma CLI globally (required for migrations, pinned)
|
|
111
|
-
RUN bun add -g prisma@7.5.0 @prisma/client@7.5.0
|
|
112
|
-
|
|
113
|
-
# Verify Prisma installation
|
|
114
|
-
RUN echo "Prisma version: $(bunx prisma --version | head -1)"
|
|
115
|
-
|
|
116
|
-
# ⚠️ CRITICAL: Infisical CLI is NOT installed in golden L3 images
|
|
117
|
-
# Reason: curl to dl.cloudsmith.io hangs during Docker builds when CDN is slow
|
|
118
|
-
# Solution: Use SKIP_INFISICAL_SETUP=1 build arg or runtime env var injection
|
|
119
|
-
# Services read secrets from environment variables at runtime (no CLI needed)
|
|
120
|
-
# See: .tilt/topologies/platform/docker/layers/l3_builder_layers.star
|
|
121
|
-
|
|
122
|
-
|
|
123
106
|
# =============================================================================
|
|
124
107
|
# L4-BACKEND-BUN: BACKEND PRODUCTION RUNTIME (BUN)
|
|
125
108
|
# =============================================================================
|
|
@@ -202,8 +185,8 @@ LABEL layer="l4-migrator" description="Migrator runtime with Prisma"
|
|
|
202
185
|
|
|
203
186
|
ENV NODE_ENV=production
|
|
204
187
|
|
|
205
|
-
# Copy global Prisma installation from L3
|
|
206
|
-
COPY --from=
|
|
188
|
+
# Copy global Prisma installation from L3 (l3-backend carries the same pinned Prisma)
|
|
189
|
+
COPY --from=l3_backend_golden /root/.bun/install/global /root/.bun/install/global
|
|
207
190
|
|
|
208
191
|
# ⚠️ Infisical CLI is NOT included in golden L4 images
|
|
209
192
|
# The migrator reads secrets directly from environment variables at runtime
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# 🏗️ TILT SDK - GOLDEN IMAGE BUILDERS
|
|
3
3
|
# =============================================================================
|
|
4
4
|
|
|
5
|
-
load('./golden_image_constants.star', 'GOLDEN_DOCKERFILE', 'GOLDEN_IMAGE_PREFIX', 'GOLDEN_LAYERS')
|
|
5
|
+
load('./golden_image_constants.star', 'GOLDEN_DOCKERFILE', 'GOLDEN_IMAGE_PREFIX', 'GOLDEN_LAYERS', 'LEGACY_GOLDEN_IMAGES')
|
|
6
6
|
|
|
7
7
|
# Label that records which golden Dockerfile an image was built from.
|
|
8
8
|
GOLDEN_HASH_LABEL = 'tdk.golden.hash'
|
|
@@ -53,6 +53,11 @@ else
|
|
|
53
53
|
@@SERIAL_BUILDS@@
|
|
54
54
|
fi
|
|
55
55
|
|
|
56
|
+
# Untag golden images that older engines built and nothing uses now; an image still in use is left alone.
|
|
57
|
+
for img in @@LEGACY_IMAGES@@; do
|
|
58
|
+
docker image rm "$img" >/dev/null 2>&1 && echo " 🧹 Removed legacy golden image $img"
|
|
59
|
+
done
|
|
60
|
+
|
|
56
61
|
echo "✅ Golden layers built (@@COUNT@@ images):"
|
|
57
62
|
@@SUMMARY@@
|
|
58
63
|
'''
|
|
@@ -118,6 +123,7 @@ def build_golden_layers(project_root='.'):
|
|
|
118
123
|
.replace('@@DF_REL@@', _sh_quote(dockerfile_from_tiltfile))
|
|
119
124
|
.replace('@@ROOT_REL@@', _sh_quote(context))
|
|
120
125
|
.replace('@@IMAGES@@', ' '.join(images))
|
|
126
|
+
.replace('@@LEGACY_IMAGES@@', ' '.join(LEGACY_GOLDEN_IMAGES))
|
|
121
127
|
.replace('@@HASH_LABEL@@', GOLDEN_HASH_LABEL)
|
|
122
128
|
.replace('@@COUNT@@', str(len(images)))
|
|
123
129
|
.replace('@@TARGET_NAMES@@', ', '.join(target_names))
|
|
@@ -46,12 +46,6 @@ GOLDEN_LAYERS = {
|
|
|
46
46
|
'description': 'Frontend build tools (no Prisma)',
|
|
47
47
|
'target': 'l3_frontend_golden',
|
|
48
48
|
},
|
|
49
|
-
'l3-migrator': {
|
|
50
|
-
'name': GOLDEN_IMAGE_PREFIX + '-l3-migrator',
|
|
51
|
-
'tag': 'latest',
|
|
52
|
-
'description': 'Migrator build tools (Prisma only, Infisical CLI skipped to avoid CDN hangs)',
|
|
53
|
-
'target': 'l3_migrator_golden',
|
|
54
|
-
},
|
|
55
49
|
'l4-backend': {
|
|
56
50
|
'name': GOLDEN_IMAGE_PREFIX + '-l4-backend',
|
|
57
51
|
'tag': 'latest',
|
|
@@ -79,8 +73,21 @@ GOLDEN_LAYERS = {
|
|
|
79
73
|
}
|
|
80
74
|
|
|
81
75
|
|
|
76
|
+
# Layers that are no longer built, mapped to the layer that replaced them.
|
|
77
|
+
# l3-migrator installed the same Prisma as l3-backend and produced identical layers.
|
|
78
|
+
LAYER_ALIASES = {
|
|
79
|
+
'l3-migrator': 'l3-backend',
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
# Image names older engines built that nothing uses now; the golden build untags them.
|
|
83
|
+
LEGACY_GOLDEN_IMAGES = [
|
|
84
|
+
GOLDEN_IMAGE_PREFIX + '-l3-migrator:latest',
|
|
85
|
+
]
|
|
86
|
+
|
|
87
|
+
|
|
82
88
|
def get_layer_reference(layer):
|
|
83
89
|
"""Returns the full image reference for a specific layer."""
|
|
90
|
+
layer = LAYER_ALIASES.get(layer, layer)
|
|
84
91
|
if layer not in GOLDEN_LAYERS:
|
|
85
92
|
fail("Invalid layer: " + layer + ". Must be one of: l1, l2, l3, l4")
|
|
86
93
|
|
|
@@ -38,13 +38,16 @@ def generate_golden_dockerfile():
|
|
|
38
38
|
# This Dockerfile builds 8 golden images:
|
|
39
39
|
# - """ + prefix + """-l1:latest - OS base + Bun runtime
|
|
40
40
|
# - """ + prefix + """-l2:latest - Dependencies installed
|
|
41
|
-
# - """ + prefix + """-l3-backend:latest - Backend build tools (Prisma, no Infisical CLI)
|
|
41
|
+
# - """ + prefix + """-l3-backend:latest - Backend and migrator build tools (Prisma, no Infisical CLI)
|
|
42
42
|
# - """ + prefix + """-l3-frontend:latest - Frontend build tools (no Prisma)
|
|
43
|
-
# - """ + prefix + """-
|
|
44
|
-
# - """ + prefix + """-l4-backend:latest - Backend production runtime
|
|
43
|
+
# - """ + prefix + """-l4-backend:latest - Backend production runtime (Bun)
|
|
44
|
+
# - """ + prefix + """-l4-backend-node:latest - Backend production runtime (Node.js)
|
|
45
45
|
# - """ + prefix + """-l4-frontend:latest - Frontend production runtime (Nginx)
|
|
46
46
|
# - """ + prefix + """-l4-migrator:latest - Migrator production runtime
|
|
47
47
|
#
|
|
48
|
+
# Migrators build on l3-backend: a separate l3-migrator stage installed the same Prisma
|
|
49
|
+
# and produced identical layers under a second image name.
|
|
50
|
+
#
|
|
48
51
|
# Services use these as base images to skip heavy dependency installation.
|
|
49
52
|
#
|
|
50
53
|
# ⚠️ SKIP_INFISICAL_SETUP Support:
|
|
@@ -139,28 +142,6 @@ LABEL layer="l3-frontend" \
|
|
|
139
142
|
RUN echo "Bun version: $(bun --version)"
|
|
140
143
|
|
|
141
144
|
|
|
142
|
-
# =============================================================================
|
|
143
|
-
# L3-MIGRATOR: MIGRATOR BUILD TOOLS (PRISMA)
|
|
144
|
-
# =============================================================================
|
|
145
|
-
FROM l2_golden AS l3_migrator_golden
|
|
146
|
-
|
|
147
|
-
LABEL layer="l3-migrator" \
|
|
148
|
-
description="Migrator build tools with Prisma" \
|
|
149
|
-
maintainer="{prefix}"
|
|
150
|
-
|
|
151
|
-
# Install Prisma CLI globally (required for migrations, pinned)
|
|
152
|
-
RUN bun add -g prisma@7.5.0 @prisma/client@7.5.0
|
|
153
|
-
|
|
154
|
-
# Verify Prisma installation
|
|
155
|
-
RUN echo "Prisma version: $(bunx prisma --version | head -1)"
|
|
156
|
-
|
|
157
|
-
# ⚠️ CRITICAL: Infisical CLI is NOT installed in golden L3 images
|
|
158
|
-
# Reason: curl to dl.cloudsmith.io hangs during Docker builds when CDN is slow
|
|
159
|
-
# Solution: Use SKIP_INFISICAL_SETUP=1 build arg or runtime env var injection
|
|
160
|
-
# Services read secrets from environment variables at runtime (no CLI needed)
|
|
161
|
-
# See: .tilt/topologies/platform/docker/layers/l3_builder_layers.star
|
|
162
|
-
|
|
163
|
-
|
|
164
145
|
# =============================================================================
|
|
165
146
|
# L4-BACKEND-BUN: BACKEND PRODUCTION RUNTIME (BUN)
|
|
166
147
|
# =============================================================================
|
|
@@ -256,8 +237,8 @@ LABEL layer="l4-migrator" \
|
|
|
256
237
|
|
|
257
238
|
ENV NODE_ENV=production
|
|
258
239
|
|
|
259
|
-
# Copy global Prisma installation from L3
|
|
260
|
-
COPY --from=
|
|
240
|
+
# Copy global Prisma installation from L3 (l3-backend carries the same pinned Prisma)
|
|
241
|
+
COPY --from=l3_backend_golden /root/.bun/install/global /root/.bun/install/global
|
|
261
242
|
|
|
262
243
|
# ⚠️ Infisical CLI is NOT included in golden L4 images
|
|
263
244
|
# The migrator reads secrets directly from environment variables at runtime
|
|
@@ -83,7 +83,8 @@ def _load_golden_prefix():
|
|
|
83
83
|
|
|
84
84
|
_GOLDEN_PREFIX = _load_golden_prefix()
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
# Migrators build on l3-backend; the golden build no longer makes a separate l3-migrator image.
|
|
87
|
+
DEFAULT_GOLDEN_L3_MIGRATOR_IMAGE = _GOLDEN_PREFIX + "-l3-backend:latest"
|
|
87
88
|
DEFAULT_GOLDEN_L4_MIGRATOR_IMAGE = _GOLDEN_PREFIX + "-l4-migrator:latest"
|
|
88
89
|
|
|
89
90
|
DEFAULT_DB_PORT = "5432"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# 📋 Manifest Module
|
|
2
2
|
|
|
3
3
|
**Status:** ✅ All Phases Complete! (Phase 1-5)
|
|
4
|
-
**Location:**
|
|
4
|
+
**Location:** `engine/topologies/tilt/manifest/`
|
|
5
5
|
**Purpose:** Clean, modular manifest parsing, loading, validation, and discovery integration system
|
|
6
6
|
|
|
7
7
|
---
|