@aifabrix/builder 2.33.0 → 2.33.3

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 (50) hide show
  1. package/README.md +13 -0
  2. package/integration/hubspot/README.md +7 -7
  3. package/lib/api/index.js +6 -2
  4. package/lib/app/deploy-config.js +161 -0
  5. package/lib/app/deploy.js +28 -153
  6. package/lib/app/register.js +6 -5
  7. package/lib/app/run-helpers.js +23 -17
  8. package/lib/cli.js +31 -1
  9. package/lib/commands/logout.js +3 -4
  10. package/lib/commands/up-common.js +72 -0
  11. package/lib/commands/up-dataplane.js +109 -0
  12. package/lib/commands/up-miso.js +134 -0
  13. package/lib/core/config.js +32 -9
  14. package/lib/core/secrets-docker-env.js +88 -0
  15. package/lib/core/secrets.js +142 -115
  16. package/lib/datasource/deploy.js +31 -3
  17. package/lib/datasource/list.js +102 -15
  18. package/lib/infrastructure/helpers.js +82 -1
  19. package/lib/infrastructure/index.js +2 -0
  20. package/lib/schema/env-config.yaml +7 -0
  21. package/lib/utils/api.js +70 -2
  22. package/lib/utils/compose-generator.js +13 -13
  23. package/lib/utils/config-paths.js +13 -0
  24. package/lib/utils/device-code.js +2 -2
  25. package/lib/utils/env-endpoints.js +2 -5
  26. package/lib/utils/env-map.js +4 -5
  27. package/lib/utils/error-formatters/network-errors.js +13 -3
  28. package/lib/utils/parse-image-ref.js +27 -0
  29. package/lib/utils/paths.js +28 -4
  30. package/lib/utils/secrets-generator.js +34 -12
  31. package/lib/utils/secrets-helpers.js +1 -2
  32. package/lib/utils/token-manager-refresh.js +5 -0
  33. package/package.json +1 -1
  34. package/templates/applications/dataplane/Dockerfile +16 -0
  35. package/templates/applications/dataplane/README.md +205 -0
  36. package/templates/applications/dataplane/env.template +143 -0
  37. package/templates/applications/dataplane/rbac.yaml +283 -0
  38. package/templates/applications/dataplane/variables.yaml +143 -0
  39. package/templates/applications/keycloak/Dockerfile +1 -1
  40. package/templates/applications/keycloak/README.md +193 -0
  41. package/templates/applications/keycloak/variables.yaml +5 -6
  42. package/templates/applications/miso-controller/Dockerfile +8 -8
  43. package/templates/applications/miso-controller/README.md +369 -0
  44. package/templates/applications/miso-controller/env.template +114 -6
  45. package/templates/applications/miso-controller/rbac.yaml +74 -0
  46. package/templates/applications/miso-controller/variables.yaml +93 -5
  47. package/templates/github/ci.yaml.hbs +44 -1
  48. package/templates/github/release.yaml.hbs +44 -0
  49. package/templates/infra/compose.yaml.hbs +2 -1
  50. package/templates/applications/miso-controller/test.yaml +0 -1
@@ -0,0 +1,205 @@
1
+ # Dataplane Builder
2
+
3
+ Build, run, and deploy Dataplane using `@aifabrix/builder`.
4
+
5
+ ---
6
+
7
+ ## Quick Start
8
+
9
+ ### 1. Install
10
+
11
+ ```bash
12
+ npm install -g @aifabrix/builder
13
+ ```
14
+
15
+ ### 2. First Time Setup
16
+
17
+ ```bash
18
+ # Check your environment
19
+ aifabrix doctor
20
+
21
+ # Login to controller (change your own port)
22
+ aifabrix login --method device --environment dev --controller http://localhost:3100
23
+
24
+ # Register your application (gets you credentials automatically)
25
+ aifabrix app register dataplane
26
+ ```
27
+
28
+ ### 3. Build & Run Locally
29
+
30
+ ```bash
31
+ # Build the Docker image
32
+ aifabrix build dataplane
33
+
34
+ # Run locally
35
+ aifabrix run dataplane
36
+ ```
37
+
38
+ **Access your app:** <http://localhost:3111> (host port from `build.localPort`; container uses 3001)
39
+
40
+ ---
41
+
42
+ ## Testing dataplane (use DATAPLANE_TEST_GUIDE)
43
+
44
+ **Use the builder's Dataplane Test Guide** for auth, health, wizard, external systems, and pipeline checks:
45
+
46
+ - **In aifabrix-builder:** `integration/hubspot/DATAPLANE_TEST_GUIDE.md`
47
+ - **Dataplane base URL:** `http://localhost:3111`
48
+ - **Controller:** `http://localhost:3110` (login, token)
49
+
50
+ The guide defines: token setup, `/health`, wizard API, external systems API, pipeline API, and quick checks.
51
+ Keep `build.localPort` in `variables.yaml` at **3111** so it matches that guide.
52
+
53
+ **View logs:**
54
+
55
+ ```bash
56
+ docker logs aifabrix-dataplane -f
57
+ ```
58
+
59
+ **Stop:**
60
+
61
+ ```bash
62
+ docker stop aifabrix-dataplane
63
+ ```
64
+
65
+ ### 4. Deploy to Azure
66
+
67
+ ```bash
68
+ # Build with version tag
69
+ aifabrix build dataplane --tag v1.0.0
70
+
71
+ # Push to registry
72
+ aifabrix push dataplane --registry myacr.azurecr.io --tag "v1.0.0,latest"
73
+
74
+ # Deploy to miso-controller
75
+ aifabrix deploy dataplane
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Using miso-client
81
+
82
+ > [miso-client](https://github.com/esystemsdev/aifabrix-miso-client)
83
+
84
+ After registering your app, you automatically get credentials in your secret file. Use miso-client for login, RBAC, audit logs, etc.
85
+
86
+ **Rotate credentials if needed:**
87
+
88
+ ```bash
89
+ aifabrix app rotate-secret dataplane
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Reference
95
+
96
+ ### Common Commands
97
+
98
+ ```bash
99
+ # Development
100
+ aifabrix build dataplane # Build app
101
+ aifabrix run dataplane # Run locally
102
+ aifabrix dockerfile dataplane --force # Generate Dockerfile
103
+ aifabrix resolve dataplane # Generate .env file
104
+
105
+ # Deployment
106
+ aifabrix json dataplane # Preview deployment JSON
107
+ aifabrix genkey dataplane # Generate deployment key
108
+ aifabrix push dataplane --registry myacr.azurecr.io # Push to ACR
109
+ aifabrix deploy dataplane --controller <url> # Deploy to Azure
110
+
111
+ # Management
112
+ aifabrix app register dataplane
113
+ aifabrix app list
114
+ aifabrix app rotate-secret dataplane
115
+
116
+ # Utilities
117
+ aifabrix doctor # Check environment
118
+ aifabrix login --method device # Login
119
+ aifabrix --help # Get help
120
+ ```
121
+
122
+ ### Build Options
123
+
124
+ ```bash
125
+ aifabrix build dataplane --tag v1.0.0 # Custom tag
126
+ aifabrix build dataplane --force-template # Force template regeneration
127
+ aifabrix build dataplane --language typescript # Override language detection
128
+ ```
129
+
130
+ ### Run Options
131
+
132
+ ```bash
133
+ aifabrix run dataplane --port 3000 # Custom port
134
+ aifabrix run dataplane --debug # Debug output
135
+ ```
136
+
137
+ ### Push Options
138
+
139
+ ```bash
140
+ aifabrix push dataplane --registry myacr.azurecr.io --tag v1.0.0
141
+ aifabrix push dataplane --registry myacr.azurecr.io --tag "v1.0.0,latest,stable"
142
+ ```
143
+
144
+ ### Deploy Options
145
+
146
+ ```bash
147
+ aifabrix deploy dataplane
148
+ aifabrix deploy dataplane --no-poll
149
+ ```
150
+
151
+ ### Login Methods
152
+
153
+ ```bash
154
+ # Device code flow
155
+ aifabrix login --method device --environment dev
156
+
157
+ # Credentials (reads from secrets.local.yaml)
158
+ aifabrix login --method credentials --app dataplane --environment dev
159
+
160
+ # Explicit credentials
161
+ aifabrix login --method credentials --app dataplane --client-id $CLIENT_ID --client-secret $CLIENT_SECRET --environment dev
162
+ ```
163
+
164
+ ### Environment Variables
165
+
166
+ ```bash
167
+ export AIFABRIX_HOME=/custom/path
168
+ export AIFABRIX_SECRETS=/path/to/secrets.yaml
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Troubleshooting
174
+
175
+ - **"Docker not running"** → Start Docker Desktop
176
+ - **"Not logged in"** → Run `aifabrix login` first
177
+ - **"Port already in use"** → Use `--port` flag or change `build.localPort` in `variables.yaml` (default: 3111, must match DATAPLANE_TEST_GUIDE)
178
+ - **"Authentication failed"** → Run `aifabrix login` again
179
+ - **"Build fails"** → Check Docker is running and `variables.yaml` → `build.secrets` path is correct
180
+ - **"Can't connect"** → Verify infrastructure is running and PostgreSQL is accessible
181
+
182
+ **Regenerate files:**
183
+
184
+ ```bash
185
+ aifabrix resolve dataplane --force
186
+ aifabrix json dataplane
187
+ aifabrix genkey dataplane
188
+ ```
189
+
190
+ ---
191
+
192
+ ## Prerequisites
193
+
194
+ - `@aifabrix/builder` installed globally
195
+ - Docker Desktop running
196
+ - Azure CLI installed (for push command)
197
+ - Authenticated with controller (for deploy command)
198
+ - PostgreSQL database (ensure infrastructure is running)
199
+ - Redis (ensure infrastructure is running)
200
+ - File storage configured
201
+ - Authentication/RBAC configured
202
+
203
+ ---
204
+
205
+ **Application**: dataplane | **Port**: 3111 (local) / 3001 (container) | **Registry**: myacr.azurecr.io | **Image**: aifabrix/dataplane:latest
@@ -0,0 +1,143 @@
1
+ # Environment Variables Template
2
+ # Use kv:// references for secrets (resolved from .aifabrix/secrets.yaml)
3
+ # Use ${VAR} for environment-specific values
4
+
5
+ # =============================================================================
6
+ # APPLICATION ENVIRONMENT
7
+ # =============================================================================
8
+
9
+ PORT=3001
10
+ ENVIRONMENT=development
11
+ DEBUG=false
12
+ LOG_LEVEL=INFO
13
+ LOG_FORMAT=json
14
+ LOG_FILE_PATH=/mnt/data/logs/app.log
15
+ LOCAL_MODE=false
16
+
17
+ # When API_KEY is set, a matching Bearer token bypasses OAuth2 validation
18
+ API_KEY=kv://miso-controller-api-key-secretKeyVault
19
+
20
+ # API Configuration
21
+ API_V1_STR=/api/v1
22
+ VERSION=1.6.0
23
+
24
+ # CORS Configuration
25
+ ALLOWED_ORIGINS=http://localhost:*
26
+ IDE_CORS_ORIGINS=
27
+
28
+ # Encryption Configuration
29
+ ENCRYPTION_KEY=kv://secrets-encryptionKeyVault
30
+
31
+ # =============================================================================
32
+ # DATABASE CONFIGURATION
33
+ # =============================================================================
34
+
35
+ DATABASE_URL=kv://databases-dataplane-0-urlKeyVault
36
+ DB_0_PASSWORD=kv://databases-dataplane-0-passwordKeyVault
37
+
38
+ # Vector and document store DB: chunks, embeddings, vector indexes (pgvector).
39
+ # Binaries path: config.processing.fileStoragePath or /data/documents.
40
+ VECTOR_DATABASE_URL=kv://databases-dataplane-1-urlKeyVault
41
+ DB_1_PASSWORD=kv://databases-dataplane-1-passwordKeyVault
42
+
43
+ # Logs Database Configuration (for execution, audit, ABAC traces)
44
+ LOGS_DATABASE_URL=kv://databases-dataplane-2-urlKeyVault
45
+ DB_2_PASSWORD=kv://databases-dataplane-2-passwordKeyVault
46
+
47
+ # Records Database Configuration (for external records storage)
48
+ RECORDS_DATABASE_URL=kv://databases-dataplane-3-urlKeyVault
49
+ DB_3_PASSWORD=kv://databases-dataplane-3-passwordKeyVault
50
+
51
+ # =============================================================================
52
+ # REDIS CONFIGURATION
53
+ # =============================================================================
54
+ # Connects to external redis from aifabrix-setup
55
+
56
+ REDIS_URL=kv://redis-url
57
+
58
+ # =============================================================================
59
+ # CACHE CONFIGURATION
60
+ # =============================================================================
61
+
62
+ CACHE_ENABLED=true
63
+ CACHE_CIP_EXECUTION_TTL=1800
64
+ CACHE_METADATA_FILTER_TTL=3600
65
+
66
+ # =============================================================================
67
+ # AUTHENTICATION CONFIGURATION
68
+ # =============================================================================
69
+
70
+ # MISO Application Client Credentials (per application)
71
+ MISO_CLIENTID=kv://dataplane-client-idKeyVault
72
+ MISO_CLIENTSECRET=kv://dataplane-client-secretKeyVault
73
+
74
+ # Keycloak Configuration (for OAuth2 endpoints)
75
+ KEYCLOAK_SERVER_URL=kv://keycloak-server-urlKeyVault
76
+ KEYCLOAK_REALM=aifabrix
77
+
78
+ # MISO Controller URL
79
+ MISO_CONTROLLER_URL=http://${MISO_HOST}:${MISO_PORT}
80
+
81
+ # =============================================================================
82
+ # AI/LLM CONFIGURATION
83
+ # =============================================================================
84
+
85
+ # OpenAI Configuration
86
+ OPENAI_API_KEY=kv://secrets-openaiApiKeyVault
87
+
88
+ # Azure OpenAI Configuration
89
+ AZURE_OPENAI_ENDPOINT=
90
+ AZURE_OPENAI_API_KEY=kv://secrets-azureOpenaiApiKeyVault
91
+ AZURE_OPENAI_API_VERSION=2024-02-15-preview
92
+ AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4o
93
+
94
+ # =============================================================================
95
+ # AUDIT CONFIGURATION
96
+ # =============================================================================
97
+
98
+ # General Audit Settings
99
+ AUDIT_ENABLED=true
100
+ MISO_LOG_FORWARD_ERRORS=true
101
+ AUTH_AUDIT_ENABLED=true
102
+
103
+ # ABAC Audit Configuration
104
+ ABAC_AUDIT_ENABLED=true
105
+ ABAC_AUDIT_DETAIL_LEVEL=summary
106
+ ABAC_EXPLAIN_MODE_ENABLED=false
107
+ ABAC_PERFORMANCE_THRESHOLD_MS=1000
108
+
109
+ # RBAC Audit Configuration
110
+ RBAC_AUDIT_ENABLED=true
111
+ RBAC_AUDIT_DETAIL_LEVEL=summary
112
+ RBAC_EXPLAIN_MODE_ENABLED=false
113
+
114
+ # =============================================================================
115
+ # OBSERVABILITY CONFIGURATION
116
+ # =============================================================================
117
+
118
+ # OpenTelemetry Configuration
119
+ OPENTELEMETRY_ENABLED=false
120
+ OPENTELEMETRY_ENDPOINT=
121
+
122
+ # =============================================================================
123
+ # CIP EXECUTION CONFIGURATION
124
+ # =============================================================================
125
+ # These control CIP (Composable Integration Pipeline) execution behavior
126
+
127
+ CIP_EXECUTION_MAX_RESPONSE_SIZE_MB=100.0
128
+ CIP_EXECUTION_MAX_RECORDS=100000
129
+ CIP_EXECUTION_OPERATION_TIMEOUT=300.0
130
+ CIP_EXECUTION_HTTP_TIMEOUT=30.0
131
+ CIP_EXECUTION_MAX_RETRIES=3
132
+ CIP_EXECUTION_RETRY_BACKOFF_FACTOR=2.0
133
+ CIP_EXECUTION_RETRY_INITIAL_DELAY=1.0
134
+
135
+ # Circuit Breaker Configuration
136
+ CIP_EXECUTION_CIRCUIT_BREAKER_FAILURE_THRESHOLD=5
137
+ CIP_EXECUTION_CIRCUIT_BREAKER_TIME_WINDOW=60
138
+ CIP_EXECUTION_CIRCUIT_BREAKER_SUCCESS_THRESHOLD=2
139
+ CIP_EXECUTION_CIRCUIT_BREAKER_HALF_OPEN_TIMEOUT=30
140
+
141
+ # Rate Limiting Configuration
142
+ CIP_EXECUTION_RATE_LIMIT_REQUESTS_PER_SECOND=10.0
143
+ CIP_EXECUTION_RATE_LIMIT_BURST_SIZE=20
@@ -0,0 +1,283 @@
1
+ # AI Fabrix Dataplane - RBAC Configuration
2
+ # Roles and permissions for this application
3
+ #
4
+ # Note: Environment access is managed by MisoClient, not by per-environment roles.
5
+ # MisoClient validates environment access automatically based on user/application permissions.
6
+
7
+ roles:
8
+ - name: "AI Fabrix Platform Admin"
9
+ value: "aifabrix-platform-admin"
10
+ description: "Full platform infrastructure management and enterprise controller access"
11
+ groups: ["AI-Fabrix-Platform-Admins"]
12
+
13
+ - name: "AI Fabrix Security Admin"
14
+ value: "aifabrix-security-admin"
15
+ description: "Security and compliance management for enterprise controller"
16
+ groups: ["AI-Fabrix-Security-Admins"]
17
+
18
+ - name: "AI Fabrix Deployment Admin"
19
+ value: "aifabrix-deployment-admin"
20
+ description: "Application deployment orchestration and environment management"
21
+ groups: ["AI-Fabrix-Deployment-Admins"]
22
+
23
+ - name: "AI Fabrix Compliance Admin"
24
+ value: "aifabrix-compliance-admin"
25
+ description: "ISO 27001 compliance monitoring and audit management"
26
+ groups: ["AI-Fabrix-Compliance-Admins"]
27
+
28
+ - name: "AI Fabrix Developer"
29
+ value: "aifabrix-developer"
30
+ description: "Developer access to deploy applications via GitHub Actions"
31
+ groups: ["AI-Fabrix-Developers"]
32
+
33
+ - name: "AI Fabrix Observer"
34
+ value: "aifabrix-observer"
35
+ description: "Read-only access to monitoring, logs, and compliance reports"
36
+ groups: ["AI-Fabrix-Observers"]
37
+
38
+ permissions:
39
+ # Credential management
40
+ - name: "credential:create"
41
+ roles: ["aifabrix-platform-admin"]
42
+ description: "Create credentials"
43
+
44
+ - name: "credential:read"
45
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-compliance-admin", "aifabrix-observer"]
46
+ description: "Read credentials"
47
+
48
+ - name: "credential:update"
49
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin"]
50
+ description: "Update credentials"
51
+
52
+ - name: "credential:delete"
53
+ roles: ["aifabrix-platform-admin"]
54
+ description: "Delete credentials"
55
+
56
+ # External data source management
57
+ - name: "external-data-source:create"
58
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
59
+ description: "Create external data sources"
60
+
61
+ - name: "external-data-source:read"
62
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
63
+ description: "Read external data sources"
64
+
65
+ - name: "external-data-source:update"
66
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
67
+ description: "Update external data sources"
68
+
69
+ - name: "external-data-source:delete"
70
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
71
+ description: "Delete external data sources"
72
+
73
+ - name: "external-data-source:sync"
74
+ roles: ["aifabrix-platform-admin", "aifabrix-deployment-admin", "aifabrix-developer"]
75
+ description: "Sync external data sources"
76
+
77
+ # External system management
78
+ - name: "external-system:create"
79
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
80
+ description: "Create external systems"
81
+
82
+ - name: "external-system:read"
83
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
84
+ description: "Read external systems"
85
+
86
+ - name: "external-system:update"
87
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
88
+ description: "Update external systems"
89
+
90
+ - name: "external-system:delete"
91
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
92
+ description: "Delete external systems"
93
+
94
+ # Document storage management
95
+ - name: "document-storage:create"
96
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
97
+ description: "Create document storage"
98
+
99
+ - name: "document-storage:read"
100
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
101
+ description: "Read document storage"
102
+
103
+ - name: "document-storage:update"
104
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
105
+ description: "Update document storage"
106
+
107
+ - name: "document-storage:delete"
108
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
109
+ description: "Delete document storage"
110
+
111
+ - name: "document-storage:process"
112
+ roles: ["aifabrix-platform-admin", "aifabrix-deployment-admin", "aifabrix-developer"]
113
+ description: "Process documents"
114
+
115
+ # Integration template management
116
+ - name: "integration-template:create"
117
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
118
+ description: "Create integration templates"
119
+
120
+ - name: "integration-template:read"
121
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
122
+ description: "Read integration templates"
123
+
124
+ - name: "integration-template:update"
125
+ roles: ["aifabrix-platform-admin", "aifabrix-deployment-admin", "aifabrix-developer"]
126
+ description: "Update integration templates"
127
+
128
+ - name: "integration-template:delete"
129
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
130
+ description: "Delete integration templates"
131
+
132
+ # Generic dataplane operations
133
+ - name: "dataplane:read"
134
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
135
+ description: "Read dataplane data"
136
+
137
+ - name: "dataplane:write"
138
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
139
+ description: "Write dataplane data"
140
+
141
+ - name: "dataplane:delete"
142
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
143
+ description: "Delete dataplane data"
144
+
145
+ - name: "dataplane:process"
146
+ roles: ["aifabrix-platform-admin", "aifabrix-deployment-admin", "aifabrix-developer"]
147
+ description: "Process dataplane operations"
148
+
149
+ # External data source publishing
150
+ - name: "external-data-source:publish"
151
+ roles: ["aifabrix-platform-admin", "aifabrix-deployment-admin", "aifabrix-developer"]
152
+ description: "Publish external data sources"
153
+
154
+ # External system publishing
155
+ - name: "external-system:publish"
156
+ roles: ["aifabrix-platform-admin", "aifabrix-deployment-admin", "aifabrix-developer"]
157
+ description: "Publish external systems"
158
+
159
+ # Document record management
160
+ - name: "document-record:create"
161
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
162
+ description: "Create document records"
163
+
164
+ - name: "document-record:read"
165
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
166
+ description: "Read document records"
167
+
168
+ - name: "document-record:update"
169
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
170
+ description: "Update document records"
171
+
172
+ - name: "document-record:delete"
173
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
174
+ description: "Delete document records"
175
+
176
+ - name: "document-record:write"
177
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
178
+ description: "Write document records"
179
+
180
+ - name: "document-record:validate"
181
+ roles: ["aifabrix-platform-admin", "aifabrix-deployment-admin", "aifabrix-developer"]
182
+ description: "Validate document records"
183
+
184
+ - name: "document-record:approve"
185
+ roles: ["aifabrix-platform-admin", "aifabrix-compliance-admin"]
186
+ description: "Approve document records"
187
+
188
+ # External record management
189
+ - name: "external-record:create"
190
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
191
+ description: "Create external records"
192
+
193
+ - name: "external-record:read"
194
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
195
+ description: "Read external records"
196
+
197
+ - name: "external-record:update"
198
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
199
+ description: "Update external records"
200
+
201
+ - name: "external-record:delete"
202
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
203
+ description: "Delete external records"
204
+
205
+ # External data access grant management
206
+ - name: "external-data-access-grant:create"
207
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
208
+ description: "Create external data access grants"
209
+
210
+ - name: "external-data-access-grant:read"
211
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
212
+ description: "Read external data access grants"
213
+
214
+ - name: "external-data-access-grant:update"
215
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
216
+ description: "Update external data access grants"
217
+
218
+ - name: "external-data-access-grant:delete"
219
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
220
+ description: "Delete external data access grants"
221
+
222
+ # User and group management
223
+ - name: "user:read"
224
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-compliance-admin", "aifabrix-observer"]
225
+ description: "Read user information"
226
+
227
+ - name: "group:read"
228
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-compliance-admin", "aifabrix-observer"]
229
+ description: "Read group information"
230
+
231
+ # OpenAPI file management
232
+ - name: "openapi-file:read"
233
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
234
+ description: "Read OpenAPI files"
235
+
236
+ - name: "openapi-file:update"
237
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
238
+ description: "Update OpenAPI files"
239
+
240
+ - name: "openapi-file:delete"
241
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
242
+ description: "Delete OpenAPI files"
243
+
244
+ # External data source write operations
245
+ - name: "external-data-source:write"
246
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
247
+ description: "Write external data source data"
248
+
249
+ # Record relation management
250
+ - name: "record-relation:create"
251
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
252
+ description: "Create record relations"
253
+
254
+ - name: "record-relation:read"
255
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
256
+ description: "Read record relations"
257
+
258
+ - name: "record-relation:delete"
259
+ roles: ["aifabrix-platform-admin", "aifabrix-developer"]
260
+ description: "Delete record relations"
261
+
262
+ # Audit operations
263
+ - name: "audit:read"
264
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-compliance-admin", "aifabrix-observer"]
265
+ description: "Read audit logs and execution history"
266
+
267
+ # Search operations
268
+ - name: "document:search"
269
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
270
+ description: "Search documents"
271
+
272
+ - name: "record:search"
273
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-deployment-admin", "aifabrix-compliance-admin", "aifabrix-developer", "aifabrix-observer"]
274
+ description: "Search records"
275
+
276
+ # IDE simulation operations
277
+ - name: "dataplane:abac-simulate"
278
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-developer"]
279
+ description: "Simulate ABAC policy evaluation in IDE"
280
+
281
+ - name: "dataplane:rbac-simulate"
282
+ roles: ["aifabrix-platform-admin", "aifabrix-security-admin", "aifabrix-developer"]
283
+ description: "Simulate RBAC policy evaluation in IDE"