@aifabrix/builder 2.60.0 → 2.62.0

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.
Files changed (177) hide show
  1. package/README.md +14 -11
  2. package/docs/README.md +80 -0
  3. package/docs/builder-help/evidence-patterns.json +155 -0
  4. package/docs/builder-help/golden-examples/crm-company.json +30 -0
  5. package/docs/builder-help/golden-examples/crm-deal.json +29 -0
  6. package/docs/builder-help/golden-examples/document-storage-keyed-get.json +85 -0
  7. package/docs/builder-help/golden-examples/document-storage.json +30 -0
  8. package/docs/builder-help/golden-examples/meeting-transcript.json +29 -0
  9. package/docs/builder-help/golden-examples/repository-template.json +29 -0
  10. package/docs/builder-help/golden-examples/service-ticket.json +29 -0
  11. package/docs/builder-help/platform-roles.json +98 -0
  12. package/docs/builder-help/resource-type-catalog.json +402 -0
  13. package/lib/api/applications.api.js +22 -2
  14. package/lib/api/bootstrap-snapshot.api.js +115 -0
  15. package/lib/api/configuration.api.js +131 -0
  16. package/lib/api/system-secrets.api.js +72 -0
  17. package/lib/app/deploy.js +14 -5
  18. package/lib/app/run-docker-fallback.js +6 -1
  19. package/lib/app/run-env-compose.js +5 -6
  20. package/lib/app/run-helpers.js +2 -1
  21. package/lib/app/run-parameter-sync.js +142 -0
  22. package/lib/app/run.js +6 -4
  23. package/lib/build/docker-build-args.js +5 -2
  24. package/lib/build/index.js +3 -2
  25. package/lib/build/standard-docker-build.js +6 -2
  26. package/lib/channels/channel-artifact-generator.js +13 -3
  27. package/lib/cli/infra-guided-footers.js +10 -8
  28. package/lib/cli/infra-guided.js +30 -10
  29. package/lib/cli/setup-app.js +5 -0
  30. package/lib/cli/setup-environment.js +156 -0
  31. package/lib/cli/setup-infra-up-platform-action.js +14 -1
  32. package/lib/cli/setup-platform.js +2 -0
  33. package/lib/commands/auth-config.js +2 -0
  34. package/lib/commands/datasource-capability-upsert-cli.js +112 -0
  35. package/lib/commands/datasource-capability.js +4 -2
  36. package/lib/commands/env-secret-context.js +113 -0
  37. package/lib/commands/env-secret-list.js +200 -0
  38. package/lib/commands/env-secret-push-confirm.js +54 -0
  39. package/lib/commands/env-secret-push-run.js +227 -0
  40. package/lib/commands/env-secret-push.js +168 -0
  41. package/lib/commands/login.js +4 -0
  42. package/lib/commands/repair-datasource-apply.js +5 -1
  43. package/lib/commands/repair-datasource-keyed-document.js +122 -0
  44. package/lib/commands/repair-datasource-legacy.js +94 -0
  45. package/lib/commands/repair-datasource-run.js +1 -0
  46. package/lib/commands/setup-image-refresh.js +26 -0
  47. package/lib/commands/setup-modes.js +8 -9
  48. package/lib/commands/setup-prompts-platform-mode.js +34 -0
  49. package/lib/commands/setup-prompts.js +2 -180
  50. package/lib/commands/setup.js +3 -0
  51. package/lib/commands/up-builder-api.js +24 -8
  52. package/lib/commands/up-common.js +16 -1
  53. package/lib/commands/up-dataplane-bootstrap.js +70 -14
  54. package/lib/commands/up-dataplane-credentials.js +21 -0
  55. package/lib/commands/up-dataplane.js +37 -18
  56. package/lib/commands/up-integration-server.js +112 -0
  57. package/lib/commands/verify-operations-skip-e2e.js +25 -1
  58. package/lib/commands/verify-operations-steps.js +13 -1
  59. package/lib/commands/wizard-config-normalizer.js +12 -5
  60. package/lib/commands/wizard-core.js +5 -157
  61. package/lib/commands/wizard-file-saving.js +163 -0
  62. package/lib/core/admin-secrets-env-overlay.js +8 -3
  63. package/lib/core/env-platform-expand.js +5 -1
  64. package/lib/core/environment-access-policy.js +121 -0
  65. package/lib/core/environment-mode-policy.js +177 -0
  66. package/lib/core/local-env-overrides.js +149 -0
  67. package/lib/core/secrets-ensure.js +4 -2
  68. package/lib/core/secrets-env-content.js +17 -10
  69. package/lib/core/secrets-env-write.js +11 -4
  70. package/lib/core/secrets-load.js +4 -2
  71. package/lib/datasource/binary-documents-validator.js +190 -0
  72. package/lib/datasource/capability/capability-manifest.js +1 -0
  73. package/lib/datasource/capability/run-capability-upsert.js +202 -0
  74. package/lib/datasource/capability/upsert-ingredients.js +291 -0
  75. package/lib/datasource/capability/upsert-operations.js +138 -0
  76. package/lib/datasource/capability/upsert-test-scaffold.js +189 -0
  77. package/lib/datasource/validate.js +12 -5
  78. package/lib/deployment/installation/index.js +14 -1
  79. package/lib/deployment/installation/infra-catalog.js +3 -0
  80. package/lib/deployment/installation/local-environment-stage.js +285 -0
  81. package/lib/deployment/installation/local-installation.js +76 -0
  82. package/lib/deployment/installation/stage-input.js +5 -1
  83. package/lib/generator/builders.js +3 -1
  84. package/lib/generator/index.js +3 -0
  85. package/lib/generator/split-variables.js +2 -2
  86. package/lib/lifecycle/product-model.js +4 -3
  87. package/lib/lifecycle/report-display.js +3 -2
  88. package/lib/parameters/database-adoption.js +125 -0
  89. package/lib/parameters/infra-parameter-catalog.js +1 -1
  90. package/lib/parameters/physical-database-naming.js +136 -0
  91. package/lib/parameters/physical-secret-name.js +194 -0
  92. package/lib/parameters/rsa-secret-values.js +165 -0
  93. package/lib/programmatic/builder-help-enterprise-sync-fabrix.js +1 -1
  94. package/lib/programmatic/builder-help-governance.js +1 -1
  95. package/lib/programmatic/builder-help.js +1 -1
  96. package/lib/programmatic/run-channel-install-artifacts.js +28 -2
  97. package/lib/programmatic/run-channel-package.js +3 -1
  98. package/lib/programmatic/workspace-context.js +37 -2
  99. package/lib/role-assistant/test-runner-workhub-answers.js +4 -1
  100. package/lib/role-assistant/test-runner-workhub-missing-fields.js +42 -0
  101. package/lib/role-assistant/test-runner-workhub-wait-stop.js +94 -0
  102. package/lib/role-assistant/test-runner-workhub.js +28 -19
  103. package/lib/schema/application-schema.json +14 -2
  104. package/lib/schema/external-datasource.schema.json +23 -3
  105. package/lib/schema/infra.parameter.yaml +440 -56
  106. package/lib/schema/infrastructure-schema.json +213 -120
  107. package/lib/utils/compose-generate-docker-compose.js +9 -14
  108. package/lib/utils/compose-generator.js +4 -7
  109. package/lib/utils/compose-miso-env.js +2 -2
  110. package/lib/utils/compose-traefik-ingress-base.js +3 -4
  111. package/lib/utils/datasource-binary-evidence.js +92 -0
  112. package/lib/utils/datasource-test-run-capability-scope.js +44 -1
  113. package/lib/utils/datasource-test-run-debug-display.js +2 -0
  114. package/lib/utils/datasource-test-run-display.js +8 -2
  115. package/lib/utils/datasource-test-run-issue-guidance.js +176 -0
  116. package/lib/utils/datasource-test-run-tty-log.js +2 -0
  117. package/lib/utils/declarative-url-ports.js +3 -0
  118. package/lib/utils/env-copy.js +11 -10
  119. package/lib/utils/env-environment-file-paths.js +105 -0
  120. package/lib/utils/environment-scoped-resources.js +48 -14
  121. package/lib/utils/external-system-system-test-tty.js +3 -2
  122. package/lib/utils/image-tags.js +2 -2
  123. package/lib/utils/paths-system-builder-keys.js +7 -1
  124. package/lib/utils/paths.js +7 -2
  125. package/lib/utils/platform-kv-ref.js +1 -1
  126. package/lib/utils/postgres-platform-bootstrap.js +35 -1
  127. package/lib/utils/prepare-local-data-mount.js +58 -0
  128. package/lib/utils/redis-env-scope.js +21 -1
  129. package/lib/utils/registry-auth-sources.js +154 -0
  130. package/lib/utils/registry-credentials.js +131 -14
  131. package/lib/utils/secrets-generator.js +30 -21
  132. package/lib/utils/secrets-helpers.js +5 -8
  133. package/lib/utils/secrets-kv-scope.js +127 -28
  134. package/lib/utils/secrets-materialize-local.js +9 -0
  135. package/lib/utils/secrets-missing-error.js +35 -1
  136. package/lib/utils/system-secret-mapping.js +125 -0
  137. package/lib/utils/test-log-writer.js +2 -1
  138. package/lib/utils/token-manager.js +14 -8
  139. package/lib/utils/url-public-path-prefix.js +6 -10
  140. package/lib/validation/external-manifest-validator.js +5 -0
  141. package/lib/validation/openapi-contract-surface-validator.js +3 -1
  142. package/lib/validation/validate-external-file.js +5 -1
  143. package/package.json +6 -4
  144. package/templates/agent-kit/agent-kit.yaml +1 -1
  145. package/templates/agent-kit/skills/aifabrix-connected-system/SKILL.md +2 -1
  146. package/templates/agent-kit/skills/aifabrix-connected-system/references/delivery-gates.md +15 -0
  147. package/templates/agent-kit/skills/aifabrix-plan/SKILL.md +3 -2
  148. package/templates/agent-kit/skills/aifabrix-prove/SKILL.md +6 -2
  149. package/templates/agent-kit/skills/aifabrix-prove/references/evidence-lifecycle.md +22 -0
  150. package/templates/agent-kit/skills/aifabrix-role-assistant/SKILL.md +7 -1
  151. package/templates/agent-kit/skills/aifabrix-role-assistant/references/testing-playbook.md +117 -0
  152. package/templates/agent-kit/skills/shared/interaction.md +83 -0
  153. package/templates/agent-kit/skills/shared/status.md +3 -12
  154. package/templates/applications/builder-api/application.yaml +1 -1
  155. package/templates/applications/builder-api/env.template +5 -1
  156. package/templates/applications/dataplane/application.yaml +2 -2
  157. package/templates/applications/dataplane/env.template +10 -12
  158. package/templates/applications/integration-server/application.yaml +91 -0
  159. package/templates/applications/integration-server/env.template +215 -0
  160. package/templates/applications/keycloak/application.yaml +6 -1
  161. package/templates/applications/mirrored-templates.json +52 -0
  162. package/templates/applications/miso-controller/application.yaml +116 -2
  163. package/templates/applications/miso-controller/env.template +62 -17
  164. package/templates/applications/miso-controller/rbac.yaml +17 -0
  165. package/templates/external-system/external-datasource.yaml.hbs +7 -1
  166. package/templates/marketplace/createUiDefinition.json +52 -4
  167. package/templates/marketplace/main.json +88 -10
  168. package/templates/python/docker-compose.hbs +1 -1
  169. package/templates/agent-kit/skills/aifabrix-plan/references/interaction.md +0 -41
  170. /package/{lib/programmatic/help-content → docs/builder-help/content}/channel-onboarding.md +0 -0
  171. /package/{lib/programmatic/help-content → docs/builder-help/content}/cip-overview.md +0 -0
  172. /package/{lib/programmatic/help-content → docs/builder-help/content}/connected-system-ui.md +0 -0
  173. /package/{lib/programmatic/help-content → docs/builder-help/content}/dimensions-guide.md +0 -0
  174. /package/{lib/programmatic/help-content → docs/builder-help/content}/enterprise-sync-fabrix.md +0 -0
  175. /package/{lib/programmatic/help-content → docs/builder-help/content}/overview.md +0 -0
  176. /package/{lib/programmatic/help-content → docs/builder-help/content}/subscription-guide.md +0 -0
  177. /package/{lib/programmatic/help-content → docs/builder-help/content}/workflow.md +0 -0
package/README.md CHANGED
@@ -88,17 +88,20 @@ Use `--pro-password-mode manual` to enter passwords yourself (one password for a
88
88
 
89
89
  Admin credentials are stored in **`~/.aifabrix/admin-secrets.env`** (encrypted when you configure a secrets encryption key). App and integration secrets stay in **`~/.aifabrix/secrets.local.yaml`**.
90
90
 
91
- ### Optional: set AI keys outside the wizard
92
-
93
- - **OpenAI:**
94
- ```bash
95
- aifabrix secret set secrets-openaiApiKeyVault <your-openai-secret-key>
96
- ```
97
- - **Azure OpenAI:**
98
- ```bash
99
- aifabrix secret set azure-openaiapi-urlKeyVault <your-azure-openai-endpoint-url>
100
- aifabrix secret set secrets-azureOpenaiApiKeyVault <your-azure-openai-secret-key>
101
- ```
91
+ ### Configure an LLM provider
92
+
93
+ `aifabrix setup` does not collect LLM credentials. Store the selected provider value
94
+ under its standard address in your local or shared secrets store:
95
+
96
+ ```bash
97
+ aifabrix secret set openai/apiKey <your-openai-secret-key> --shared
98
+ ```
99
+
100
+ The same pattern applies to `azure-openai/apiKey`, `azure-openai/endpoint`, and
101
+ `anthropic/apiKey`. When an integration manifest references the matching `kv://`
102
+ address, `aifabrix upload` resolves the value from local or shared storage and pushes
103
+ it to the Dataplane without placing the value in the manifest. Miso onboarding can
104
+ also configure these standard addresses directly.
102
105
 
103
106
  Remove the platform completely: `aifabrix teardown`. Command details: [Infrastructure commands](docs/commands/infrastructure.md#aifabrix-setup).
104
107
 
package/docs/README.md ADDED
@@ -0,0 +1,80 @@
1
+ # AI Fabrix Documentation
2
+
3
+ Table of contents for all AI Fabrix Builder documentation.
4
+
5
+ ← [Back to project README](../README.md)
6
+
7
+ ---
8
+
9
+ ## Getting started
10
+
11
+ | Document | Description |
12
+ | ----------------------------------------------------------------- | ------------------------------------------------------------------------------- |
13
+ | [Build path index (public docs)](get-started/build-path-index.md) | Map CLI tasks to canonical guides on docs.aifabrix.ai (Build AI-ready systems). |
14
+ | [Your own applications](your-own-applications.md) | Create, configure, build, and run your own app (app-centric). |
15
+ | [CLI Commands Reference](commands/README.md) | All CLI commands and options (alias: use `af` for `aifabrix`). |
16
+
17
+ **Example application and SDK:** For an example app and TypeScript/Python client to talk to the dataplane and controller, see [aifabrix-miso-client](https://github.com/esystemsdev/aifabrix-miso-client).
18
+
19
+ ---
20
+
21
+ ## Platform and infrastructure
22
+
23
+ | Document | Description |
24
+ | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
25
+ | [Infrastructure](infrastructure.md) | Local Docker infra only (Postgres, Redis, optional pgAdmin/Redis Commander/Traefik). Azure via Marketplace. |
26
+ | [Configuration reference](configuration/README.md) | env-config, env.template, application.yaml, secrets, deployment key. |
27
+
28
+ ---
29
+
30
+ ## External systems and integration
31
+
32
+ | Document | Description |
33
+ | --------------------------------------- | --------------------------------------------------------- |
34
+ | [External systems](external-systems.md) | External system integration (e.g. HubSpot), step-by-step. |
35
+ | [Wizard](wizard.md) | Interactive or headless wizard for external systems. |
36
+ | [GitHub workflows](github-workflows.md) | CI/CD and GitHub Actions. |
37
+
38
+ ---
39
+
40
+ ## Applications and deployment
41
+
42
+ | Document | Description |
43
+ | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
44
+ | [Building](building.md) | Build process and Docker images. |
45
+ | [Running](running.md) | Run applications locally. |
46
+ | [Deploying](deploying.md) | Deploy to Azure and environment setup. |
47
+ | [Deployment – first-time environment](deployment/environment-first-time.md) | First-time environment setup. |
48
+ | [Developer isolation](developer-isolation.md) | Port isolation (one network per developer), remote Docker, and dev init for remote setup. |
49
+
50
+ ---
51
+
52
+ ## Commands by topic
53
+
54
+ | Topic | Document |
55
+ | ----------------------- | ----------------------------------------------------------------------- |
56
+ | Authentication | [Authentication commands](commands/authentication.md) |
57
+ | Infrastructure | [Infrastructure commands](commands/infrastructure.md) |
58
+ | Developer isolation | [Developer isolation commands](commands/developer-isolation.md) |
59
+ | Application management | [Application management commands](commands/application-management.md) |
60
+ | Application development | [Application development commands](commands/application-development.md) |
61
+ | Role Assistant packages | [Role Assistant packages](commands/role-assistant-package.md) |
62
+ | Agent Kit | [Agent Kit commands](commands/agent-kit.md) |
63
+ | Deployment | [Deployment commands](commands/deployment.md) |
64
+ | Validation | [Validation commands](commands/validation.md) |
65
+ | External integration | [External integration commands](commands/external-integration.md) |
66
+ | Utilities | [Utility commands](commands/utilities.md) |
67
+ | Reference | [Command reference](commands/reference.md) |
68
+
69
+ ---
70
+
71
+ ## Configuration details
72
+
73
+ | Document | Description |
74
+ | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
75
+ | [Deployment key](configuration/deployment-key.md) | How deployment key is calculated; why Miso Controller and Dataplane use the same key. |
76
+ | [env-config](configuration/env-config.md) | Environment configuration. |
77
+ | [env.template](configuration/env-template.md) | Environment template and variables. |
78
+ | [application.yaml](configuration/application-yaml.md) | Application config. |
79
+ | [Secrets and config](configuration/secrets-and-config.md) | Secrets and configuration. |
80
+ | [External integration config](configuration/application-yaml.md#external-integration-and-external-system) | External system configuration. |
@@ -0,0 +1,155 @@
1
+ {
2
+ "schemaVersion": "1.2.0",
3
+ "patterns": [
4
+ {
5
+ "key": "section-read-before-patch",
6
+ "title": "Read section before patch",
7
+ "summary": "Obtain sectionReadToken from GET before any PATCH on the same sectionKey.",
8
+ "role": "integrator",
9
+ "resourceType": "datasource",
10
+ "steps": [
11
+ "GET manifest section for the target sectionKey",
12
+ "Review quality.missingInputs and resolve required questions with the user",
13
+ "PATCH with intent and the sectionReadToken from the GET response"
14
+ ],
15
+ "relatedTopics": ["workflow", "section"]
16
+ },
17
+ {
18
+ "key": "repair-after-metadata",
19
+ "title": "Repair after metadata patch",
20
+ "summary": "Run fieldMappings, expose, and rbac repair hooks after datasource metadata changes.",
21
+ "role": "integrator",
22
+ "resourceType": "datasource",
23
+ "steps": [
24
+ "PATCH datasource.metadata with intent describing vendor field mapping",
25
+ "POST manifest repair with hooks fieldMappings, expose, rbac",
26
+ "Validate workspace manifests before test"
27
+ ],
28
+ "relatedTopics": ["repairRules", "dependencyGraph", "workflow"]
29
+ },
30
+ {
31
+ "key": "validate-test-gate",
32
+ "title": "Validate and test before upload",
33
+ "summary": "Complete validate and test ladder before dev upload or certification.",
34
+ "role": "operator",
35
+ "resourceType": "system",
36
+ "steps": [
37
+ "Run validate on the workspace",
38
+ "Run integration or e2e test as appropriate",
39
+ "Proceed to upload or certify only after both succeed"
40
+ ],
41
+ "relatedTopics": ["workflow", "goldenExamples"]
42
+ },
43
+ {
44
+ "key": "ask-required-missing-inputs",
45
+ "title": "Ask for required missing inputs",
46
+ "summary": "When quality.missingInputs contains required items, ask the user instead of guessing values.",
47
+ "role": "integrator",
48
+ "resourceType": "datasource",
49
+ "steps": [
50
+ "GET section and inspect quality.missingInputs",
51
+ "If any entry has required true, collect answers from the user",
52
+ "Do not PATCH until required inputs are resolved or explicitly waived by policy"
53
+ ],
54
+ "relatedTopics": ["section", "workflow"]
55
+ },
56
+ {
57
+ "key": "subscription-role-scoping",
58
+ "title": "Scope subscriptions to business resource types",
59
+ "summary": "Align system.subscriptions filters with datasource resourceType tokens and role assistant scope.",
60
+ "role": "integrator",
61
+ "resourceType": "system",
62
+ "steps": [
63
+ "Read topic subscriptionGuide and section system.subscriptions",
64
+ "Ensure each datasource uses a business resourceType, not a generic placeholder",
65
+ "Set subscriptionFilter roleKeys and resourceTypes to match certified datasources",
66
+ "Validate after patch; run test when subscriptions trigger tasks"
67
+ ],
68
+ "relatedTopics": ["subscriptionGuide", "section", "goldenExample"]
69
+ },
70
+ {
71
+ "key": "multi-datasource-foreign-keys",
72
+ "title": "Link related datasources with foreignKeys",
73
+ "summary": "Declare foreignKeys when a document or child datasource depends on a CRM or record datasource.",
74
+ "role": "integrator",
75
+ "resourceType": "datasource",
76
+ "steps": [
77
+ "Identify parent record datasource key and child library or detail datasource",
78
+ "PATCH datasource.foreignKeys with intent describing the relationship",
79
+ "Repair expose and rbac if exposure profiles change",
80
+ "Validate both datasources and run integration test"
81
+ ],
82
+ "relatedTopics": ["goldenExample", "dependencyGraph", "repairRules"]
83
+ },
84
+ {
85
+ "key": "protection-dimension-gate",
86
+ "title": "Add protection after dimensions exist",
87
+ "summary": "Configure datasource.protection only after dimensions and metadata are stable.",
88
+ "role": "security-governance",
89
+ "resourceType": "datasource",
90
+ "steps": [
91
+ "Complete datasource.metadata and datasource.dimensions sections",
92
+ "PATCH datasource.protection with intent referencing dimension keys",
93
+ "Validate governance expectations before certify or upload",
94
+ "Document evidence that protection rules were reviewed with the user"
95
+ ],
96
+ "relatedTopics": ["section", "evidencePatterns", "validate-test-gate"]
97
+ },
98
+ {
99
+ "key": "platform-rbac-facade",
100
+ "title": "Use platform RBAC for facade APIs",
101
+ "summary": "Orchestration facade systems should use rbacPreset platform and dataplane platform roles, not per-system admin/reader.",
102
+ "role": "integrator",
103
+ "resourceType": "system",
104
+ "steps": [
105
+ "GET help topic platformRoles before patching system.rolesPermissions",
106
+ "Run repair with rbacPreset platform and rbac true",
107
+ "Confirm rbac.json role values match aifabrix-platform-admin through external-system-discoverer",
108
+ "Challenge any {systemKey}-admin or {systemKey}-reader entries"
109
+ ],
110
+ "relatedTopics": ["platformRoles", "repairRules", "workflow"]
111
+ },
112
+ {
113
+ "key": "resource-type-challenge",
114
+ "title": "Challenge resourceType catalog fit",
115
+ "summary": "Pick catalog resourceType keys that match business semantics; challenge generic document on CRM entities.",
116
+ "role": "integrator",
117
+ "resourceType": "datasource",
118
+ "steps": [
119
+ "GET help topic resourceTypeCatalog filtered by category when unsure",
120
+ "Compare datasource purpose to catalog description and defaultRiskLevel",
121
+ "Ask the user when two catalog keys could apply",
122
+ "Set entityType none orchestration datasources to workspace for facade APIs"
123
+ ],
124
+ "relatedTopics": ["resourceTypeCatalog", "schemaCatalog", "section"]
125
+ },
126
+ {
127
+ "key": "dimension-challenge-gate",
128
+ "title": "Challenge missing dimensions before protection",
129
+ "summary": "Ask for country, owner, sensitivity, or site dimensions before protection or subscription patches.",
130
+ "role": "security-governance",
131
+ "resourceType": "datasource",
132
+ "steps": [
133
+ "Read topic dimensionsGuide",
134
+ "Skip dimensions on entityType none orchestration datasources",
135
+ "List missing dimension keys and ask the user for business context",
136
+ "PATCH datasource.dimensions only after user confirms"
137
+ ],
138
+ "relatedTopics": ["dimensionsGuide", "protection-dimension-gate", "section"]
139
+ },
140
+ {
141
+ "key": "channel-onboarding-from-worklist",
142
+ "title": "Onboard channel from workspace work list",
143
+ "summary": "List workspace systems, publish integration, then scaffold assistant channel target.",
144
+ "role": "operator",
145
+ "resourceType": "system",
146
+ "steps": [
147
+ "GET help topic channelOnboarding",
148
+ "GET workspaces/me/systems to list draft systems",
149
+ "Validate and upload target systemKey",
150
+ "Guide user through channel scaffold and channel add for chosen target"
151
+ ],
152
+ "relatedTopics": ["channelOnboarding", "workflow", "connectedSystemUi"]
153
+ }
154
+ ]
155
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "key": "crm-company",
3
+ "title": "CRM company record",
4
+ "summary": "Metadata-first CRM company datasource with graph-ordered repair through field mappings and exposure.",
5
+ "resourceType": "crm",
6
+ "role": "integrator",
7
+ "roleAssistantExamples": ["Sales Assistant", "Data Quality Assistant"],
8
+ "recommendedSectionKeys": [
9
+ "datasource.metadata",
10
+ "datasource.fieldMappings",
11
+ "datasource.openapiOperations",
12
+ "datasource.mcpOperations"
13
+ ],
14
+ "subscriptionGuidance": "Add system.subscriptions when record events should spawn role assistant tasks. Scope resourceTypes to company, not generic document tokens.",
15
+ "qualityScoreFloor": 70,
16
+ "metadataTraversal": [
17
+ "datasource.fieldMappings",
18
+ "datasource.exposedAttributes",
19
+ "datasource.openapiOperations",
20
+ "datasource.mcpOperations",
21
+ "system.rolesPermissions"
22
+ ],
23
+ "sectionSnapshots": {
24
+ "datasource.entityType": "recordStorage",
25
+ "datasource.resourceType": "company",
26
+ "datasource.primaryKey": ["companyName"],
27
+ "datasource.metadataSchema.properties": ["companyName", "country"],
28
+ "datasource.capabilities": ["list", "get", "update"]
29
+ }
30
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "key": "crm-deal",
3
+ "title": "CRM deal pipeline",
4
+ "summary": "Deal entity pattern with metadata traversal through mappings, exposure, and RBAC-derived sections.",
5
+ "resourceType": "crm",
6
+ "role": "integrator",
7
+ "roleAssistantExamples": ["Sales Assistant"],
8
+ "recommendedSectionKeys": [
9
+ "datasource.metadata",
10
+ "datasource.fieldMappings",
11
+ "datasource.capabilities",
12
+ "datasource.foreignKeys"
13
+ ],
14
+ "subscriptionGuidance": "Use subscriptions on deal status transitions. Align resourceTypes with deal on the datasource and in subscription filters.",
15
+ "qualityScoreFloor": 70,
16
+ "metadataTraversal": [
17
+ "datasource.fieldMappings",
18
+ "datasource.exposedAttributes",
19
+ "datasource.openapiOperations",
20
+ "datasource.mcpOperations",
21
+ "system.rolesPermissions"
22
+ ],
23
+ "sectionSnapshots": {
24
+ "datasource.entityType": "recordStorage",
25
+ "datasource.resourceType": "deal",
26
+ "datasource.capabilities": ["list", "get", "create", "update"],
27
+ "datasource.foreignKeys": "Link to company datasource when deals belong to accounts"
28
+ }
29
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "key": "document-storage-keyed-get",
3
+ "title": "Keyed document retrieval",
4
+ "summary": "Retrieve and persist one vendor file by business key without a list operation.",
5
+ "resourceType": "document",
6
+ "role": "integrator",
7
+ "roleAssistantExamples": [
8
+ "Sales Assistant",
9
+ "Project Assistant"
10
+ ],
11
+ "recommendedSectionKeys": [
12
+ "datasource.metadata",
13
+ "datasource.fieldMappings",
14
+ "datasource.exposedAttributes",
15
+ "datasource.sync",
16
+ "datasource.foreignKeys"
17
+ ],
18
+ "subscriptionGuidance": "Use a business resourceType on deal-linked libraries. Declare foreignKeys to the owning record datasource. Avoid generic document resourceTypes on role assistant filters.",
19
+ "qualityScoreFloor": 70,
20
+ "metadataTraversal": [
21
+ "datasource.fieldMappings",
22
+ "datasource.exposedAttributes",
23
+ "datasource.openapiOperations",
24
+ "datasource.mcpOperations",
25
+ "system.rolesPermissions"
26
+ ],
27
+ "sectionSnapshots": {
28
+ "datasource.entityType": "documentStorage",
29
+ "datasource.capabilities": [
30
+ { "key": "get" }
31
+ ],
32
+ "datasource.documentStorage": {
33
+ "enabled": true,
34
+ "binaryOperationRef": "get",
35
+ "responseType": "binary",
36
+ "ingestAfterSync": true
37
+ },
38
+ "datasource.execution": {
39
+ "engine": "cip",
40
+ "cip": {
41
+ "version": "1.0",
42
+ "operations": {
43
+ "get": {
44
+ "steps": [
45
+ {
46
+ "fetch": {
47
+ "source": "openapi",
48
+ "openapiRef": "get",
49
+ "responseType": "binary"
50
+ }
51
+ },
52
+ {
53
+ "map": {
54
+ "useFieldMappings": true
55
+ }
56
+ },
57
+ {
58
+ "filter": {
59
+ "abac": {
60
+ "mode": "mandatory"
61
+ }
62
+ }
63
+ },
64
+ {
65
+ "output": {
66
+ "mode": "documents"
67
+ }
68
+ }
69
+ ]
70
+ }
71
+ }
72
+ }
73
+ },
74
+ "datasource.fieldMappings": {
75
+ "attributes": {
76
+ "documentId": {
77
+ "expression": "{{raw.params.DocumentId}}"
78
+ },
79
+ "filename": {
80
+ "expression": "{{raw.headers.FileName}}"
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "key": "document-storage",
3
+ "title": "Document storage entity",
4
+ "summary": "File or document metadata pattern with exposure and OpenAPI operation derivation.",
5
+ "resourceType": "document",
6
+ "role": "integrator",
7
+ "roleAssistantExamples": ["Sales Assistant", "Project Assistant"],
8
+ "recommendedSectionKeys": [
9
+ "datasource.metadata",
10
+ "datasource.fieldMappings",
11
+ "datasource.exposedAttributes",
12
+ "datasource.sync",
13
+ "datasource.foreignKeys"
14
+ ],
15
+ "subscriptionGuidance": "Use a business resourceType on deal-linked libraries. Declare foreignKeys to the owning record datasource. Avoid generic document resourceTypes on role assistant filters.",
16
+ "qualityScoreFloor": 70,
17
+ "metadataTraversal": [
18
+ "datasource.fieldMappings",
19
+ "datasource.exposedAttributes",
20
+ "datasource.openapiOperations",
21
+ "datasource.mcpOperations",
22
+ "system.rolesPermissions"
23
+ ],
24
+ "sectionSnapshots": {
25
+ "datasource.entityType": "documentStorage",
26
+ "datasource.resourceType": "deal",
27
+ "datasource.documentStorage": "binaryOperationRef and sync profile required for RAG",
28
+ "datasource.foreignKeys": "Target CRM deal datasource key"
29
+ }
30
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "key": "meeting-transcript",
3
+ "title": "Meeting transcript capture",
4
+ "summary": "Transcript or conversation entity with metadata and capability-driven operation exposure.",
5
+ "resourceType": "transcript",
6
+ "role": "integrator",
7
+ "roleAssistantExamples": ["Sales Assistant", "Project Assistant"],
8
+ "recommendedSectionKeys": [
9
+ "datasource.metadata",
10
+ "datasource.capabilities",
11
+ "datasource.openapiOperations",
12
+ "datasource.execution"
13
+ ],
14
+ "subscriptionGuidance": "Optional subscriptions on transcript ingest for meeting capture assistants. Keep resourceTypes aligned to transcript or meeting tokens.",
15
+ "qualityScoreFloor": 70,
16
+ "metadataTraversal": [
17
+ "datasource.fieldMappings",
18
+ "datasource.exposedAttributes",
19
+ "datasource.openapiOperations",
20
+ "datasource.mcpOperations",
21
+ "system.rolesPermissions"
22
+ ],
23
+ "sectionSnapshots": {
24
+ "datasource.entityType": "recordStorage",
25
+ "datasource.resourceType": "meetingTranscript",
26
+ "datasource.execution.engine": "cip",
27
+ "datasource.capabilities": ["list", "get", "create"]
28
+ }
29
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "key": "repository-template",
3
+ "title": "Repository template workspace",
4
+ "summary": "Template-backed integration pattern for repository sync and lifecycle tooling.",
5
+ "resourceType": "repository",
6
+ "role": "devops",
7
+ "roleAssistantExamples": ["Project Assistant"],
8
+ "recommendedSectionKeys": [
9
+ "system.basics",
10
+ "system.kind",
11
+ "datasource.metadata",
12
+ "datasource.sync",
13
+ "system.lifecycle"
14
+ ],
15
+ "subscriptionGuidance": "Subscriptions are optional for repository-driven generation. Prefer lifecycle and template materialize flows before event subscriptions.",
16
+ "qualityScoreFloor": 70,
17
+ "metadataTraversal": [
18
+ "datasource.fieldMappings",
19
+ "datasource.exposedAttributes",
20
+ "datasource.openapiOperations",
21
+ "datasource.mcpOperations",
22
+ "system.rolesPermissions"
23
+ ],
24
+ "sectionSnapshots": {
25
+ "system.kind": "repository or enterpriseContext variant",
26
+ "datasource.sync": "Pull or push strategy declared explicitly",
27
+ "system.lifecycle": "Certification and publish gates before production"
28
+ }
29
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "key": "service-ticket",
3
+ "title": "Service ticket entity",
4
+ "summary": "Support or service ticket pattern with metadata, mappings, and governance sections.",
5
+ "resourceType": "ticket",
6
+ "role": "integrator",
7
+ "roleAssistantExamples": ["Customer Success Assistant", "Data Quality Assistant"],
8
+ "recommendedSectionKeys": [
9
+ "datasource.metadata",
10
+ "datasource.fieldMappings",
11
+ "datasource.governance",
12
+ "datasource.protection"
13
+ ],
14
+ "subscriptionGuidance": "Subscriptions on ticket status changes can drive Customer Success assistant tasks. Pair with governance and protection sections for sensitive fields.",
15
+ "qualityScoreFloor": 70,
16
+ "metadataTraversal": [
17
+ "datasource.fieldMappings",
18
+ "datasource.exposedAttributes",
19
+ "datasource.openapiOperations",
20
+ "datasource.mcpOperations",
21
+ "system.rolesPermissions"
22
+ ],
23
+ "sectionSnapshots": {
24
+ "datasource.entityType": "recordStorage",
25
+ "datasource.resourceType": "serviceTicket",
26
+ "datasource.governance": "Approval or retention hints when required",
27
+ "datasource.protection": "Dimension-scoped rules for priority or region"
28
+ }
29
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "source": "builder/dataplane/rbac.yaml roles block",
4
+ "lastSynced": "2026-08-19",
5
+ "roles": [
6
+ {
7
+ "name": "Platform Admin",
8
+ "value": "aifabrix-platform-admin",
9
+ "description": "Full platform infrastructure management and enterprise controller access",
10
+ "groups": ["AI-Fabrix-Platform-Admins"]
11
+ },
12
+ {
13
+ "name": "Security Admin",
14
+ "value": "aifabrix-security-admin",
15
+ "description": "Security and compliance management for enterprise controller",
16
+ "groups": ["AI-Fabrix-Security-Admins"]
17
+ },
18
+ {
19
+ "name": "Deployment Admin",
20
+ "value": "aifabrix-deployment-admin",
21
+ "description": "Application deployment orchestration and environment management",
22
+ "groups": ["AI-Fabrix-Deployment-Admins"]
23
+ },
24
+ {
25
+ "name": "Compliance Admin",
26
+ "value": "aifabrix-compliance-admin",
27
+ "description": "ISO 27001 compliance monitoring and audit management",
28
+ "groups": ["AI-Fabrix-Compliance-Admins"]
29
+ },
30
+ {
31
+ "name": "Developer",
32
+ "value": "aifabrix-developer",
33
+ "description": "Developer access to deploy applications via CI pipelines",
34
+ "groups": ["AI-Fabrix-Developers"]
35
+ },
36
+ {
37
+ "name": "Observer",
38
+ "value": "aifabrix-observer",
39
+ "description": "Read-only access to monitoring, logs, and compliance reports",
40
+ "groups": ["AI-Fabrix-Observers"]
41
+ },
42
+ {
43
+ "name": "AI Trust Operator",
44
+ "value": "aifabrix-ai-trust-operator",
45
+ "description": "Run AI Trust access evaluation and explain visibility for governed users",
46
+ "groups": ["AI-Fabrix-AI-Trust-Operators"]
47
+ },
48
+ {
49
+ "name": "External System Discoverer",
50
+ "value": "aifabrix-external-system-discoverer",
51
+ "description": "Discover business context for external systems via REST and MCP",
52
+ "groups": ["AI-Fabrix-External-System-Discoverers"]
53
+ }
54
+ ],
55
+ "permissionMatrix": [
56
+ {
57
+ "operationClass": "read",
58
+ "operationTypeHints": ["*.read", "help.read", "infra"],
59
+ "roles": [
60
+ "aifabrix-observer",
61
+ "aifabrix-external-system-discoverer",
62
+ "aifabrix-developer",
63
+ "aifabrix-deployment-admin",
64
+ "aifabrix-platform-admin"
65
+ ]
66
+ },
67
+ {
68
+ "operationClass": "plan",
69
+ "operationTypeHints": ["plan", "template"],
70
+ "roles": ["aifabrix-developer", "aifabrix-deployment-admin", "aifabrix-platform-admin"]
71
+ },
72
+ {
73
+ "operationClass": "validate",
74
+ "operationTypeHints": ["validate", "test"],
75
+ "roles": ["aifabrix-developer", "aifabrix-deployment-admin", "aifabrix-platform-admin"]
76
+ },
77
+ {
78
+ "operationClass": "apply",
79
+ "operationTypeHints": ["apply.dev"],
80
+ "roles": ["aifabrix-deployment-admin", "aifabrix-platform-admin"]
81
+ },
82
+ {
83
+ "operationClass": "certify",
84
+ "operationTypeHints": ["certify", "certify.read"],
85
+ "roles": [
86
+ "aifabrix-security-admin",
87
+ "aifabrix-compliance-admin",
88
+ "aifabrix-ai-trust-operator",
89
+ "aifabrix-platform-admin"
90
+ ]
91
+ },
92
+ {
93
+ "operationClass": "repository",
94
+ "operationTypeHints": ["repository", "repository.read"],
95
+ "roles": ["aifabrix-developer", "aifabrix-deployment-admin", "aifabrix-platform-admin"]
96
+ }
97
+ ]
98
+ }