@aifabrix/builder 2.41.0 → 2.42.1

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 (142) hide show
  1. package/.cursor/rules/docs-rules.mdc +30 -0
  2. package/README.md +2 -2
  3. package/integration/hubspot/README.md +11 -5
  4. package/integration/hubspot/application.json +54 -0
  5. package/integration/hubspot/create-hubspot.js +9 -136
  6. package/integration/hubspot/env.template +3 -4
  7. package/integration/hubspot/hubspot-datasource-company.json +343 -5
  8. package/integration/hubspot/hubspot-datasource-contact.json +413 -5
  9. package/integration/hubspot/hubspot-datasource-deal.json +341 -4
  10. package/integration/hubspot/hubspot-datasource-users.json +116 -0
  11. package/integration/hubspot/hubspot-deploy.json +1250 -108
  12. package/integration/hubspot/hubspot-system.json +15 -32
  13. package/integration/hubspot/test-dataplane-down-tests.js +17 -16
  14. package/integration/hubspot/test-dataplane-down.js +2 -2
  15. package/jest.config.manual.js +2 -1
  16. package/lib/api/external-test.api.js +111 -0
  17. package/lib/api/index.js +42 -19
  18. package/lib/api/pipeline.api.js +66 -120
  19. package/lib/api/types/pipeline.types.js +37 -0
  20. package/lib/api/wizard-platform.api.js +61 -0
  21. package/lib/api/wizard.api.js +36 -2
  22. package/lib/app/config.js +23 -11
  23. package/lib/app/index.js +5 -3
  24. package/lib/app/prompts.js +46 -31
  25. package/lib/app/readme.js +11 -4
  26. package/lib/app/run-env-compose.js +64 -1
  27. package/lib/app/run-helpers.js +1 -1
  28. package/lib/app/show-display.js +1 -1
  29. package/lib/cli/setup-app.js +45 -14
  30. package/lib/cli/setup-credential-deployment.js +31 -6
  31. package/lib/cli/setup-dev.js +27 -0
  32. package/lib/cli/setup-environment.js +12 -4
  33. package/lib/cli/setup-external-system.js +19 -4
  34. package/lib/cli/setup-infra.js +54 -14
  35. package/lib/cli/setup-utility.js +117 -21
  36. package/lib/commands/auth-config.js +22 -12
  37. package/lib/commands/credential-env.js +162 -0
  38. package/lib/commands/credential-list.js +17 -22
  39. package/lib/commands/credential-push.js +96 -0
  40. package/lib/commands/datasource.js +77 -6
  41. package/lib/commands/dev-init.js +39 -1
  42. package/lib/commands/repair-auth-config.js +99 -0
  43. package/lib/commands/repair-datasource-keys.js +208 -0
  44. package/lib/commands/repair-datasource.js +235 -0
  45. package/lib/commands/repair-env-template.js +348 -0
  46. package/lib/commands/repair-internal.js +85 -0
  47. package/lib/commands/repair-rbac.js +158 -0
  48. package/lib/commands/repair.js +518 -0
  49. package/lib/commands/secrets-set.js +6 -0
  50. package/lib/commands/test-e2e-external.js +165 -0
  51. package/lib/commands/up-dataplane.js +90 -6
  52. package/lib/commands/upload.js +71 -40
  53. package/lib/commands/wizard-core-helpers.js +230 -5
  54. package/lib/commands/wizard-core.js +68 -29
  55. package/lib/commands/wizard-dataplane.js +1 -1
  56. package/lib/commands/wizard-entity-selection.js +43 -0
  57. package/lib/commands/wizard-headless.js +49 -5
  58. package/lib/commands/wizard-helpers.js +7 -3
  59. package/lib/commands/wizard.js +93 -64
  60. package/lib/core/config.js +7 -1
  61. package/lib/core/secrets.js +33 -12
  62. package/lib/datasource/deploy.js +12 -3
  63. package/lib/datasource/test-e2e.js +219 -0
  64. package/lib/datasource/test-integration.js +154 -0
  65. package/lib/deployment/deployer.js +7 -5
  66. package/lib/external-system/download-helpers.js +3 -1
  67. package/lib/external-system/download.js +182 -204
  68. package/lib/external-system/generator.js +204 -56
  69. package/lib/external-system/test-execution.js +2 -1
  70. package/lib/external-system/test-system-level.js +73 -0
  71. package/lib/external-system/test.js +51 -18
  72. package/lib/generator/external-controller-manifest.js +29 -2
  73. package/lib/generator/external-schema-utils.js +4 -2
  74. package/lib/generator/external.js +10 -3
  75. package/lib/generator/index.js +4 -1
  76. package/lib/generator/split-readme.js +1 -0
  77. package/lib/generator/split-variables.js +7 -1
  78. package/lib/generator/split.js +194 -54
  79. package/lib/generator/wizard-prompts-secondary.js +326 -0
  80. package/lib/generator/wizard-prompts.js +105 -106
  81. package/lib/generator/wizard-readme.js +91 -0
  82. package/lib/generator/wizard.js +180 -179
  83. package/lib/infrastructure/compose.js +11 -1
  84. package/lib/infrastructure/index.js +11 -3
  85. package/lib/infrastructure/services.js +22 -11
  86. package/lib/schema/application-schema.json +8 -5
  87. package/lib/schema/external-datasource.schema.json +49 -26
  88. package/lib/schema/external-system.schema.json +82 -6
  89. package/lib/schema/wizard-config.schema.json +23 -1
  90. package/lib/utils/api.js +38 -10
  91. package/lib/utils/auth-headers.js +8 -7
  92. package/lib/utils/compose-generator.js +1 -1
  93. package/lib/utils/compose-handlebars-helpers.js +11 -0
  94. package/lib/utils/config-format-preference.js +51 -0
  95. package/lib/utils/config-format.js +36 -0
  96. package/lib/utils/configuration-env-resolver.js +179 -0
  97. package/lib/utils/credential-display.js +83 -0
  98. package/lib/utils/credential-secrets-env.js +115 -25
  99. package/lib/utils/dataplane-pipeline-warning.js +28 -0
  100. package/lib/utils/deployment-validation-helpers.js +4 -4
  101. package/lib/utils/dev-ca-install.js +139 -0
  102. package/lib/utils/env-copy.js +23 -3
  103. package/lib/utils/error-formatters/http-status-errors.js +0 -1
  104. package/lib/utils/error-formatters/permission-errors.js +0 -1
  105. package/lib/utils/error-formatters/validation-errors.js +0 -1
  106. package/lib/utils/external-readme.js +89 -30
  107. package/lib/utils/external-system-display.js +59 -1
  108. package/lib/utils/external-system-test-helpers.js +21 -8
  109. package/lib/utils/external-system-validators.js +3 -0
  110. package/lib/utils/file-upload.js +20 -50
  111. package/lib/utils/help-builder.js +1 -0
  112. package/lib/utils/infra-status.js +50 -44
  113. package/lib/utils/local-secrets.js +5 -5
  114. package/lib/utils/paths.js +85 -4
  115. package/lib/utils/secrets-canonical.js +93 -0
  116. package/lib/utils/secrets-generator.js +20 -0
  117. package/lib/utils/secrets-helpers.js +75 -89
  118. package/lib/utils/test-log-writer.js +56 -0
  119. package/lib/utils/token-manager.js +24 -32
  120. package/lib/validation/env-template-auth.js +157 -0
  121. package/lib/validation/env-template-kv.js +41 -0
  122. package/lib/validation/external-manifest-validator.js +25 -0
  123. package/lib/validation/external-system-auth-rules.js +86 -0
  124. package/lib/validation/validate-batch.js +149 -0
  125. package/lib/validation/validate-datasource-keys-api.js +33 -0
  126. package/lib/validation/validate-display.js +94 -16
  127. package/lib/validation/validate.js +25 -12
  128. package/lib/validation/validator.js +7 -9
  129. package/lib/validation/wizard-datasource-validation.js +50 -0
  130. package/package.json +7 -2
  131. package/templates/applications/dataplane/application.yaml +1 -1
  132. package/templates/applications/dataplane/env.template +5 -5
  133. package/templates/applications/dataplane/rbac.yaml +2 -2
  134. package/templates/applications/miso-controller/env.template +1 -1
  135. package/templates/external-system/README.md.hbs +75 -22
  136. package/templates/external-system/deploy.js.hbs +4 -2
  137. package/templates/external-system/external-datasource.yaml.hbs +217 -0
  138. package/templates/external-system/external-system.json.hbs +1 -18
  139. package/templates/infra/compose.yaml.hbs +6 -0
  140. package/templates/python/docker-compose.hbs +4 -4
  141. package/templates/typescript/docker-compose.hbs +4 -4
  142. package/integration/hubspot/application.yaml +0 -37
@@ -91,7 +91,10 @@
91
91
  }
92
92
  }
93
93
  },
94
- "required": ["id", "properties"]
94
+ "required": [
95
+ "id",
96
+ "properties"
97
+ ]
95
98
  },
96
99
  "fieldMappings": {
97
100
  "dimensions": {
@@ -159,10 +162,347 @@
159
162
  "description": "Last modification timestamp",
160
163
  "indexed": false
161
164
  }
165
+ },
166
+ "compiledAttributes": {
167
+ "id": {
168
+ "raw_path": [
169
+ "id"
170
+ ],
171
+ "functions": [],
172
+ "type": "string",
173
+ "required": false,
174
+ "description": "Unique company identifier",
175
+ "indexed": true
176
+ },
177
+ "name": {
178
+ "raw_path": [
179
+ "properties",
180
+ "name",
181
+ "value"
182
+ ],
183
+ "functions": [
184
+ {
185
+ "name": "trim",
186
+ "args": []
187
+ }
188
+ ],
189
+ "type": "string",
190
+ "required": false,
191
+ "description": "Company name",
192
+ "indexed": false
193
+ },
194
+ "domain": {
195
+ "raw_path": [
196
+ "properties",
197
+ "domain",
198
+ "value"
199
+ ],
200
+ "functions": [
201
+ {
202
+ "name": "toLower",
203
+ "args": []
204
+ },
205
+ {
206
+ "name": "trim",
207
+ "args": []
208
+ }
209
+ ],
210
+ "type": "string",
211
+ "required": false,
212
+ "description": "Company domain for ABAC filtering",
213
+ "indexed": false
214
+ },
215
+ "country": {
216
+ "raw_path": [
217
+ "properties",
218
+ "country",
219
+ "value"
220
+ ],
221
+ "functions": [
222
+ {
223
+ "name": "toUpper",
224
+ "args": []
225
+ },
226
+ {
227
+ "name": "trim",
228
+ "args": []
229
+ }
230
+ ],
231
+ "type": "string",
232
+ "required": false,
233
+ "description": "Country code for ABAC filtering",
234
+ "indexed": false
235
+ },
236
+ "city": {
237
+ "raw_path": [
238
+ "properties",
239
+ "city",
240
+ "value"
241
+ ],
242
+ "functions": [
243
+ {
244
+ "name": "trim",
245
+ "args": []
246
+ }
247
+ ],
248
+ "type": "string",
249
+ "required": false,
250
+ "description": "City name",
251
+ "indexed": false
252
+ },
253
+ "industry": {
254
+ "raw_path": [
255
+ "properties",
256
+ "industry",
257
+ "value"
258
+ ],
259
+ "functions": [
260
+ {
261
+ "name": "trim",
262
+ "args": []
263
+ }
264
+ ],
265
+ "type": "string",
266
+ "required": false,
267
+ "description": "Industry classification",
268
+ "indexed": false
269
+ },
270
+ "website": {
271
+ "raw_path": [
272
+ "properties",
273
+ "website",
274
+ "value"
275
+ ],
276
+ "functions": [
277
+ {
278
+ "name": "trim",
279
+ "args": []
280
+ }
281
+ ],
282
+ "type": "string",
283
+ "required": false,
284
+ "description": "Company website URL",
285
+ "indexed": false
286
+ },
287
+ "phone": {
288
+ "raw_path": [
289
+ "properties",
290
+ "phone",
291
+ "value"
292
+ ],
293
+ "functions": [
294
+ {
295
+ "name": "trim",
296
+ "args": []
297
+ }
298
+ ],
299
+ "type": "string",
300
+ "required": false,
301
+ "description": "Phone number",
302
+ "indexed": false
303
+ },
304
+ "createdAt": {
305
+ "raw_path": [
306
+ "properties",
307
+ "createdate",
308
+ "value"
309
+ ],
310
+ "functions": [],
311
+ "type": "string",
312
+ "required": false,
313
+ "description": "Creation timestamp",
314
+ "indexed": false
315
+ },
316
+ "updatedAt": {
317
+ "raw_path": [
318
+ "properties",
319
+ "hs_lastmodifieddate",
320
+ "value"
321
+ ],
322
+ "functions": [],
323
+ "type": "string",
324
+ "required": false,
325
+ "description": "Last modification timestamp",
326
+ "indexed": false
327
+ }
328
+ },
329
+ "compiledFields": {
330
+ "id": {
331
+ "raw_path": [
332
+ "id"
333
+ ],
334
+ "functions": [],
335
+ "type": "string",
336
+ "required": false,
337
+ "description": "Unique company identifier",
338
+ "indexed": true
339
+ },
340
+ "name": {
341
+ "raw_path": [
342
+ "properties",
343
+ "name",
344
+ "value"
345
+ ],
346
+ "functions": [
347
+ {
348
+ "name": "trim",
349
+ "args": []
350
+ }
351
+ ],
352
+ "type": "string",
353
+ "required": false,
354
+ "description": "Company name",
355
+ "indexed": false
356
+ },
357
+ "domain": {
358
+ "raw_path": [
359
+ "properties",
360
+ "domain",
361
+ "value"
362
+ ],
363
+ "functions": [
364
+ {
365
+ "name": "toLower",
366
+ "args": []
367
+ },
368
+ {
369
+ "name": "trim",
370
+ "args": []
371
+ }
372
+ ],
373
+ "type": "string",
374
+ "required": false,
375
+ "description": "Company domain for ABAC filtering",
376
+ "indexed": false
377
+ },
378
+ "country": {
379
+ "raw_path": [
380
+ "properties",
381
+ "country",
382
+ "value"
383
+ ],
384
+ "functions": [
385
+ {
386
+ "name": "toUpper",
387
+ "args": []
388
+ },
389
+ {
390
+ "name": "trim",
391
+ "args": []
392
+ }
393
+ ],
394
+ "type": "string",
395
+ "required": false,
396
+ "description": "Country code for ABAC filtering",
397
+ "indexed": false
398
+ },
399
+ "city": {
400
+ "raw_path": [
401
+ "properties",
402
+ "city",
403
+ "value"
404
+ ],
405
+ "functions": [
406
+ {
407
+ "name": "trim",
408
+ "args": []
409
+ }
410
+ ],
411
+ "type": "string",
412
+ "required": false,
413
+ "description": "City name",
414
+ "indexed": false
415
+ },
416
+ "industry": {
417
+ "raw_path": [
418
+ "properties",
419
+ "industry",
420
+ "value"
421
+ ],
422
+ "functions": [
423
+ {
424
+ "name": "trim",
425
+ "args": []
426
+ }
427
+ ],
428
+ "type": "string",
429
+ "required": false,
430
+ "description": "Industry classification",
431
+ "indexed": false
432
+ },
433
+ "website": {
434
+ "raw_path": [
435
+ "properties",
436
+ "website",
437
+ "value"
438
+ ],
439
+ "functions": [
440
+ {
441
+ "name": "trim",
442
+ "args": []
443
+ }
444
+ ],
445
+ "type": "string",
446
+ "required": false,
447
+ "description": "Company website URL",
448
+ "indexed": false
449
+ },
450
+ "phone": {
451
+ "raw_path": [
452
+ "properties",
453
+ "phone",
454
+ "value"
455
+ ],
456
+ "functions": [
457
+ {
458
+ "name": "trim",
459
+ "args": []
460
+ }
461
+ ],
462
+ "type": "string",
463
+ "required": false,
464
+ "description": "Phone number",
465
+ "indexed": false
466
+ },
467
+ "createdAt": {
468
+ "raw_path": [
469
+ "properties",
470
+ "createdate",
471
+ "value"
472
+ ],
473
+ "functions": [],
474
+ "type": "string",
475
+ "required": false,
476
+ "description": "Creation timestamp",
477
+ "indexed": false
478
+ },
479
+ "updatedAt": {
480
+ "raw_path": [
481
+ "properties",
482
+ "hs_lastmodifieddate",
483
+ "value"
484
+ ],
485
+ "functions": [],
486
+ "type": "string",
487
+ "required": false,
488
+ "description": "Last modification timestamp",
489
+ "indexed": false
490
+ }
162
491
  }
163
492
  },
164
493
  "exposed": {
165
- "attributes": ["id", "name", "domain", "country", "city", "industry", "website", "phone", "createdAt", "updatedAt"],
494
+ "attributes": [
495
+ "id",
496
+ "name",
497
+ "domain",
498
+ "country",
499
+ "city",
500
+ "industry",
501
+ "website",
502
+ "phone",
503
+ "createdAt",
504
+ "updatedAt"
505
+ ],
166
506
  "description": "Exposed fields for HubSpot companies"
167
507
  },
168
508
  "openapi": {
@@ -198,6 +538,4 @@
198
538
  },
199
539
  "autoRbac": true
200
540
  }
201
- }
202
-
203
-
541
+ }