@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,2160 +0,0 @@
1
- {
2
- "key": "hubspot-test",
3
- "displayName": "HubSpot CRM",
4
- "description": "HubSpot CRM integration with OpenAPI support for companies, contacts, and deals",
5
- "type": "external",
6
- "version": "1.0.0",
7
- "externalIntegration": {
8
- "schemaBasePath": "./",
9
- "systems": [
10
- "hubspot-test-system.json"
11
- ],
12
- "dataSources": [
13
- "hubspot-test-datasource-company.json",
14
- "hubspot-test-datasource-contact.json",
15
- "hubspot-test-datasource-deal.json",
16
- "hubspot-test-datasource-users.json"
17
- ],
18
- "autopublish": true,
19
- "version": "1.0.0"
20
- },
21
- "system": {
22
- "key": "hubspot-test",
23
- "displayName": "HubSpot CRM",
24
- "description": "HubSpot CRM integration with OpenAPI support for companies, contacts, and deals",
25
- "type": "openapi",
26
- "enabled": true,
27
- "authentication": {
28
- "method": "oauth2",
29
- "variables": {
30
- "baseUrl": "https://api.hubapi.com",
31
- "tokenUrl": "https://api.hubapi.com/oauth/v1/token",
32
- "authorizationUrl": "https://app.hubspot.com/oauth/authorize",
33
- "scope": "crm.objects.companies.read crm.objects.companies.write crm.objects.contacts.read crm.objects.contacts.write crm.objects.deals.read crm.objects.deals.write"
34
- },
35
- "security": {
36
- "clientId": "kv://hubspot-test/clientId",
37
- "clientSecret": "kv://hubspot-test/clientSecret"
38
- }
39
- },
40
- "configuration": [
41
- {
42
- "name": "HUBSPOT_API_VERSION",
43
- "value": "v3",
44
- "location": "variable",
45
- "required": false,
46
- "portalInput": {
47
- "field": "select",
48
- "label": "HubSpot API Version",
49
- "placeholder": "Select API version",
50
- "options": [
51
- "v1",
52
- "v2",
53
- "v3"
54
- ],
55
- "validation": {
56
- "required": false
57
- }
58
- }
59
- },
60
- {
61
- "name": "MAX_PAGE_SIZE",
62
- "value": "100",
63
- "location": "variable",
64
- "required": false,
65
- "portalInput": {
66
- "field": "text",
67
- "label": "Maximum Page Size",
68
- "placeholder": "100",
69
- "validation": {
70
- "required": false,
71
- "pattern": "^[0-9]+$",
72
- "minLength": 1,
73
- "maxLength": 1000
74
- }
75
- }
76
- }
77
- ],
78
- "openapi": {
79
- "documentKey": "hubspot-v3",
80
- "autoDiscoverEntities": false
81
- },
82
- "tags": [
83
- "crm",
84
- "sales",
85
- "marketing",
86
- "hubspot"
87
- ],
88
- "dataSources": [
89
- "hubspot-test-company",
90
- "hubspot-test-contact",
91
- "hubspot-test-deal",
92
- "hubspot-test-users"
93
- ],
94
- "roles": [
95
- {
96
- "name": "HubSpot CRM Admin",
97
- "value": "hubspot-test-admin",
98
- "description": "Full access to all HubSpot CRM operations",
99
- "groups": []
100
- },
101
- {
102
- "name": "HubSpot CRM Reader",
103
- "value": "hubspot-test-reader",
104
- "description": "Read-only access to all HubSpot CRM data",
105
- "groups": []
106
- }
107
- ],
108
- "permissions": [
109
- {
110
- "name": "customer:list",
111
- "roles": [
112
- "hubspot-test-reader",
113
- "hubspot-test-admin"
114
- ],
115
- "description": "Permission: customer:list"
116
- },
117
- {
118
- "name": "customer:get",
119
- "roles": [
120
- "hubspot-test-reader",
121
- "hubspot-test-admin"
122
- ],
123
- "description": "Permission: customer:get"
124
- },
125
- {
126
- "name": "customer:create",
127
- "roles": [
128
- "hubspot-test-admin"
129
- ],
130
- "description": "Permission: customer:create"
131
- },
132
- {
133
- "name": "customer:update",
134
- "roles": [
135
- "hubspot-test-admin"
136
- ],
137
- "description": "Permission: customer:update"
138
- },
139
- {
140
- "name": "customer:delete",
141
- "roles": [
142
- "hubspot-test-admin"
143
- ],
144
- "description": "Permission: customer:delete"
145
- },
146
- {
147
- "name": "contact:list",
148
- "roles": [
149
- "hubspot-test-reader",
150
- "hubspot-test-admin"
151
- ],
152
- "description": "Permission: contact:list"
153
- },
154
- {
155
- "name": "contact:get",
156
- "roles": [
157
- "hubspot-test-reader",
158
- "hubspot-test-admin"
159
- ],
160
- "description": "Permission: contact:get"
161
- },
162
- {
163
- "name": "contact:create",
164
- "roles": [
165
- "hubspot-test-admin"
166
- ],
167
- "description": "Permission: contact:create"
168
- },
169
- {
170
- "name": "contact:update",
171
- "roles": [
172
- "hubspot-test-admin"
173
- ],
174
- "description": "Permission: contact:update"
175
- },
176
- {
177
- "name": "contact:delete",
178
- "roles": [
179
- "hubspot-test-admin"
180
- ],
181
- "description": "Permission: contact:delete"
182
- },
183
- {
184
- "name": "deal:list",
185
- "roles": [
186
- "hubspot-test-reader",
187
- "hubspot-test-admin"
188
- ],
189
- "description": "Permission: deal:list"
190
- },
191
- {
192
- "name": "deal:get",
193
- "roles": [
194
- "hubspot-test-reader",
195
- "hubspot-test-admin"
196
- ],
197
- "description": "Permission: deal:get"
198
- },
199
- {
200
- "name": "deal:create",
201
- "roles": [
202
- "hubspot-test-admin"
203
- ],
204
- "description": "Permission: deal:create"
205
- },
206
- {
207
- "name": "deal:update",
208
- "roles": [
209
- "hubspot-test-admin"
210
- ],
211
- "description": "Permission: deal:update"
212
- },
213
- {
214
- "name": "deal:delete",
215
- "roles": [
216
- "hubspot-test-admin"
217
- ],
218
- "description": "Permission: deal:delete"
219
- },
220
- {
221
- "name": "person:list",
222
- "roles": [
223
- "hubspot-test-reader",
224
- "hubspot-test-admin"
225
- ],
226
- "description": "Permission: person:list"
227
- },
228
- {
229
- "name": "person:get",
230
- "roles": [
231
- "hubspot-test-reader",
232
- "hubspot-test-admin"
233
- ],
234
- "description": "Permission: person:get"
235
- },
236
- {
237
- "name": "person:create",
238
- "roles": [
239
- "hubspot-test-admin"
240
- ],
241
- "description": "Permission: person:create"
242
- },
243
- {
244
- "name": "person:update",
245
- "roles": [
246
- "hubspot-test-admin"
247
- ],
248
- "description": "Permission: person:update"
249
- },
250
- {
251
- "name": "person:delete",
252
- "roles": [
253
- "hubspot-test-admin"
254
- ],
255
- "description": "Permission: person:delete"
256
- }
257
- ]
258
- },
259
- "dataSources": [
260
- {
261
- "key": "hubspot-test-company",
262
- "displayName": "HubSpot Company",
263
- "description": "HubSpot companies datasource with field mappings for CRM company data",
264
- "systemKey": "hubspot-test",
265
- "entityType": "recordStorage",
266
- "resourceType": "customer",
267
- "enabled": true,
268
- "version": "1.0.0",
269
- "primaryKey": [
270
- "id"
271
- ],
272
- "metadataSchema": {
273
- "type": "object",
274
- "properties": {
275
- "id": {
276
- "type": "string"
277
- },
278
- "properties": {
279
- "type": "object",
280
- "properties": {
281
- "name": {
282
- "type": "object",
283
- "properties": {
284
- "value": {
285
- "type": "string"
286
- }
287
- }
288
- },
289
- "domain": {
290
- "type": "object",
291
- "properties": {
292
- "value": {
293
- "type": "string"
294
- }
295
- }
296
- },
297
- "country": {
298
- "type": "object",
299
- "properties": {
300
- "value": {
301
- "type": "string"
302
- }
303
- }
304
- },
305
- "city": {
306
- "type": "object",
307
- "properties": {
308
- "value": {
309
- "type": "string"
310
- }
311
- }
312
- },
313
- "industry": {
314
- "type": "object",
315
- "properties": {
316
- "value": {
317
- "type": "string"
318
- }
319
- }
320
- },
321
- "website": {
322
- "type": "object",
323
- "properties": {
324
- "value": {
325
- "type": "string"
326
- }
327
- }
328
- },
329
- "phone": {
330
- "type": "object",
331
- "properties": {
332
- "value": {
333
- "type": "string"
334
- }
335
- }
336
- },
337
- "createdate": {
338
- "type": "object",
339
- "properties": {
340
- "value": {
341
- "type": "string"
342
- }
343
- }
344
- },
345
- "hs_lastmodifieddate": {
346
- "type": "object",
347
- "properties": {
348
- "value": {
349
- "type": "string"
350
- }
351
- }
352
- }
353
- }
354
- }
355
- },
356
- "required": [
357
- "id",
358
- "properties"
359
- ]
360
- },
361
- "fieldMappings": {
362
- "dimensions": {
363
- "country": "metadata.country",
364
- "domain": "metadata.domain"
365
- },
366
- "attributes": {
367
- "id": {
368
- "expression": "{{id}}",
369
- "type": "string",
370
- "description": "Unique company identifier",
371
- "indexed": true
372
- },
373
- "name": {
374
- "expression": "{{properties.name.value}} | trim",
375
- "type": "string",
376
- "description": "Company name",
377
- "indexed": false
378
- },
379
- "domain": {
380
- "expression": "{{properties.domain.value}} | toLower | trim",
381
- "type": "string",
382
- "description": "Company domain for ABAC filtering",
383
- "indexed": false
384
- },
385
- "country": {
386
- "expression": "{{properties.country.value}} | toUpper | trim",
387
- "type": "string",
388
- "description": "Country code for ABAC filtering",
389
- "indexed": false
390
- },
391
- "city": {
392
- "expression": "{{properties.city.value}} | trim",
393
- "type": "string",
394
- "description": "City name",
395
- "indexed": false
396
- },
397
- "industry": {
398
- "expression": "{{properties.industry.value}} | trim",
399
- "type": "string",
400
- "description": "Industry classification",
401
- "indexed": false
402
- },
403
- "website": {
404
- "expression": "{{properties.website.value}} | trim",
405
- "type": "string",
406
- "description": "Company website URL",
407
- "indexed": false
408
- },
409
- "phone": {
410
- "expression": "{{properties.phone.value}} | trim",
411
- "type": "string",
412
- "description": "Phone number",
413
- "indexed": false
414
- },
415
- "createdAt": {
416
- "expression": "{{properties.createdate.value}}",
417
- "type": "string",
418
- "description": "Creation timestamp",
419
- "indexed": false
420
- },
421
- "updatedAt": {
422
- "expression": "{{properties.hs_lastmodifieddate.value}}",
423
- "type": "string",
424
- "description": "Last modification timestamp",
425
- "indexed": false
426
- }
427
- },
428
- "compiledAttributes": {
429
- "id": {
430
- "raw_path": [
431
- "id"
432
- ],
433
- "functions": [],
434
- "type": "string",
435
- "required": false,
436
- "description": "Unique company identifier",
437
- "indexed": true
438
- },
439
- "name": {
440
- "raw_path": [
441
- "properties",
442
- "name",
443
- "value"
444
- ],
445
- "functions": [
446
- {
447
- "name": "trim",
448
- "args": []
449
- }
450
- ],
451
- "type": "string",
452
- "required": false,
453
- "description": "Company name",
454
- "indexed": false
455
- },
456
- "domain": {
457
- "raw_path": [
458
- "properties",
459
- "domain",
460
- "value"
461
- ],
462
- "functions": [
463
- {
464
- "name": "toLower",
465
- "args": []
466
- },
467
- {
468
- "name": "trim",
469
- "args": []
470
- }
471
- ],
472
- "type": "string",
473
- "required": false,
474
- "description": "Company domain for ABAC filtering",
475
- "indexed": false
476
- },
477
- "country": {
478
- "raw_path": [
479
- "properties",
480
- "country",
481
- "value"
482
- ],
483
- "functions": [
484
- {
485
- "name": "toUpper",
486
- "args": []
487
- },
488
- {
489
- "name": "trim",
490
- "args": []
491
- }
492
- ],
493
- "type": "string",
494
- "required": false,
495
- "description": "Country code for ABAC filtering",
496
- "indexed": false
497
- },
498
- "city": {
499
- "raw_path": [
500
- "properties",
501
- "city",
502
- "value"
503
- ],
504
- "functions": [
505
- {
506
- "name": "trim",
507
- "args": []
508
- }
509
- ],
510
- "type": "string",
511
- "required": false,
512
- "description": "City name",
513
- "indexed": false
514
- },
515
- "industry": {
516
- "raw_path": [
517
- "properties",
518
- "industry",
519
- "value"
520
- ],
521
- "functions": [
522
- {
523
- "name": "trim",
524
- "args": []
525
- }
526
- ],
527
- "type": "string",
528
- "required": false,
529
- "description": "Industry classification",
530
- "indexed": false
531
- },
532
- "website": {
533
- "raw_path": [
534
- "properties",
535
- "website",
536
- "value"
537
- ],
538
- "functions": [
539
- {
540
- "name": "trim",
541
- "args": []
542
- }
543
- ],
544
- "type": "string",
545
- "required": false,
546
- "description": "Company website URL",
547
- "indexed": false
548
- },
549
- "phone": {
550
- "raw_path": [
551
- "properties",
552
- "phone",
553
- "value"
554
- ],
555
- "functions": [
556
- {
557
- "name": "trim",
558
- "args": []
559
- }
560
- ],
561
- "type": "string",
562
- "required": false,
563
- "description": "Phone number",
564
- "indexed": false
565
- },
566
- "createdAt": {
567
- "raw_path": [
568
- "properties",
569
- "createdate",
570
- "value"
571
- ],
572
- "functions": [],
573
- "type": "string",
574
- "required": false,
575
- "description": "Creation timestamp",
576
- "indexed": false
577
- },
578
- "updatedAt": {
579
- "raw_path": [
580
- "properties",
581
- "hs_lastmodifieddate",
582
- "value"
583
- ],
584
- "functions": [],
585
- "type": "string",
586
- "required": false,
587
- "description": "Last modification timestamp",
588
- "indexed": false
589
- }
590
- },
591
- "compiledFields": {
592
- "id": {
593
- "raw_path": [
594
- "id"
595
- ],
596
- "functions": [],
597
- "type": "string",
598
- "required": false,
599
- "description": "Unique company identifier",
600
- "indexed": true
601
- },
602
- "name": {
603
- "raw_path": [
604
- "properties",
605
- "name",
606
- "value"
607
- ],
608
- "functions": [
609
- {
610
- "name": "trim",
611
- "args": []
612
- }
613
- ],
614
- "type": "string",
615
- "required": false,
616
- "description": "Company name",
617
- "indexed": false
618
- },
619
- "domain": {
620
- "raw_path": [
621
- "properties",
622
- "domain",
623
- "value"
624
- ],
625
- "functions": [
626
- {
627
- "name": "toLower",
628
- "args": []
629
- },
630
- {
631
- "name": "trim",
632
- "args": []
633
- }
634
- ],
635
- "type": "string",
636
- "required": false,
637
- "description": "Company domain for ABAC filtering",
638
- "indexed": false
639
- },
640
- "country": {
641
- "raw_path": [
642
- "properties",
643
- "country",
644
- "value"
645
- ],
646
- "functions": [
647
- {
648
- "name": "toUpper",
649
- "args": []
650
- },
651
- {
652
- "name": "trim",
653
- "args": []
654
- }
655
- ],
656
- "type": "string",
657
- "required": false,
658
- "description": "Country code for ABAC filtering",
659
- "indexed": false
660
- },
661
- "city": {
662
- "raw_path": [
663
- "properties",
664
- "city",
665
- "value"
666
- ],
667
- "functions": [
668
- {
669
- "name": "trim",
670
- "args": []
671
- }
672
- ],
673
- "type": "string",
674
- "required": false,
675
- "description": "City name",
676
- "indexed": false
677
- },
678
- "industry": {
679
- "raw_path": [
680
- "properties",
681
- "industry",
682
- "value"
683
- ],
684
- "functions": [
685
- {
686
- "name": "trim",
687
- "args": []
688
- }
689
- ],
690
- "type": "string",
691
- "required": false,
692
- "description": "Industry classification",
693
- "indexed": false
694
- },
695
- "website": {
696
- "raw_path": [
697
- "properties",
698
- "website",
699
- "value"
700
- ],
701
- "functions": [
702
- {
703
- "name": "trim",
704
- "args": []
705
- }
706
- ],
707
- "type": "string",
708
- "required": false,
709
- "description": "Company website URL",
710
- "indexed": false
711
- },
712
- "phone": {
713
- "raw_path": [
714
- "properties",
715
- "phone",
716
- "value"
717
- ],
718
- "functions": [
719
- {
720
- "name": "trim",
721
- "args": []
722
- }
723
- ],
724
- "type": "string",
725
- "required": false,
726
- "description": "Phone number",
727
- "indexed": false
728
- },
729
- "createdAt": {
730
- "raw_path": [
731
- "properties",
732
- "createdate",
733
- "value"
734
- ],
735
- "functions": [],
736
- "type": "string",
737
- "required": false,
738
- "description": "Creation timestamp",
739
- "indexed": false
740
- },
741
- "updatedAt": {
742
- "raw_path": [
743
- "properties",
744
- "hs_lastmodifieddate",
745
- "value"
746
- ],
747
- "functions": [],
748
- "type": "string",
749
- "required": false,
750
- "description": "Last modification timestamp",
751
- "indexed": false
752
- }
753
- }
754
- },
755
- "exposed": {
756
- "attributes": [
757
- "id",
758
- "name",
759
- "domain",
760
- "country",
761
- "city",
762
- "industry",
763
- "website",
764
- "phone",
765
- "createdAt",
766
- "updatedAt"
767
- ],
768
- "description": "Exposed fields for HubSpot companies"
769
- },
770
- "openapi": {
771
- "enabled": true,
772
- "documentKey": "hubspot-v3",
773
- "baseUrl": "https://api.hubapi.com",
774
- "operations": {
775
- "list": {
776
- "operationId": "getCompanies",
777
- "method": "GET",
778
- "path": "/crm/v3/objects/companies"
779
- },
780
- "get": {
781
- "operationId": "getCompany",
782
- "method": "GET",
783
- "path": "/crm/v3/objects/companies/{companyId}"
784
- },
785
- "create": {
786
- "operationId": "createCompany",
787
- "method": "POST",
788
- "path": "/crm/v3/objects/companies"
789
- },
790
- "update": {
791
- "operationId": "updateCompany",
792
- "method": "PATCH",
793
- "path": "/crm/v3/objects/companies/{companyId}"
794
- },
795
- "delete": {
796
- "operationId": "deleteCompany",
797
- "method": "DELETE",
798
- "path": "/crm/v3/objects/companies/{companyId}"
799
- }
800
- },
801
- "autoRbac": true
802
- }
803
- },
804
- {
805
- "key": "hubspot-test-contact",
806
- "displayName": "HubSpot Contact",
807
- "description": "HubSpot contacts datasource with field mappings for CRM contact data",
808
- "systemKey": "hubspot-test",
809
- "entityType": "recordStorage",
810
- "resourceType": "contact",
811
- "enabled": true,
812
- "version": "1.0.0",
813
- "primaryKey": [
814
- "id"
815
- ],
816
- "metadataSchema": {
817
- "type": "object",
818
- "properties": {
819
- "id": {
820
- "type": "string"
821
- },
822
- "properties": {
823
- "type": "object",
824
- "properties": {
825
- "firstname": {
826
- "type": "object",
827
- "properties": {
828
- "value": {
829
- "type": "string"
830
- }
831
- }
832
- },
833
- "lastname": {
834
- "type": "object",
835
- "properties": {
836
- "value": {
837
- "type": "string"
838
- }
839
- }
840
- },
841
- "email": {
842
- "type": "object",
843
- "properties": {
844
- "value": {
845
- "type": "string"
846
- }
847
- }
848
- },
849
- "phone": {
850
- "type": "object",
851
- "properties": {
852
- "value": {
853
- "type": "string"
854
- }
855
- }
856
- },
857
- "company": {
858
- "type": "object",
859
- "properties": {
860
- "value": {
861
- "type": "string"
862
- }
863
- }
864
- },
865
- "jobtitle": {
866
- "type": "object",
867
- "properties": {
868
- "value": {
869
- "type": "string"
870
- }
871
- }
872
- },
873
- "address": {
874
- "type": "object",
875
- "properties": {
876
- "value": {
877
- "type": "string"
878
- }
879
- }
880
- },
881
- "city": {
882
- "type": "object",
883
- "properties": {
884
- "value": {
885
- "type": "string"
886
- }
887
- }
888
- },
889
- "country": {
890
- "type": "object",
891
- "properties": {
892
- "value": {
893
- "type": "string"
894
- }
895
- }
896
- },
897
- "createdate": {
898
- "type": "object",
899
- "properties": {
900
- "value": {
901
- "type": "string"
902
- }
903
- }
904
- },
905
- "hs_lastmodifieddate": {
906
- "type": "object",
907
- "properties": {
908
- "value": {
909
- "type": "string"
910
- }
911
- }
912
- }
913
- }
914
- }
915
- },
916
- "required": [
917
- "id",
918
- "properties"
919
- ]
920
- },
921
- "fieldMappings": {
922
- "dimensions": {
923
- "email": "metadata.email",
924
- "country": "metadata.country"
925
- },
926
- "attributes": {
927
- "id": {
928
- "expression": "{{id}}",
929
- "type": "string",
930
- "description": "Unique contact identifier",
931
- "indexed": true
932
- },
933
- "firstName": {
934
- "expression": "{{properties.firstname.value}} | trim",
935
- "type": "string",
936
- "description": "First name",
937
- "indexed": false
938
- },
939
- "lastName": {
940
- "expression": "{{properties.lastname.value}} | trim",
941
- "type": "string",
942
- "description": "Last name",
943
- "indexed": false
944
- },
945
- "email": {
946
- "expression": "{{properties.email.value}} | toLower | trim",
947
- "type": "string",
948
- "description": "Email address for ABAC filtering",
949
- "indexed": false
950
- },
951
- "phone": {
952
- "expression": "{{properties.phone.value}} | trim",
953
- "type": "string",
954
- "description": "Phone number",
955
- "indexed": false
956
- },
957
- "company": {
958
- "expression": "{{properties.company.value}} | trim",
959
- "type": "string",
960
- "description": "Associated company name",
961
- "indexed": false
962
- },
963
- "jobTitle": {
964
- "expression": "{{properties.jobtitle.value}} | trim",
965
- "type": "string",
966
- "description": "Job title",
967
- "indexed": false
968
- },
969
- "address": {
970
- "expression": "{{properties.address.value}} | trim",
971
- "type": "string",
972
- "description": "Street address",
973
- "indexed": false
974
- },
975
- "city": {
976
- "expression": "{{properties.city.value}} | trim",
977
- "type": "string",
978
- "description": "City name",
979
- "indexed": false
980
- },
981
- "country": {
982
- "expression": "{{properties.country.value}} | toUpper | trim",
983
- "type": "string",
984
- "description": "Country code for ABAC filtering",
985
- "indexed": false
986
- },
987
- "createdAt": {
988
- "expression": "{{properties.createdate.value}}",
989
- "type": "string",
990
- "description": "Creation timestamp",
991
- "indexed": false
992
- },
993
- "updatedAt": {
994
- "expression": "{{properties.hs_lastmodifieddate.value}}",
995
- "type": "string",
996
- "description": "Last modification timestamp",
997
- "indexed": false
998
- }
999
- },
1000
- "compiledAttributes": {
1001
- "id": {
1002
- "raw_path": [
1003
- "id"
1004
- ],
1005
- "functions": [],
1006
- "type": "string",
1007
- "required": false,
1008
- "description": "Unique contact identifier",
1009
- "indexed": true
1010
- },
1011
- "firstName": {
1012
- "raw_path": [
1013
- "properties",
1014
- "firstname",
1015
- "value"
1016
- ],
1017
- "functions": [
1018
- {
1019
- "name": "trim",
1020
- "args": []
1021
- }
1022
- ],
1023
- "type": "string",
1024
- "required": false,
1025
- "description": "First name",
1026
- "indexed": false
1027
- },
1028
- "lastName": {
1029
- "raw_path": [
1030
- "properties",
1031
- "lastname",
1032
- "value"
1033
- ],
1034
- "functions": [
1035
- {
1036
- "name": "trim",
1037
- "args": []
1038
- }
1039
- ],
1040
- "type": "string",
1041
- "required": false,
1042
- "description": "Last name",
1043
- "indexed": false
1044
- },
1045
- "email": {
1046
- "raw_path": [
1047
- "properties",
1048
- "email",
1049
- "value"
1050
- ],
1051
- "functions": [
1052
- {
1053
- "name": "toLower",
1054
- "args": []
1055
- },
1056
- {
1057
- "name": "trim",
1058
- "args": []
1059
- }
1060
- ],
1061
- "type": "string",
1062
- "required": false,
1063
- "description": "Email address for ABAC filtering",
1064
- "indexed": false
1065
- },
1066
- "phone": {
1067
- "raw_path": [
1068
- "properties",
1069
- "phone",
1070
- "value"
1071
- ],
1072
- "functions": [
1073
- {
1074
- "name": "trim",
1075
- "args": []
1076
- }
1077
- ],
1078
- "type": "string",
1079
- "required": false,
1080
- "description": "Phone number",
1081
- "indexed": false
1082
- },
1083
- "company": {
1084
- "raw_path": [
1085
- "properties",
1086
- "company",
1087
- "value"
1088
- ],
1089
- "functions": [
1090
- {
1091
- "name": "trim",
1092
- "args": []
1093
- }
1094
- ],
1095
- "type": "string",
1096
- "required": false,
1097
- "description": "Associated company name",
1098
- "indexed": false
1099
- },
1100
- "jobTitle": {
1101
- "raw_path": [
1102
- "properties",
1103
- "jobtitle",
1104
- "value"
1105
- ],
1106
- "functions": [
1107
- {
1108
- "name": "trim",
1109
- "args": []
1110
- }
1111
- ],
1112
- "type": "string",
1113
- "required": false,
1114
- "description": "Job title",
1115
- "indexed": false
1116
- },
1117
- "address": {
1118
- "raw_path": [
1119
- "properties",
1120
- "address",
1121
- "value"
1122
- ],
1123
- "functions": [
1124
- {
1125
- "name": "trim",
1126
- "args": []
1127
- }
1128
- ],
1129
- "type": "string",
1130
- "required": false,
1131
- "description": "Street address",
1132
- "indexed": false
1133
- },
1134
- "city": {
1135
- "raw_path": [
1136
- "properties",
1137
- "city",
1138
- "value"
1139
- ],
1140
- "functions": [
1141
- {
1142
- "name": "trim",
1143
- "args": []
1144
- }
1145
- ],
1146
- "type": "string",
1147
- "required": false,
1148
- "description": "City name",
1149
- "indexed": false
1150
- },
1151
- "country": {
1152
- "raw_path": [
1153
- "properties",
1154
- "country",
1155
- "value"
1156
- ],
1157
- "functions": [
1158
- {
1159
- "name": "toUpper",
1160
- "args": []
1161
- },
1162
- {
1163
- "name": "trim",
1164
- "args": []
1165
- }
1166
- ],
1167
- "type": "string",
1168
- "required": false,
1169
- "description": "Country code for ABAC filtering",
1170
- "indexed": false
1171
- },
1172
- "createdAt": {
1173
- "raw_path": [
1174
- "properties",
1175
- "createdate",
1176
- "value"
1177
- ],
1178
- "functions": [],
1179
- "type": "string",
1180
- "required": false,
1181
- "description": "Creation timestamp",
1182
- "indexed": false
1183
- },
1184
- "updatedAt": {
1185
- "raw_path": [
1186
- "properties",
1187
- "hs_lastmodifieddate",
1188
- "value"
1189
- ],
1190
- "functions": [],
1191
- "type": "string",
1192
- "required": false,
1193
- "description": "Last modification timestamp",
1194
- "indexed": false
1195
- }
1196
- },
1197
- "compiledFields": {
1198
- "id": {
1199
- "raw_path": [
1200
- "id"
1201
- ],
1202
- "functions": [],
1203
- "type": "string",
1204
- "required": false,
1205
- "description": "Unique contact identifier",
1206
- "indexed": true
1207
- },
1208
- "firstName": {
1209
- "raw_path": [
1210
- "properties",
1211
- "firstname",
1212
- "value"
1213
- ],
1214
- "functions": [
1215
- {
1216
- "name": "trim",
1217
- "args": []
1218
- }
1219
- ],
1220
- "type": "string",
1221
- "required": false,
1222
- "description": "First name",
1223
- "indexed": false
1224
- },
1225
- "lastName": {
1226
- "raw_path": [
1227
- "properties",
1228
- "lastname",
1229
- "value"
1230
- ],
1231
- "functions": [
1232
- {
1233
- "name": "trim",
1234
- "args": []
1235
- }
1236
- ],
1237
- "type": "string",
1238
- "required": false,
1239
- "description": "Last name",
1240
- "indexed": false
1241
- },
1242
- "email": {
1243
- "raw_path": [
1244
- "properties",
1245
- "email",
1246
- "value"
1247
- ],
1248
- "functions": [
1249
- {
1250
- "name": "toLower",
1251
- "args": []
1252
- },
1253
- {
1254
- "name": "trim",
1255
- "args": []
1256
- }
1257
- ],
1258
- "type": "string",
1259
- "required": false,
1260
- "description": "Email address for ABAC filtering",
1261
- "indexed": false
1262
- },
1263
- "phone": {
1264
- "raw_path": [
1265
- "properties",
1266
- "phone",
1267
- "value"
1268
- ],
1269
- "functions": [
1270
- {
1271
- "name": "trim",
1272
- "args": []
1273
- }
1274
- ],
1275
- "type": "string",
1276
- "required": false,
1277
- "description": "Phone number",
1278
- "indexed": false
1279
- },
1280
- "company": {
1281
- "raw_path": [
1282
- "properties",
1283
- "company",
1284
- "value"
1285
- ],
1286
- "functions": [
1287
- {
1288
- "name": "trim",
1289
- "args": []
1290
- }
1291
- ],
1292
- "type": "string",
1293
- "required": false,
1294
- "description": "Associated company name",
1295
- "indexed": false
1296
- },
1297
- "jobTitle": {
1298
- "raw_path": [
1299
- "properties",
1300
- "jobtitle",
1301
- "value"
1302
- ],
1303
- "functions": [
1304
- {
1305
- "name": "trim",
1306
- "args": []
1307
- }
1308
- ],
1309
- "type": "string",
1310
- "required": false,
1311
- "description": "Job title",
1312
- "indexed": false
1313
- },
1314
- "address": {
1315
- "raw_path": [
1316
- "properties",
1317
- "address",
1318
- "value"
1319
- ],
1320
- "functions": [
1321
- {
1322
- "name": "trim",
1323
- "args": []
1324
- }
1325
- ],
1326
- "type": "string",
1327
- "required": false,
1328
- "description": "Street address",
1329
- "indexed": false
1330
- },
1331
- "city": {
1332
- "raw_path": [
1333
- "properties",
1334
- "city",
1335
- "value"
1336
- ],
1337
- "functions": [
1338
- {
1339
- "name": "trim",
1340
- "args": []
1341
- }
1342
- ],
1343
- "type": "string",
1344
- "required": false,
1345
- "description": "City name",
1346
- "indexed": false
1347
- },
1348
- "country": {
1349
- "raw_path": [
1350
- "properties",
1351
- "country",
1352
- "value"
1353
- ],
1354
- "functions": [
1355
- {
1356
- "name": "toUpper",
1357
- "args": []
1358
- },
1359
- {
1360
- "name": "trim",
1361
- "args": []
1362
- }
1363
- ],
1364
- "type": "string",
1365
- "required": false,
1366
- "description": "Country code for ABAC filtering",
1367
- "indexed": false
1368
- },
1369
- "createdAt": {
1370
- "raw_path": [
1371
- "properties",
1372
- "createdate",
1373
- "value"
1374
- ],
1375
- "functions": [],
1376
- "type": "string",
1377
- "required": false,
1378
- "description": "Creation timestamp",
1379
- "indexed": false
1380
- },
1381
- "updatedAt": {
1382
- "raw_path": [
1383
- "properties",
1384
- "hs_lastmodifieddate",
1385
- "value"
1386
- ],
1387
- "functions": [],
1388
- "type": "string",
1389
- "required": false,
1390
- "description": "Last modification timestamp",
1391
- "indexed": false
1392
- }
1393
- }
1394
- },
1395
- "exposed": {
1396
- "attributes": [
1397
- "id",
1398
- "firstName",
1399
- "lastName",
1400
- "email",
1401
- "phone",
1402
- "company",
1403
- "jobTitle",
1404
- "address",
1405
- "city",
1406
- "country",
1407
- "createdAt",
1408
- "updatedAt"
1409
- ],
1410
- "description": "Exposed fields for HubSpot contacts"
1411
- },
1412
- "openapi": {
1413
- "enabled": true,
1414
- "documentKey": "hubspot-v3",
1415
- "baseUrl": "https://api.hubapi.com",
1416
- "operations": {
1417
- "list": {
1418
- "operationId": "getContacts",
1419
- "method": "GET",
1420
- "path": "/crm/v3/objects/contacts"
1421
- },
1422
- "get": {
1423
- "operationId": "getContact",
1424
- "method": "GET",
1425
- "path": "/crm/v3/objects/contacts/{contactId}"
1426
- },
1427
- "create": {
1428
- "operationId": "createContact",
1429
- "method": "POST",
1430
- "path": "/crm/v3/objects/contacts"
1431
- },
1432
- "update": {
1433
- "operationId": "updateContact",
1434
- "method": "PATCH",
1435
- "path": "/crm/v3/objects/contacts/{contactId}"
1436
- },
1437
- "delete": {
1438
- "operationId": "deleteContact",
1439
- "method": "DELETE",
1440
- "path": "/crm/v3/objects/contacts/{contactId}"
1441
- }
1442
- },
1443
- "autoRbac": true
1444
- }
1445
- },
1446
- {
1447
- "key": "hubspot-test-deal",
1448
- "displayName": "HubSpot Deal",
1449
- "description": "HubSpot deals datasource with field mappings for CRM deal data",
1450
- "systemKey": "hubspot-test",
1451
- "entityType": "recordStorage",
1452
- "resourceType": "deal",
1453
- "enabled": true,
1454
- "version": "1.0.0",
1455
- "primaryKey": [
1456
- "id"
1457
- ],
1458
- "metadataSchema": {
1459
- "type": "object",
1460
- "properties": {
1461
- "id": {
1462
- "type": "string"
1463
- },
1464
- "properties": {
1465
- "type": "object",
1466
- "properties": {
1467
- "dealname": {
1468
- "type": "object",
1469
- "properties": {
1470
- "value": {
1471
- "type": "string"
1472
- }
1473
- }
1474
- },
1475
- "amount": {
1476
- "type": "object",
1477
- "properties": {
1478
- "value": {
1479
- "type": "string"
1480
- }
1481
- }
1482
- },
1483
- "deal_currency_code": {
1484
- "type": "object",
1485
- "properties": {
1486
- "value": {
1487
- "type": "string"
1488
- }
1489
- }
1490
- },
1491
- "dealstage": {
1492
- "type": "object",
1493
- "properties": {
1494
- "value": {
1495
- "type": "string"
1496
- }
1497
- }
1498
- },
1499
- "pipeline": {
1500
- "type": "object",
1501
- "properties": {
1502
- "value": {
1503
- "type": "string"
1504
- }
1505
- }
1506
- },
1507
- "closedate": {
1508
- "type": "object",
1509
- "properties": {
1510
- "value": {
1511
- "type": "string"
1512
- }
1513
- }
1514
- },
1515
- "dealtype": {
1516
- "type": "object",
1517
- "properties": {
1518
- "value": {
1519
- "type": "string"
1520
- }
1521
- }
1522
- },
1523
- "createdate": {
1524
- "type": "object",
1525
- "properties": {
1526
- "value": {
1527
- "type": "string"
1528
- }
1529
- }
1530
- },
1531
- "hs_lastmodifieddate": {
1532
- "type": "object",
1533
- "properties": {
1534
- "value": {
1535
- "type": "string"
1536
- }
1537
- }
1538
- }
1539
- }
1540
- },
1541
- "associations": {
1542
- "type": "object",
1543
- "properties": {
1544
- "companies": {
1545
- "type": "object",
1546
- "properties": {
1547
- "results": {
1548
- "type": "array",
1549
- "items": {
1550
- "type": "object",
1551
- "properties": {
1552
- "id": {
1553
- "type": "string"
1554
- }
1555
- }
1556
- }
1557
- }
1558
- }
1559
- },
1560
- "contacts": {
1561
- "type": "object",
1562
- "properties": {
1563
- "results": {
1564
- "type": "array",
1565
- "items": {
1566
- "type": "object",
1567
- "properties": {
1568
- "id": {
1569
- "type": "string"
1570
- }
1571
- }
1572
- }
1573
- }
1574
- }
1575
- }
1576
- }
1577
- }
1578
- },
1579
- "required": [
1580
- "id",
1581
- "properties"
1582
- ]
1583
- },
1584
- "fieldMappings": {
1585
- "dimensions": {
1586
- "stage": "metadata.stage",
1587
- "pipeline": "metadata.pipeline"
1588
- },
1589
- "attributes": {
1590
- "id": {
1591
- "expression": "{{id}}",
1592
- "type": "string",
1593
- "description": "Unique deal identifier",
1594
- "indexed": true
1595
- },
1596
- "dealName": {
1597
- "expression": "{{properties.dealname.value}} | trim",
1598
- "type": "string",
1599
- "description": "Deal name",
1600
- "indexed": false
1601
- },
1602
- "amount": {
1603
- "expression": "{{properties.amount.value}}",
1604
- "type": "string",
1605
- "description": "Deal amount",
1606
- "indexed": false
1607
- },
1608
- "currency": {
1609
- "expression": "{{properties.deal_currency_code.value}} | toUpper | trim",
1610
- "type": "string",
1611
- "description": "Currency code",
1612
- "indexed": false
1613
- },
1614
- "stage": {
1615
- "expression": "{{properties.dealstage.value}} | trim",
1616
- "type": "string",
1617
- "description": "Deal stage for ABAC filtering",
1618
- "indexed": false
1619
- },
1620
- "pipeline": {
1621
- "expression": "{{properties.pipeline.value}} | trim",
1622
- "type": "string",
1623
- "description": "Pipeline name for ABAC filtering",
1624
- "indexed": false
1625
- },
1626
- "closeDate": {
1627
- "expression": "{{properties.closedate.value}}",
1628
- "type": "string",
1629
- "description": "Expected close date",
1630
- "indexed": false
1631
- },
1632
- "dealType": {
1633
- "expression": "{{properties.dealtype.value}} | trim",
1634
- "type": "string",
1635
- "description": "Deal type",
1636
- "indexed": false
1637
- },
1638
- "associatedCompany": {
1639
- "expression": "record_ref:customer",
1640
- "type": "string",
1641
- "description": "Associated company reference (record reference)",
1642
- "indexed": false
1643
- },
1644
- "associatedContacts": {
1645
- "expression": "{{associations.contacts.results}}",
1646
- "type": "array",
1647
- "description": "Array of associated contact IDs",
1648
- "indexed": false
1649
- },
1650
- "createdAt": {
1651
- "expression": "{{properties.createdate.value}}",
1652
- "type": "string",
1653
- "description": "Creation timestamp",
1654
- "indexed": false
1655
- },
1656
- "updatedAt": {
1657
- "expression": "{{properties.hs_lastmodifieddate.value}}",
1658
- "type": "string",
1659
- "description": "Last modification timestamp",
1660
- "indexed": false
1661
- }
1662
- },
1663
- "compiledAttributes": {
1664
- "id": {
1665
- "raw_path": [
1666
- "id"
1667
- ],
1668
- "functions": [],
1669
- "type": "string",
1670
- "required": false,
1671
- "description": "Unique deal identifier",
1672
- "indexed": true
1673
- },
1674
- "dealName": {
1675
- "raw_path": [
1676
- "properties",
1677
- "dealname",
1678
- "value"
1679
- ],
1680
- "functions": [
1681
- {
1682
- "name": "trim",
1683
- "args": []
1684
- }
1685
- ],
1686
- "type": "string",
1687
- "required": false,
1688
- "description": "Deal name",
1689
- "indexed": false
1690
- },
1691
- "amount": {
1692
- "raw_path": [
1693
- "properties",
1694
- "amount",
1695
- "value"
1696
- ],
1697
- "functions": [],
1698
- "type": "string",
1699
- "required": false,
1700
- "description": "Deal amount",
1701
- "indexed": false
1702
- },
1703
- "currency": {
1704
- "raw_path": [
1705
- "properties",
1706
- "deal_currency_code",
1707
- "value"
1708
- ],
1709
- "functions": [
1710
- {
1711
- "name": "toUpper",
1712
- "args": []
1713
- },
1714
- {
1715
- "name": "trim",
1716
- "args": []
1717
- }
1718
- ],
1719
- "type": "string",
1720
- "required": false,
1721
- "description": "Currency code",
1722
- "indexed": false
1723
- },
1724
- "stage": {
1725
- "raw_path": [
1726
- "properties",
1727
- "dealstage",
1728
- "value"
1729
- ],
1730
- "functions": [
1731
- {
1732
- "name": "trim",
1733
- "args": []
1734
- }
1735
- ],
1736
- "type": "string",
1737
- "required": false,
1738
- "description": "Deal stage for ABAC filtering",
1739
- "indexed": false
1740
- },
1741
- "pipeline": {
1742
- "raw_path": [
1743
- "properties",
1744
- "pipeline",
1745
- "value"
1746
- ],
1747
- "functions": [
1748
- {
1749
- "name": "trim",
1750
- "args": []
1751
- }
1752
- ],
1753
- "type": "string",
1754
- "required": false,
1755
- "description": "Pipeline name for ABAC filtering",
1756
- "indexed": false
1757
- },
1758
- "closeDate": {
1759
- "raw_path": [
1760
- "properties",
1761
- "closedate",
1762
- "value"
1763
- ],
1764
- "functions": [],
1765
- "type": "string",
1766
- "required": false,
1767
- "description": "Expected close date",
1768
- "indexed": false
1769
- },
1770
- "dealType": {
1771
- "raw_path": [
1772
- "properties",
1773
- "dealtype",
1774
- "value"
1775
- ],
1776
- "functions": [
1777
- {
1778
- "name": "trim",
1779
- "args": []
1780
- }
1781
- ],
1782
- "type": "string",
1783
- "required": false,
1784
- "description": "Deal type",
1785
- "indexed": false
1786
- },
1787
- "associatedContacts": {
1788
- "raw_path": [
1789
- "associations",
1790
- "contacts",
1791
- "results"
1792
- ],
1793
- "functions": [],
1794
- "type": "array",
1795
- "required": false,
1796
- "description": "Array of associated contact IDs",
1797
- "indexed": false
1798
- },
1799
- "createdAt": {
1800
- "raw_path": [
1801
- "properties",
1802
- "createdate",
1803
- "value"
1804
- ],
1805
- "functions": [],
1806
- "type": "string",
1807
- "required": false,
1808
- "description": "Creation timestamp",
1809
- "indexed": false
1810
- },
1811
- "updatedAt": {
1812
- "raw_path": [
1813
- "properties",
1814
- "hs_lastmodifieddate",
1815
- "value"
1816
- ],
1817
- "functions": [],
1818
- "type": "string",
1819
- "required": false,
1820
- "description": "Last modification timestamp",
1821
- "indexed": false
1822
- }
1823
- },
1824
- "compiledFields": {
1825
- "id": {
1826
- "raw_path": [
1827
- "id"
1828
- ],
1829
- "functions": [],
1830
- "type": "string",
1831
- "required": false,
1832
- "description": "Unique deal identifier",
1833
- "indexed": true
1834
- },
1835
- "dealName": {
1836
- "raw_path": [
1837
- "properties",
1838
- "dealname",
1839
- "value"
1840
- ],
1841
- "functions": [
1842
- {
1843
- "name": "trim",
1844
- "args": []
1845
- }
1846
- ],
1847
- "type": "string",
1848
- "required": false,
1849
- "description": "Deal name",
1850
- "indexed": false
1851
- },
1852
- "amount": {
1853
- "raw_path": [
1854
- "properties",
1855
- "amount",
1856
- "value"
1857
- ],
1858
- "functions": [],
1859
- "type": "string",
1860
- "required": false,
1861
- "description": "Deal amount",
1862
- "indexed": false
1863
- },
1864
- "currency": {
1865
- "raw_path": [
1866
- "properties",
1867
- "deal_currency_code",
1868
- "value"
1869
- ],
1870
- "functions": [
1871
- {
1872
- "name": "toUpper",
1873
- "args": []
1874
- },
1875
- {
1876
- "name": "trim",
1877
- "args": []
1878
- }
1879
- ],
1880
- "type": "string",
1881
- "required": false,
1882
- "description": "Currency code",
1883
- "indexed": false
1884
- },
1885
- "stage": {
1886
- "raw_path": [
1887
- "properties",
1888
- "dealstage",
1889
- "value"
1890
- ],
1891
- "functions": [
1892
- {
1893
- "name": "trim",
1894
- "args": []
1895
- }
1896
- ],
1897
- "type": "string",
1898
- "required": false,
1899
- "description": "Deal stage for ABAC filtering",
1900
- "indexed": false
1901
- },
1902
- "pipeline": {
1903
- "raw_path": [
1904
- "properties",
1905
- "pipeline",
1906
- "value"
1907
- ],
1908
- "functions": [
1909
- {
1910
- "name": "trim",
1911
- "args": []
1912
- }
1913
- ],
1914
- "type": "string",
1915
- "required": false,
1916
- "description": "Pipeline name for ABAC filtering",
1917
- "indexed": false
1918
- },
1919
- "closeDate": {
1920
- "raw_path": [
1921
- "properties",
1922
- "closedate",
1923
- "value"
1924
- ],
1925
- "functions": [],
1926
- "type": "string",
1927
- "required": false,
1928
- "description": "Expected close date",
1929
- "indexed": false
1930
- },
1931
- "dealType": {
1932
- "raw_path": [
1933
- "properties",
1934
- "dealtype",
1935
- "value"
1936
- ],
1937
- "functions": [
1938
- {
1939
- "name": "trim",
1940
- "args": []
1941
- }
1942
- ],
1943
- "type": "string",
1944
- "required": false,
1945
- "description": "Deal type",
1946
- "indexed": false
1947
- },
1948
- "associatedContacts": {
1949
- "raw_path": [
1950
- "associations",
1951
- "contacts",
1952
- "results"
1953
- ],
1954
- "functions": [],
1955
- "type": "array",
1956
- "required": false,
1957
- "description": "Array of associated contact IDs",
1958
- "indexed": false
1959
- },
1960
- "createdAt": {
1961
- "raw_path": [
1962
- "properties",
1963
- "createdate",
1964
- "value"
1965
- ],
1966
- "functions": [],
1967
- "type": "string",
1968
- "required": false,
1969
- "description": "Creation timestamp",
1970
- "indexed": false
1971
- },
1972
- "updatedAt": {
1973
- "raw_path": [
1974
- "properties",
1975
- "hs_lastmodifieddate",
1976
- "value"
1977
- ],
1978
- "functions": [],
1979
- "type": "string",
1980
- "required": false,
1981
- "description": "Last modification timestamp",
1982
- "indexed": false
1983
- }
1984
- }
1985
- },
1986
- "exposed": {
1987
- "attributes": [
1988
- "id",
1989
- "dealName",
1990
- "amount",
1991
- "currency",
1992
- "stage",
1993
- "pipeline",
1994
- "closeDate",
1995
- "dealType",
1996
- "associatedCompany",
1997
- "associatedContacts",
1998
- "createdAt",
1999
- "updatedAt"
2000
- ],
2001
- "description": "Exposed fields for HubSpot deals"
2002
- },
2003
- "openapi": {
2004
- "enabled": true,
2005
- "documentKey": "hubspot-v3",
2006
- "baseUrl": "https://api.hubapi.com",
2007
- "operations": {
2008
- "list": {
2009
- "operationId": "getDeals",
2010
- "method": "GET",
2011
- "path": "/crm/v3/objects/deals"
2012
- },
2013
- "get": {
2014
- "operationId": "getDeal",
2015
- "method": "GET",
2016
- "path": "/crm/v3/objects/deals/{dealId}"
2017
- },
2018
- "create": {
2019
- "operationId": "createDeal",
2020
- "method": "POST",
2021
- "path": "/crm/v3/objects/deals"
2022
- },
2023
- "update": {
2024
- "operationId": "updateDeal",
2025
- "method": "PATCH",
2026
- "path": "/crm/v3/objects/deals/{dealId}"
2027
- },
2028
- "delete": {
2029
- "operationId": "deleteDeal",
2030
- "method": "DELETE",
2031
- "path": "/crm/v3/objects/deals/{dealId}"
2032
- }
2033
- },
2034
- "autoRbac": true
2035
- }
2036
- },
2037
- {
2038
- "key": "hubspot-test-users",
2039
- "displayName": "HubSpot Users",
2040
- "resourceType": "person",
2041
- "systemKey": "hubspot-test",
2042
- "enabled": true,
2043
- "entityType": "recordStorage",
2044
- "primaryKey": [
2045
- "id"
2046
- ],
2047
- "description": "Comprehensive HubSpot users datasource with full CRUD operations, comprehensive metadata schema, ABAC dimensions, and OpenAPI support",
2048
- "metadataSchema": {
2049
- "type": "object",
2050
- "properties": {
2051
- "id": {
2052
- "type": "string",
2053
- "description": "HubSpot user ID"
2054
- },
2055
- "properties": {
2056
- "type": "object",
2057
- "description": "User properties object containing all CRM fields",
2058
- "additionalProperties": true,
2059
- "properties": {
2060
- "email": {
2061
- "type": "string",
2062
- "format": "email",
2063
- "description": "User email address"
2064
- },
2065
- "firstName": {
2066
- "type": "string",
2067
- "description": "User first name"
2068
- },
2069
- "lastName": {
2070
- "type": "string",
2071
- "description": "User last name"
2072
- },
2073
- "role": {
2074
- "type": "string",
2075
- "description": "User role"
2076
- },
2077
- "timezone": {
2078
- "type": "string",
2079
- "description": "User timezone"
2080
- }
2081
- }
2082
- },
2083
- "createdAt": {
2084
- "type": "string",
2085
- "format": "date-time",
2086
- "description": "User creation timestamp"
2087
- },
2088
- "updatedAt": {
2089
- "type": "string",
2090
- "format": "date-time",
2091
- "description": "User last update timestamp"
2092
- },
2093
- "archived": {
2094
- "type": "boolean",
2095
- "description": "Whether the user is archived"
2096
- },
2097
- "archivedAt": {
2098
- "type": "string",
2099
- "format": "date-time",
2100
- "description": "User archive timestamp"
2101
- },
2102
- "associations": {
2103
- "type": "object",
2104
- "description": "Associated records",
2105
- "additionalProperties": true
2106
- },
2107
- "url": {
2108
- "type": "string",
2109
- "format": "uri",
2110
- "description": "HubSpot object URL"
2111
- },
2112
- "objectWriteTraceId": {
2113
- "type": "string",
2114
- "description": "Trace ID for tracking writes"
2115
- },
2116
- "propertiesWithHistory": {
2117
- "type": "object",
2118
- "description": "Properties with change history",
2119
- "additionalProperties": true
2120
- }
2121
- },
2122
- "required": [
2123
- "id"
2124
- ]
2125
- },
2126
- "fieldMappings": {
2127
- "attributes": {
2128
- "id": {
2129
- "expression": "{{id}}",
2130
- "type": "string",
2131
- "indexed": true
2132
- },
2133
- "department": {
2134
- "expression": "{{id}}",
2135
- "type": "string",
2136
- "indexed": true,
2137
- "description": "Default dimension for catalog compatibility"
2138
- }
2139
- },
2140
- "dimensions": {
2141
- "department": "metadata.department"
2142
- }
2143
- },
2144
- "sync": {
2145
- "mode": "pull",
2146
- "schedule": "0 */6 * * *",
2147
- "batchSize": 100,
2148
- "maxParallelRequests": 5,
2149
- "pagination": {
2150
- "strategy": "cursor",
2151
- "cursorField": "$.paging.next.after",
2152
- "cursorParam": "after"
2153
- }
2154
- }
2155
- }
2156
- ],
2157
- "requiresDatabase": false,
2158
- "requiresRedis": false,
2159
- "requiresStorage": false
2160
- }