@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
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
# Environment Variables Template
|
|
2
2
|
# Use kv:// references for secrets (resolved from secrets.local.yaml)
|
|
3
3
|
# Use ${VAR} for environment-specific values
|
|
4
|
+
#
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# HOW THIS FILE IS ORGANIZED (plan 220.0)
|
|
7
|
+
# =============================================================================
|
|
8
|
+
# One env.template, three documentation blocks. Every variable below is tagged:
|
|
9
|
+
#
|
|
10
|
+
# [always] applies to both hosted onboarding modes and local dev
|
|
11
|
+
# [saasDirect] eSystems-hosted SaaS activation (four-step wizard)
|
|
12
|
+
# [customerOwned] Azure-in-tenant activation (existing TA wizard)
|
|
13
|
+
#
|
|
14
|
+
# ONBOARDING_MODE selects the onboarding step list. It is orthogonal to DEPLOYMENT,
|
|
15
|
+
# which selects Azure SDK vs local execution. There is NO fifth DEPLOYMENT value:
|
|
16
|
+
# eSystems-hosted SaaS still runs DEPLOYMENT=azure. See the DEPLOYMENT TYPE and
|
|
17
|
+
# ONBOARDING MODE sections below.
|
|
4
18
|
|
|
5
19
|
|
|
6
20
|
# =============================================================================
|
|
7
|
-
# FIRST-TIME ONBOARDING CONFIGURATION
|
|
21
|
+
# FIRST-TIME ONBOARDING CONFIGURATION — [always]
|
|
8
22
|
# =============================================================================
|
|
9
23
|
#
|
|
10
24
|
# Onboarding runs automatically when the database has no controller row (empty DB).
|
|
@@ -45,17 +59,21 @@ ONBOARDING_ADMIN_PASSWORD=kv://miso-controller-admin-passwordKeyVault
|
|
|
45
59
|
# Optional admin email for onboarding (default: admin@aifabrix.ai)
|
|
46
60
|
ONBOARDING_ADMIN_EMAIL=kv://miso-controller-admin-emailKeyVault
|
|
47
61
|
|
|
48
|
-
# Create development environment during onboarding (default: false)
|
|
62
|
+
# [customerOwned] Create development environment during onboarding (default: false)
|
|
49
63
|
# Full platform: create miso, dev, tst, and pro during onboarding (default: false)
|
|
50
64
|
# When true, supersedes ONBOARDING_CREATE_DEV_ENV for which extra environments are created
|
|
65
|
+
# [saasDirect] Keep false in the customer container — extra environments belong to the
|
|
66
|
+
# eSystems deploy path, not the customer wizard.
|
|
51
67
|
ONBOARDING_FULL_PLATFORM=false
|
|
52
68
|
|
|
53
|
-
# When true, run Azure env deploy for onboarding envs (SDK modules). Default false —
|
|
69
|
+
# [customerOwned] When true, run Azure env deploy for onboarding envs (SDK modules). Default false —
|
|
54
70
|
# Marketplace already provisions infra; TA owns customer env deploy.
|
|
71
|
+
# [saasDirect] Keep false: eSystems already deployed the required runtime services.
|
|
55
72
|
ONBOARDING_CREATE_MISO_ENV=false
|
|
56
73
|
|
|
57
|
-
# Set to true to create both miso and dev environments during onboarding
|
|
74
|
+
# [customerOwned] Set to true to create both miso and dev environments during onboarding
|
|
58
75
|
# When false (default), only the miso environment is created (ignored when ONBOARDING_FULL_PLATFORM=true)
|
|
76
|
+
# [saasDirect] Keep false in the customer container.
|
|
59
77
|
ONBOARDING_CREATE_DEV_ENV=true
|
|
60
78
|
|
|
61
79
|
# =============================================================================
|
|
@@ -148,8 +166,19 @@ KEYCLOAK_DEFAULT_PASSWORD=kv://keycloak-default-passwordKeyVault
|
|
|
148
166
|
# Password setup for new local users (plan 209.0)
|
|
149
167
|
# email = send invitation email so the user sets their own password (default)
|
|
150
168
|
# admin-reveal = show a one-time temporary password to the admin (labs / no mail)
|
|
169
|
+
# [saasDirect] MUST be `email` — the customer activates its own administrator account from the
|
|
170
|
+
# Keycloak UPDATE_PASSWORD invitation; eSystems never distributes a password.
|
|
171
|
+
# [customerOwned] `admin-reveal` is allowed only in labs.
|
|
151
172
|
IDENTITY_LOCAL_PASSWORD_MODE=admin-reveal
|
|
152
173
|
|
|
174
|
+
# =============================================================================
|
|
175
|
+
# MANAGED NOTIFICATION EMAIL (Miso -> Mori REST)
|
|
176
|
+
# =============================================================================
|
|
177
|
+
# Both onboarding modes use Mori's AI Fabrix-owned sender. MORI_API_KEY below is the
|
|
178
|
+
# existing installation service key; no notification-specific secret is created.
|
|
179
|
+
NOTIFICATION_BINDING=aifabrixManaged
|
|
180
|
+
MORI_ENVIRONMENT_ID=
|
|
181
|
+
|
|
153
182
|
# Keycloak Events Configuration
|
|
154
183
|
KEYCLOAK_EVENTS_ENABLED=true
|
|
155
184
|
KEYCLOAK_EVENTS_VERIFY_SIGNATURE=true
|
|
@@ -191,8 +220,11 @@ MISO_CLIENTSECRET=kv://miso-controller-client-secretKeyVault
|
|
|
191
220
|
CONTROLLER_EVALUATION=
|
|
192
221
|
|
|
193
222
|
# =============================================================================
|
|
194
|
-
# ENTRA ID ONBOARDING (vendor multi-tenant app — admin consent)
|
|
223
|
+
# ENTRA ID ONBOARDING (vendor multi-tenant app — admin consent) — [always]
|
|
195
224
|
# =============================================================================
|
|
225
|
+
# Kept in the shared block because EITHER mode may install Entra later from the plan 219
|
|
226
|
+
# provider catalogue: Azure hosting does not force Entra, and SaaS may choose it.
|
|
227
|
+
#
|
|
196
228
|
# AI Fabrix vendor app for TA-1 admin consent and Entra ID configure flows.
|
|
197
229
|
# Same ENTRA_ID_CLIENT_ID / ENTRA_ID_CLIENT_SECRET on every deployment.
|
|
198
230
|
# Customer SSO after configure uses a separate enterprise app (AI Fabrix Miso);
|
|
@@ -205,13 +237,16 @@ CONTROLLER_EVALUATION=
|
|
|
205
237
|
#
|
|
206
238
|
# Delegated Graph (second redirect URI on the same vendor app): see section below.
|
|
207
239
|
ENTRA_CALLBACK_STATE_SECRET=kv://entra-callback-state-secret
|
|
208
|
-
ENTRA_ID_CENTRAL_CALLBACK_URI=https://aifabrix-pro-mori
|
|
240
|
+
ENTRA_ID_CENTRAL_CALLBACK_URI=https://aifabrix-pro-miso-mori.azurewebsites.net/entra-id-concent/callback
|
|
209
241
|
ENTRA_ID_CLIENT_ID=kv://entra-client-idKeyVault
|
|
210
242
|
ENTRA_ID_CLIENT_SECRET=kv://entra-client-secretKeyVault
|
|
211
243
|
|
|
212
244
|
# =============================================================================
|
|
213
|
-
# TENANT ACTIVATION (TA-3) — EXISTING LLM CATALOG
|
|
245
|
+
# TENANT ACTIVATION (TA-3) — EXISTING LLM CATALOG — [customerOwned]
|
|
214
246
|
# =============================================================================
|
|
247
|
+
# [saasDirect] Omit this block entirely: the SaaS wizard has no Access Model step and
|
|
248
|
+
# creates no LLM resources.
|
|
249
|
+
#
|
|
215
250
|
# Optional JSON array for GET /api/v1/tenant/existing-llm-configurations (and
|
|
216
251
|
# access-model.existingLlmConfigurations). Merge order: env entries first, then
|
|
217
252
|
# entries derived from saved activation LLM (same id in saved overrides).
|
|
@@ -223,23 +258,32 @@ ENTRA_ID_CLIENT_SECRET=kv://entra-client-secretKeyVault
|
|
|
223
258
|
# EXISTING_LLM_CONFIGURATIONS=
|
|
224
259
|
|
|
225
260
|
# =============================================================================
|
|
226
|
-
# AZURE AD PROVIDER CONFIGURATION
|
|
261
|
+
# AZURE AD PROVIDER CONFIGURATION — [always]
|
|
227
262
|
# =============================================================================
|
|
263
|
+
# [customerOwned] These are the customer subscription credentials collected by the TA wizard.
|
|
264
|
+
# [saasDirect] Present on the eSystems HOST controller so eSystems can deploy the hosted
|
|
265
|
+
# environment. They are never collected from, or shown to, the SaaS customer.
|
|
228
266
|
|
|
229
267
|
AZURE_SUBSCRIPTION_ID=kv://azure-subscription-idKeyVault
|
|
230
268
|
TENANT_ID=kv://azure-tenant-idKeyVault
|
|
231
269
|
AZURE_SERVICE_NAME=kv://azure-service-nameKeyVault
|
|
232
|
-
|
|
233
|
-
|
|
270
|
+
# Azure App Service uses managed identity through DefaultAzureCredential.
|
|
271
|
+
# Optional local service-principal overrides may be supplied in the runtime .env:
|
|
272
|
+
# AZURE_CLIENT_ID=
|
|
273
|
+
# AZURE_CLIENT_SECRET=
|
|
234
274
|
|
|
235
275
|
# When true, environment infrastructure deploy skips the ai.azureOpenAI module (no new Cognitive Services account).
|
|
276
|
+
# [customerOwned] default false — Azure OpenAI is created only when the customer selects it.
|
|
277
|
+
# [saasDirect] leave unset or set true: the minimal SaaS baseline never creates Cognitive Services.
|
|
278
|
+
# When unset, ONBOARDING_MODE=saasDirect already defaults this to true.
|
|
236
279
|
SKIP_AZURE_OPENAI=false
|
|
237
280
|
|
|
238
|
-
# When true, environment deploy skips Postgres ARM/KV updates if the flexible server
|
|
281
|
+
# [customerOwned] When true, environment deploy skips Postgres ARM/KV updates if the flexible server
|
|
282
|
+
# already exists (marketplace redeploy).
|
|
239
283
|
SKIP_DB_REDEPLOY=true
|
|
240
284
|
|
|
241
285
|
# =============================================================================
|
|
242
|
-
# DEPLOYMENT TYPE
|
|
286
|
+
# DEPLOYMENT TYPE — [always]
|
|
243
287
|
# =============================================================================
|
|
244
288
|
# azure — Real Azure resources + tenant activation wizard until completed
|
|
245
289
|
# azure-mock — Mock Azure SDK; dashboard after login (no wizard)
|
|
@@ -248,10 +292,28 @@ SKIP_DB_REDEPLOY=true
|
|
|
248
292
|
#
|
|
249
293
|
# Missing or invalid value defaults to azure (wizard + Azure credentials).
|
|
250
294
|
# Bootstrap (SKIP_FIRST_TIME_SETUP=false) is separate from the activation wizard.
|
|
295
|
+
# NOTE: there is no `saas` value. eSystems-hosted SaaS runs DEPLOYMENT=azure with
|
|
296
|
+
# ONBOARDING_MODE=saasDirect (see next section).
|
|
251
297
|
DEPLOYMENT=database
|
|
252
298
|
|
|
299
|
+
# =============================================================================
|
|
300
|
+
# ONBOARDING MODE — [always]
|
|
301
|
+
# =============================================================================
|
|
302
|
+
# Orthogonal to DEPLOYMENT (Azure SDK vs local). Selects the onboarding step list
|
|
303
|
+
# served by GET /api/v1/tenant/status and rendered by the wizard stepper.
|
|
304
|
+
#
|
|
305
|
+
# customerOwned = Azure-in-tenant wizard
|
|
306
|
+
# consent → identity → size → access-model → endpoint → validation
|
|
307
|
+
# saasDirect = eSystems-hosted activation
|
|
308
|
+
# consent → identity → endpoint (domain only) → review
|
|
309
|
+
# Omits size, access-model, customer deploy and platform-apps.
|
|
310
|
+
#
|
|
311
|
+
# Unset defaults to customerOwned. An unknown value fails closed with HTTP 400.
|
|
312
|
+
ONBOARDING_MODE=customerOwned
|
|
313
|
+
|
|
253
314
|
# Dev/test: show TA Entra "Completing setup" countdown (120s cap). Default false.
|
|
254
315
|
# Exposed to UI via GET /api/v1/tenant/status → showTaCountdown (restart controller after change).
|
|
316
|
+
# [saasDirect] Omit — there is no TA Entra countdown in the SaaS wizard.
|
|
255
317
|
SHOW_TA_COUNT_DOWN=false
|
|
256
318
|
|
|
257
319
|
# =============================================================================
|
|
@@ -269,15 +331,25 @@ BOOTSTRAP_APPKEYS=dataplane,builder-api
|
|
|
269
331
|
# When false (default), uses local AES-256-GCM encryption with ENCRYPTION_KEY
|
|
270
332
|
KEY_VAULT_ENABLED=false
|
|
271
333
|
|
|
334
|
+
# Show Settings > System Secrets in the portal (runtime feature flag).
|
|
335
|
+
MISO_APPLICATION_SECRETS_UI_ENABLED=false
|
|
336
|
+
|
|
337
|
+
# Sliding browser-session idle timeout (30 minutes).
|
|
338
|
+
AUTH_BROWSER_SESSION_TTL_SECONDS=1800
|
|
339
|
+
|
|
272
340
|
# JWT Configuration (for client token generation)
|
|
273
341
|
JWT_SECRET=kv://miso-controller-jwt-secretKeyVault
|
|
274
342
|
|
|
275
|
-
# When API_KEY is set, a matching Bearer token bypasses OAuth2 validation
|
|
343
|
+
# When API_KEY is set, a matching Bearer token bypasses OAuth2 validation.
|
|
344
|
+
# The key is optional: local environments may set it; Azure may leave it empty.
|
|
276
345
|
API_KEY=kv://miso-controller-secrets-apiKeyVault
|
|
277
346
|
|
|
278
347
|
# =============================================================================
|
|
279
|
-
# LICENSE CONFIGURATION
|
|
348
|
+
# LICENSE CONFIGURATION — [always]
|
|
280
349
|
# =============================================================================
|
|
350
|
+
# [saasDirect] Must use the Mori flow (never DEVELOPMENT): Mori issues and owns the
|
|
351
|
+
# 30-day STANDARD / M trial, and sales later updates the same subscription.
|
|
352
|
+
#
|
|
281
353
|
# Offline JWT license (optional):
|
|
282
354
|
# - If set, controller validates license offline (RS256) without Mori subscription status call.
|
|
283
355
|
# - Value can be literal JWT or kv:// reference.
|
|
@@ -293,8 +365,8 @@ LICENSE_JWT=kv://miso-controller-jwt-licenseKeyVault
|
|
|
293
365
|
# ENTRA ID ONBOARDING (delegated Graph via Mori)
|
|
294
366
|
# =============================================================================
|
|
295
367
|
# Must match a Web redirect URI on the vendor multi-tenant app and Mori’s route
|
|
296
|
-
# …/entra-graph-delegated/callback. Shared pro Mori (CICD):
|
|
297
|
-
ENTRA_GRAPH_DELEGATED_REDIRECT_URI=https://aifabrix-pro-mori
|
|
368
|
+
# …/entra-graph-delegated/callback. Shared pro Mori addon (CICD *-miso-rg):
|
|
369
|
+
ENTRA_GRAPH_DELEGATED_REDIRECT_URI=https://aifabrix-pro-miso-mori.azurewebsites.net/entra-graph-delegated/callback
|
|
298
370
|
|
|
299
371
|
# Optional delegated Graph scopes for GET …/graph-auth-url (space- or comma-separated).
|
|
300
372
|
# ENTRA_GRAPH_DELEGATED_SCOPES=https://graph.microsoft.com/Application.ReadWrite.All,https://graph.microsoft.com/Group.ReadWrite.All,https://graph.microsoft.com/Synchronization.ReadWrite.All,openid,profile,offline_access
|
|
@@ -309,7 +381,7 @@ ENTRA_GRAPH_DELEGATED_REDIRECT_URI=https://aifabrix-pro-mori-web-we.azurewebsite
|
|
|
309
381
|
# only works when a local Mori app is registered and running for this developer.
|
|
310
382
|
# MORI_CALLBACK_API_KEY must be the same secret as Mori MORI_CONTROLLER_CALLBACK_API_KEY
|
|
311
383
|
# (both resolve from kv://mori-callback-api-keyKeyVault — do not generate separate values).
|
|
312
|
-
MORI_BASE_URL=https://aifabrix-pro-mori
|
|
384
|
+
MORI_BASE_URL=https://aifabrix-pro-miso-mori.azurewebsites.net
|
|
313
385
|
MORI_AUTH_METHOD=kv://mori-controller-auth-methodKeyVault
|
|
314
386
|
MORI_CALLBACK_API_KEY=kv://mori-callback-api-keyKeyVault
|
|
315
387
|
MORI_API_KEY=kv://mori-controller-api-keyKeyVault
|
|
@@ -34,6 +34,11 @@ roles:
|
|
|
34
34
|
description: 'Read-only access to monitoring, logs, and compliance reports'
|
|
35
35
|
groups: ['AI-Fabrix-Observers']
|
|
36
36
|
|
|
37
|
+
- name: 'AI Fabrix Everyone'
|
|
38
|
+
value: 'aifabrix-everyone'
|
|
39
|
+
description: 'Authenticated-user consume access for Enterprise LLM and platform search (not a Role Assistant)'
|
|
40
|
+
groups: ['AI-Fabrix-Everyone']
|
|
41
|
+
|
|
37
42
|
permissions:
|
|
38
43
|
# Integration clients (Keycloak OIDC clients + control-plane metadata)
|
|
39
44
|
- name: 'integration-client:create'
|