|
12 | 12 | }, |
13 | 13 | "version": { |
14 | 14 | "type": "string", |
15 | | - "const": "1.0", |
| 15 | + "enum": ["1.0", "1.1"], |
16 | 16 | "description": "Schema version for the template plugins manifest" |
17 | 17 | }, |
| 18 | + "scaffolding": { |
| 19 | + "$ref": "#/$defs/scaffolding" |
| 20 | + }, |
18 | 21 | "plugins": { |
19 | 22 | "type": "object", |
20 | 23 | "description": "Map of plugin name to plugin manifest with package source", |
|
25 | 28 | }, |
26 | 29 | "additionalProperties": false, |
27 | 30 | "$defs": { |
| 31 | + "scaffolding": { |
| 32 | + "type": "object", |
| 33 | + "description": "Template-level metadata for constructing the scaffolding CLI command.", |
| 34 | + "required": ["command", "flags", "rules"], |
| 35 | + "properties": { |
| 36 | + "command": { |
| 37 | + "type": "string", |
| 38 | + "description": "The base CLI command for scaffolding." |
| 39 | + }, |
| 40 | + "flags": { |
| 41 | + "type": "object", |
| 42 | + "description": "Map of flag name to flag descriptor.", |
| 43 | + "additionalProperties": { |
| 44 | + "type": "object", |
| 45 | + "required": ["required", "description"], |
| 46 | + "properties": { |
| 47 | + "required": { "type": "boolean" }, |
| 48 | + "description": { "type": "string" }, |
| 49 | + "pattern": { "type": "string" }, |
| 50 | + "default": { "type": "string" } |
| 51 | + }, |
| 52 | + "additionalProperties": false |
| 53 | + } |
| 54 | + }, |
| 55 | + "rules": { |
| 56 | + "type": "array", |
| 57 | + "items": { "type": "string" }, |
| 58 | + "description": "Rules for constructing the scaffolding command." |
| 59 | + } |
| 60 | + }, |
| 61 | + "additionalProperties": false |
| 62 | + }, |
28 | 63 | "templatePlugin": { |
29 | 64 | "type": "object", |
30 | 65 | "required": [ |
|
69 | 104 | "type": "string", |
70 | 105 | "description": "Message displayed to the user after project initialization. Use this to inform about manual setup steps (e.g. environment variables, resource provisioning)." |
71 | 106 | }, |
| 107 | + "postScaffold": { |
| 108 | + "type": "array", |
| 109 | + "description": "Ordered steps to follow after scaffolding.", |
| 110 | + "items": { |
| 111 | + "$ref": "plugin-manifest.schema.json#/$defs/postScaffoldStep" |
| 112 | + } |
| 113 | + }, |
72 | 114 | "resources": { |
73 | 115 | "type": "object", |
74 | 116 | "required": ["required", "optional"], |
|
98 | 140 | "$ref": "plugin-manifest.schema.json#/$defs/resourceType" |
99 | 141 | }, |
100 | 142 | "resourceFieldEntry": { |
101 | | - "$ref": "plugin-manifest.schema.json#/$defs/resourceFieldEntry" |
| 143 | + "allOf": [ |
| 144 | + { "$ref": "plugin-manifest.schema.json#/$defs/resourceFieldEntry" }, |
| 145 | + { |
| 146 | + "properties": { |
| 147 | + "resolution": { |
| 148 | + "type": "string", |
| 149 | + "enum": [ |
| 150 | + "user-provided", |
| 151 | + "platform-injected", |
| 152 | + "static", |
| 153 | + "cli-resolved" |
| 154 | + ], |
| 155 | + "description": "Computed during sync. Indicates how the field's value is provided: user-provided (needs --set), platform-injected (auto-set at deploy), static (has a default value), or cli-resolved (resolved by the CLI during init)." |
| 156 | + } |
| 157 | + } |
| 158 | + } |
| 159 | + ] |
102 | 160 | }, |
103 | 161 | "resourceRequirement": { |
104 | 162 | "$ref": "plugin-manifest.schema.json#/$defs/resourceRequirement" |
|
0 commit comments