@aifabrix/builder 2.55.0 → 2.55.2
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/lib/agent-kit/host-approve.js +48 -6
- package/lib/agent-kit/init.js +2 -2
- package/lib/agent-kit/remote-prompts.js +46 -13
- package/lib/agent-kit/run.js +1 -1
- package/lib/agent-kit/start.js +310 -0
- package/lib/app/deploy.js +7 -4
- package/lib/app/offer-create-from-template.js +184 -0
- package/lib/cli/setup-app.js +8 -1
- package/lib/cli/setup-auth.js +11 -2
- package/lib/commands/agent-kit-help.js +74 -4
- package/lib/commands/agent-kit.js +83 -12
- package/lib/commands/auth-status-user.js +99 -0
- package/lib/commands/auth-status.js +14 -4
- package/lib/commands/datasource-load-export-cli.js +7 -2
- package/lib/commands/datasource-test-trust-cli.js +5 -1
- package/lib/commands/governance-command-action.js +5 -4
- package/lib/commands/identity-membership-role-cache.js +6 -1
- package/lib/commands/lifecycle-command-action.js +16 -15
- package/lib/commands/login-credentials.js +8 -3
- package/lib/commands/login-device.js +14 -5
- package/lib/commands/login.js +14 -1
- package/lib/commands/logout.js +50 -15
- package/lib/commands/role-assistant.js +24 -12
- package/lib/commands/verify-governance-command-action.js +9 -7
- package/lib/commands/verify-operations-command-action.js +9 -8
- package/lib/commands/verify-trust-command-action.js +6 -5
- package/lib/external-system/download.js +1 -2
- package/lib/generator/helpers.js +12 -1
- package/lib/integration-definition/apply-static-enterprise.js +5 -2
- package/lib/role-assistant/knowledge-sync-settings-push.js +172 -0
- package/lib/role-assistant/knowledge-sync.js +9 -126
- package/lib/role-assistant/test-cases-evaluate.js +12 -1
- package/lib/role-assistant/test-cases-evidence.js +44 -5
- package/lib/role-assistant/test-cases-lifecycle.js +9 -3
- package/lib/role-assistant/test-runner.js +3 -0
- package/lib/schema/infra-parameter.schema.json +51 -3
- package/lib/schema/infra.parameter.yaml +476 -40
- package/lib/schema/type/document-storage.json +1 -1
- package/lib/utils/api-required-permissions.js +271 -0
- package/lib/utils/api.js +16 -13
- package/lib/utils/cli-json-exit.js +41 -0
- package/lib/utils/cli-utils.js +23 -5
- package/lib/utils/controller-url.js +78 -4
- package/lib/utils/deployment-errors.js +15 -0
- package/lib/utils/deployment-validation-helpers.js +4 -1
- package/lib/utils/device-code.js +31 -10
- package/lib/utils/error-formatters/error-parser.js +16 -1
- package/lib/utils/error-formatters/permission-errors.js +19 -5
- package/lib/utils/keycloak-realm-ready.js +5 -2
- package/lib/utils/logger.js +1 -0
- package/lib/utils/paths.js +26 -5
- package/lib/utils/secrets-helpers.js +2 -2
- package/lib/utils/write-stream-and-wait.js +63 -0
- package/package.json +20 -6
- package/templates/agent-kit/agent-kit.yaml +1 -1
- package/templates/agent-kit/instructions/AGENTKIT.md +25 -4
- package/templates/agent-kit/instructions/root.AGENTS.md +1 -1
- package/templates/agent-kit/skills/aifabrix-connected-system/SKILL.md +2 -1
- package/templates/agent-kit/skills/aifabrix-connected-system/references/delivery-gates.md +1 -1
- package/templates/agent-kit/skills/aifabrix-plan/SKILL.md +2 -1
- package/templates/agent-kit/skills/aifabrix-prove/SKILL.md +1 -0
- package/templates/agent-kit/skills/aifabrix-role-assistant/SKILL.md +1 -0
- package/templates/agent-kit/skills/shared/hosts.md +13 -26
- package/templates/agent-kit/skills/shared/login.md +16 -0
- package/templates/agent-kit/workspace/README.md +1 -1
- package/templates/applications/dataplane/application.yaml +1 -2
- package/templates/applications/dataplane/env.template +5 -5
- package/templates/applications/miso-controller/application.yaml +21 -2
- package/templates/applications/miso-controller/env.template +89 -17
- package/templates/applications/miso-controller/rbac.yaml +5 -0
|
@@ -43,12 +43,48 @@ parameters:
|
|
|
43
43
|
azure:
|
|
44
44
|
vaultSecretName: postgres-passwordKeyVault
|
|
45
45
|
notes: >-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
Local Docker Postgres admin password for up-infra. Azure application deployment does not
|
|
47
|
+
consume this name; use the system-scoped postgres-adminPassword entry for Azure.
|
|
48
|
+
|
|
49
|
+
- key: postgres-adminPassword
|
|
50
|
+
category: PostgreSQL
|
|
51
|
+
sensitive: true
|
|
52
|
+
valueSource: onboardingInput
|
|
53
|
+
requiredOnSystemOnboarding: true
|
|
54
|
+
scope: system
|
|
55
|
+
generator:
|
|
56
|
+
type: emptyString
|
|
57
|
+
ensureOn: [resolveApp]
|
|
58
|
+
azure:
|
|
59
|
+
vaultSecretName: postgres-adminPassword
|
|
60
|
+
legacyVaultSecretNames:
|
|
61
|
+
- '{serviceName}-postgres-admin-password'
|
|
62
|
+
notes: >-
|
|
63
|
+
Canonical Azure SDK PostgreSQL administrator password. The Marketplace alias
|
|
64
|
+
`{serviceName}-postgres-admin-password` is also accepted by the SDK, but Settings writes
|
|
65
|
+
this canonical name. Updating this stored value does not rotate the live PostgreSQL server.
|
|
66
|
+
|
|
67
|
+
- key: postgres-connectionString
|
|
68
|
+
category: PostgreSQL
|
|
69
|
+
sensitive: true
|
|
70
|
+
valueSource: providerOutput
|
|
71
|
+
requiredOnSystemOnboarding: false
|
|
72
|
+
scope: system
|
|
73
|
+
generator:
|
|
74
|
+
type: emptyString
|
|
75
|
+
ensureOn: [resolveApp]
|
|
76
|
+
azure:
|
|
77
|
+
vaultSecretName: postgres-connectionString
|
|
78
|
+
notes: >-
|
|
79
|
+
Azure SDK administrator connection string for the default postgres database. This contains
|
|
80
|
+
the administrator username and password; application runtime databases use separate users.
|
|
49
81
|
|
|
50
82
|
- key: redis-passwordKeyVault
|
|
51
|
-
|
|
83
|
+
category: Redis
|
|
84
|
+
sensitive: true
|
|
85
|
+
valueSource: optionalInput
|
|
86
|
+
requiredOnSystemOnboarding: false
|
|
87
|
+
scope: system
|
|
52
88
|
generator:
|
|
53
89
|
type: emptyAllowed
|
|
54
90
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -59,29 +95,151 @@ parameters:
|
|
|
59
95
|
Set a value in secrets when using authenticated Redis or Azure.
|
|
60
96
|
|
|
61
97
|
- key: redis-url
|
|
62
|
-
|
|
98
|
+
category: Redis
|
|
99
|
+
sensitive: true
|
|
100
|
+
valueSource: providerOutput
|
|
101
|
+
requiredOnSystemOnboarding: true
|
|
102
|
+
scope: system
|
|
63
103
|
generator:
|
|
64
104
|
type: literal
|
|
65
105
|
value: 'redis://${REDIS_HOST}:${REDIS_PORT}'
|
|
66
106
|
ensureOn: [upInfra, resolveApp]
|
|
67
107
|
azure:
|
|
68
|
-
notes:
|
|
108
|
+
notes: >-
|
|
109
|
+
Local up-infra resolves the REDIS_HOST/REDIS_PORT placeholders. Azure application deploy
|
|
110
|
+
must leave this key absent so the Azure SDK derives the rediss URL and credential.
|
|
111
|
+
|
|
112
|
+
- key: storage-keyKeyVault
|
|
113
|
+
category: Storage
|
|
114
|
+
sensitive: true
|
|
115
|
+
valueSource: providerOutput
|
|
116
|
+
requiredOnSystemOnboarding: false
|
|
117
|
+
scope: system
|
|
118
|
+
generator:
|
|
119
|
+
type: emptyString
|
|
120
|
+
ensureOn: [resolveApp]
|
|
121
|
+
azure:
|
|
122
|
+
vaultSecretName: storage-keyKeyVault
|
|
123
|
+
notes: Azure SDK-derived primary storage account key.
|
|
124
|
+
|
|
125
|
+
- key: storage-connectionStringKeyVault
|
|
126
|
+
category: Storage
|
|
127
|
+
sensitive: true
|
|
128
|
+
valueSource: providerOutput
|
|
129
|
+
requiredOnSystemOnboarding: false
|
|
130
|
+
scope: system
|
|
131
|
+
generator:
|
|
132
|
+
type: emptyString
|
|
133
|
+
ensureOn: [resolveApp]
|
|
134
|
+
azure:
|
|
135
|
+
vaultSecretName: storage-connectionStringKeyVault
|
|
136
|
+
notes: Azure SDK-derived storage account connection string.
|
|
137
|
+
|
|
138
|
+
- key: storage-account-key
|
|
139
|
+
category: Storage
|
|
140
|
+
sensitive: true
|
|
141
|
+
valueSource: providerOutput
|
|
142
|
+
requiredOnSystemOnboarding: false
|
|
143
|
+
scope: system
|
|
144
|
+
generator:
|
|
145
|
+
type: emptyString
|
|
146
|
+
ensureOn: [resolveApp]
|
|
147
|
+
azure:
|
|
148
|
+
vaultSecretName: storage-account-key
|
|
149
|
+
notes: Marketplace Bicep storage-account key name retained for installed-stack diagnostics.
|
|
150
|
+
|
|
151
|
+
- key: acr-server
|
|
152
|
+
category: Container Registry
|
|
153
|
+
sensitive: false
|
|
154
|
+
valueSource: providerOutput
|
|
155
|
+
requiredOnSystemOnboarding: false
|
|
156
|
+
scope: system
|
|
157
|
+
generator:
|
|
158
|
+
type: emptyString
|
|
159
|
+
ensureOn: [resolveApp]
|
|
160
|
+
azure:
|
|
161
|
+
vaultSecretName: acr-server
|
|
162
|
+
notes: Azure SDK-derived container registry login server.
|
|
163
|
+
|
|
164
|
+
- key: acr-username
|
|
165
|
+
category: Container Registry
|
|
166
|
+
sensitive: false
|
|
167
|
+
valueSource: providerOutput
|
|
168
|
+
requiredOnSystemOnboarding: false
|
|
169
|
+
scope: system
|
|
170
|
+
generator:
|
|
171
|
+
type: emptyString
|
|
172
|
+
ensureOn: [resolveApp]
|
|
173
|
+
azure:
|
|
174
|
+
vaultSecretName: acr-username
|
|
175
|
+
notes: Azure SDK-derived container registry username when password authentication is enabled.
|
|
176
|
+
|
|
177
|
+
- key: acr-passwordKeyVault
|
|
178
|
+
category: Container Registry
|
|
179
|
+
sensitive: true
|
|
180
|
+
valueSource: providerOutput
|
|
181
|
+
requiredOnSystemOnboarding: false
|
|
182
|
+
scope: system
|
|
183
|
+
generator:
|
|
184
|
+
type: emptyString
|
|
185
|
+
ensureOn: [resolveApp]
|
|
186
|
+
azure:
|
|
187
|
+
vaultSecretName: acr-passwordKeyVault
|
|
188
|
+
legacyVaultSecretNames:
|
|
189
|
+
- '{serviceName}-acr-registry-password'
|
|
190
|
+
notes: Azure SDK-derived container registry password when password authentication is enabled.
|
|
191
|
+
|
|
192
|
+
- key: frontdoor-url
|
|
193
|
+
category: Front Door
|
|
194
|
+
sensitive: false
|
|
195
|
+
valueSource: providerOutput
|
|
196
|
+
requiredOnSystemOnboarding: false
|
|
197
|
+
scope: system
|
|
198
|
+
generator:
|
|
199
|
+
type: emptyString
|
|
200
|
+
ensureOn: [resolveApp]
|
|
201
|
+
azure:
|
|
202
|
+
vaultSecretName: frontdoor-url
|
|
203
|
+
notes: Azure Front Door public URL when materialized by the environment deployment.
|
|
204
|
+
|
|
205
|
+
- key: frontdoor-host
|
|
206
|
+
category: Front Door
|
|
207
|
+
sensitive: false
|
|
208
|
+
valueSource: providerOutput
|
|
209
|
+
requiredOnSystemOnboarding: false
|
|
210
|
+
scope: system
|
|
211
|
+
generator:
|
|
212
|
+
type: emptyString
|
|
213
|
+
ensureOn: [resolveApp]
|
|
214
|
+
azure:
|
|
215
|
+
vaultSecretName: frontdoor-host
|
|
216
|
+
notes: Azure Front Door hostname when materialized by the environment deployment.
|
|
69
217
|
|
|
70
218
|
- key: keycloak-admin-passwordKeyVault
|
|
71
|
-
|
|
219
|
+
category: Keycloak
|
|
220
|
+
sensitive: true
|
|
221
|
+
valueSource: legacyMigration
|
|
222
|
+
requiredOnSystemOnboarding: true
|
|
223
|
+
scope: system
|
|
72
224
|
generator:
|
|
73
225
|
type: literal
|
|
74
226
|
value: '{{adminPassword}}'
|
|
75
227
|
ensureOn: [upInfra, resolveApp]
|
|
76
228
|
azure:
|
|
77
|
-
|
|
229
|
+
vaultSecretName: keycloak-admin-passwordKeyVault
|
|
230
|
+
legacyVaultSecretNames:
|
|
231
|
+
- '{serviceName}-keycloak-admin-password'
|
|
78
232
|
notes: >-
|
|
79
233
|
Local kv:// and secrets.local.yaml use the *KeyVault suffix. Miso install Bicep references
|
|
80
234
|
SecretName `${prefix}-keycloak-admin-password` (no KeyVault suffix) in
|
|
81
235
|
infrastructure/bicep/modules/05_miso-webapp.bicep and 07_keycloak-webapp.bicep.
|
|
82
236
|
|
|
83
237
|
- key: keycloak-web-server-url
|
|
84
|
-
|
|
238
|
+
category: Keycloak
|
|
239
|
+
sensitive: false
|
|
240
|
+
valueSource: providerOutput
|
|
241
|
+
requiredOnSystemOnboarding: true
|
|
242
|
+
scope: system
|
|
85
243
|
generator:
|
|
86
244
|
type: emptyString
|
|
87
245
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -92,7 +250,11 @@ parameters:
|
|
|
92
250
|
Shipped miso-controller/dataplane env templates use url://keycloak-public instead of this kv:// for local resolve.
|
|
93
251
|
|
|
94
252
|
- key: keycloak-internal-server-url
|
|
95
|
-
|
|
253
|
+
category: Keycloak
|
|
254
|
+
sensitive: false
|
|
255
|
+
valueSource: providerOutput
|
|
256
|
+
requiredOnSystemOnboarding: true
|
|
257
|
+
scope: system
|
|
96
258
|
generator:
|
|
97
259
|
type: emptyString
|
|
98
260
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -102,9 +264,67 @@ parameters:
|
|
|
102
264
|
Bicep (05_miso-webapp.bicep) uses unprefixed SecretName `keycloak-internal-server-url`.
|
|
103
265
|
Shipped templates use url://keycloak-internal for local resolve.
|
|
104
266
|
|
|
267
|
+
- key: keycloak-vdir-public
|
|
268
|
+
category: Keycloak
|
|
269
|
+
sensitive: false
|
|
270
|
+
valueSource: providerOutput
|
|
271
|
+
requiredOnSystemOnboarding: false
|
|
272
|
+
scope: system
|
|
273
|
+
generator:
|
|
274
|
+
type: emptyString
|
|
275
|
+
ensureOn: [resolveApp]
|
|
276
|
+
azure:
|
|
277
|
+
vaultSecretName: keycloak-vdir-public
|
|
278
|
+
notes: Public Keycloak virtual-directory path produced by the platform Bicep deployment.
|
|
279
|
+
|
|
280
|
+
- key: miso-controller-web-server-url
|
|
281
|
+
category: Platform URLs
|
|
282
|
+
sensitive: false
|
|
283
|
+
valueSource: providerOutput
|
|
284
|
+
requiredOnSystemOnboarding: true
|
|
285
|
+
scope: system
|
|
286
|
+
generator:
|
|
287
|
+
type: emptyString
|
|
288
|
+
ensureOn: [resolveApp]
|
|
289
|
+
azure:
|
|
290
|
+
vaultSecretName: miso-controller-web-server-url
|
|
291
|
+
notes: Public Miso Controller URL produced by the platform Bicep deployment.
|
|
292
|
+
|
|
293
|
+
- key: miso-controller-internal-server-url
|
|
294
|
+
category: Platform URLs
|
|
295
|
+
sensitive: false
|
|
296
|
+
valueSource: providerOutput
|
|
297
|
+
requiredOnSystemOnboarding: true
|
|
298
|
+
scope: system
|
|
299
|
+
generator:
|
|
300
|
+
type: emptyString
|
|
301
|
+
ensureOn: [resolveApp]
|
|
302
|
+
azure:
|
|
303
|
+
vaultSecretName: miso-controller-internal-server-url
|
|
304
|
+
legacyVaultSecretNames:
|
|
305
|
+
- miso-controller-internal-server-urlKeyVault
|
|
306
|
+
notes: Internal Miso Controller URL under the direct manifest name.
|
|
307
|
+
|
|
308
|
+
- key: miso-controller-vdir-public
|
|
309
|
+
category: Platform URLs
|
|
310
|
+
sensitive: false
|
|
311
|
+
valueSource: providerOutput
|
|
312
|
+
requiredOnSystemOnboarding: true
|
|
313
|
+
scope: system
|
|
314
|
+
generator:
|
|
315
|
+
type: emptyString
|
|
316
|
+
ensureOn: [resolveApp]
|
|
317
|
+
azure:
|
|
318
|
+
vaultSecretName: miso-controller-vdir-public
|
|
319
|
+
notes: Public Miso Controller virtual-directory path produced by the platform Bicep deployment.
|
|
320
|
+
|
|
105
321
|
# When env.template uses kv://keycloak-client-idKeyVault (multi-realm / dev naming).
|
|
106
322
|
- key: keycloak-client-idKeyVault
|
|
107
|
-
|
|
323
|
+
category: Keycloak
|
|
324
|
+
sensitive: false
|
|
325
|
+
valueSource: generated
|
|
326
|
+
requiredOnSystemOnboarding: true
|
|
327
|
+
scope: system
|
|
108
328
|
generator:
|
|
109
329
|
type: literal
|
|
110
330
|
value: 'miso-controller-miso-keycloak'
|
|
@@ -114,7 +334,11 @@ parameters:
|
|
|
114
334
|
Default OAuth client id for controller ↔ Keycloak when resolved from secrets; override per environment.
|
|
115
335
|
|
|
116
336
|
- key: keycloak-client-secretKeyVault
|
|
117
|
-
|
|
337
|
+
category: Keycloak
|
|
338
|
+
sensitive: true
|
|
339
|
+
valueSource: generated
|
|
340
|
+
requiredOnSystemOnboarding: true
|
|
341
|
+
scope: system
|
|
118
342
|
generator:
|
|
119
343
|
type: randomBytes32
|
|
120
344
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -125,7 +349,11 @@ parameters:
|
|
|
125
349
|
# Miso-controller Entra ID onboarding (vendor multi-tenant app). Empty client/callback values
|
|
126
350
|
# allow local resolve and start-dev; set real values before Entra admin-consent flows.
|
|
127
351
|
- key: entra-callback-state-secret
|
|
128
|
-
|
|
352
|
+
category: Microsoft Entra ID
|
|
353
|
+
sensitive: true
|
|
354
|
+
valueSource: generated
|
|
355
|
+
requiredOnSystemOnboarding: true
|
|
356
|
+
scope: system
|
|
129
357
|
generator:
|
|
130
358
|
type: randomBytes32
|
|
131
359
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -135,7 +363,11 @@ parameters:
|
|
|
135
363
|
maps to ENTRA_CALLBACK_STATE_SECRET in miso-controller env.template.
|
|
136
364
|
|
|
137
365
|
- key: entra-callback-uri
|
|
138
|
-
|
|
366
|
+
category: Microsoft Entra ID
|
|
367
|
+
sensitive: false
|
|
368
|
+
valueSource: optionalInput
|
|
369
|
+
requiredOnSystemOnboarding: false
|
|
370
|
+
scope: system
|
|
139
371
|
generator:
|
|
140
372
|
type: emptyString
|
|
141
373
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -145,7 +377,11 @@ parameters:
|
|
|
145
377
|
empty locally until Mori URL is configured.
|
|
146
378
|
|
|
147
379
|
- key: entra-client-idKeyVault
|
|
148
|
-
|
|
380
|
+
category: Microsoft Entra ID
|
|
381
|
+
sensitive: false
|
|
382
|
+
valueSource: optionalInput
|
|
383
|
+
requiredOnSystemOnboarding: false
|
|
384
|
+
scope: system
|
|
149
385
|
generator:
|
|
150
386
|
type: emptyString
|
|
151
387
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -154,18 +390,28 @@ parameters:
|
|
|
154
390
|
Vendor Entra app client id (ENTRA_ID_CLIENT_ID); empty for local dev without Entra flows.
|
|
155
391
|
|
|
156
392
|
- key: entra-client-secretKeyVault
|
|
157
|
-
|
|
393
|
+
category: Microsoft Entra ID
|
|
394
|
+
sensitive: true
|
|
395
|
+
valueSource: optionalInput
|
|
396
|
+
requiredOnSystemOnboarding: false
|
|
397
|
+
scope: system
|
|
158
398
|
generator:
|
|
159
399
|
type: emptyString
|
|
160
400
|
ensureOn: [upInfra, resolveApp]
|
|
161
401
|
azure:
|
|
402
|
+
legacyVaultSecretNames:
|
|
403
|
+
- entra-vendor-client-secret
|
|
162
404
|
notes: >-
|
|
163
405
|
Vendor Entra app client secret (ENTRA_ID_CLIENT_SECRET); empty for local dev without Entra flows.
|
|
164
406
|
|
|
165
407
|
# Keycloak events: webhook signature secret used by miso-controller (KEYCLOAK_EVENTS_SECRET).
|
|
166
408
|
# This must exist on first boot because up-platform runs containers from templates (no prior resolve).
|
|
167
409
|
- key: keycloak-events-secretKeyVault
|
|
168
|
-
|
|
410
|
+
category: Keycloak
|
|
411
|
+
sensitive: true
|
|
412
|
+
valueSource: generated
|
|
413
|
+
requiredOnSystemOnboarding: true
|
|
414
|
+
scope: system
|
|
169
415
|
generator:
|
|
170
416
|
type: randomBytes32
|
|
171
417
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -174,7 +420,11 @@ parameters:
|
|
|
174
420
|
Shared secret for Keycloak event signature verification. Generated on first ensure for local bootstrap.
|
|
175
421
|
|
|
176
422
|
- key: keycloak-default-passwordKeyVault
|
|
177
|
-
|
|
423
|
+
category: Keycloak
|
|
424
|
+
sensitive: true
|
|
425
|
+
valueSource: generated
|
|
426
|
+
requiredOnSystemOnboarding: true
|
|
427
|
+
scope: system
|
|
178
428
|
generator:
|
|
179
429
|
type: literal
|
|
180
430
|
value: '{{userPassword}}'
|
|
@@ -184,29 +434,36 @@ parameters:
|
|
|
184
434
|
Keycloak default-user password for local/bootstrap; explicit literal so it is not randomBytes32.
|
|
185
435
|
|
|
186
436
|
- key: miso-controller-secrets-encryptionKeyVault
|
|
437
|
+
ownerAppKey: miso-controller
|
|
187
438
|
scope: app
|
|
188
439
|
generator:
|
|
189
440
|
type: randomBytes32
|
|
190
441
|
ensureOn: [upInfra, resolveApp]
|
|
191
442
|
azure:
|
|
192
|
-
|
|
443
|
+
vaultSecretName: miso-controller-secrets-encryptionKeyVault
|
|
444
|
+
legacyVaultSecretNames:
|
|
445
|
+
- '{serviceName}-encryption-keyKeyVault'
|
|
193
446
|
notes: >-
|
|
194
447
|
32-byte secret as base64; generated on first ensure. Rotate in production.
|
|
195
448
|
|
|
196
449
|
# Local kv:// name matches miso-controller env.template (JWT_SECRET); not the generic {appKey}-secrets-jwtKeyVault Azure name.
|
|
197
450
|
- key: miso-controller-jwt-secretKeyVault
|
|
451
|
+
ownerAppKey: miso-controller
|
|
198
452
|
scope: app
|
|
199
453
|
generator:
|
|
200
454
|
type: randomBytes32
|
|
201
455
|
ensureOn: [upInfra, resolveApp]
|
|
202
456
|
azure:
|
|
203
|
-
|
|
457
|
+
vaultSecretName: miso-controller-jwt-secretKeyVault
|
|
458
|
+
legacyVaultSecretNames:
|
|
459
|
+
- '{serviceName}-secrets-jwtKeyVault'
|
|
204
460
|
notes: >-
|
|
205
461
|
JWT signing secret; generated on first ensure. Azure Bicep typically uses `${prefix}-secrets-jwtKeyVault`.
|
|
206
462
|
|
|
207
463
|
# LICENSE_JWT=kv://miso-controller-jwt-licenseKeyVault — local default skips Mori/JWT license checks.
|
|
208
464
|
# Controller ignores DEVELOPMENT when DEPLOYMENT=azure.
|
|
209
465
|
- key: miso-controller-jwt-licenseKeyVault
|
|
466
|
+
ownerAppKey: miso-controller
|
|
210
467
|
scope: app
|
|
211
468
|
generator:
|
|
212
469
|
type: literal
|
|
@@ -219,6 +476,7 @@ parameters:
|
|
|
219
476
|
|
|
220
477
|
# Exact entry so this is not caught by *KeyVault → randomBytes32 (invalid email).
|
|
221
478
|
- key: miso-controller-admin-emailKeyVault
|
|
479
|
+
ownerAppKey: miso-controller
|
|
222
480
|
scope: app
|
|
223
481
|
generator:
|
|
224
482
|
type: literal
|
|
@@ -229,19 +487,26 @@ parameters:
|
|
|
229
487
|
|
|
230
488
|
# Local first-time install / onboarding default (change in production).
|
|
231
489
|
- key: miso-controller-admin-passwordKeyVault
|
|
490
|
+
ownerAppKey: miso-controller
|
|
232
491
|
scope: app
|
|
233
492
|
generator:
|
|
234
493
|
type: literal
|
|
235
494
|
value: '{{adminPassword}}'
|
|
236
495
|
ensureOn: [upInfra, resolveApp]
|
|
237
496
|
azure:
|
|
497
|
+
legacyVaultSecretNames:
|
|
498
|
+
- '{serviceName}-onboarding-admin-password'
|
|
238
499
|
notes: >-
|
|
239
500
|
Matches controller onboarding default; override in secrets for non-dev.
|
|
240
501
|
Same secret backs ONBOARDING_ADMIN_PASSWORD and MISO_ADMIN_PASSWORD in env.template.
|
|
241
502
|
|
|
242
503
|
# DEPLOYMENT=azure only; local/docker leave empty (do not generate random placeholders).
|
|
243
504
|
- key: azure-subscription-idKeyVault
|
|
244
|
-
|
|
505
|
+
category: Azure
|
|
506
|
+
sensitive: false
|
|
507
|
+
valueSource: onboardingInput
|
|
508
|
+
requiredOnSystemOnboarding: false
|
|
509
|
+
scope: system
|
|
245
510
|
generator:
|
|
246
511
|
type: emptyString
|
|
247
512
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -249,7 +514,11 @@ parameters:
|
|
|
249
514
|
notes: Production Key Vault / app settings; empty locally.
|
|
250
515
|
|
|
251
516
|
- key: azure-tenant-idKeyVault
|
|
252
|
-
|
|
517
|
+
category: Azure
|
|
518
|
+
sensitive: false
|
|
519
|
+
valueSource: onboardingInput
|
|
520
|
+
requiredOnSystemOnboarding: false
|
|
521
|
+
scope: system
|
|
253
522
|
generator:
|
|
254
523
|
type: emptyString
|
|
255
524
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -257,7 +526,11 @@ parameters:
|
|
|
257
526
|
notes: Production only; empty locally.
|
|
258
527
|
|
|
259
528
|
- key: azure-service-nameKeyVault
|
|
260
|
-
|
|
529
|
+
category: Azure
|
|
530
|
+
sensitive: false
|
|
531
|
+
valueSource: onboardingInput
|
|
532
|
+
requiredOnSystemOnboarding: false
|
|
533
|
+
scope: system
|
|
261
534
|
generator:
|
|
262
535
|
type: emptyString
|
|
263
536
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -270,7 +543,7 @@ parameters:
|
|
|
270
543
|
type: emptyString
|
|
271
544
|
ensureOn: [upInfra, resolveApp]
|
|
272
545
|
azure:
|
|
273
|
-
notes:
|
|
546
|
+
notes: Optional service-principal override for local/tooling use; Azure App Service uses managed identity.
|
|
274
547
|
|
|
275
548
|
- key: azure-client-secretKeyVault
|
|
276
549
|
scope: infra
|
|
@@ -278,7 +551,7 @@ parameters:
|
|
|
278
551
|
type: emptyString
|
|
279
552
|
ensureOn: [upInfra, resolveApp]
|
|
280
553
|
azure:
|
|
281
|
-
notes:
|
|
554
|
+
notes: Optional service-principal override for local/tooling use; Azure App Service uses managed identity.
|
|
282
555
|
|
|
283
556
|
# Optional private npm; local scaffold leaves empty.
|
|
284
557
|
- key: BASH_NPM_TOKEN
|
|
@@ -300,16 +573,20 @@ parameters:
|
|
|
300
573
|
|
|
301
574
|
# Default client id for controller app in local multi-service layout; override after register if needed.
|
|
302
575
|
- key: miso-controller-client-idKeyVault
|
|
576
|
+
ownerAppKey: miso-controller
|
|
303
577
|
scope: app
|
|
304
578
|
generator:
|
|
305
579
|
type: literal
|
|
306
580
|
value: 'miso-controller-miso-miso-controller'
|
|
307
581
|
ensureOn: [upInfra, resolveApp]
|
|
308
582
|
azure:
|
|
583
|
+
legacyVaultSecretNames:
|
|
584
|
+
- '{serviceName}-miso-clientIdKeyVault'
|
|
309
585
|
notes: >-
|
|
310
586
|
Per-app OAuth client id from controller registration; literal default matches local Keycloak client naming.
|
|
311
587
|
|
|
312
588
|
- key: miso-controller-client-secretKeyVault
|
|
589
|
+
ownerAppKey: miso-controller
|
|
313
590
|
scope: app
|
|
314
591
|
generator:
|
|
315
592
|
type: randomBytes32
|
|
@@ -321,6 +598,7 @@ parameters:
|
|
|
321
598
|
|
|
322
599
|
# Dataplane ↔ controller OAuth (builder/dataplane env.template MISO_CLIENTID / MISO_CLIENTSECRET).
|
|
323
600
|
- key: dataplane-client-idKeyVault
|
|
601
|
+
ownerAppKey: dataplane
|
|
324
602
|
scope: app
|
|
325
603
|
generator:
|
|
326
604
|
type: literal
|
|
@@ -332,6 +610,7 @@ parameters:
|
|
|
332
610
|
(override for environments such as miso-controller-dev-dataplane).
|
|
333
611
|
|
|
334
612
|
- key: dataplane-client-secretKeyVault
|
|
613
|
+
ownerAppKey: dataplane
|
|
335
614
|
scope: app
|
|
336
615
|
generator:
|
|
337
616
|
type: randomBytes32
|
|
@@ -343,7 +622,11 @@ parameters:
|
|
|
343
622
|
# Mori / telemetry: optional locally (LICENSE_JWT via miso-controller-jwt-licenseKeyVault=DEVELOPMENT skips Mori).
|
|
344
623
|
# MORI_AUTH_METHOD=kv://mori-controller-auth-methodKeyVault — local default apiKey.
|
|
345
624
|
- key: mori-controller-auth-methodKeyVault
|
|
346
|
-
|
|
625
|
+
category: Mori
|
|
626
|
+
sensitive: false
|
|
627
|
+
valueSource: optionalInput
|
|
628
|
+
requiredOnSystemOnboarding: false
|
|
629
|
+
scope: system
|
|
347
630
|
generator:
|
|
348
631
|
type: literal
|
|
349
632
|
value: 'apiKey'
|
|
@@ -353,7 +636,11 @@ parameters:
|
|
|
353
636
|
Local/dev default apiKey. Override when using Mori basic auth or other methods.
|
|
354
637
|
|
|
355
638
|
- key: mori-controller-api-keyKeyVault
|
|
356
|
-
|
|
639
|
+
category: Mori
|
|
640
|
+
sensitive: true
|
|
641
|
+
valueSource: optionalInput
|
|
642
|
+
requiredOnSystemOnboarding: false
|
|
643
|
+
scope: system
|
|
357
644
|
generator:
|
|
358
645
|
type: emptyString
|
|
359
646
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -361,7 +648,11 @@ parameters:
|
|
|
361
648
|
notes: Empty locally; set when calling Mori with API key auth.
|
|
362
649
|
|
|
363
650
|
- key: mori-controller-basic-usernameKeyVault
|
|
364
|
-
|
|
651
|
+
category: Mori
|
|
652
|
+
sensitive: false
|
|
653
|
+
valueSource: optionalInput
|
|
654
|
+
requiredOnSystemOnboarding: false
|
|
655
|
+
scope: system
|
|
365
656
|
generator:
|
|
366
657
|
type: emptyString
|
|
367
658
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -369,7 +660,11 @@ parameters:
|
|
|
369
660
|
notes: Empty locally; Mori basic auth optional.
|
|
370
661
|
|
|
371
662
|
- key: mori-controller-basic-passwordKeyVault
|
|
372
|
-
|
|
663
|
+
category: Mori
|
|
664
|
+
sensitive: true
|
|
665
|
+
valueSource: optionalInput
|
|
666
|
+
requiredOnSystemOnboarding: false
|
|
667
|
+
scope: system
|
|
373
668
|
generator:
|
|
374
669
|
type: emptyString
|
|
375
670
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -377,7 +672,11 @@ parameters:
|
|
|
377
672
|
notes: Empty locally; Mori basic auth optional.
|
|
378
673
|
|
|
379
674
|
- key: appinsights-connectionStringKeyVault
|
|
380
|
-
|
|
675
|
+
category: Observability
|
|
676
|
+
sensitive: true
|
|
677
|
+
valueSource: providerOutput
|
|
678
|
+
requiredOnSystemOnboarding: false
|
|
679
|
+
scope: system
|
|
381
680
|
generator:
|
|
382
681
|
type: emptyString
|
|
383
682
|
ensureOn: [upInfra, resolveApp]
|
|
@@ -386,14 +685,70 @@ parameters:
|
|
|
386
685
|
notes: >-
|
|
387
686
|
Aligns with keyvault.md / Azure naming (appinsights.connectionStringKeyVault). Empty locally until set from Azure Portal.
|
|
388
687
|
|
|
688
|
+
- key: appinsights-keyKeyVault
|
|
689
|
+
category: Observability
|
|
690
|
+
sensitive: true
|
|
691
|
+
valueSource: providerOutput
|
|
692
|
+
requiredOnSystemOnboarding: false
|
|
693
|
+
scope: system
|
|
694
|
+
generator:
|
|
695
|
+
type: emptyString
|
|
696
|
+
ensureOn: [resolveApp]
|
|
697
|
+
azure:
|
|
698
|
+
vaultSecretName: appinsights-keyKeyVault
|
|
699
|
+
notes: Azure SDK-derived Application Insights instrumentation key.
|
|
700
|
+
|
|
701
|
+
- key: loganalytics-workspace-id
|
|
702
|
+
category: Observability
|
|
703
|
+
sensitive: false
|
|
704
|
+
valueSource: providerOutput
|
|
705
|
+
requiredOnSystemOnboarding: false
|
|
706
|
+
scope: system
|
|
707
|
+
generator:
|
|
708
|
+
type: emptyString
|
|
709
|
+
ensureOn: [resolveApp]
|
|
710
|
+
azure:
|
|
711
|
+
vaultSecretName: loganalytics-workspace-id
|
|
712
|
+
notes: Azure SDK-derived Log Analytics workspace customer identifier.
|
|
713
|
+
|
|
714
|
+
- key: azureopenai-endpoint
|
|
715
|
+
category: Azure OpenAI
|
|
716
|
+
sensitive: false
|
|
717
|
+
valueSource: optionalInput
|
|
718
|
+
requiredOnSystemOnboarding: false
|
|
719
|
+
scope: system
|
|
720
|
+
generator:
|
|
721
|
+
type: emptyString
|
|
722
|
+
ensureOn: [resolveApp]
|
|
723
|
+
azure:
|
|
724
|
+
vaultSecretName: azureopenai-endpoint
|
|
725
|
+
notes: Azure OpenAI endpoint produced by the environment infrastructure deployment.
|
|
726
|
+
|
|
727
|
+
- key: azureopenai-apikey
|
|
728
|
+
category: Azure OpenAI
|
|
729
|
+
sensitive: true
|
|
730
|
+
valueSource: optionalInput
|
|
731
|
+
requiredOnSystemOnboarding: false
|
|
732
|
+
scope: system
|
|
733
|
+
generator:
|
|
734
|
+
type: emptyString
|
|
735
|
+
ensureOn: [resolveApp]
|
|
736
|
+
azure:
|
|
737
|
+
vaultSecretName: azureopenai-apikey
|
|
738
|
+
notes: Azure OpenAI API key produced by the environment infrastructure deployment.
|
|
739
|
+
|
|
389
740
|
# Dataplane builder/dataplane env.template (AI/LLM); optional until OpenAI or Azure OpenAI is configured.
|
|
390
741
|
- key: secrets-openaiApiKeyVault
|
|
391
|
-
|
|
742
|
+
category: OpenAI
|
|
743
|
+
sensitive: true
|
|
744
|
+
valueSource: optionalInput
|
|
745
|
+
requiredOnSystemOnboarding: false
|
|
746
|
+
scope: system
|
|
392
747
|
generator:
|
|
393
748
|
type: emptyString
|
|
394
|
-
ensureOn: [
|
|
749
|
+
ensureOn: [resolveApp]
|
|
395
750
|
azure:
|
|
396
|
-
notes:
|
|
751
|
+
notes: Optional shared OpenAI API key; empty until supplied and never auto-generated.
|
|
397
752
|
|
|
398
753
|
- key: azure-openaiapi-urlKeyVault
|
|
399
754
|
scope: app
|
|
@@ -411,6 +766,31 @@ parameters:
|
|
|
411
766
|
azure:
|
|
412
767
|
notes: Empty until set; user-supplied Azure OpenAI API key (not auto-generated).
|
|
413
768
|
|
|
769
|
+
# Dataplane RS256 signing identity. The two rows are generated as one linked pair.
|
|
770
|
+
- key: secrets-certificatePrivateKeyVault
|
|
771
|
+
ownerAppKey: dataplane
|
|
772
|
+
scope: app
|
|
773
|
+
generator:
|
|
774
|
+
type: rsaKeyPair
|
|
775
|
+
pairId: dataplane-signing
|
|
776
|
+
part: private
|
|
777
|
+
ensureOn: [resolveApp]
|
|
778
|
+
azure:
|
|
779
|
+
vaultSecretName: secrets-certificatePrivateKeyVault
|
|
780
|
+
notes: PKCS#8 PEM private key generated with the matching public key.
|
|
781
|
+
|
|
782
|
+
- key: secrets-certificatePublicKeyVault
|
|
783
|
+
ownerAppKey: dataplane
|
|
784
|
+
scope: app
|
|
785
|
+
generator:
|
|
786
|
+
type: rsaKeyPair
|
|
787
|
+
pairId: dataplane-signing
|
|
788
|
+
part: public
|
|
789
|
+
ensureOn: [resolveApp]
|
|
790
|
+
azure:
|
|
791
|
+
vaultSecretName: secrets-certificatePublicKeyVault
|
|
792
|
+
notes: SPKI PEM public key derived from the linked private key.
|
|
793
|
+
|
|
414
794
|
# Legacy unprefixed name (scaffold / old env.template); prefer *KeyVault suffix or {appKey}-secrets-apiKeyVault (keyvault.md).
|
|
415
795
|
- key: api-key
|
|
416
796
|
scope: app
|
|
@@ -423,13 +803,26 @@ parameters:
|
|
|
423
803
|
|
|
424
804
|
# Legacy unprefixed name; prefer kv://{appKey}-secrets-apiKeyVault in env.template (keyvault.md secrets.apiKeyVault).
|
|
425
805
|
- key: miso-controller-secrets-apiKeyVault
|
|
806
|
+
scope: infra
|
|
807
|
+
generator:
|
|
808
|
+
type: emptyAllowed
|
|
809
|
+
ensureOn: [upInfra]
|
|
810
|
+
azure:
|
|
811
|
+
notes: >-
|
|
812
|
+
Optional local testing/development bearer bypass. A supplied local value is resolved; when absent,
|
|
813
|
+
local and Azure application deployment resolve it as empty and do not fail.
|
|
814
|
+
|
|
815
|
+
- key: mori-callback-api-keyKeyVault
|
|
816
|
+
ownerAppKey: miso-controller
|
|
426
817
|
scope: app
|
|
427
818
|
generator:
|
|
428
819
|
type: randomBytes32
|
|
429
|
-
ensureOn: [
|
|
820
|
+
ensureOn: [resolveApp]
|
|
430
821
|
azure:
|
|
431
|
-
|
|
432
|
-
|
|
822
|
+
vaultSecretName: mori-callback-api-keyKeyVault
|
|
823
|
+
legacyVaultSecretNames:
|
|
824
|
+
- marketplace-mori-callback-api-key
|
|
825
|
+
notes: Miso Controller callback credential; generated only when its resolved manifest requires it.
|
|
433
826
|
|
|
434
827
|
# App semver when env.template / conversion yields kv://version (local secrets backfill).
|
|
435
828
|
- key: version
|
|
@@ -442,15 +835,57 @@ parameters:
|
|
|
442
835
|
notes: >-
|
|
443
836
|
Default application version for kv://version; override in secrets when needed.
|
|
444
837
|
|
|
445
|
-
#
|
|
838
|
+
# Exact Miso Controller rows retain Marketplace infrastructure-name aliases.
|
|
839
|
+
- key: databases-miso-controller-0-urlKeyVault
|
|
840
|
+
ownerAppKey: miso-controller
|
|
841
|
+
scope: app
|
|
842
|
+
generator:
|
|
843
|
+
type: databaseUrl
|
|
844
|
+
ensureOn: [upInfra, resolveApp]
|
|
845
|
+
azure:
|
|
846
|
+
vaultSecretName: databases-miso-controller-0-urlKeyVault
|
|
847
|
+
legacyVaultSecretNames:
|
|
848
|
+
- '{serviceName}-databases-0-urlKeyVault'
|
|
849
|
+
|
|
850
|
+
- key: databases-miso-controller-0-passwordKeyVault
|
|
851
|
+
ownerAppKey: miso-controller
|
|
852
|
+
scope: app
|
|
853
|
+
generator:
|
|
854
|
+
type: databasePassword
|
|
855
|
+
ensureOn: [upInfra, resolveApp]
|
|
856
|
+
azure:
|
|
857
|
+
vaultSecretName: databases-miso-controller-0-passwordKeyVault
|
|
858
|
+
|
|
859
|
+
- key: databases-miso-controller-1-urlKeyVault
|
|
860
|
+
ownerAppKey: miso-controller
|
|
861
|
+
scope: app
|
|
862
|
+
generator:
|
|
863
|
+
type: databaseUrl
|
|
864
|
+
ensureOn: [upInfra, resolveApp]
|
|
865
|
+
azure:
|
|
866
|
+
vaultSecretName: databases-miso-controller-1-urlKeyVault
|
|
867
|
+
legacyVaultSecretNames:
|
|
868
|
+
- '{serviceName}-databases-1-urlKeyVault'
|
|
869
|
+
|
|
870
|
+
- key: databases-miso-controller-1-passwordKeyVault
|
|
871
|
+
ownerAppKey: miso-controller
|
|
872
|
+
scope: app
|
|
873
|
+
generator:
|
|
874
|
+
type: databasePassword
|
|
875
|
+
ensureOn: [upInfra, resolveApp]
|
|
876
|
+
azure:
|
|
877
|
+
vaultSecretName: databases-miso-controller-1-passwordKeyVault
|
|
878
|
+
|
|
879
|
+
# Per-index database secrets. Index must match requires.databases order in application.yaml.
|
|
446
880
|
- keyPattern: '^databases-[a-z0-9-]+-\d+-urlKeyVault$'
|
|
447
881
|
scope: app
|
|
448
882
|
generator:
|
|
449
883
|
type: databaseUrl
|
|
450
884
|
ensureOn: [upInfra, resolveApp]
|
|
451
885
|
azure:
|
|
452
|
-
|
|
453
|
-
|
|
886
|
+
legacyVaultSecretNames:
|
|
887
|
+
- '{appKey}-databases-{index}-urlKeyVault'
|
|
888
|
+
notes: The direct manifest key is canonical; the app-prefixed form is migration-only.
|
|
454
889
|
|
|
455
890
|
- keyPattern: '^databases-[a-z0-9-]+-\d+-passwordKeyVault$'
|
|
456
891
|
scope: app
|
|
@@ -458,7 +893,8 @@ parameters:
|
|
|
458
893
|
type: databasePassword
|
|
459
894
|
ensureOn: [upInfra, resolveApp]
|
|
460
895
|
azure:
|
|
461
|
-
|
|
896
|
+
legacyVaultSecretNames:
|
|
897
|
+
- '{appKey}-databases-{index}-passwordKeyVault'
|
|
462
898
|
|
|
463
899
|
# Keycloak and other *-url keys (non-database).
|
|
464
900
|
- keyPattern: '^keycloak-.+-url$'
|