Skip to content

Commit 63a7064

Browse files
committed
monaco and import fixes
1 parent e2a4152 commit 63a7064

File tree

17 files changed

+808
-202
lines changed

17 files changed

+808
-202
lines changed

common/schemas/stacks-api.json

Lines changed: 171 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -223,193 +223,175 @@
223223
"additionalProperties": false,
224224
"description": "A warning about a potential secret detected during stack export"
225225
},
226-
"ExportStackEndpoint": {
226+
"ExportStackResult": {
227227
"type": "object",
228228
"properties": {
229-
"url": {
229+
"stack": {
230230
"type": "object",
231231
"properties": {
232-
"id": {
233-
"type": "string"
232+
"name": {
233+
"type": "string",
234+
"description": "Unique kebab-case identifier for the stack"
235+
},
236+
"displayName": {
237+
"type": "string",
238+
"description": "Human-readable name shown in the UI"
239+
},
240+
"description": {
241+
"type": "string",
242+
"description": "Optional description of what this stack does"
234243
}
235244
},
236-
"required": ["id"],
245+
"required": ["name", "displayName", "description"],
237246
"additionalProperties": false
238247
},
239-
"result": {
240-
"type": "object",
241-
"properties": {
242-
"stack": {
243-
"type": "object",
244-
"properties": {
245-
"name": {
246-
"type": "string",
247-
"description": "Unique kebab-case identifier for the stack"
248-
},
249-
"displayName": {
250-
"type": "string",
251-
"description": "Human-readable name shown in the UI"
252-
},
253-
"description": {
254-
"type": "string",
255-
"description": "Optional description of what this stack does"
248+
"services": {
249+
"type": "array",
250+
"items": {
251+
"type": "object",
252+
"additionalProperties": false,
253+
"properties": {
254+
"prerequisiteIds": {
255+
"type": "array",
256+
"items": {
257+
"type": "string"
256258
}
257259
},
258-
"required": ["name", "displayName", "description"],
259-
"additionalProperties": false
260-
},
261-
"services": {
262-
"type": "array",
263-
"items": {
264-
"type": "object",
265-
"additionalProperties": false,
266-
"properties": {
267-
"prerequisiteIds": {
268-
"type": "array",
269-
"items": {
270-
"type": "string"
271-
}
272-
},
273-
"prerequisiteServiceIds": {
274-
"type": "array",
275-
"items": {
276-
"type": "string"
277-
}
278-
},
279-
"id": {
280-
"type": "string",
281-
"description": "UUID primary key"
282-
},
283-
"stackName": {
284-
"type": "string",
285-
"description": "FK to {@link StackDefinition.name }"
286-
},
287-
"displayName": {
288-
"type": "string",
289-
"description": "Human-readable name shown in the UI"
290-
},
291-
"description": {
292-
"type": "string",
293-
"description": "Optional description of what this service does"
294-
},
295-
"workingDirectory": {
296-
"type": "string",
297-
"description": "Optional relative path within stack for grouping (e.g. \"frontends/public\")"
298-
},
299-
"repositoryId": {
300-
"type": "string",
301-
"description": "Optional FK to {@link GitHubRepository.id }"
302-
},
303-
"installCommand": {
304-
"type": "string",
305-
"description": "Shell command to install dependencies (e.g. \"npm install\")"
306-
},
307-
"buildCommand": {
308-
"type": "string",
309-
"description": "Shell command to build the service (e.g. \"npm run build\")"
310-
},
311-
"runCommand": {
312-
"type": "string",
313-
"description": "Shell command to run the service (e.g. \"npm start\")"
314-
},
315-
"files": {
316-
"type": "array",
317-
"items": {
318-
"$ref": "#/definitions/ServiceFile"
319-
},
320-
"description": "Shared files placed relative to the service root"
321-
}
260+
"prerequisiteServiceIds": {
261+
"type": "array",
262+
"items": {
263+
"type": "string"
264+
}
265+
},
266+
"id": {
267+
"type": "string",
268+
"description": "UUID primary key"
269+
},
270+
"stackName": {
271+
"type": "string",
272+
"description": "FK to {@link StackDefinition.name }"
273+
},
274+
"displayName": {
275+
"type": "string",
276+
"description": "Human-readable name shown in the UI"
277+
},
278+
"description": {
279+
"type": "string",
280+
"description": "Optional description of what this service does"
281+
},
282+
"workingDirectory": {
283+
"type": "string",
284+
"description": "Optional relative path within stack for grouping (e.g. \"frontends/public\")"
285+
},
286+
"repositoryId": {
287+
"type": "string",
288+
"description": "Optional FK to {@link GitHubRepository.id }"
289+
},
290+
"installCommand": {
291+
"type": "string",
292+
"description": "Shell command to install dependencies (e.g. \"npm install\")"
293+
},
294+
"buildCommand": {
295+
"type": "string",
296+
"description": "Shell command to build the service (e.g. \"npm run build\")"
297+
},
298+
"runCommand": {
299+
"type": "string",
300+
"description": "Shell command to run the service (e.g. \"npm start\")"
301+
},
302+
"files": {
303+
"type": "array",
304+
"items": {
305+
"$ref": "#/definitions/ServiceFile"
322306
},
323-
"required": [
324-
"description",
325-
"displayName",
326-
"files",
327-
"id",
328-
"prerequisiteIds",
329-
"prerequisiteServiceIds",
330-
"runCommand",
331-
"stackName"
332-
]
307+
"description": "Shared files placed relative to the service root"
333308
}
334309
},
335-
"repositories": {
336-
"type": "array",
337-
"items": {
338-
"type": "object",
339-
"properties": {
340-
"id": {
341-
"type": "string",
342-
"description": "UUID primary key"
343-
},
344-
"stackName": {
345-
"type": "string",
346-
"description": "FK to {@link StackDefinition.name }"
347-
},
348-
"url": {
349-
"type": "string",
350-
"description": "Full URL to the git repository (e.g. \"https://github.com/user/repo\")"
351-
},
352-
"displayName": {
353-
"type": "string",
354-
"description": "Human-readable name shown in the UI"
355-
},
356-
"description": {
357-
"type": "string",
358-
"description": "Optional description"
359-
}
360-
},
361-
"required": ["id", "stackName", "url", "displayName", "description"],
362-
"additionalProperties": false
310+
"required": [
311+
"description",
312+
"displayName",
313+
"files",
314+
"id",
315+
"prerequisiteIds",
316+
"prerequisiteServiceIds",
317+
"runCommand",
318+
"stackName"
319+
]
320+
}
321+
},
322+
"repositories": {
323+
"type": "array",
324+
"items": {
325+
"type": "object",
326+
"properties": {
327+
"id": {
328+
"type": "string",
329+
"description": "UUID primary key"
330+
},
331+
"stackName": {
332+
"type": "string",
333+
"description": "FK to {@link StackDefinition.name }"
334+
},
335+
"url": {
336+
"type": "string",
337+
"description": "Full URL to the git repository (e.g. \"https://github.com/user/repo\")"
338+
},
339+
"displayName": {
340+
"type": "string",
341+
"description": "Human-readable name shown in the UI"
342+
},
343+
"description": {
344+
"type": "string",
345+
"description": "Optional description"
363346
}
364347
},
365-
"prerequisites": {
366-
"type": "array",
367-
"items": {
368-
"type": "object",
369-
"properties": {
370-
"id": {
371-
"type": "string",
372-
"description": "UUID primary key"
373-
},
374-
"stackName": {
375-
"type": "string",
376-
"description": "FK to {@link StackDefinition.name }"
377-
},
378-
"name": {
379-
"type": "string",
380-
"description": "Human-readable prerequisite name (e.g. \"Node.js >= 18\")"
381-
},
382-
"type": {
383-
"$ref": "#/definitions/PrerequisiteType",
384-
"description": "Discriminator that determines the check logic and config shape"
385-
},
386-
"config": {
387-
"$ref": "#/definitions/PrerequisiteConfig",
388-
"description": "Type-specific configuration (stored as JSON TEXT in the database)"
389-
},
390-
"installationHelp": {
391-
"type": "string",
392-
"description": "Help text shown when the prerequisite check fails"
393-
}
394-
},
395-
"required": ["id", "stackName", "name", "type", "config", "installationHelp"],
396-
"additionalProperties": false
348+
"required": ["id", "stackName", "url", "displayName", "description"],
349+
"additionalProperties": false
350+
}
351+
},
352+
"prerequisites": {
353+
"type": "array",
354+
"items": {
355+
"type": "object",
356+
"properties": {
357+
"id": {
358+
"type": "string",
359+
"description": "UUID primary key"
360+
},
361+
"stackName": {
362+
"type": "string",
363+
"description": "FK to {@link StackDefinition.name }"
364+
},
365+
"name": {
366+
"type": "string",
367+
"description": "Human-readable prerequisite name (e.g. \"Node.js >= 18\")"
368+
},
369+
"type": {
370+
"$ref": "#/definitions/PrerequisiteType",
371+
"description": "Discriminator that determines the check logic and config shape"
372+
},
373+
"config": {
374+
"$ref": "#/definitions/PrerequisiteConfig",
375+
"description": "Type-specific configuration (stored as JSON TEXT in the database)"
376+
},
377+
"installationHelp": {
378+
"type": "string",
379+
"description": "Help text shown when the prerequisite check fails"
397380
}
398381
},
399-
"warnings": {
400-
"type": "array",
401-
"items": {
402-
"$ref": "#/definitions/SecretWarning"
403-
}
404-
}
405-
},
406-
"required": ["stack", "services", "repositories", "prerequisites"],
407-
"additionalProperties": false
382+
"required": ["id", "stackName", "name", "type", "config", "installationHelp"],
383+
"additionalProperties": false
384+
}
385+
},
386+
"warnings": {
387+
"type": "array",
388+
"items": {
389+
"$ref": "#/definitions/SecretWarning"
390+
}
408391
}
409392
},
410-
"required": ["url", "result"],
411-
"additionalProperties": false,
412-
"description": "Exports a stack and all its associated services, repositories, and prerequisites for sharing"
393+
"required": ["stack", "services", "repositories", "prerequisites"],
394+
"additionalProperties": false
413395
},
414396
"ServiceFile": {
415397
"type": "object",
@@ -529,6 +511,27 @@
529511
],
530512
"description": "Union of all possible prerequisite config shapes."
531513
},
514+
"ExportStackEndpoint": {
515+
"type": "object",
516+
"properties": {
517+
"url": {
518+
"type": "object",
519+
"properties": {
520+
"id": {
521+
"type": "string"
522+
}
523+
},
524+
"required": ["id"],
525+
"additionalProperties": false
526+
},
527+
"result": {
528+
"$ref": "#/definitions/ExportStackResult"
529+
}
530+
},
531+
"required": ["url", "result"],
532+
"additionalProperties": false,
533+
"description": "Exports a stack and all its associated services, repositories, and prerequisites for sharing"
534+
},
532535
"ImportStackEndpoint": {
533536
"type": "object",
534537
"properties": {

0 commit comments

Comments
 (0)