@aifabrix/builder 2.52.1 → 2.53.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 (225) hide show
  1. package/lib/app/deploy-config.js +3 -2
  2. package/lib/channels/add-channel.js +11 -41
  3. package/lib/channels/approval-guides/index.js +3 -0
  4. package/lib/channels/approval-guides/microsoft-copilot.js +26 -17
  5. package/lib/channels/channel-add-existing.js +72 -0
  6. package/lib/channels/channel-runtime-resolver.js +5 -1
  7. package/lib/channels/channel-status-display.js +30 -3
  8. package/lib/channels/microsoft-copilot-entra-sso-form.js +73 -2
  9. package/lib/channels/microsoft-copilot-entra-sso.js +26 -5
  10. package/lib/channels/microsoft-copilot-limits.js +22 -3
  11. package/lib/channels/microsoft-copilot-package.js +59 -14
  12. package/lib/channels/microsoft-copilot-validate.js +40 -10
  13. package/lib/cli/attach-default-help-examples.js +102 -0
  14. package/lib/cli/index.js +2 -0
  15. package/lib/cli/setup-credential-deployment.js +7 -5
  16. package/lib/cli/setup-utility-validate.js +1 -0
  17. package/lib/commands/credential-push.js +37 -5
  18. package/lib/commands/package-score.js +72 -0
  19. package/lib/commands/role-assistant.js +46 -8
  20. package/lib/deployment/deployer-poll-run.js +2 -2
  21. package/lib/deployment/deployer.js +1 -1
  22. package/lib/deployment/environment.js +2 -2
  23. package/lib/external-system/deploy.js +11 -21
  24. package/lib/integration-definition/apply.js +12 -14
  25. package/lib/integration-definition/enrich-openapi-operations.js +9 -10
  26. package/lib/lab/package-parity-score.js +417 -0
  27. package/lib/programmatic/capability-registry.js +1 -0
  28. package/lib/programmatic/help-content/channel-onboarding.md +35 -0
  29. package/lib/programmatic/help-content/cip-overview.md +27 -0
  30. package/lib/programmatic/help-content/connected-system-ui.md +70 -0
  31. package/lib/programmatic/help-content/dimensions-guide.md +23 -0
  32. package/lib/programmatic/help-content/enterprise-sync-fabrix.md +123 -0
  33. package/lib/programmatic/help-content/overview.md +25 -0
  34. package/lib/programmatic/help-content/subscription-guide.md +27 -0
  35. package/lib/programmatic/help-content/workflow.md +50 -0
  36. package/lib/programmatic/openapi-component-schemas.js +1 -0
  37. package/lib/programmatic/openapi-descriptions.js +6 -0
  38. package/lib/programmatic/openapi-envelope-examples.js +11 -0
  39. package/lib/programmatic/openapi-operation-bindings.js +5 -0
  40. package/lib/programmatic/openapi-request-schemas.js +39 -13
  41. package/lib/programmatic/openapi-result-schemas.js +30 -0
  42. package/lib/programmatic/openapi-schema-descriptions-core.js +18 -0
  43. package/lib/programmatic/openapi-schema-descriptions-operations.js +19 -0
  44. package/lib/programmatic/persist-supplied-openapi.js +180 -0
  45. package/lib/programmatic/route-handler-map.js +6 -0
  46. package/lib/programmatic/run-integration-definition.js +13 -5
  47. package/lib/role-assistant/evidence-sync.js +55 -7
  48. package/lib/role-assistant/test-runner-attachments.js +118 -0
  49. package/lib/role-assistant/test-runner-bid-apply.js +100 -21
  50. package/lib/role-assistant/test-runner-bid-document.js +1 -1
  51. package/lib/role-assistant/test-runner-start-payload.js +96 -0
  52. package/lib/role-assistant/test-runner-workhub-answers.js +11 -7
  53. package/lib/role-assistant/test-runner-workhub-helpers.js +100 -0
  54. package/lib/role-assistant/test-runner-workhub-soft.js +86 -0
  55. package/lib/role-assistant/test-runner-workhub.js +68 -105
  56. package/lib/role-assistant/test-runner.js +5 -63
  57. package/lib/role-assistant/test-suite.js +33 -40
  58. package/lib/schema/external-datasource.schema.json +13 -4
  59. package/lib/utils/compose-generator.js +10 -1
  60. package/lib/utils/compose-traefik-extra-routes.js +107 -0
  61. package/lib/utils/docker-build.js +2 -2
  62. package/lib/utils/help-builder.js +2 -1
  63. package/lib/utils/promote-dev-docker-image.js +15 -10
  64. package/package.json +14 -16
  65. package/templates/README.md +12 -1
  66. package/templates/applications/dataplane/application.yaml +8 -1
  67. package/templates/applications/dataplane/env.template +1 -1
  68. package/templates/applications/miso-controller/application.yaml +2 -1
  69. package/templates/applications/miso-controller/rbac.yaml +1 -0
  70. package/templates/channels/microsoft-copilot/ai-plugin.template.json.hbs +6 -2
  71. package/templates/channels/microsoft-copilot/entra-sso-registration.template.md.hbs +8 -5
  72. package/templates/channels/microsoft-copilot/fi-fi.template.json.hbs +7 -0
  73. package/templates/channels/microsoft-copilot/install.template.md.hbs +74 -22
  74. package/templates/channels/microsoft-copilot/manifest.template.json.hbs +29 -14
  75. package/templates/channels/microsoft-copilot/oauth-plugin-vault-required.template.md.hbs +6 -2
  76. package/templates/python/docker-compose.hbs +36 -0
  77. package/templates/typescript/docker-compose.hbs +36 -0
  78. package/.cursor/plans/Archive/157.1-security-quality-violations-by-type.csv +0 -374
  79. package/.cursor/process/README.md +0 -9
  80. package/.cursor/rules/anchor-docs.mdc +0 -15
  81. package/.cursor/rules/assistant-driven-integration-build.mdc +0 -40
  82. package/.cursor/rules/cli-layout.mdc +0 -81
  83. package/.cursor/rules/cli-product-neutral.mdc +0 -43
  84. package/.cursor/rules/deploy-rules/docker-image-ip-policy.mdc +0 -49
  85. package/.cursor/rules/docs-rules.mdc +0 -32
  86. package/.cursor/rules/plan-rules/application-lifecycle.mdc +0 -30
  87. package/.cursor/rules/plan-rules/plan-frontmatter.mdc +0 -35
  88. package/.cursor/rules/plan-rules/plan-lifecycle.mdc +0 -31
  89. package/.cursor/rules/plan-rules/plan-validation-gate.mdc +0 -34
  90. package/.cursor/rules/project-rules.mdc +0 -913
  91. package/.cursor/skills/README.md +0 -15
  92. package/.dockerignore +0 -52
  93. package/.eslintignore +0 -22
  94. package/.markdownlint.json +0 -14
  95. package/anchor-docs/README.md +0 -10
  96. package/anchor-docs/_TEMPLATE +0 -24
  97. package/babel.config.js +0 -6
  98. package/bin/builder-api-cleanup.js +0 -26
  99. package/bin/builder-api-nest.js +0 -10
  100. package/bin/builder-api-spike.js +0 -19
  101. package/enterprise-knowledge/README.md +0 -50
  102. package/enterprise-knowledge/enterprise-integration-lifecycle/README.md +0 -22
  103. package/enterprise-knowledge/enterprise-integration-lifecycle/application.json +0 -15
  104. package/enterprise-knowledge/enterprise-integration-lifecycle/deploy.js +0 -69
  105. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-deploy.json +0 -52
  106. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-system.json +0 -29
  107. package/enterprise-knowledge/enterprise-integration-lifecycle/env.template +0 -2
  108. package/integration/README.md +0 -81
  109. package/integration/github/README.md +0 -53
  110. package/integration/github/application.json +0 -21
  111. package/integration/github/deploy.js +0 -72
  112. package/integration/github/env.template +0 -11
  113. package/integration/github/github-datasource-issue-comments.json +0 -239
  114. package/integration/github/github-datasource-issues.json +0 -399
  115. package/integration/github/github-datasource-repository.json +0 -354
  116. package/integration/github/github-deploy.json +0 -1202
  117. package/integration/github/github-system.json +0 -82
  118. package/integration/hubspot-test/README.md +0 -159
  119. package/integration/hubspot-test/application.json +0 -54
  120. package/integration/hubspot-test/companies.json +0 -2048
  121. package/integration/hubspot-test/create-hubspot.js +0 -523
  122. package/integration/hubspot-test/env.template +0 -4
  123. package/integration/hubspot-test/hubspot-test-datasource-company.json +0 -138
  124. package/integration/hubspot-test/hubspot-test-datasource-contact.json +0 -146
  125. package/integration/hubspot-test/hubspot-test-datasource-deal.json +0 -146
  126. package/integration/hubspot-test/hubspot-test-datasource-users.json +0 -76
  127. package/integration/hubspot-test/hubspot-test-deploy.json +0 -2160
  128. package/integration/hubspot-test/hubspot-test-system.json +0 -74
  129. package/integration/hubspot-test/rbac.json +0 -166
  130. package/integration/hubspot-test/test-artifacts/wizard-hubspot-credential-real.yaml +0 -20
  131. package/integration/hubspot-test/test-artifacts/wizard-hubspot-env-vars.yaml +0 -9
  132. package/integration/hubspot-test/test-artifacts/wizard-invalid-add-datasource.yaml +0 -5
  133. package/integration/hubspot-test/test-artifacts/wizard-invalid-app-name.yaml +0 -5
  134. package/integration/hubspot-test/test-artifacts/wizard-invalid-credential-create.yaml +0 -7
  135. package/integration/hubspot-test/test-artifacts/wizard-invalid-credential-select.yaml +0 -7
  136. package/integration/hubspot-test/test-artifacts/wizard-invalid-known-platform.yaml +0 -4
  137. package/integration/hubspot-test/test-artifacts/wizard-invalid-missing-app.yaml +0 -4
  138. package/integration/hubspot-test/test-artifacts/wizard-invalid-missing-source.yaml +0 -2
  139. package/integration/hubspot-test/test-artifacts/wizard-invalid-mode.yaml +0 -5
  140. package/integration/hubspot-test/test-artifacts/wizard-invalid-openapi-file.yaml +0 -5
  141. package/integration/hubspot-test/test-artifacts/wizard-invalid-openapi-url.yaml +0 -4
  142. package/integration/hubspot-test/test-artifacts/wizard-invalid-source.yaml +0 -4
  143. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-array-test.yaml +0 -5
  144. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-key-test.yaml +0 -5
  145. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-path-test.yaml +0 -5
  146. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-test.yaml +0 -5
  147. package/integration/hubspot-test/test-artifacts/wizard-valid-for-rbac-test.yaml +0 -5
  148. package/integration/hubspot-test/test-artifacts/wizard-valid-for-rbac-yaml-test.yaml +0 -5
  149. package/integration/hubspot-test/test-dataplane-down-helpers.js +0 -249
  150. package/integration/hubspot-test/test-dataplane-down-tests.js +0 -386
  151. package/integration/hubspot-test/test-dataplane-down.js +0 -209
  152. package/integration/hubspot-test/test.js +0 -1588
  153. package/integration/hubspot-test/wizard-hubspot-e2e.yaml +0 -16
  154. package/integration/hubspot-test/wizard-hubspot-platform.yaml +0 -8
  155. package/integration/hubspot-test/wizard-hubspot-test-headless.yaml +0 -23
  156. package/integration/roundtrip-test-local/README.md +0 -143
  157. package/integration/roundtrip-test-local/application.yaml +0 -13
  158. package/integration/roundtrip-test-local/env.template +0 -15
  159. package/integration/roundtrip-test-local/roundtrip-test-local-datasource-roundtrip-test-company.yaml +0 -14
  160. package/integration/roundtrip-test-local/roundtrip-test-local-deploy.json +0 -61
  161. package/integration/roundtrip-test-local/roundtrip-test-local-system.yaml +0 -25
  162. package/integration/roundtrip-test-local2/README.md +0 -143
  163. package/integration/roundtrip-test-local2/application.yaml +0 -13
  164. package/integration/roundtrip-test-local2/env.template +0 -15
  165. package/integration/roundtrip-test-local2/roundtrip-test-local2-datasource-company.yaml +0 -31
  166. package/integration/roundtrip-test-local2/roundtrip-test-local2-deploy.json +0 -86
  167. package/integration/roundtrip-test-local2/roundtrip-test-local2-system.yaml +0 -25
  168. package/integration/test/wizard.yaml +0 -8
  169. package/jest.config.coverage.js +0 -37
  170. package/jest.config.default.js +0 -11
  171. package/jest.config.integration.fixtures.js +0 -22
  172. package/jest.config.integration.js +0 -33
  173. package/jest.config.isolated.js +0 -11
  174. package/jest.config.manual.js +0 -30
  175. package/jest.global-live-fabrix-hooks.js +0 -36
  176. package/jest.isolated-projects.js +0 -283
  177. package/jest.projects.js +0 -79
  178. package/lib/integration-definition/openapi-enrichment/hubspot-crm-companies.json +0 -205
  179. package/packages/builder-api/README.md +0 -120
  180. package/packages/builder-api/package.json +0 -30
  181. package/packages/builder-api/src/app.module.ts +0 -7
  182. package/packages/builder-api/src/auth/auth.module.ts +0 -5
  183. package/packages/builder-api/src/external-system/external-system.module.ts +0 -5
  184. package/packages/builder-api/src/main.ts +0 -16
  185. package/packages/builder-api/tsconfig.json +0 -15
  186. package/scripts/check-builder-api-architecture-grep.js +0 -79
  187. package/scripts/check-datasource-test-run-schema-sync.js +0 -34
  188. package/scripts/ci-fix.sh +0 -19
  189. package/scripts/ci-simulate.sh +0 -19
  190. package/scripts/diagnose-cli.js +0 -150
  191. package/scripts/docker_image_content_gate.js +0 -47
  192. package/scripts/docker_image_content_gate.sh +0 -5
  193. package/scripts/export-builder-api-evidence.js +0 -262
  194. package/scripts/install-local.js +0 -490
  195. package/scripts/lib/builder-api-docker-staging-copy.js +0 -60
  196. package/scripts/lib/builder-api-docker-staging-core.js +0 -183
  197. package/scripts/lib/docker-image-content-gate-core.js +0 -166
  198. package/scripts/lib/plan-actor.js +0 -109
  199. package/scripts/lib/plan-config.js +0 -20
  200. package/scripts/lib/plan-gates.js +0 -154
  201. package/scripts/lib/plan-meta.js +0 -104
  202. package/scripts/lib/plan-parse.js +0 -162
  203. package/scripts/lib/plan-prevalidate-gates.js +0 -337
  204. package/scripts/lib/plan-run-core.js +0 -125
  205. package/scripts/lib/plan-run-report.js +0 -119
  206. package/scripts/plan-approve.js +0 -24
  207. package/scripts/plan-archive.js +0 -49
  208. package/scripts/plan-run.js +0 -13
  209. package/scripts/plan-set-actor.js +0 -21
  210. package/scripts/plan-validate.js +0 -80
  211. package/scripts/pnpm/af.mjs +0 -125
  212. package/scripts/pnpm/check-quiet.mjs +0 -32
  213. package/scripts/pnpm/dev-install.mjs +0 -29
  214. package/scripts/pnpm/dev-reload.mjs +0 -18
  215. package/scripts/pnpm/help.mjs +0 -55
  216. package/scripts/pnpm/lib/dev-reload-core.mjs +0 -189
  217. package/scripts/pnpm/lib/dev-reload-log-capture.mjs +0 -67
  218. package/scripts/pnpm/lib/dev-reload-log-utils.mjs +0 -32
  219. package/scripts/pnpm/lib/resolve-aifabrix-bin.mjs +0 -124
  220. package/scripts/pnpm/lib/resolve-app-url.mjs +0 -183
  221. package/scripts/pnpm/lib/spinner.mjs +0 -42
  222. package/scripts/pnpm-global-remove.js +0 -48
  223. package/scripts/stage_builder_api_for_docker.js +0 -65
  224. package/scripts/sync-builder-api-template.js +0 -44
  225. package/scripts/test-dataplane-bootstrap.js +0 -331
@@ -1,82 +0,0 @@
1
- {
2
- "key": "github",
3
- "displayName": "GitHub",
4
- "description": "Production GitHub REST integration: repository issues (list/create/update/close), issue comments, and repository lifecycle operations. Uses Miso apiProvider github with GitHub App expiring user tokens.",
5
- "type": "custom",
6
- "enabled": true,
7
- "authentication": {
8
- "authType": "apiProvider",
9
- "apiProvider": {
10
- "apiProviderKey": "github"
11
- }
12
- },
13
- "configuration": [
14
- {
15
- "name": "BASE_URL",
16
- "value": "https://api.github.com",
17
- "location": "variable",
18
- "required": true
19
- },
20
- {
21
- "name": "GITHUB_OWNER",
22
- "value": "{{GITHUB_OWNER}}",
23
- "location": "variable",
24
- "required": true,
25
- "portalInput": {
26
- "field": "text",
27
- "label": "GitHub repository owner",
28
- "placeholder": "Organization or user login (e.g. octocat)",
29
- "validation": {
30
- "required": true,
31
- "minLength": 1
32
- }
33
- }
34
- },
35
- {
36
- "name": "GITHUB_REPO",
37
- "value": "{{GITHUB_REPO}}",
38
- "location": "variable",
39
- "required": true,
40
- "portalInput": {
41
- "field": "text",
42
- "label": "GitHub repository name",
43
- "placeholder": "Repository name without owner (e.g. Hello-World)",
44
- "validation": {
45
- "required": true,
46
- "minLength": 1
47
- }
48
- }
49
- }
50
- ],
51
- "endpoints": [
52
- {
53
- "type": "issues",
54
- "path": "/issues",
55
- "description": "GitHub repository issues",
56
- "active": true
57
- },
58
- {
59
- "type": "comments",
60
- "path": "/comments",
61
- "description": "GitHub issue comments",
62
- "active": true
63
- }
64
- ],
65
- "endpointsActive": true,
66
- "dataSources": [
67
- "github-issues",
68
- "github-issue-comments",
69
- "github-repository"
70
- ],
71
- "certification": {
72
- "enabled": true,
73
- "publicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtwvWqPVKNUCLAmBIrK0u\nrsxzgtvIiyIFQVc+T5FeBYevUDOoS2VBF0aOCJGGV8P+ARzU7PtaTCZYvRvsmqou\namy+c1+b0kGCObh/gxGGVCFmbH4VCfQ2xkwML8vvAHXBW1v9Abu9EuTv3YpIZUSh\nq+0xuivs3xYwq5Lm/K10WaWzfwbjCND0K7aQmNhQq+n45EjgmkEWV2gQUDyALzsW\nfTikMtbBJEQ8BSCN8uOsZsa8MH2bBFgThIUXX/gxeUIEBfEavi8F3eR2ZC+Q/if2\nJkIwUCcH5nN2jTCDZgt5CLTIhYs51A+1kLTjtCmJ2fMmeV7Wr3DgnzdbM1cHRnT+\nlwIDAQAB\n-----END PUBLIC KEY-----",
74
- "algorithm": "RS256",
75
- "issuer": "Dataplane - community edition",
76
- "version": "1.0.0",
77
- "status": "passed",
78
- "level": "SILVER",
79
- "publicKeyFingerprint": "sha256:e14a67b980051e46d6b15e2c42c57aea6328d8c96622d10f01e4f9c2f22af3c5",
80
- "contractHash": "sha256:70531b5131122bd8b93c948dc93506b9d3cce5fe28efa4a28d136022f834ccc5"
81
- }
82
- }
@@ -1,159 +0,0 @@
1
- # HubSpot CRM
2
-
3
- HubSpot CRM integration with OpenAPI support for companies, contacts, and deals
4
-
5
- ## System Information
6
-
7
- - **System Key**: `hubspot-test`
8
- - **System Type**: `openapi`
9
- - **Datasources**: 4
10
-
11
- ## Regenerating files with the CLI (recommended)
12
-
13
- Datasource and system JSON under this folder are **normally produced by the Builder**, not edited by hand for structural/schema changes. Use one of these flows (from the **repository root**):
14
-
15
- 1. **Interactive wizard** (writes to `integration/hubspot-test/` when the app key is `hubspot-test`):
16
-
17
- ```bash
18
- aifabrix wizard hubspot-test
19
- ```
20
-
21
- 2. **Headless wizard – known platform HubSpot** (same folder; needs dataplane + auth):
22
-
23
- ```bash
24
- node bin/aifabrix.js wizard \
25
- --config integration/hubspot-test/wizard-hubspot-test-headless.yaml \
26
- --controller <YOUR_CONTROLLER_URL> \
27
- --environment <YOUR_ENV>
28
- ```
29
-
30
- Edit `deployment.controller` / `deployment.environment` in that YAML if you prefer not to pass flags.
31
-
32
- 3. **Helper script** (generates a temporary wizard config and runs the CLI; defaults OpenAPI to `companies.json` in this directory):
33
-
34
- ```bash
35
- node integration/hubspot-test/create-hubspot.js --name hubspot-test --keep-wizard-files
36
- ```
37
-
38
- After regeneration, run `aifabrix validate hubspot-test --type external` and the HubSpot integration tests as needed.
39
-
40
- Committed copies may still be **trimmed or adjusted** for repo tests (e.g. deterministic fields); prefer changing **generators/templates** in `lib/` and `templates/` when defaults should change for everyone.
41
-
42
- ## Files
43
-
44
- - `application.yaml` – Application configuration with `app` and `externalIntegration` blocks
45
- - `hubspot-test-system.json` – External system definition (authentication, OpenAPI/MCP, RBAC)
46
- - `hubspot-test-datasource-deal.json` – Datasource: HubSpot Deal
47
- - `hubspot-test-datasource-contact.json` – Datasource: HubSpot Contact
48
- - `hubspot-test-datasource-users.json` – Datasource: HubSpot Users
49
- - `hubspot-test-datasource-company.json` – Datasource: HubSpot Company
50
- - `env.template` – Environment variables template (secrets, API keys)
51
- - `hubspot-test-deploy.json` – Deployment manifest (generated by `aifabrix json`)
52
-
53
- Optional: `rbac.yaml` – Roles and permissions merged into the system when present.
54
-
55
- ## Quick Start
56
-
57
- ### 1. Create External System
58
-
59
- ```bash
60
- aifabrix create hubspot-test
61
- ```
62
-
63
- (External is the default type. Use `aifabrix create <name> --type webapp` for a builder app.)
64
-
65
- Or use the interactive wizard:
66
-
67
- ```bash
68
- aifabrix wizard --app hubspot-test
69
- ```
70
-
71
- ### 2. Configure Authentication and Datasources
72
-
73
- Edit files in `integration/hubspot-test/`:
74
-
75
- - **Authentication**: `hubspot-test-system.json` (auth type, credentials placeholders)
76
- - **Field mappings**: `hubspot-test-datasource-*.json` (dimensions, attributes, operations)
77
-
78
- ### 3. Validate Configuration
79
-
80
- ```bash
81
- aifabrix validate hubspot-test --type external
82
- ```
83
-
84
- ### 4. Generate Deployment Manifest
85
-
86
- ```bash
87
- aifabrix json hubspot-test --type external
88
- ```
89
-
90
- This creates `hubspot-test-deploy.json` in `integration/hubspot-test/`.
91
-
92
- ### 5. Deploy
93
-
94
- Controller URL and environment are read from config. Configure and log in first:
95
-
96
- ```bash
97
- aifabrix auth config --set-controller <url> --set-environment dev
98
- aifabrix login
99
- ```
100
-
101
- Then deploy:
102
-
103
- ```bash
104
- aifabrix deploy hubspot-test
105
- ```
106
-
107
- ## Testing
108
-
109
- ### Unit Tests (Local Validation, No API)
110
-
111
- ```bash
112
- aifabrix test hubspot-test
113
- ```
114
-
115
- ### Integration Tests (Via Dataplane)
116
-
117
- ```bash
118
- aifabrix test-integration hubspot-test
119
- ```
120
-
121
- ## Deployment
122
-
123
- Deploy via miso-controller pipeline (same as regular apps). Auth and controller come from `aifabrix login` and `aifabrix auth config`:
124
-
125
- ```bash
126
- aifabrix deploy hubspot-test
127
- ```
128
-
129
- ## Wizard E2E tests (`test.js`)
130
-
131
- Run positive wizard tests with:
132
-
133
- ```bash
134
- pnpm run test:hubspot-wizard -- --type positive
135
- ```
136
-
137
- If you see **"Invalid token or insufficient permissions"** or **"Failed to create wizard session"** even though `aifabrix auth status` shows connected, the dataplane may be configured to accept only **client credentials** for the wizard API, not device tokens.
138
-
139
- **Option A – Use client credentials (recommended if dataplane requires them)**
140
-
141
- 1. Get a **client ID** and **client secret** for an app that the dataplane accepts for wizard (e.g. from your admin or Miso/Keycloak for the environment).
142
- 2. Put them in **`~/.aifabrix/secrets.local.yaml`** under keys that depend on the **app name in the wizard config**:
143
- - For `wizard-hubspot-e2e.yaml` the app name is `wizard-e2e-e2e`, so use:
144
- - `wizard-e2e-e2e-client-idKeyVault`: `<your client id>`
145
- - `wizard-e2e-e2e-client-secretKeyVault`: `<your client secret>`
146
- - If your platform uses a single “wizard” or “dataplane” app for all wizard runs, ask your admin for that app’s client ID/secret and the exact key names (they may be something like `dataplane-client-idKeyVault` / `dataplane-client-secretKeyVault`; the builder looks up `<appName>-client-idKeyVault` and `<appName>-client-secretKeyVault` where `appName` comes from the config file).
147
- 3. **Optional fallback:** you can also set **`integration/hubspot-test/.env`** with `CLIENTID` and `CLIENTSECRET`; the test runner maps those to `HUBSPOT_CLIENT_ID` / `HUBSPOT_CLIENT_SECRET` for real-credential tests, and the token manager uses `CLIENTID`/`CLIENTSECRET` when no secrets file entry exists for the app.
148
-
149
- **Option B – Use device token**
150
-
151
- If the dataplane is configured to accept device tokens for the wizard API, ensure you are logged in with `aifabrix login` and that the controller URL and environment match (e.g. `dev`). No client credentials are needed.
152
-
153
- When this error appears, `pnpm test:hubspot-wizard` **skips** the live wizard cases (exit code 0) so optional CI/agents are not blocked; configure client credentials or dataplane auth to run those cases for real.
154
-
155
- ## Troubleshooting
156
-
157
- - **Validation errors**: Run `aifabrix validate hubspot-test --type external` to see schema and manifest errors.
158
- - **Deployment / auth**: Run `aifabrix auth config --set-controller <url> --set-environment <env>` and `aifabrix login` before `aifabrix deploy`.
159
- - **File not found**: Run commands from the project root (where `package.json` and `integration/` live).
@@ -1,54 +0,0 @@
1
- {
2
- "app": {
3
- "key": "hubspot-test",
4
- "displayName": "HubSpot CRM",
5
- "description": "HubSpot CRM integration with OpenAPI support for companies, contacts, and deals",
6
- "type": "external"
7
- },
8
- "externalIntegration": {
9
- "schemaBasePath": "./",
10
- "systems": [
11
- "hubspot-test-system.json"
12
- ],
13
- "dataSources": [
14
- "hubspot-test-datasource-company.json",
15
- "hubspot-test-datasource-contact.json",
16
- "hubspot-test-datasource-deal.json",
17
- "hubspot-test-datasource-users.json"
18
- ],
19
- "autopublish": true,
20
- "version": "1.0.0"
21
- },
22
- "configuration": [
23
- {
24
- "name": "HUBSPOT_API_VERSION",
25
- "portalInput": {
26
- "field": "select",
27
- "label": "HubSpot API Version",
28
- "placeholder": "Select API version",
29
- "options": [
30
- "v1",
31
- "v2",
32
- "v3"
33
- ],
34
- "validation": {
35
- "required": false
36
- }
37
- }
38
- },
39
- {
40
- "name": "MAX_PAGE_SIZE",
41
- "portalInput": {
42
- "field": "text",
43
- "label": "Maximum Page Size",
44
- "placeholder": "100",
45
- "validation": {
46
- "required": false,
47
- "pattern": "^[0-9]+$",
48
- "minLength": 1,
49
- "maxLength": 1000
50
- }
51
- }
52
- }
53
- ]
54
- }