@tdk-landscape/tdk-cli-core 1.3.32 → 1.3.36
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/discovery/discovery_orchestrator.star +4 -4
- package/discovery/manifest/loading.star +9 -5
- package/discovery/manifest/normalize.star +3 -3
- package/discovery/manifest/validation.star +1 -1
- package/discovery/validation.star +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +120 -6
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/help.js +1 -1
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +27 -23
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/resource.js +1 -1
- package/dist/commands/resource.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +2 -48
- package/dist/commands/up.js.map +1 -1
- package/dist/generator/template-engine.d.ts +1 -1
- package/dist/generator/template-engine.d.ts.map +1 -1
- package/dist/generator/template-engine.js +96 -44
- package/dist/generator/template-engine.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/types/index.d.ts +20 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.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 +11 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/resource-features.d.ts +1 -1
- package/dist/utils/resource-features.js +1 -1
- package/dist/utils/service-urls.d.ts +30 -0
- package/dist/utils/service-urls.d.ts.map +1 -0
- package/dist/utils/service-urls.js +93 -0
- package/dist/utils/service-urls.js.map +1 -0
- package/dist/utils/stack-features.d.ts +4 -4
- package/dist/utils/stack-features.d.ts.map +1 -1
- package/dist/utils/stack-features.js +1 -1
- package/dist/utils/stack-features.js.map +1 -1
- package/engine/REFACTORING_MANIFEST_SYSTEM.md +1 -1
- package/engine/lifecycle/orchestrator.star +4 -3
- package/engine/schemas/service-schema.json +5 -5
- package/engine/topologies/platform/docker/compose/compose.star +44 -24
- package/engine/topologies/platform/docker/constants.star +4 -0
- package/engine/topologies/platform/docker/generators/golden_docker_generator_v2.star +1 -0
- package/engine/topologies/platform/docker/layers/l4_runtime_layers.star +10 -6
- package/engine/topologies/platform/docker/networking/api_path_constants.star +30 -0
- package/engine/topologies/platform/docker/networking/traefik.star +2 -2
- package/engine/topologies/platform/net/AGENTS.md +64 -0
- package/engine/topologies/platform/security/AGENTS.md +49 -0
- package/engine/topologies/platform/state/AGENTS.md +64 -0
- package/engine/topologies/tilt/config/profiles.star +16 -2
- package/engine/topologies/tilt/generators/typescript/frontend_tsconfig.star +21 -9
- package/engine/topologies/tilt/generators/vite/backend.star +1 -1
- package/engine/topologies/tilt/generators/vite/frontend.star +2 -1
- package/engine/topologies/tilt/generators/vite/helpers.star +1 -1
- package/engine/topologies/tilt/manifest/constants.star +1 -1
- package/engine/topologies/tilt/manifest/mapper.star +2 -2
- package/engine/topologies/tilt/manifest/parser.star +2 -2
- package/engine/topologies/tilt/manifest/schema.star +2 -2
- package/engine/topologies/tilt/manifest/tests/test_loader_parser.star +3 -3
- package/engine/topologies/tilt/manifest/tests/test_validator.star +2 -2
- package/engine/topologies/tilt/manifest/validator.star +7 -7
- package/engine/topologies/tilt/resources/orchestrator/generators/env.star +3 -2
- package/engine/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +3 -2
- package/package.json +1 -1
- package/templates/Tiltfile.hbs +16 -1
- package/templates/spec.master.hbs +11 -4
- package/engine/schemas/manifest-schema.json +0 -301
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$id": "https://TDK Landscape.local/schemas/service-schema.json",
|
|
3
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
-
"additionalProperties": false,
|
|
5
|
-
"allOf": [
|
|
6
|
-
{
|
|
7
|
-
"if": {
|
|
8
|
-
"properties": {
|
|
9
|
-
"appType": {
|
|
10
|
-
"const": "backend"
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
"then": {
|
|
15
|
-
"properties": {
|
|
16
|
-
"port": {
|
|
17
|
-
"maximum": 5999,
|
|
18
|
-
"minimum": 4000
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
"required": [
|
|
22
|
-
"port"
|
|
23
|
-
]
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"if": {
|
|
28
|
-
"properties": {
|
|
29
|
-
"appType": {
|
|
30
|
-
"const": "frontend"
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"then": {
|
|
35
|
-
"properties": {
|
|
36
|
-
"port": {
|
|
37
|
-
"maximum": 3999,
|
|
38
|
-
"minimum": 3000
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"if": {
|
|
45
|
-
"properties": {
|
|
46
|
-
"appType": {
|
|
47
|
-
"const": "worker"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
"then": {
|
|
52
|
-
"properties": {
|
|
53
|
-
"features": {
|
|
54
|
-
"contains": {
|
|
55
|
-
"const": "nats"
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
"required": [
|
|
60
|
-
"features"
|
|
61
|
-
]
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
],
|
|
65
|
-
"description": "Configuration for TDK Landscape services. Drives Tilt orchestration, Docker Compose generation, and dependency resolution. Supports both explicit service.json files and synthesis from directory structure (CEO Review: rename-service-manifest).",
|
|
66
|
-
"properties": {
|
|
67
|
-
"$schema": {
|
|
68
|
-
"description": "JSON Schema reference for IDE validation",
|
|
69
|
-
"type": "string"
|
|
70
|
-
},
|
|
71
|
-
"apiBasePath": {
|
|
72
|
-
"default": "/api",
|
|
73
|
-
"description": "Base path for API routes in Traefik.",
|
|
74
|
-
"pattern": "^/[a-z0-9/-]*$",
|
|
75
|
-
"type": "string"
|
|
76
|
-
},
|
|
77
|
-
"appName": {
|
|
78
|
-
"description": "Unique resource identifier. Must match directory name.\nFormat: {stack}-{function}-{type}\nExample: 'user-management-backend'",
|
|
79
|
-
"examples": [
|
|
80
|
-
"user-management-backend",
|
|
81
|
-
"order-planner-frontend"
|
|
82
|
-
],
|
|
83
|
-
"maxLength": 64,
|
|
84
|
-
"minLength": 3,
|
|
85
|
-
"pattern": "^[a-z][a-z0-9-]*[a-z0-9]$",
|
|
86
|
-
"type": "string"
|
|
87
|
-
},
|
|
88
|
-
"appType": {
|
|
89
|
-
"description": "Service type determining build strategy:\n• backend - Hono/Express API server\n• frontend - Vite/React application\n• sdk - Shared library package\n• worker - Background job processor\n• migrator - Database migration runner\n• library - Shared code library",
|
|
90
|
-
"enum": [
|
|
91
|
-
"backend",
|
|
92
|
-
"frontend",
|
|
93
|
-
"sdk",
|
|
94
|
-
"worker",
|
|
95
|
-
"migrator",
|
|
96
|
-
"library"
|
|
97
|
-
],
|
|
98
|
-
"type": "string"
|
|
99
|
-
},
|
|
100
|
-
"backendName": {
|
|
101
|
-
"description": "For frontends: associated backend service.\nAuto-computed from appName if not specified.",
|
|
102
|
-
"pattern": "^[a-z][a-z0-9-]*-backend$",
|
|
103
|
-
"type": "string"
|
|
104
|
-
},
|
|
105
|
-
"basePath": {
|
|
106
|
-
"description": "Base path for frontend routing on TDK Landscape.localhost. Default is /{stack}s when omitted.",
|
|
107
|
-
"pattern": "^/[a-z0-9/-]*$",
|
|
108
|
-
"type": "string"
|
|
109
|
-
},
|
|
110
|
-
"databaseName": {
|
|
111
|
-
"description": "Override auto-generated DB name.\nDefault: TDK_{stack}",
|
|
112
|
-
"pattern": "^TDK_[a-z_]+$",
|
|
113
|
-
"type": "string"
|
|
114
|
-
},
|
|
115
|
-
"dependencies": {
|
|
116
|
-
"description": "Deprecated. Use 'dependsOn' instead.",
|
|
117
|
-
"deprecated": true,
|
|
118
|
-
"items": {
|
|
119
|
-
"pattern": "^[a-z][a-z0-9-]*$",
|
|
120
|
-
"type": "string"
|
|
121
|
-
},
|
|
122
|
-
"type": "array",
|
|
123
|
-
"uniqueItems": true
|
|
124
|
-
},
|
|
125
|
-
"dockerfile": {
|
|
126
|
-
"default": "autogenerated/Dockerfile.app.autogenerated",
|
|
127
|
-
"description": "Custom Dockerfile path relative to service directory.",
|
|
128
|
-
"type": "string"
|
|
129
|
-
},
|
|
130
|
-
"stack": {
|
|
131
|
-
"description": "Technology stack this resource belongs to.\nUsed for:\n• Database naming: TDK_{stack}\n• Traefik routing: /api/{stack}\n• NATS queue: {stack}_backend_svc",
|
|
132
|
-
"enum": [
|
|
133
|
-
"user",
|
|
134
|
-
"team",
|
|
135
|
-
"auth",
|
|
136
|
-
"order",
|
|
137
|
-
"order-planner",
|
|
138
|
-
"service",
|
|
139
|
-
"inventory",
|
|
140
|
-
"billing",
|
|
141
|
-
"notification",
|
|
142
|
-
"analytics",
|
|
143
|
-
"profile",
|
|
144
|
-
"platform",
|
|
145
|
-
"product"
|
|
146
|
-
],
|
|
147
|
-
"type": "string"
|
|
148
|
-
},
|
|
149
|
-
"params": {
|
|
150
|
-
"additionalProperties": {
|
|
151
|
-
"type": "string"
|
|
152
|
-
},
|
|
153
|
-
"description": "Non-secret configuration parameters (BASE_URL, PORT, etc.). Secrets use 'secrets' section below.",
|
|
154
|
-
"type": "object"
|
|
155
|
-
},
|
|
156
|
-
"secrets": {
|
|
157
|
-
"description": "Secret references resolved via Infisical. NO secrets in params/envVars - security violation.",
|
|
158
|
-
"properties": {
|
|
159
|
-
"required": {
|
|
160
|
-
"description": "Required secret names. Service CRASHES if any are missing.",
|
|
161
|
-
"items": {
|
|
162
|
-
"type": "string",
|
|
163
|
-
"pattern": "^[A-Z_][A-Z0-9_]*$"
|
|
164
|
-
},
|
|
165
|
-
"type": "array",
|
|
166
|
-
"uniqueItems": true
|
|
167
|
-
},
|
|
168
|
-
"optional": {
|
|
169
|
-
"description": "Optional secret names. Service starts but warns if missing.",
|
|
170
|
-
"items": {
|
|
171
|
-
"type": "string",
|
|
172
|
-
"pattern": "^[A-Z_][A-Z0-9_]*$"
|
|
173
|
-
},
|
|
174
|
-
"type": "array",
|
|
175
|
-
"uniqueItems": true
|
|
176
|
-
}
|
|
177
|
-
},
|
|
178
|
-
"required": [
|
|
179
|
-
"required"
|
|
180
|
-
],
|
|
181
|
-
"type": "object"
|
|
182
|
-
},
|
|
183
|
-
"features": {
|
|
184
|
-
"description": "Platform features:\n• nats - NATS JetStream eventing\n• prisma - DB ORM & migrations\n• redis - Caching layer\n• infisical - Secrets management\n• vitest - Test framework\n• traefik - Reverse proxy routing\n• websocket - WS support\n• graphql - GraphQL server\n• grpc - gRPC protocol",
|
|
185
|
-
"items": {
|
|
186
|
-
"enum": [
|
|
187
|
-
"nats",
|
|
188
|
-
"prisma",
|
|
189
|
-
"redis",
|
|
190
|
-
"infisical",
|
|
191
|
-
"vitest",
|
|
192
|
-
"traefik",
|
|
193
|
-
"websocket",
|
|
194
|
-
"graphql",
|
|
195
|
-
"grpc"
|
|
196
|
-
],
|
|
197
|
-
"type": "string"
|
|
198
|
-
},
|
|
199
|
-
"type": "array",
|
|
200
|
-
"uniqueItems": true
|
|
201
|
-
},
|
|
202
|
-
"healthCheckPath": {
|
|
203
|
-
"default": "/health",
|
|
204
|
-
"description": "HTTP endpoint for health checks. Must return 200 OK.",
|
|
205
|
-
"pattern": "^/[a-z0-9/-]*$",
|
|
206
|
-
"type": "string"
|
|
207
|
-
},
|
|
208
|
-
"dependsOn": {
|
|
209
|
-
"description": "Resource dependencies used for startup ordering and frontend dependency env generation.\nEach entry can be a stack name (e.g. 'user') or resource name (e.g. 'user-management-backend').\nServices listed here start before this service. Used for focus mode, health checks, migration order.",
|
|
210
|
-
"items": {
|
|
211
|
-
"pattern": "^[a-z][a-z0-9-]*$",
|
|
212
|
-
"type": "string"
|
|
213
|
-
},
|
|
214
|
-
"type": "array",
|
|
215
|
-
"uniqueItems": true
|
|
216
|
-
},
|
|
217
|
-
"nats": {
|
|
218
|
-
"description": "Custom NATS configuration. Auto-generated if 'nats' in features.",
|
|
219
|
-
"properties": {
|
|
220
|
-
"queueGroup": {
|
|
221
|
-
"description": "NATS queue group for load balancing",
|
|
222
|
-
"type": "string"
|
|
223
|
-
},
|
|
224
|
-
"subjects": {
|
|
225
|
-
"description": "NATS subjects to subscribe",
|
|
226
|
-
"items": {
|
|
227
|
-
"type": "string"
|
|
228
|
-
},
|
|
229
|
-
"type": "array"
|
|
230
|
-
}
|
|
231
|
-
},
|
|
232
|
-
"type": "object"
|
|
233
|
-
},
|
|
234
|
-
"playwright": {
|
|
235
|
-
"default": false,
|
|
236
|
-
"description": "Generate Playwright config in .autogenerated/playwright.config.autogenerated.ts when true.",
|
|
237
|
-
"type": "boolean"
|
|
238
|
-
},
|
|
239
|
-
"port": {
|
|
240
|
-
"description": "External dev port (internal always 3000).\nAssignments:\n• 4000: user\n• 4001: service\n• 4002: order\n• 4003: team\n• 4004: auth",
|
|
241
|
-
"examples": [
|
|
242
|
-
4000,
|
|
243
|
-
4001,
|
|
244
|
-
4002,
|
|
245
|
-
4003,
|
|
246
|
-
4004
|
|
247
|
-
],
|
|
248
|
-
"maximum": 9999,
|
|
249
|
-
"minimum": 3000,
|
|
250
|
-
"type": "integer"
|
|
251
|
-
},
|
|
252
|
-
"replicas": {
|
|
253
|
-
"default": 1,
|
|
254
|
-
"description": "Container instances to run.\nCreates separate containers (service-1, service-2).\nTraefik load-balances between all replicas.",
|
|
255
|
-
"maximum": 10,
|
|
256
|
-
"minimum": 1,
|
|
257
|
-
"type": "integer"
|
|
258
|
-
},
|
|
259
|
-
"runtime": {
|
|
260
|
-
"default": "bun",
|
|
261
|
-
"description": "Runtime to use for this service",
|
|
262
|
-
"enum": [
|
|
263
|
-
"node",
|
|
264
|
-
"bun"
|
|
265
|
-
],
|
|
266
|
-
"type": "string"
|
|
267
|
-
},
|
|
268
|
-
"syncs": {
|
|
269
|
-
"description": "Directories to sync for hot-reload.\nAuto-computed if not specified:\n• backend: ['src', 'prisma']\n• frontend: ['src', 'public']",
|
|
270
|
-
"items": {
|
|
271
|
-
"type": "string"
|
|
272
|
-
},
|
|
273
|
-
"type": "array"
|
|
274
|
-
},
|
|
275
|
-
"traefik": {
|
|
276
|
-
"description": "Custom Traefik routing. Auto-generated if not specified.",
|
|
277
|
-
"properties": {
|
|
278
|
-
"healthCheck": {
|
|
279
|
-
"description": "Health check path for Traefik",
|
|
280
|
-
"type": "string"
|
|
281
|
-
},
|
|
282
|
-
"host": {
|
|
283
|
-
"description": "Custom hostname (e.g., 'user.backend.{project}.local')",
|
|
284
|
-
"type": "string"
|
|
285
|
-
},
|
|
286
|
-
"pathPrefix": {
|
|
287
|
-
"description": "URL path prefix (e.g., '/api/user')",
|
|
288
|
-
"type": "string"
|
|
289
|
-
}
|
|
290
|
-
},
|
|
291
|
-
"type": "object"
|
|
292
|
-
}
|
|
293
|
-
},
|
|
294
|
-
"required": [
|
|
295
|
-
"appName",
|
|
296
|
-
"appType",
|
|
297
|
-
"stack"
|
|
298
|
-
],
|
|
299
|
-
"title": "TDK Landscape Service Configuration",
|
|
300
|
-
"type": "object"
|
|
301
|
-
}
|