@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
@@ -128,7 +128,10 @@
128
128
  }
129
129
  }
130
130
  },
131
- "required": ["id", "properties"]
131
+ "required": [
132
+ "id",
133
+ "properties"
134
+ ]
132
135
  },
133
136
  "fieldMappings": {
134
137
  "dimensions": {
@@ -208,10 +211,345 @@
208
211
  "description": "Last modification timestamp",
209
212
  "indexed": false
210
213
  }
214
+ },
215
+ "compiledAttributes": {
216
+ "id": {
217
+ "raw_path": [
218
+ "id"
219
+ ],
220
+ "functions": [],
221
+ "type": "string",
222
+ "required": false,
223
+ "description": "Unique deal identifier",
224
+ "indexed": true
225
+ },
226
+ "dealName": {
227
+ "raw_path": [
228
+ "properties",
229
+ "dealname",
230
+ "value"
231
+ ],
232
+ "functions": [
233
+ {
234
+ "name": "trim",
235
+ "args": []
236
+ }
237
+ ],
238
+ "type": "string",
239
+ "required": false,
240
+ "description": "Deal name",
241
+ "indexed": false
242
+ },
243
+ "amount": {
244
+ "raw_path": [
245
+ "properties",
246
+ "amount",
247
+ "value"
248
+ ],
249
+ "functions": [],
250
+ "type": "string",
251
+ "required": false,
252
+ "description": "Deal amount",
253
+ "indexed": false
254
+ },
255
+ "currency": {
256
+ "raw_path": [
257
+ "properties",
258
+ "deal_currency_code",
259
+ "value"
260
+ ],
261
+ "functions": [
262
+ {
263
+ "name": "toUpper",
264
+ "args": []
265
+ },
266
+ {
267
+ "name": "trim",
268
+ "args": []
269
+ }
270
+ ],
271
+ "type": "string",
272
+ "required": false,
273
+ "description": "Currency code",
274
+ "indexed": false
275
+ },
276
+ "stage": {
277
+ "raw_path": [
278
+ "properties",
279
+ "dealstage",
280
+ "value"
281
+ ],
282
+ "functions": [
283
+ {
284
+ "name": "trim",
285
+ "args": []
286
+ }
287
+ ],
288
+ "type": "string",
289
+ "required": false,
290
+ "description": "Deal stage for ABAC filtering",
291
+ "indexed": false
292
+ },
293
+ "pipeline": {
294
+ "raw_path": [
295
+ "properties",
296
+ "pipeline",
297
+ "value"
298
+ ],
299
+ "functions": [
300
+ {
301
+ "name": "trim",
302
+ "args": []
303
+ }
304
+ ],
305
+ "type": "string",
306
+ "required": false,
307
+ "description": "Pipeline name for ABAC filtering",
308
+ "indexed": false
309
+ },
310
+ "closeDate": {
311
+ "raw_path": [
312
+ "properties",
313
+ "closedate",
314
+ "value"
315
+ ],
316
+ "functions": [],
317
+ "type": "string",
318
+ "required": false,
319
+ "description": "Expected close date",
320
+ "indexed": false
321
+ },
322
+ "dealType": {
323
+ "raw_path": [
324
+ "properties",
325
+ "dealtype",
326
+ "value"
327
+ ],
328
+ "functions": [
329
+ {
330
+ "name": "trim",
331
+ "args": []
332
+ }
333
+ ],
334
+ "type": "string",
335
+ "required": false,
336
+ "description": "Deal type",
337
+ "indexed": false
338
+ },
339
+ "associatedContacts": {
340
+ "raw_path": [
341
+ "associations",
342
+ "contacts",
343
+ "results"
344
+ ],
345
+ "functions": [],
346
+ "type": "array",
347
+ "required": false,
348
+ "description": "Array of associated contact IDs",
349
+ "indexed": false
350
+ },
351
+ "createdAt": {
352
+ "raw_path": [
353
+ "properties",
354
+ "createdate",
355
+ "value"
356
+ ],
357
+ "functions": [],
358
+ "type": "string",
359
+ "required": false,
360
+ "description": "Creation timestamp",
361
+ "indexed": false
362
+ },
363
+ "updatedAt": {
364
+ "raw_path": [
365
+ "properties",
366
+ "hs_lastmodifieddate",
367
+ "value"
368
+ ],
369
+ "functions": [],
370
+ "type": "string",
371
+ "required": false,
372
+ "description": "Last modification timestamp",
373
+ "indexed": false
374
+ }
375
+ },
376
+ "compiledFields": {
377
+ "id": {
378
+ "raw_path": [
379
+ "id"
380
+ ],
381
+ "functions": [],
382
+ "type": "string",
383
+ "required": false,
384
+ "description": "Unique deal identifier",
385
+ "indexed": true
386
+ },
387
+ "dealName": {
388
+ "raw_path": [
389
+ "properties",
390
+ "dealname",
391
+ "value"
392
+ ],
393
+ "functions": [
394
+ {
395
+ "name": "trim",
396
+ "args": []
397
+ }
398
+ ],
399
+ "type": "string",
400
+ "required": false,
401
+ "description": "Deal name",
402
+ "indexed": false
403
+ },
404
+ "amount": {
405
+ "raw_path": [
406
+ "properties",
407
+ "amount",
408
+ "value"
409
+ ],
410
+ "functions": [],
411
+ "type": "string",
412
+ "required": false,
413
+ "description": "Deal amount",
414
+ "indexed": false
415
+ },
416
+ "currency": {
417
+ "raw_path": [
418
+ "properties",
419
+ "deal_currency_code",
420
+ "value"
421
+ ],
422
+ "functions": [
423
+ {
424
+ "name": "toUpper",
425
+ "args": []
426
+ },
427
+ {
428
+ "name": "trim",
429
+ "args": []
430
+ }
431
+ ],
432
+ "type": "string",
433
+ "required": false,
434
+ "description": "Currency code",
435
+ "indexed": false
436
+ },
437
+ "stage": {
438
+ "raw_path": [
439
+ "properties",
440
+ "dealstage",
441
+ "value"
442
+ ],
443
+ "functions": [
444
+ {
445
+ "name": "trim",
446
+ "args": []
447
+ }
448
+ ],
449
+ "type": "string",
450
+ "required": false,
451
+ "description": "Deal stage for ABAC filtering",
452
+ "indexed": false
453
+ },
454
+ "pipeline": {
455
+ "raw_path": [
456
+ "properties",
457
+ "pipeline",
458
+ "value"
459
+ ],
460
+ "functions": [
461
+ {
462
+ "name": "trim",
463
+ "args": []
464
+ }
465
+ ],
466
+ "type": "string",
467
+ "required": false,
468
+ "description": "Pipeline name for ABAC filtering",
469
+ "indexed": false
470
+ },
471
+ "closeDate": {
472
+ "raw_path": [
473
+ "properties",
474
+ "closedate",
475
+ "value"
476
+ ],
477
+ "functions": [],
478
+ "type": "string",
479
+ "required": false,
480
+ "description": "Expected close date",
481
+ "indexed": false
482
+ },
483
+ "dealType": {
484
+ "raw_path": [
485
+ "properties",
486
+ "dealtype",
487
+ "value"
488
+ ],
489
+ "functions": [
490
+ {
491
+ "name": "trim",
492
+ "args": []
493
+ }
494
+ ],
495
+ "type": "string",
496
+ "required": false,
497
+ "description": "Deal type",
498
+ "indexed": false
499
+ },
500
+ "associatedContacts": {
501
+ "raw_path": [
502
+ "associations",
503
+ "contacts",
504
+ "results"
505
+ ],
506
+ "functions": [],
507
+ "type": "array",
508
+ "required": false,
509
+ "description": "Array of associated contact IDs",
510
+ "indexed": false
511
+ },
512
+ "createdAt": {
513
+ "raw_path": [
514
+ "properties",
515
+ "createdate",
516
+ "value"
517
+ ],
518
+ "functions": [],
519
+ "type": "string",
520
+ "required": false,
521
+ "description": "Creation timestamp",
522
+ "indexed": false
523
+ },
524
+ "updatedAt": {
525
+ "raw_path": [
526
+ "properties",
527
+ "hs_lastmodifieddate",
528
+ "value"
529
+ ],
530
+ "functions": [],
531
+ "type": "string",
532
+ "required": false,
533
+ "description": "Last modification timestamp",
534
+ "indexed": false
535
+ }
211
536
  }
212
537
  },
213
538
  "exposed": {
214
- "attributes": ["id", "dealName", "amount", "currency", "stage", "pipeline", "closeDate", "dealType", "associatedCompany", "associatedContacts", "createdAt", "updatedAt"],
539
+ "attributes": [
540
+ "id",
541
+ "dealName",
542
+ "amount",
543
+ "currency",
544
+ "stage",
545
+ "pipeline",
546
+ "closeDate",
547
+ "dealType",
548
+ "associatedCompany",
549
+ "associatedContacts",
550
+ "createdAt",
551
+ "updatedAt"
552
+ ],
215
553
  "description": "Exposed fields for HubSpot deals"
216
554
  },
217
555
  "openapi": {
@@ -247,5 +585,4 @@
247
585
  },
248
586
  "autoRbac": true
249
587
  }
250
- }
251
-
588
+ }
@@ -0,0 +1,116 @@
1
+ {
2
+ "key": "hubspot-users-datasource",
3
+ "displayName": "HubSpot Users",
4
+ "resourceType": "person",
5
+ "systemKey": "hubspot",
6
+ "enabled": true,
7
+ "entityType": "recordStorage",
8
+ "description": "Comprehensive HubSpot users datasource with full CRUD operations, comprehensive metadata schema, ABAC dimensions, and OpenAPI support",
9
+ "metadataSchema": {
10
+ "type": "object",
11
+ "properties": {
12
+ "id": {
13
+ "type": "string",
14
+ "description": "HubSpot user ID"
15
+ },
16
+ "properties": {
17
+ "type": "object",
18
+ "description": "User properties object containing all CRM fields",
19
+ "additionalProperties": true,
20
+ "properties": {
21
+ "email": {
22
+ "type": "string",
23
+ "format": "email",
24
+ "description": "User email address"
25
+ },
26
+ "firstName": {
27
+ "type": "string",
28
+ "description": "User first name"
29
+ },
30
+ "lastName": {
31
+ "type": "string",
32
+ "description": "User last name"
33
+ },
34
+ "role": {
35
+ "type": "string",
36
+ "description": "User role"
37
+ },
38
+ "timezone": {
39
+ "type": "string",
40
+ "description": "User timezone"
41
+ }
42
+ }
43
+ },
44
+ "createdAt": {
45
+ "type": "string",
46
+ "format": "date-time",
47
+ "description": "User creation timestamp"
48
+ },
49
+ "updatedAt": {
50
+ "type": "string",
51
+ "format": "date-time",
52
+ "description": "User last update timestamp"
53
+ },
54
+ "archived": {
55
+ "type": "boolean",
56
+ "description": "Whether the user is archived"
57
+ },
58
+ "archivedAt": {
59
+ "type": "string",
60
+ "format": "date-time",
61
+ "description": "User archive timestamp"
62
+ },
63
+ "associations": {
64
+ "type": "object",
65
+ "description": "Associated records",
66
+ "additionalProperties": true
67
+ },
68
+ "url": {
69
+ "type": "string",
70
+ "format": "uri",
71
+ "description": "HubSpot object URL"
72
+ },
73
+ "objectWriteTraceId": {
74
+ "type": "string",
75
+ "description": "Trace ID for tracking writes"
76
+ },
77
+ "propertiesWithHistory": {
78
+ "type": "object",
79
+ "description": "Properties with change history",
80
+ "additionalProperties": true
81
+ }
82
+ },
83
+ "required": [
84
+ "id"
85
+ ]
86
+ },
87
+ "fieldMappings": {
88
+ "attributes": {
89
+ "id": {
90
+ "expression": "{{id}}",
91
+ "type": "string",
92
+ "indexed": true
93
+ },
94
+ "department": {
95
+ "expression": "{{id}}",
96
+ "type": "string",
97
+ "indexed": true,
98
+ "description": "Default dimension for catalog compatibility"
99
+ }
100
+ },
101
+ "dimensions": {
102
+ "department": "metadata.department"
103
+ }
104
+ },
105
+ "sync": {
106
+ "mode": "pull",
107
+ "schedule": "0 */6 * * *",
108
+ "batchSize": 100,
109
+ "maxParallelRequests": 5,
110
+ "pagination": {
111
+ "strategy": "cursor",
112
+ "cursorField": "$.paging.next.after",
113
+ "cursorParam": "after"
114
+ }
115
+ }
116
+ }