@epilot/sdk 2.3.10 → 2.4.0

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 (221) hide show
  1. package/dist/apis/access-token.cjs +6 -6
  2. package/dist/apis/access-token.js +1 -1
  3. package/dist/apis/address-suggestions.cjs +6 -6
  4. package/dist/apis/address-suggestions.js +1 -1
  5. package/dist/apis/address.cjs +6 -6
  6. package/dist/apis/address.js +1 -1
  7. package/dist/apis/ai-agents.cjs +6 -6
  8. package/dist/apis/ai-agents.js +1 -1
  9. package/dist/apis/app.cjs +6 -6
  10. package/dist/apis/app.js +1 -1
  11. package/dist/apis/audit-logs.cjs +6 -6
  12. package/dist/apis/audit-logs.js +1 -1
  13. package/dist/apis/automation.cjs +6 -6
  14. package/dist/apis/automation.js +1 -1
  15. package/dist/apis/billing.cjs +6 -6
  16. package/dist/apis/billing.js +1 -1
  17. package/dist/apis/blueprint-manifest.cjs +6 -6
  18. package/dist/apis/blueprint-manifest.js +1 -1
  19. package/dist/apis/configuration-hub.cjs +6 -6
  20. package/dist/apis/configuration-hub.js +1 -1
  21. package/dist/apis/consent.cjs +6 -6
  22. package/dist/apis/consent.js +1 -1
  23. package/dist/apis/customer-portal.cjs +6 -6
  24. package/dist/apis/customer-portal.js +1 -1
  25. package/dist/apis/dashboard.cjs +6 -6
  26. package/dist/apis/dashboard.js +1 -1
  27. package/dist/apis/data-governance.cjs +6 -6
  28. package/dist/apis/data-governance.js +1 -1
  29. package/dist/apis/deduplication.cjs +6 -6
  30. package/dist/apis/deduplication.js +1 -1
  31. package/dist/apis/design.cjs +6 -6
  32. package/dist/apis/design.js +1 -1
  33. package/dist/apis/document.cjs +6 -6
  34. package/dist/apis/document.js +1 -1
  35. package/dist/apis/email-settings.cjs +6 -6
  36. package/dist/apis/email-settings.js +1 -1
  37. package/dist/apis/email-template.cjs +6 -6
  38. package/dist/apis/email-template.js +1 -1
  39. package/dist/apis/entity-mapping.cjs +6 -6
  40. package/dist/apis/entity-mapping.js +1 -1
  41. package/dist/apis/entity.cjs +8 -8
  42. package/dist/apis/entity.d.cts +2 -2
  43. package/dist/apis/entity.d.ts +2 -2
  44. package/dist/apis/entity.js +2 -2
  45. package/dist/apis/environments.cjs +6 -6
  46. package/dist/apis/environments.js +1 -1
  47. package/dist/apis/event-catalog.cjs +6 -6
  48. package/dist/apis/event-catalog.js +1 -1
  49. package/dist/apis/file.cjs +6 -6
  50. package/dist/apis/file.js +1 -1
  51. package/dist/apis/iban.cjs +6 -6
  52. package/dist/apis/iban.js +1 -1
  53. package/dist/apis/integration-toolkit.cjs +6 -6
  54. package/dist/apis/integration-toolkit.js +1 -1
  55. package/dist/apis/journey.cjs +6 -6
  56. package/dist/apis/journey.js +1 -1
  57. package/dist/apis/kanban.cjs +6 -6
  58. package/dist/apis/kanban.js +1 -1
  59. package/dist/apis/message.cjs +6 -6
  60. package/dist/apis/message.js +1 -1
  61. package/dist/apis/metering.cjs +6 -6
  62. package/dist/apis/metering.js +1 -1
  63. package/dist/apis/notes.cjs +6 -6
  64. package/dist/apis/notes.js +1 -1
  65. package/dist/apis/notification.cjs +6 -6
  66. package/dist/apis/notification.js +1 -1
  67. package/dist/apis/organization.cjs +6 -6
  68. package/dist/apis/organization.js +1 -1
  69. package/dist/apis/partner-directory.cjs +6 -6
  70. package/dist/apis/partner-directory.js +1 -1
  71. package/dist/apis/permissions.cjs +6 -6
  72. package/dist/apis/permissions.js +1 -1
  73. package/dist/apis/pricing-tier.cjs +6 -6
  74. package/dist/apis/pricing-tier.js +1 -1
  75. package/dist/apis/pricing.cjs +6 -6
  76. package/dist/apis/pricing.js +1 -1
  77. package/dist/apis/purpose.cjs +6 -6
  78. package/dist/apis/purpose.js +1 -1
  79. package/dist/apis/query.cjs +6 -6
  80. package/dist/apis/query.js +1 -1
  81. package/dist/apis/sandbox.cjs +6 -6
  82. package/dist/apis/sandbox.js +1 -1
  83. package/dist/apis/sharing.cjs +6 -6
  84. package/dist/apis/sharing.js +1 -1
  85. package/dist/apis/submission.cjs +6 -6
  86. package/dist/apis/submission.js +1 -1
  87. package/dist/apis/target.cjs +6 -6
  88. package/dist/apis/target.js +1 -1
  89. package/dist/apis/targeting.cjs +6 -6
  90. package/dist/apis/targeting.js +1 -1
  91. package/dist/apis/template-variables.cjs +6 -6
  92. package/dist/apis/template-variables.js +1 -1
  93. package/dist/apis/user.cjs +6 -6
  94. package/dist/apis/user.js +1 -1
  95. package/dist/apis/validation-rules.cjs +6 -6
  96. package/dist/apis/validation-rules.js +1 -1
  97. package/dist/apis/webhooks.cjs +6 -6
  98. package/dist/apis/webhooks.js +1 -1
  99. package/dist/apis/workflow-definition.cjs +6 -6
  100. package/dist/apis/workflow-definition.js +1 -1
  101. package/dist/apis/workflow.cjs +6 -6
  102. package/dist/apis/workflow.js +1 -1
  103. package/dist/{chunk-W7YCS4FU.js → chunk-DAFBUTK6.js} +2 -2
  104. package/dist/chunk-M6Z6ES3I.js +14 -0
  105. package/dist/chunk-UBQCDPW6.cjs +14 -0
  106. package/dist/{chunk-MDLNRFJV.cjs → chunk-Z33PZNHV.cjs} +2 -2
  107. package/dist/entity-VDUN7SYC.cjs +7 -0
  108. package/dist/entity-WWM2Z7BU.js +7 -0
  109. package/dist/entity-runtime-3J5EDLXP.cjs +5 -0
  110. package/dist/{entity-runtime-D4DV5XRM.js → entity-runtime-LNAZILIN.js} +1 -1
  111. package/dist/{entity.d-ByufVI16.d.cts → entity.d-B43ezu-V.d.cts} +1336 -9
  112. package/dist/{entity.d-ByufVI16.d.ts → entity.d-B43ezu-V.d.ts} +1336 -9
  113. package/dist/index.cjs +10 -10
  114. package/dist/index.d.cts +1 -1
  115. package/dist/index.d.ts +1 -1
  116. package/dist/index.js +2 -2
  117. package/docs/entity.md +965 -39
  118. package/package.json +1 -1
  119. package/definitions/access-token-runtime.json +0 -1
  120. package/definitions/access-token.json +0 -663
  121. package/definitions/address-runtime.json +0 -1
  122. package/definitions/address-suggestions-runtime.json +0 -1
  123. package/definitions/address-suggestions.json +0 -582
  124. package/definitions/address.json +0 -578
  125. package/definitions/ai-agents-runtime.json +0 -1
  126. package/definitions/ai-agents.json +0 -1711
  127. package/definitions/app-runtime.json +0 -1
  128. package/definitions/app.json +0 -4493
  129. package/definitions/audit-logs-runtime.json +0 -1
  130. package/definitions/audit-logs.json +0 -305
  131. package/definitions/automation-runtime.json +0 -1
  132. package/definitions/automation.json +0 -5028
  133. package/definitions/billing-runtime.json +0 -1
  134. package/definitions/billing.json +0 -837
  135. package/definitions/blueprint-manifest-runtime.json +0 -1
  136. package/definitions/blueprint-manifest.json +0 -4846
  137. package/definitions/configuration-hub-runtime.json +0 -1
  138. package/definitions/configuration-hub.json +0 -611
  139. package/definitions/consent-runtime.json +0 -1
  140. package/definitions/consent.json +0 -344
  141. package/definitions/customer-portal-runtime.json +0 -1
  142. package/definitions/customer-portal.json +0 -16045
  143. package/definitions/dashboard-runtime.json +0 -1
  144. package/definitions/dashboard.json +0 -484
  145. package/definitions/data-governance-runtime.json +0 -1
  146. package/definitions/data-governance.json +0 -1126
  147. package/definitions/deduplication-runtime.json +0 -1
  148. package/definitions/deduplication.json +0 -314
  149. package/definitions/design-runtime.json +0 -1
  150. package/definitions/design.json +0 -1722
  151. package/definitions/document-runtime.json +0 -1
  152. package/definitions/document.json +0 -758
  153. package/definitions/email-settings-runtime.json +0 -1
  154. package/definitions/email-settings.json +0 -2777
  155. package/definitions/email-template-runtime.json +0 -1
  156. package/definitions/email-template.json +0 -1441
  157. package/definitions/entity-mapping-runtime.json +0 -1
  158. package/definitions/entity-mapping.json +0 -1642
  159. package/definitions/entity-runtime.json +0 -1
  160. package/definitions/entity.json +0 -10474
  161. package/definitions/environments-runtime.json +0 -1
  162. package/definitions/environments.json +0 -539
  163. package/definitions/event-catalog-runtime.json +0 -1
  164. package/definitions/event-catalog.json +0 -1051
  165. package/definitions/file-runtime.json +0 -1
  166. package/definitions/file.json +0 -2842
  167. package/definitions/iban-runtime.json +0 -1
  168. package/definitions/iban.json +0 -132
  169. package/definitions/integration-toolkit-runtime.json +0 -1
  170. package/definitions/integration-toolkit.json +0 -7998
  171. package/definitions/journey-runtime.json +0 -1
  172. package/definitions/journey.json +0 -2603
  173. package/definitions/kanban-runtime.json +0 -1
  174. package/definitions/kanban.json +0 -1505
  175. package/definitions/message-runtime.json +0 -1
  176. package/definitions/message.json +0 -2872
  177. package/definitions/metering-runtime.json +0 -1
  178. package/definitions/metering.json +0 -2321
  179. package/definitions/notes-runtime.json +0 -1
  180. package/definitions/notes.json +0 -1531
  181. package/definitions/notification-runtime.json +0 -1
  182. package/definitions/notification.json +0 -1425
  183. package/definitions/organization-runtime.json +0 -1
  184. package/definitions/organization.json +0 -1192
  185. package/definitions/partner-directory-runtime.json +0 -1
  186. package/definitions/partner-directory.json +0 -2284
  187. package/definitions/permissions-runtime.json +0 -1
  188. package/definitions/permissions.json +0 -1515
  189. package/definitions/pricing-runtime.json +0 -1
  190. package/definitions/pricing-tier-runtime.json +0 -1
  191. package/definitions/pricing-tier.json +0 -105
  192. package/definitions/pricing.json +0 -9884
  193. package/definitions/purpose-runtime.json +0 -1
  194. package/definitions/purpose.json +0 -524
  195. package/definitions/query-runtime.json +0 -1
  196. package/definitions/query.json +0 -3178
  197. package/definitions/sandbox-runtime.json +0 -1
  198. package/definitions/sandbox.json +0 -453
  199. package/definitions/sharing-runtime.json +0 -1
  200. package/definitions/sharing.json +0 -956
  201. package/definitions/submission-runtime.json +0 -1
  202. package/definitions/submission.json +0 -313
  203. package/definitions/targeting-runtime.json +0 -1
  204. package/definitions/targeting.json +0 -1474
  205. package/definitions/template-variables-runtime.json +0 -1
  206. package/definitions/template-variables.json +0 -1416
  207. package/definitions/user-runtime.json +0 -1
  208. package/definitions/user.json +0 -2460
  209. package/definitions/validation-rules-runtime.json +0 -1
  210. package/definitions/validation-rules.json +0 -1491
  211. package/definitions/webhooks-runtime.json +0 -1
  212. package/definitions/webhooks.json +0 -1634
  213. package/definitions/workflow-definition-runtime.json +0 -1
  214. package/definitions/workflow-definition.json +0 -3354
  215. package/definitions/workflow-runtime.json +0 -1
  216. package/definitions/workflow.json +0 -4272
  217. package/dist/chunk-F7W62NKV.js +0 -14
  218. package/dist/chunk-QA2OYK7N.cjs +0 -14
  219. package/dist/entity-CK76MXVN.js +0 -7
  220. package/dist/entity-TFMH5VTZ.cjs +0 -7
  221. package/dist/entity-runtime-DUJTRYLQ.cjs +0 -5
package/docs/entity.md CHANGED
@@ -72,6 +72,9 @@ const { data } = await entityClient.listSchemas(...)
72
72
  - [`deleteEntity`](#deleteentity)
73
73
  - [`autocomplete`](#autocomplete)
74
74
  - [`wipeAllEntities`](#wipeallentities)
75
+ - [`applyChangeset`](#applychangeset)
76
+ - [`dismissChangeset`](#dismisschangeset)
77
+ - [`listChangesets`](#listchangesets)
75
78
 
76
79
  **Activity**
77
80
  - [`createActivity`](#createactivity)
@@ -255,6 +258,12 @@ const { data } = await entityClient.listSchemas(...)
255
258
  - [`ESClusterAssignment`](#esclusterassignment)
256
259
  - [`SettingFlag`](#settingflag)
257
260
  - [`ErrorObject`](#errorobject)
261
+ - [`ChangesetCreator`](#changesetcreator)
262
+ - [`Changeset`](#changeset)
263
+ - [`ChangesetMap`](#changesetmap)
264
+ - [`EditModeConfig`](#editmodeconfig)
265
+ - [`FuzzyConfig`](#fuzzyconfig)
266
+ - [`MatchStrategy`](#matchstrategy)
258
267
 
259
268
  ### `listSchemas`
260
269
 
@@ -1726,7 +1735,8 @@ const { data } = await client.queryEntityGraph(
1726
1735
  }
1727
1736
  ]
1728
1737
  },
1729
- hydrate: false
1738
+ hydrate: false,
1739
+ apply_changesets: false
1730
1740
  },
1731
1741
  )
1732
1742
  ```
@@ -2048,6 +2058,7 @@ const { data } = await client.getEntityV2({
2048
2058
  slug: 'example',
2049
2059
  hydrate: true,
2050
2060
  fields: ['...'],
2061
+ apply_changesets: true,
2051
2062
  })
2052
2063
  ```
2053
2064
 
@@ -2257,6 +2268,7 @@ const { data } = await client.updateEntity(
2257
2268
  fill_activity: true,
2258
2269
  async: true,
2259
2270
  validate: true,
2271
+ direct: true,
2260
2272
  },
2261
2273
  {
2262
2274
  _id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
@@ -2327,6 +2339,7 @@ const { data } = await client.patchEntity(
2327
2339
  dry_run: true,
2328
2340
  async: true,
2329
2341
  validate: true,
2342
+ direct: true,
2330
2343
  },
2331
2344
  {
2332
2345
  _id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
@@ -2630,6 +2643,124 @@ const { data } = await client.attachActivity({
2630
2643
 
2631
2644
  ---
2632
2645
 
2646
+ ### `applyChangeset`
2647
+
2648
+ Applies the proposed value from a pending changeset to the entity attribute
2649
+ and removes the changeset. Used for human approval of pending changes.
2650
+
2651
+ `POST /v1/entity/{slug}/{id}/changesets/{attribute}:apply`
2652
+
2653
+ ```ts
2654
+ const { data } = await client.applyChangeset({
2655
+ slug: 'example',
2656
+ id: '123e4567-e89b-12d3-a456-426614174000',
2657
+ attribute: 'example',
2658
+ })
2659
+ ```
2660
+
2661
+ <details>
2662
+ <summary>Response</summary>
2663
+
2664
+ ```json
2665
+ {
2666
+ "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2667
+ "_org": "123",
2668
+ "_owners": [
2669
+ {
2670
+ "org_id": "123",
2671
+ "user_id": "123"
2672
+ }
2673
+ ],
2674
+ "_schema": "contact",
2675
+ "_tags": ["example", "mock"],
2676
+ "_created_at": "2021-02-09T12:41:43.662Z",
2677
+ "_updated_at": "2021-02-09T12:41:43.662Z",
2678
+ "_acl": {
2679
+ "view": ["org:456", "org:789"],
2680
+ "edit": ["org:456"],
2681
+ "delete": ["org:456"]
2682
+ },
2683
+ "_manifest": ["123e4567-e89b-12d3-a456-426614174000"]
2684
+ }
2685
+ ```
2686
+
2687
+ </details>
2688
+
2689
+ ---
2690
+
2691
+ ### `dismissChangeset`
2692
+
2693
+ Removes a pending changeset without applying it. The attribute value remains unchanged.
2694
+
2695
+ `POST /v1/entity/{slug}/{id}/changesets/{attribute}:dismiss`
2696
+
2697
+ ```ts
2698
+ const { data } = await client.dismissChangeset(
2699
+ {
2700
+ slug: 'example',
2701
+ id: '123e4567-e89b-12d3-a456-426614174000',
2702
+ attribute: 'example',
2703
+ },
2704
+ {
2705
+ reason: 'string'
2706
+ },
2707
+ )
2708
+ ```
2709
+
2710
+ <details>
2711
+ <summary>Response</summary>
2712
+
2713
+ ```json
2714
+ {
2715
+ "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2716
+ "_org": "123",
2717
+ "_owners": [
2718
+ {
2719
+ "org_id": "123",
2720
+ "user_id": "123"
2721
+ }
2722
+ ],
2723
+ "_schema": "contact",
2724
+ "_tags": ["example", "mock"],
2725
+ "_created_at": "2021-02-09T12:41:43.662Z",
2726
+ "_updated_at": "2021-02-09T12:41:43.662Z",
2727
+ "_acl": {
2728
+ "view": ["org:456", "org:789"],
2729
+ "edit": ["org:456"],
2730
+ "delete": ["org:456"]
2731
+ },
2732
+ "_manifest": ["123e4567-e89b-12d3-a456-426614174000"]
2733
+ }
2734
+ ```
2735
+
2736
+ </details>
2737
+
2738
+ ---
2739
+
2740
+ ### `listChangesets`
2741
+
2742
+ Returns all pending changesets for an entity.
2743
+
2744
+ `GET /v1/entity/{slug}/{id}/changesets`
2745
+
2746
+ ```ts
2747
+ const { data } = await client.listChangesets({
2748
+ slug: 'example',
2749
+ id: '123e4567-e89b-12d3-a456-426614174000',
2750
+ })
2751
+ ```
2752
+
2753
+ <details>
2754
+ <summary>Response</summary>
2755
+
2756
+ ```json
2757
+ {}
2758
+ ```
2759
+
2760
+ </details>
2761
+
2762
+ ---
2763
+
2633
2764
  ### `getEntityActivityFeed`
2634
2765
 
2635
2766
  Get activity feed for an entity
@@ -4363,6 +4494,19 @@ const { data } = await client.createSchemaAttribute(
4363
4494
  exclude_from_search: false,
4364
4495
  repeatable: true,
4365
4496
  has_primary: true,
4497
+ edit_mode: 'direct',
4498
+ edit_mode_config: {
4499
+ match_strategy: 'exact',
4500
+ fuzzy_config: {
4501
+ type: 'suffix',
4502
+ suffix_length: 0,
4503
+ fields_to_ignore: ['string'],
4504
+ regex_flags: 'string',
4505
+ country_code: 'string',
4506
+ match_on: 'string',
4507
+ pattern: 'string'
4508
+ }
4509
+ },
4366
4510
  type: 'string',
4367
4511
  multiline: true,
4368
4512
  rich_text: true,
@@ -4419,6 +4563,19 @@ const { data } = await client.createSchemaAttribute(
4419
4563
  "exclude_from_search": false,
4420
4564
  "repeatable": true,
4421
4565
  "has_primary": true,
4566
+ "edit_mode": "direct",
4567
+ "edit_mode_config": {
4568
+ "match_strategy": "exact",
4569
+ "fuzzy_config": {
4570
+ "type": "suffix",
4571
+ "suffix_length": 0,
4572
+ "fields_to_ignore": ["string"],
4573
+ "regex_flags": "string",
4574
+ "country_code": "string",
4575
+ "match_on": "string",
4576
+ "pattern": "string"
4577
+ }
4578
+ },
4422
4579
  "type": "string",
4423
4580
  "multiline": true,
4424
4581
  "rich_text": true,
@@ -4490,6 +4647,19 @@ const { data } = await client.getSchemaAttribute({
4490
4647
  "exclude_from_search": false,
4491
4648
  "repeatable": true,
4492
4649
  "has_primary": true,
4650
+ "edit_mode": "direct",
4651
+ "edit_mode_config": {
4652
+ "match_strategy": "exact",
4653
+ "fuzzy_config": {
4654
+ "type": "suffix",
4655
+ "suffix_length": 0,
4656
+ "fields_to_ignore": ["string"],
4657
+ "regex_flags": "string",
4658
+ "country_code": "string",
4659
+ "match_on": "string",
4660
+ "pattern": "string"
4661
+ }
4662
+ },
4493
4663
  "type": "string",
4494
4664
  "multiline": true,
4495
4665
  "rich_text": true,
@@ -4556,6 +4726,19 @@ const { data } = await client.putSchemaAttribute(
4556
4726
  exclude_from_search: false,
4557
4727
  repeatable: true,
4558
4728
  has_primary: true,
4729
+ edit_mode: 'direct',
4730
+ edit_mode_config: {
4731
+ match_strategy: 'exact',
4732
+ fuzzy_config: {
4733
+ type: 'suffix',
4734
+ suffix_length: 0,
4735
+ fields_to_ignore: ['string'],
4736
+ regex_flags: 'string',
4737
+ country_code: 'string',
4738
+ match_on: 'string',
4739
+ pattern: 'string'
4740
+ }
4741
+ },
4559
4742
  type: 'string',
4560
4743
  multiline: true,
4561
4744
  rich_text: true,
@@ -4612,6 +4795,19 @@ const { data } = await client.putSchemaAttribute(
4612
4795
  "exclude_from_search": false,
4613
4796
  "repeatable": true,
4614
4797
  "has_primary": true,
4798
+ "edit_mode": "direct",
4799
+ "edit_mode_config": {
4800
+ "match_strategy": "exact",
4801
+ "fuzzy_config": {
4802
+ "type": "suffix",
4803
+ "suffix_length": 0,
4804
+ "fields_to_ignore": ["string"],
4805
+ "regex_flags": "string",
4806
+ "country_code": "string",
4807
+ "match_on": "string",
4808
+ "pattern": "string"
4809
+ }
4810
+ },
4615
4811
  "type": "string",
4616
4812
  "multiline": true,
4617
4813
  "rich_text": true,
@@ -4683,6 +4879,19 @@ const { data } = await client.deleteSchemaAttribute({
4683
4879
  "exclude_from_search": false,
4684
4880
  "repeatable": true,
4685
4881
  "has_primary": true,
4882
+ "edit_mode": "direct",
4883
+ "edit_mode_config": {
4884
+ "match_strategy": "exact",
4885
+ "fuzzy_config": {
4886
+ "type": "suffix",
4887
+ "suffix_length": 0,
4888
+ "fields_to_ignore": ["string"],
4889
+ "regex_flags": "string",
4890
+ "country_code": "string",
4891
+ "match_on": "string",
4892
+ "pattern": "string"
4893
+ }
4894
+ },
4686
4895
  "type": "string",
4687
4896
  "multiline": true,
4688
4897
  "rich_text": true,
@@ -4740,6 +4949,8 @@ const { data } = await client.createSchemaCapability(
4740
4949
  exclude_from_search: false,
4741
4950
  repeatable: true,
4742
4951
  has_primary: true,
4952
+ edit_mode: 'direct',
4953
+ edit_mode_config: { /* ... */ },
4743
4954
  type: 'string',
4744
4955
  multiline: true,
4745
4956
  rich_text: true,
@@ -4777,6 +4988,8 @@ const { data } = await client.createSchemaCapability(
4777
4988
  exclude_from_search: false,
4778
4989
  repeatable: true,
4779
4990
  has_primary: true,
4991
+ edit_mode: 'direct',
4992
+ edit_mode_config: { /* ... */ },
4780
4993
  type: 'link'
4781
4994
  },
4782
4995
  /* ... 33 more */
@@ -4862,6 +5075,8 @@ const { data } = await client.createSchemaCapability(
4862
5075
  "exclude_from_search": false,
4863
5076
  "repeatable": true,
4864
5077
  "has_primary": true,
5078
+ "edit_mode": "direct",
5079
+ "edit_mode_config": {},
4865
5080
  "type": "string",
4866
5081
  "multiline": true,
4867
5082
  "rich_text": true,
@@ -4899,6 +5114,8 @@ const { data } = await client.createSchemaCapability(
4899
5114
  "exclude_from_search": false,
4900
5115
  "repeatable": true,
4901
5116
  "has_primary": true,
5117
+ "edit_mode": "direct",
5118
+ "edit_mode_config": {},
4902
5119
  "type": "link"
4903
5120
  }
4904
5121
  ],
@@ -4998,6 +5215,8 @@ const { data } = await client.getSchemaCapability({
4998
5215
  "exclude_from_search": false,
4999
5216
  "repeatable": true,
5000
5217
  "has_primary": true,
5218
+ "edit_mode": "direct",
5219
+ "edit_mode_config": {},
5001
5220
  "type": "string",
5002
5221
  "multiline": true,
5003
5222
  "rich_text": true,
@@ -5035,6 +5254,8 @@ const { data } = await client.getSchemaCapability({
5035
5254
  "exclude_from_search": false,
5036
5255
  "repeatable": true,
5037
5256
  "has_primary": true,
5257
+ "edit_mode": "direct",
5258
+ "edit_mode_config": {},
5038
5259
  "type": "link"
5039
5260
  }
5040
5261
  ],
@@ -5129,6 +5350,8 @@ const { data } = await client.putSchemaCapability(
5129
5350
  exclude_from_search: false,
5130
5351
  repeatable: true,
5131
5352
  has_primary: true,
5353
+ edit_mode: 'direct',
5354
+ edit_mode_config: { /* ... */ },
5132
5355
  type: 'string',
5133
5356
  multiline: true,
5134
5357
  rich_text: true,
@@ -5166,6 +5389,8 @@ const { data } = await client.putSchemaCapability(
5166
5389
  exclude_from_search: false,
5167
5390
  repeatable: true,
5168
5391
  has_primary: true,
5392
+ edit_mode: 'direct',
5393
+ edit_mode_config: { /* ... */ },
5169
5394
  type: 'link'
5170
5395
  },
5171
5396
  /* ... 33 more */
@@ -5251,6 +5476,8 @@ const { data } = await client.putSchemaCapability(
5251
5476
  "exclude_from_search": false,
5252
5477
  "repeatable": true,
5253
5478
  "has_primary": true,
5479
+ "edit_mode": "direct",
5480
+ "edit_mode_config": {},
5254
5481
  "type": "string",
5255
5482
  "multiline": true,
5256
5483
  "rich_text": true,
@@ -5288,6 +5515,8 @@ const { data } = await client.putSchemaCapability(
5288
5515
  "exclude_from_search": false,
5289
5516
  "repeatable": true,
5290
5517
  "has_primary": true,
5518
+ "edit_mode": "direct",
5519
+ "edit_mode_config": {},
5291
5520
  "type": "link"
5292
5521
  }
5293
5522
  ],
@@ -5387,6 +5616,8 @@ const { data } = await client.deleteSchemaCapability({
5387
5616
  "exclude_from_search": false,
5388
5617
  "repeatable": true,
5389
5618
  "has_primary": true,
5619
+ "edit_mode": "direct",
5620
+ "edit_mode_config": {},
5390
5621
  "type": "string",
5391
5622
  "multiline": true,
5392
5623
  "rich_text": true,
@@ -5424,6 +5655,8 @@ const { data } = await client.deleteSchemaCapability({
5424
5655
  "exclude_from_search": false,
5425
5656
  "repeatable": true,
5426
5657
  "has_primary": true,
5658
+ "edit_mode": "direct",
5659
+ "edit_mode_config": {},
5427
5660
  "type": "link"
5428
5661
  }
5429
5662
  ],
@@ -6289,6 +6522,19 @@ type Attribute = {
6289
6522
  exclude_from_search?: boolean
6290
6523
  repeatable?: boolean
6291
6524
  has_primary?: boolean
6525
+ edit_mode?: "direct" | "external" | "approval"
6526
+ edit_mode_config?: {
6527
+ match_strategy?: "exact" | "fuzzy" | "any"
6528
+ fuzzy_config?: {
6529
+ type: { ... }
6530
+ suffix_length?: { ... }
6531
+ fields_to_ignore?: { ... }
6532
+ regex_flags?: { ... }
6533
+ country_code?: { ... }
6534
+ match_on?: { ... }
6535
+ pattern?: { ... }
6536
+ }
6537
+ }
6292
6538
  type: "string"
6293
6539
  multiline?: boolean
6294
6540
  rich_text?: boolean
@@ -6333,22 +6579,9 @@ type Attribute = {
6333
6579
  exclude_from_search?: boolean
6334
6580
  repeatable?: boolean
6335
6581
  has_primary?: boolean
6336
- type: "link"
6337
- } | {
6338
- id?: string
6339
- name: string
6340
- label: string
6341
- placeholder?: string
6342
- hidden?: boolean
6343
- show_in_table?: boolean
6344
- sortable?: boolean
6345
- required?: boolean
6346
- readonly?: boolean
6347
- deprecated?: boolean
6348
- default_value?: unknown
6349
- group?: string
6350
- order?: number
6351
- layout?: string
6582
+ edit_mode?: "direct" | "external" | "approval"
6583
+ edit_mode_config?: {
6584
+ match_strategy?: "exact" | "fuzzy" | "any"
6352
6585
  // ...
6353
6586
  }
6354
6587
  ```
@@ -6405,6 +6638,19 @@ type BaseAttribute = {
6405
6638
  exclude_from_search?: boolean
6406
6639
  repeatable?: boolean
6407
6640
  has_primary?: boolean
6641
+ edit_mode?: "direct" | "external" | "approval"
6642
+ edit_mode_config?: {
6643
+ match_strategy?: "exact" | "fuzzy" | "any"
6644
+ fuzzy_config?: {
6645
+ type: { ... }
6646
+ suffix_length?: { ... }
6647
+ fields_to_ignore?: { ... }
6648
+ regex_flags?: { ... }
6649
+ country_code?: { ... }
6650
+ match_on?: { ... }
6651
+ pattern?: { ... }
6652
+ }
6653
+ }
6408
6654
  }
6409
6655
  ```
6410
6656
 
@@ -6451,6 +6697,19 @@ type TextAttribute = {
6451
6697
  exclude_from_search?: boolean
6452
6698
  repeatable?: boolean
6453
6699
  has_primary?: boolean
6700
+ edit_mode?: "direct" | "external" | "approval"
6701
+ edit_mode_config?: {
6702
+ match_strategy?: "exact" | "fuzzy" | "any"
6703
+ fuzzy_config?: {
6704
+ type: { ... }
6705
+ suffix_length?: { ... }
6706
+ fields_to_ignore?: { ... }
6707
+ regex_flags?: { ... }
6708
+ country_code?: { ... }
6709
+ match_on?: { ... }
6710
+ pattern?: { ... }
6711
+ }
6712
+ }
6454
6713
  type: "string"
6455
6714
  multiline?: boolean
6456
6715
  rich_text?: boolean
@@ -6501,6 +6760,19 @@ type LinkAttribute = {
6501
6760
  exclude_from_search?: boolean
6502
6761
  repeatable?: boolean
6503
6762
  has_primary?: boolean
6763
+ edit_mode?: "direct" | "external" | "approval"
6764
+ edit_mode_config?: {
6765
+ match_strategy?: "exact" | "fuzzy" | "any"
6766
+ fuzzy_config?: {
6767
+ type: { ... }
6768
+ suffix_length?: { ... }
6769
+ fields_to_ignore?: { ... }
6770
+ regex_flags?: { ... }
6771
+ country_code?: { ... }
6772
+ match_on?: { ... }
6773
+ pattern?: { ... }
6774
+ }
6775
+ }
6504
6776
  type: "link"
6505
6777
  }
6506
6778
  ```
@@ -6548,6 +6820,19 @@ type InternalAttribute = {
6548
6820
  exclude_from_search?: boolean
6549
6821
  repeatable?: boolean
6550
6822
  has_primary?: boolean
6823
+ edit_mode?: "direct" | "external" | "approval"
6824
+ edit_mode_config?: {
6825
+ match_strategy?: "exact" | "fuzzy" | "any"
6826
+ fuzzy_config?: {
6827
+ type: { ... }
6828
+ suffix_length?: { ... }
6829
+ fields_to_ignore?: { ... }
6830
+ regex_flags?: { ... }
6831
+ country_code?: { ... }
6832
+ match_on?: { ... }
6833
+ pattern?: { ... }
6834
+ }
6835
+ }
6551
6836
  type: "internal"
6552
6837
  }
6553
6838
  ```
@@ -6595,6 +6880,19 @@ type BooleanAttribute = {
6595
6880
  exclude_from_search?: boolean
6596
6881
  repeatable?: boolean
6597
6882
  has_primary?: boolean
6883
+ edit_mode?: "direct" | "external" | "approval"
6884
+ edit_mode_config?: {
6885
+ match_strategy?: "exact" | "fuzzy" | "any"
6886
+ fuzzy_config?: {
6887
+ type: { ... }
6888
+ suffix_length?: { ... }
6889
+ fields_to_ignore?: { ... }
6890
+ regex_flags?: { ... }
6891
+ country_code?: { ... }
6892
+ match_on?: { ... }
6893
+ pattern?: { ... }
6894
+ }
6895
+ }
6598
6896
  type: "boolean"
6599
6897
  display_type?: "switch" | "checkbox"
6600
6898
  }
@@ -6643,6 +6941,19 @@ type DateAttribute = {
6643
6941
  exclude_from_search?: boolean
6644
6942
  repeatable?: boolean
6645
6943
  has_primary?: boolean
6944
+ edit_mode?: "direct" | "external" | "approval"
6945
+ edit_mode_config?: {
6946
+ match_strategy?: "exact" | "fuzzy" | "any"
6947
+ fuzzy_config?: {
6948
+ type: { ... }
6949
+ suffix_length?: { ... }
6950
+ fields_to_ignore?: { ... }
6951
+ regex_flags?: { ... }
6952
+ country_code?: { ... }
6953
+ match_on?: { ... }
6954
+ pattern?: { ... }
6955
+ }
6956
+ }
6646
6957
  type: "date" | "datetime"
6647
6958
  }
6648
6959
  ```
@@ -6690,6 +7001,19 @@ type CountryAttribute = {
6690
7001
  exclude_from_search?: boolean
6691
7002
  repeatable?: boolean
6692
7003
  has_primary?: boolean
7004
+ edit_mode?: "direct" | "external" | "approval"
7005
+ edit_mode_config?: {
7006
+ match_strategy?: "exact" | "fuzzy" | "any"
7007
+ fuzzy_config?: {
7008
+ type: { ... }
7009
+ suffix_length?: { ... }
7010
+ fields_to_ignore?: { ... }
7011
+ regex_flags?: { ... }
7012
+ country_code?: { ... }
7013
+ match_on?: { ... }
7014
+ pattern?: { ... }
7015
+ }
7016
+ }
6693
7017
  type: "country"
6694
7018
  }
6695
7019
  ```
@@ -6737,6 +7061,19 @@ type SelectAttribute = {
6737
7061
  exclude_from_search?: boolean
6738
7062
  repeatable?: boolean
6739
7063
  has_primary?: boolean
7064
+ edit_mode?: "direct" | "external" | "approval"
7065
+ edit_mode_config?: {
7066
+ match_strategy?: "exact" | "fuzzy" | "any"
7067
+ fuzzy_config?: {
7068
+ type: { ... }
7069
+ suffix_length?: { ... }
7070
+ fields_to_ignore?: { ... }
7071
+ regex_flags?: { ... }
7072
+ country_code?: { ... }
7073
+ match_on?: { ... }
7074
+ pattern?: { ... }
7075
+ }
7076
+ }
6740
7077
  type: "select" | "radio"
6741
7078
  options?: Array<{
6742
7079
  value: string
@@ -6789,6 +7126,19 @@ type MultiSelectAttribute = {
6789
7126
  exclude_from_search?: boolean
6790
7127
  repeatable?: boolean
6791
7128
  has_primary?: boolean
7129
+ edit_mode?: "direct" | "external" | "approval"
7130
+ edit_mode_config?: {
7131
+ match_strategy?: "exact" | "fuzzy" | "any"
7132
+ fuzzy_config?: {
7133
+ type: { ... }
7134
+ suffix_length?: { ... }
7135
+ fields_to_ignore?: { ... }
7136
+ regex_flags?: { ... }
7137
+ country_code?: { ... }
7138
+ match_on?: { ... }
7139
+ pattern?: { ... }
7140
+ }
7141
+ }
6792
7142
  type: "multiselect" | "checkbox"
6793
7143
  disable_case_sensitive?: boolean
6794
7144
  allow_extra_options?: boolean
@@ -6843,6 +7193,19 @@ type StatusAttribute = {
6843
7193
  exclude_from_search?: boolean
6844
7194
  repeatable?: boolean
6845
7195
  has_primary?: boolean
7196
+ edit_mode?: "direct" | "external" | "approval"
7197
+ edit_mode_config?: {
7198
+ match_strategy?: "exact" | "fuzzy" | "any"
7199
+ fuzzy_config?: {
7200
+ type: { ... }
7201
+ suffix_length?: { ... }
7202
+ fields_to_ignore?: { ... }
7203
+ regex_flags?: { ... }
7204
+ country_code?: { ... }
7205
+ match_on?: { ... }
7206
+ pattern?: { ... }
7207
+ }
7208
+ }
6846
7209
  type: "status"
6847
7210
  options?: Array<string | {
6848
7211
  value: string
@@ -6894,6 +7257,19 @@ type SequenceAttribute = {
6894
7257
  exclude_from_search?: boolean
6895
7258
  repeatable?: boolean
6896
7259
  has_primary?: boolean
7260
+ edit_mode?: "direct" | "external" | "approval"
7261
+ edit_mode_config?: {
7262
+ match_strategy?: "exact" | "fuzzy" | "any"
7263
+ fuzzy_config?: {
7264
+ type: { ... }
7265
+ suffix_length?: { ... }
7266
+ fields_to_ignore?: { ... }
7267
+ regex_flags?: { ... }
7268
+ country_code?: { ... }
7269
+ match_on?: { ... }
7270
+ pattern?: { ... }
7271
+ }
7272
+ }
6897
7273
  type: "sequence"
6898
7274
  prefix?: string
6899
7275
  start_number?: number
@@ -6943,6 +7319,19 @@ type FileAttribute = {
6943
7319
  exclude_from_search?: boolean
6944
7320
  repeatable?: boolean
6945
7321
  has_primary?: boolean
7322
+ edit_mode?: "direct" | "external" | "approval"
7323
+ edit_mode_config?: {
7324
+ match_strategy?: "exact" | "fuzzy" | "any"
7325
+ fuzzy_config?: {
7326
+ type: { ... }
7327
+ suffix_length?: { ... }
7328
+ fields_to_ignore?: { ... }
7329
+ regex_flags?: { ... }
7330
+ country_code?: { ... }
7331
+ match_on?: { ... }
7332
+ pattern?: { ... }
7333
+ }
7334
+ }
6946
7335
  type: "image" | "file"
6947
7336
  multiple?: boolean
6948
7337
  allowed_extensions?: string[]
@@ -6996,6 +7385,19 @@ type CurrencyAttribute = {
6996
7385
  exclude_from_search?: boolean
6997
7386
  repeatable?: boolean
6998
7387
  has_primary?: boolean
7388
+ edit_mode?: "direct" | "external" | "approval"
7389
+ edit_mode_config?: {
7390
+ match_strategy?: "exact" | "fuzzy" | "any"
7391
+ fuzzy_config?: {
7392
+ type: { ... }
7393
+ suffix_length?: { ... }
7394
+ fields_to_ignore?: { ... }
7395
+ regex_flags?: { ... }
7396
+ country_code?: { ... }
7397
+ match_on?: { ... }
7398
+ pattern?: { ... }
7399
+ }
7400
+ }
6999
7401
  type: "currency"
7000
7402
  currency_selector_only?: boolean
7001
7403
  currency: Array<{
@@ -7074,12 +7476,24 @@ type RelationAttribute = {
7074
7476
  exclude_from_search?: boolean
7075
7477
  repeatable?: boolean
7076
7478
  has_primary?: boolean
7479
+ edit_mode?: "list-view"
7480
+ edit_mode_config?: {
7481
+ match_strategy?: "exact" | "fuzzy" | "any"
7482
+ fuzzy_config?: {
7483
+ type: { ... }
7484
+ suffix_length?: { ... }
7485
+ fields_to_ignore?: { ... }
7486
+ regex_flags?: { ... }
7487
+ country_code?: { ... }
7488
+ match_on?: { ... }
7489
+ pattern?: { ... }
7490
+ }
7491
+ }
7077
7492
  type: "relation"
7078
7493
  relation_type?: "has_many" | "has_one"
7079
7494
  reverse_attributes?: Record<string, string>
7080
7495
  relation_affinity_mode?: "weak" | "strong"
7081
7496
  enable_relation_picker?: boolean
7082
- edit_mode?: "list-view"
7083
7497
  details_view_mode_enabled?: boolean
7084
7498
  relation_picker_filter?: {
7085
7499
  q: string
@@ -7150,6 +7564,19 @@ type UserRelationAttribute = {
7150
7564
  exclude_from_search?: boolean
7151
7565
  repeatable?: boolean
7152
7566
  has_primary?: boolean
7567
+ edit_mode?: "direct" | "external" | "approval"
7568
+ edit_mode_config?: {
7569
+ match_strategy?: "exact" | "fuzzy" | "any"
7570
+ fuzzy_config?: {
7571
+ type: { ... }
7572
+ suffix_length?: { ... }
7573
+ fields_to_ignore?: { ... }
7574
+ regex_flags?: { ... }
7575
+ country_code?: { ... }
7576
+ match_on?: { ... }
7577
+ pattern?: { ... }
7578
+ }
7579
+ }
7153
7580
  type: "relation_user"
7154
7581
  multiple?: boolean
7155
7582
  }
@@ -7198,6 +7625,19 @@ type PartnerOrganisationAttribute = {
7198
7625
  exclude_from_search?: boolean
7199
7626
  repeatable?: boolean
7200
7627
  has_primary?: boolean
7628
+ edit_mode?: "direct" | "external" | "approval"
7629
+ edit_mode_config?: {
7630
+ match_strategy?: "exact" | "fuzzy" | "any"
7631
+ fuzzy_config?: {
7632
+ type: { ... }
7633
+ suffix_length?: { ... }
7634
+ fields_to_ignore?: { ... }
7635
+ regex_flags?: { ... }
7636
+ country_code?: { ... }
7637
+ match_on?: { ... }
7638
+ pattern?: { ... }
7639
+ }
7640
+ }
7201
7641
  type: "partner_organisation"
7202
7642
  }
7203
7643
  ```
@@ -7245,6 +7685,19 @@ type PortalAccessAttribute = {
7245
7685
  exclude_from_search?: boolean
7246
7686
  repeatable?: boolean
7247
7687
  has_primary?: boolean
7688
+ edit_mode?: "direct" | "external" | "approval"
7689
+ edit_mode_config?: {
7690
+ match_strategy?: "exact" | "fuzzy" | "any"
7691
+ fuzzy_config?: {
7692
+ type: { ... }
7693
+ suffix_length?: { ... }
7694
+ fields_to_ignore?: { ... }
7695
+ regex_flags?: { ... }
7696
+ country_code?: { ... }
7697
+ match_on?: { ... }
7698
+ pattern?: { ... }
7699
+ }
7700
+ }
7248
7701
  type: "portal_access"
7249
7702
  }
7250
7703
  ```
@@ -7317,6 +7770,19 @@ type AddressAttribute = {
7317
7770
  exclude_from_search?: boolean
7318
7771
  repeatable?: boolean
7319
7772
  has_primary?: boolean
7773
+ edit_mode?: "direct" | "external" | "approval"
7774
+ edit_mode_config?: {
7775
+ match_strategy?: "exact" | "fuzzy" | "any"
7776
+ fuzzy_config?: {
7777
+ type: { ... }
7778
+ suffix_length?: { ... }
7779
+ fields_to_ignore?: { ... }
7780
+ regex_flags?: { ... }
7781
+ country_code?: { ... }
7782
+ match_on?: { ... }
7783
+ pattern?: { ... }
7784
+ }
7785
+ }
7320
7786
  type: "address"
7321
7787
  default_address_fields?: string[]
7322
7788
  }
@@ -7365,6 +7831,19 @@ type AddressRelationAttribute = {
7365
7831
  exclude_from_search?: boolean
7366
7832
  repeatable?: boolean
7367
7833
  has_primary?: boolean
7834
+ edit_mode?: "direct" | "external" | "approval"
7835
+ edit_mode_config?: {
7836
+ match_strategy?: "exact" | "fuzzy" | "any"
7837
+ fuzzy_config?: {
7838
+ type: { ... }
7839
+ suffix_length?: { ... }
7840
+ fields_to_ignore?: { ... }
7841
+ regex_flags?: { ... }
7842
+ country_code?: { ... }
7843
+ match_on?: { ... }
7844
+ pattern?: { ... }
7845
+ }
7846
+ }
7368
7847
  type: "relation_address"
7369
7848
  default_address_fields?: string[]
7370
7849
  }
@@ -7413,6 +7892,19 @@ type PaymentMethodRelationAttribute = {
7413
7892
  exclude_from_search?: boolean
7414
7893
  repeatable?: boolean
7415
7894
  has_primary?: boolean
7895
+ edit_mode?: "direct" | "external" | "approval"
7896
+ edit_mode_config?: {
7897
+ match_strategy?: "exact" | "fuzzy" | "any"
7898
+ fuzzy_config?: {
7899
+ type: { ... }
7900
+ suffix_length?: { ... }
7901
+ fields_to_ignore?: { ... }
7902
+ regex_flags?: { ... }
7903
+ country_code?: { ... }
7904
+ match_on?: { ... }
7905
+ pattern?: { ... }
7906
+ }
7907
+ }
7416
7908
  type: "relation_payment_method"
7417
7909
  }
7418
7910
  ```
@@ -7460,6 +7952,19 @@ type InvitationEmailAttribute = {
7460
7952
  exclude_from_search?: boolean
7461
7953
  repeatable?: boolean
7462
7954
  has_primary?: boolean
7955
+ edit_mode?: "direct" | "external" | "approval"
7956
+ edit_mode_config?: {
7957
+ match_strategy?: "exact" | "fuzzy" | "any"
7958
+ fuzzy_config?: {
7959
+ type: { ... }
7960
+ suffix_length?: { ... }
7961
+ fields_to_ignore?: { ... }
7962
+ regex_flags?: { ... }
7963
+ country_code?: { ... }
7964
+ match_on?: { ... }
7965
+ pattern?: { ... }
7966
+ }
7967
+ }
7463
7968
  type: "invitation_email"
7464
7969
  }
7465
7970
  ```
@@ -7507,6 +8012,19 @@ type AutomationAttribute = {
7507
8012
  exclude_from_search?: boolean
7508
8013
  repeatable?: boolean
7509
8014
  has_primary?: boolean
8015
+ edit_mode?: "direct" | "external" | "approval"
8016
+ edit_mode_config?: {
8017
+ match_strategy?: "exact" | "fuzzy" | "any"
8018
+ fuzzy_config?: {
8019
+ type: { ... }
8020
+ suffix_length?: { ... }
8021
+ fields_to_ignore?: { ... }
8022
+ regex_flags?: { ... }
8023
+ country_code?: { ... }
8024
+ match_on?: { ... }
8025
+ pattern?: { ... }
8026
+ }
8027
+ }
7510
8028
  type: "automation"
7511
8029
  }
7512
8030
  ```
@@ -7554,6 +8072,19 @@ type InternalUserAttribute = {
7554
8072
  exclude_from_search?: boolean
7555
8073
  repeatable?: boolean
7556
8074
  has_primary?: boolean
8075
+ edit_mode?: "direct" | "external" | "approval"
8076
+ edit_mode_config?: {
8077
+ match_strategy?: "exact" | "fuzzy" | "any"
8078
+ fuzzy_config?: {
8079
+ type: { ... }
8080
+ suffix_length?: { ... }
8081
+ fields_to_ignore?: { ... }
8082
+ regex_flags?: { ... }
8083
+ country_code?: { ... }
8084
+ match_on?: { ... }
8085
+ pattern?: { ... }
8086
+ }
8087
+ }
7557
8088
  type: "internal_user"
7558
8089
  }
7559
8090
  ```
@@ -7601,6 +8132,19 @@ type PurposeAttribute = {
7601
8132
  exclude_from_search?: boolean
7602
8133
  repeatable?: boolean
7603
8134
  has_primary?: boolean
8135
+ edit_mode?: "direct" | "external" | "approval"
8136
+ edit_mode_config?: {
8137
+ match_strategy?: "exact" | "fuzzy" | "any"
8138
+ fuzzy_config?: {
8139
+ type: { ... }
8140
+ suffix_length?: { ... }
8141
+ fields_to_ignore?: { ... }
8142
+ regex_flags?: { ... }
8143
+ country_code?: { ... }
8144
+ match_on?: { ... }
8145
+ pattern?: { ... }
8146
+ }
8147
+ }
7604
8148
  type: "purpose"
7605
8149
  }
7606
8150
  ```
@@ -7648,6 +8192,19 @@ type RepeatableAttribute = {
7648
8192
  exclude_from_search?: boolean
7649
8193
  repeatable?: boolean
7650
8194
  has_primary?: boolean
8195
+ edit_mode?: "direct" | "external" | "approval"
8196
+ edit_mode_config?: {
8197
+ match_strategy?: "exact" | "fuzzy" | "any"
8198
+ fuzzy_config?: {
8199
+ type: { ... }
8200
+ suffix_length?: { ... }
8201
+ fields_to_ignore?: { ... }
8202
+ regex_flags?: { ... }
8203
+ country_code?: { ... }
8204
+ match_on?: { ... }
8205
+ pattern?: { ... }
8206
+ }
8207
+ }
7651
8208
  }
7652
8209
  ```
7653
8210
 
@@ -7694,6 +8251,19 @@ type TagsAttribute = {
7694
8251
  exclude_from_search?: boolean
7695
8252
  repeatable?: boolean
7696
8253
  has_primary?: boolean
8254
+ edit_mode?: "direct" | "external" | "approval"
8255
+ edit_mode_config?: {
8256
+ match_strategy?: "exact" | "fuzzy" | "any"
8257
+ fuzzy_config?: {
8258
+ type: { ... }
8259
+ suffix_length?: { ... }
8260
+ fields_to_ignore?: { ... }
8261
+ regex_flags?: { ... }
8262
+ country_code?: { ... }
8263
+ match_on?: { ... }
8264
+ pattern?: { ... }
8265
+ }
8266
+ }
7697
8267
  type: "tags"
7698
8268
  options?: string[]
7699
8269
  suggestions?: string[]
@@ -7743,6 +8313,19 @@ type MessageEmailAddressAttribute = {
7743
8313
  exclude_from_search?: boolean
7744
8314
  repeatable?: boolean
7745
8315
  has_primary?: boolean
8316
+ edit_mode?: "direct" | "external" | "approval"
8317
+ edit_mode_config?: {
8318
+ match_strategy?: "exact" | "fuzzy" | "any"
8319
+ fuzzy_config?: {
8320
+ type: { ... }
8321
+ suffix_length?: { ... }
8322
+ fields_to_ignore?: { ... }
8323
+ regex_flags?: { ... }
8324
+ country_code?: { ... }
8325
+ match_on?: { ... }
8326
+ pattern?: { ... }
8327
+ }
8328
+ }
7746
8329
  type: "message_email_address"
7747
8330
  address?: string
7748
8331
  send_status?: string
@@ -7793,6 +8376,19 @@ type NumberAttribute = {
7793
8376
  exclude_from_search?: boolean
7794
8377
  repeatable?: boolean
7795
8378
  has_primary?: boolean
8379
+ edit_mode?: "direct" | "external" | "approval"
8380
+ edit_mode_config?: {
8381
+ match_strategy?: "exact" | "fuzzy" | "any"
8382
+ fuzzy_config?: {
8383
+ type: { ... }
8384
+ suffix_length?: { ... }
8385
+ fields_to_ignore?: { ... }
8386
+ regex_flags?: { ... }
8387
+ country_code?: { ... }
8388
+ match_on?: { ... }
8389
+ pattern?: { ... }
8390
+ }
8391
+ }
7796
8392
  type: "number"
7797
8393
  data_type?: "number" | "string"
7798
8394
  format?: string
@@ -7843,6 +8439,19 @@ type TableAttribute = {
7843
8439
  exclude_from_search?: boolean
7844
8440
  repeatable?: boolean
7845
8441
  has_primary?: boolean
8442
+ edit_mode?: "direct" | "external" | "approval"
8443
+ edit_mode_config?: {
8444
+ match_strategy?: "exact" | "fuzzy" | "any"
8445
+ fuzzy_config?: {
8446
+ type: { ... }
8447
+ suffix_length?: { ... }
8448
+ fields_to_ignore?: { ... }
8449
+ regex_flags?: { ... }
8450
+ country_code?: { ... }
8451
+ match_on?: { ... }
8452
+ pattern?: { ... }
8453
+ }
8454
+ }
7846
8455
  type: "table"
7847
8456
  columns?: Array<{
7848
8457
  name: string
@@ -7905,6 +8514,19 @@ type ConsentAttribute = {
7905
8514
  exclude_from_search?: boolean
7906
8515
  repeatable?: boolean
7907
8516
  has_primary?: boolean
8517
+ edit_mode?: "direct" | "external" | "approval"
8518
+ edit_mode_config?: {
8519
+ match_strategy?: "exact" | "fuzzy" | "any"
8520
+ fuzzy_config?: {
8521
+ type: { ... }
8522
+ suffix_length?: { ... }
8523
+ fields_to_ignore?: { ... }
8524
+ regex_flags?: { ... }
8525
+ country_code?: { ... }
8526
+ match_on?: { ... }
8527
+ pattern?: { ... }
8528
+ }
8529
+ }
7908
8530
  type: "consent"
7909
8531
  topic: string
7910
8532
  identifiers?: string[]
@@ -7954,6 +8576,19 @@ type OrderedListAttribute = {
7954
8576
  exclude_from_search?: boolean
7955
8577
  repeatable?: boolean
7956
8578
  has_primary?: boolean
8579
+ edit_mode?: "direct" | "external" | "approval"
8580
+ edit_mode_config?: {
8581
+ match_strategy?: "exact" | "fuzzy" | "any"
8582
+ fuzzy_config?: {
8583
+ type: { ... }
8584
+ suffix_length?: { ... }
8585
+ fields_to_ignore?: { ... }
8586
+ regex_flags?: { ... }
8587
+ country_code?: { ... }
8588
+ match_on?: { ... }
8589
+ pattern?: { ... }
8590
+ }
8591
+ }
7957
8592
  type: "ordered_list"
7958
8593
  }
7959
8594
  ```
@@ -8001,6 +8636,19 @@ type EmailAttribute = {
8001
8636
  exclude_from_search?: boolean
8002
8637
  repeatable?: boolean
8003
8638
  has_primary?: boolean
8639
+ edit_mode?: "direct" | "external" | "approval"
8640
+ edit_mode_config?: {
8641
+ match_strategy?: "exact" | "fuzzy" | "any"
8642
+ fuzzy_config?: {
8643
+ type: { ... }
8644
+ suffix_length?: { ... }
8645
+ fields_to_ignore?: { ... }
8646
+ regex_flags?: { ... }
8647
+ country_code?: { ... }
8648
+ match_on?: { ... }
8649
+ pattern?: { ... }
8650
+ }
8651
+ }
8004
8652
  type: "email"
8005
8653
  }
8006
8654
  ```
@@ -8048,6 +8696,19 @@ type PhoneAttribute = {
8048
8696
  exclude_from_search?: boolean
8049
8697
  repeatable?: boolean
8050
8698
  has_primary?: boolean
8699
+ edit_mode?: "direct" | "external" | "approval"
8700
+ edit_mode_config?: {
8701
+ match_strategy?: "exact" | "fuzzy" | "any"
8702
+ fuzzy_config?: {
8703
+ type: { ... }
8704
+ suffix_length?: { ... }
8705
+ fields_to_ignore?: { ... }
8706
+ regex_flags?: { ... }
8707
+ country_code?: { ... }
8708
+ match_on?: { ... }
8709
+ pattern?: { ... }
8710
+ }
8711
+ }
8051
8712
  type: "phone"
8052
8713
  }
8053
8714
  ```
@@ -8095,6 +8756,19 @@ type PaymentAttribute = {
8095
8756
  exclude_from_search?: boolean
8096
8757
  repeatable?: boolean
8097
8758
  has_primary?: boolean
8759
+ edit_mode?: "direct" | "external" | "approval"
8760
+ edit_mode_config?: {
8761
+ match_strategy?: "exact" | "fuzzy" | "any"
8762
+ fuzzy_config?: {
8763
+ type: { ... }
8764
+ suffix_length?: { ... }
8765
+ fields_to_ignore?: { ... }
8766
+ regex_flags?: { ... }
8767
+ country_code?: { ... }
8768
+ match_on?: { ... }
8769
+ pattern?: { ... }
8770
+ }
8771
+ }
8098
8772
  type: "payment"
8099
8773
  }
8100
8774
  ```
@@ -8142,6 +8816,19 @@ type PriceComponentAttribute = {
8142
8816
  exclude_from_search?: boolean
8143
8817
  repeatable?: boolean
8144
8818
  has_primary?: boolean
8819
+ edit_mode?: "direct" | "external" | "approval"
8820
+ edit_mode_config?: {
8821
+ match_strategy?: "exact" | "fuzzy" | "any"
8822
+ fuzzy_config?: {
8823
+ type: { ... }
8824
+ suffix_length?: { ... }
8825
+ fields_to_ignore?: { ... }
8826
+ regex_flags?: { ... }
8827
+ country_code?: { ... }
8828
+ match_on?: { ... }
8829
+ pattern?: { ... }
8830
+ }
8831
+ }
8145
8832
  type: "price_component"
8146
8833
  }
8147
8834
  ```
@@ -8189,6 +8876,19 @@ type ComputedAttribute = {
8189
8876
  exclude_from_search?: boolean
8190
8877
  repeatable?: boolean
8191
8878
  has_primary?: boolean
8879
+ edit_mode?: "direct" | "external" | "approval"
8880
+ edit_mode_config?: {
8881
+ match_strategy?: "exact" | "fuzzy" | "any"
8882
+ fuzzy_config?: {
8883
+ type: { ... }
8884
+ suffix_length?: { ... }
8885
+ fields_to_ignore?: { ... }
8886
+ regex_flags?: { ... }
8887
+ country_code?: { ... }
8888
+ match_on?: { ... }
8889
+ pattern?: { ... }
8890
+ }
8891
+ }
8192
8892
  type: "computed"
8193
8893
  computed?: boolean
8194
8894
  amount_field?: string
@@ -8239,6 +8939,19 @@ type PartnerStatusAttribute = {
8239
8939
  exclude_from_search?: boolean
8240
8940
  repeatable?: boolean
8241
8941
  has_primary?: boolean
8942
+ edit_mode?: "direct" | "external" | "approval"
8943
+ edit_mode_config?: {
8944
+ match_strategy?: "exact" | "fuzzy" | "any"
8945
+ fuzzy_config?: {
8946
+ type: { ... }
8947
+ suffix_length?: { ... }
8948
+ fields_to_ignore?: { ... }
8949
+ regex_flags?: { ... }
8950
+ country_code?: { ... }
8951
+ match_on?: { ... }
8952
+ pattern?: { ... }
8953
+ }
8954
+ }
8242
8955
  type: "partner_status"
8243
8956
  }
8244
8957
  ```
@@ -8369,6 +9082,11 @@ type EntityCapability = {
8369
9082
  exclude_from_search?: boolean
8370
9083
  repeatable?: boolean
8371
9084
  has_primary?: boolean
9085
+ edit_mode?: "direct" | "external" | "approval"
9086
+ edit_mode_config?: {
9087
+ match_strategy?: { ... }
9088
+ fuzzy_config?: { ... }
9089
+ }
8372
9090
  type: "string"
8373
9091
  multiline?: boolean
8374
9092
  rich_text?: boolean
@@ -8413,18 +9131,13 @@ type EntityCapability = {
8413
9131
  exclude_from_search?: boolean
8414
9132
  repeatable?: boolean
8415
9133
  has_primary?: boolean
9134
+ edit_mode?: "direct" | "external" | "approval"
9135
+ edit_mode_config?: {
9136
+ match_strategy?: { ... }
9137
+ fuzzy_config?: { ... }
9138
+ }
8416
9139
  type: "link"
8417
9140
  } | {
8418
- id?: string
8419
- name: string
8420
- label: string
8421
- placeholder?: string
8422
- hidden?: boolean
8423
- show_in_table?: boolean
8424
- sortable?: boolean
8425
- required?: boolean
8426
- readonly?: boolean
8427
- deprecated?: boolean
8428
9141
  // ...
8429
9142
  }
8430
9143
  ```
@@ -8476,6 +9189,11 @@ type EntityCapabilityWithCompositeID = {
8476
9189
  exclude_from_search?: boolean
8477
9190
  repeatable?: boolean
8478
9191
  has_primary?: boolean
9192
+ edit_mode?: "direct" | "external" | "approval"
9193
+ edit_mode_config?: {
9194
+ match_strategy?: { ... }
9195
+ fuzzy_config?: { ... }
9196
+ }
8479
9197
  type: "string"
8480
9198
  multiline?: boolean
8481
9199
  rich_text?: boolean
@@ -8520,18 +9238,13 @@ type EntityCapabilityWithCompositeID = {
8520
9238
  exclude_from_search?: boolean
8521
9239
  repeatable?: boolean
8522
9240
  has_primary?: boolean
9241
+ edit_mode?: "direct" | "external" | "approval"
9242
+ edit_mode_config?: {
9243
+ match_strategy?: { ... }
9244
+ fuzzy_config?: { ... }
9245
+ }
8523
9246
  type: "link"
8524
9247
  } | {
8525
- id?: string
8526
- name: string
8527
- label: string
8528
- placeholder?: string
8529
- hidden?: boolean
8530
- show_in_table?: boolean
8531
- sortable?: boolean
8532
- required?: boolean
8533
- readonly?: boolean
8534
- deprecated?: boolean
8535
9248
  // ...
8536
9249
  }
8537
9250
  ```
@@ -8630,6 +9343,22 @@ type BaseEntity = {
8630
9343
  _purpose?: string[]
8631
9344
  _purpose_name?: string[]
8632
9345
  _manifest?: string // uuid[]
9346
+ _changesets?: Record<string, {
9347
+ proposed_value: unknown
9348
+ previous_value?: unknown
9349
+ created_at: string // date-time
9350
+ created_by?: {
9351
+ type?: { ... }
9352
+ id?: { ... }
9353
+ }
9354
+ edit_mode: "external" | "approval"
9355
+ match_strategy?: "exact" | "fuzzy" | "any"
9356
+ source?: string
9357
+ related_values?: Record<string, {
9358
+ proposed_value?: { ... }
9359
+ previous_value?: { ... }
9360
+ }>
9361
+ }>
8633
9362
  }
8634
9363
  ```
8635
9364
 
@@ -8657,6 +9386,22 @@ type Entity = {
8657
9386
  _purpose?: string[]
8658
9387
  _purpose_name?: string[]
8659
9388
  _manifest?: string // uuid[]
9389
+ _changesets?: Record<string, {
9390
+ proposed_value: unknown
9391
+ previous_value?: unknown
9392
+ created_at: string // date-time
9393
+ created_by?: {
9394
+ type?: { ... }
9395
+ id?: { ... }
9396
+ }
9397
+ edit_mode: "external" | "approval"
9398
+ match_strategy?: "exact" | "fuzzy" | "any"
9399
+ source?: string
9400
+ related_values?: Record<string, {
9401
+ proposed_value?: { ... }
9402
+ previous_value?: { ... }
9403
+ }>
9404
+ }>
8660
9405
  }
8661
9406
  ```
8662
9407
 
@@ -8684,6 +9429,22 @@ type NullableEntity = {
8684
9429
  _purpose?: string[]
8685
9430
  _purpose_name?: string[]
8686
9431
  _manifest?: string // uuid[]
9432
+ _changesets?: Record<string, {
9433
+ proposed_value: unknown
9434
+ previous_value?: unknown
9435
+ created_at: string // date-time
9436
+ created_by?: {
9437
+ type?: { ... }
9438
+ id?: { ... }
9439
+ }
9440
+ edit_mode: "external" | "approval"
9441
+ match_strategy?: "exact" | "fuzzy" | "any"
9442
+ source?: string
9443
+ related_values?: Record<string, {
9444
+ proposed_value?: { ... }
9445
+ previous_value?: { ... }
9446
+ }>
9447
+ }>
8687
9448
  }
8688
9449
  ```
8689
9450
 
@@ -8749,6 +9510,22 @@ type EntityItem = {
8749
9510
  _purpose?: string[]
8750
9511
  _purpose_name?: string[]
8751
9512
  _manifest?: string // uuid[]
9513
+ _changesets?: Record<string, {
9514
+ proposed_value: unknown
9515
+ previous_value?: unknown
9516
+ created_at: string // date-time
9517
+ created_by?: {
9518
+ type?: { ... }
9519
+ id?: { ... }
9520
+ }
9521
+ edit_mode: "external" | "approval"
9522
+ match_strategy?: "exact" | "fuzzy" | "any"
9523
+ source?: string
9524
+ related_values?: Record<string, {
9525
+ proposed_value?: { ... }
9526
+ previous_value?: { ... }
9527
+ }>
9528
+ }>
8752
9529
  }
8753
9530
  ```
8754
9531
 
@@ -9306,6 +10083,7 @@ type GraphQueryRequest = {
9306
10083
  }>
9307
10084
  }
9308
10085
  hydrate?: boolean
10086
+ apply_changesets?: boolean
9309
10087
  }
9310
10088
  ```
9311
10089
 
@@ -9381,6 +10159,16 @@ type GraphQueryResponse = {
9381
10159
  _purpose?: string[]
9382
10160
  _purpose_name?: string[]
9383
10161
  _manifest?: string // uuid[]
10162
+ _changesets?: Record<string, {
10163
+ proposed_value: { ... }
10164
+ previous_value?: { ... }
10165
+ created_at: { ... }
10166
+ created_by?: { ... }
10167
+ edit_mode: { ... }
10168
+ match_strategy?: { ... }
10169
+ source?: { ... }
10170
+ related_values?: { ... }
10171
+ }>
9384
10172
  } | Array<{
9385
10173
  _id?: object
9386
10174
  _org?: string
@@ -9402,6 +10190,16 @@ type GraphQueryResponse = {
9402
10190
  _purpose?: string[]
9403
10191
  _purpose_name?: string[]
9404
10192
  _manifest?: string // uuid[]
10193
+ _changesets?: Record<string, {
10194
+ proposed_value: { ... }
10195
+ previous_value?: { ... }
10196
+ created_at: { ... }
10197
+ created_by?: { ... }
10198
+ edit_mode: { ... }
10199
+ match_strategy?: { ... }
10200
+ source?: { ... }
10201
+ related_values?: { ... }
10202
+ }>
9405
10203
  }>>
9406
10204
  edges: Array<{
9407
10205
  from: string
@@ -9436,6 +10234,16 @@ type EntitySearchResults = {
9436
10234
  _purpose?: string[]
9437
10235
  _purpose_name?: string[]
9438
10236
  _manifest?: string // uuid[]
10237
+ _changesets?: Record<string, {
10238
+ proposed_value: { ... }
10239
+ previous_value?: { ... }
10240
+ created_at: { ... }
10241
+ created_by?: { ... }
10242
+ edit_mode: { ... }
10243
+ match_strategy?: { ... }
10244
+ source?: { ... }
10245
+ related_values?: { ... }
10246
+ }>
9439
10247
  }>
9440
10248
  aggregations?: object
9441
10249
  stable_query_id?: string
@@ -9451,8 +10259,9 @@ Advanced: explicit Elasticsearch index mapping definitions for entity data
9451
10259
  ```ts
9452
10260
  type SearchMappings = Record<string, {
9453
10261
  index?: boolean
9454
- type?: "keyword" | "text" | "boolean" | "integer" | "long" | "float" | "date" | "flattened" | "nested"
10262
+ type?: "keyword" | "text" | "boolean" | "integer" | "long" | "float" | "date" | "flattened" | "nested" | "object"
9455
10263
  fields?: unknown
10264
+ dynamic?: boolean
9456
10265
  }>
9457
10266
  ```
9458
10267
 
@@ -9542,6 +10351,16 @@ type EntityOperation = {
9542
10351
  _purpose?: string[]
9543
10352
  _purpose_name?: string[]
9544
10353
  _manifest?: string // uuid[]
10354
+ _changesets?: Record<string, {
10355
+ proposed_value: { ... }
10356
+ previous_value?: { ... }
10357
+ created_at: { ... }
10358
+ created_by?: { ... }
10359
+ edit_mode: { ... }
10360
+ match_strategy?: { ... }
10361
+ source?: { ... }
10362
+ related_values?: { ... }
10363
+ }>
9545
10364
  }
9546
10365
  diff?: {
9547
10366
  added?: {
@@ -9558,6 +10377,7 @@ type EntityOperation = {
9558
10377
  _purpose?: { ... }
9559
10378
  _purpose_name?: { ... }
9560
10379
  _manifest?: { ... }
10380
+ _changesets?: { ... }
9561
10381
  }
9562
10382
  updated?: {
9563
10383
  _id?: { ... }
@@ -9573,6 +10393,7 @@ type EntityOperation = {
9573
10393
  _purpose?: { ... }
9574
10394
  _purpose_name?: { ... }
9575
10395
  _manifest?: { ... }
10396
+ _changesets?: { ... }
9576
10397
  }
9577
10398
  deleted?: {
9578
10399
  _id?: { ... }
@@ -9588,6 +10409,7 @@ type EntityOperation = {
9588
10409
  _purpose?: { ... }
9589
10410
  _purpose_name?: { ... }
9590
10411
  _manifest?: { ... }
10412
+ _changesets?: { ... }
9591
10413
  }
9592
10414
  }
9593
10415
  _workflow_origin?: {
@@ -9645,6 +10467,7 @@ type ActivityItem = {
9645
10467
  _purpose?: { ... }
9646
10468
  _purpose_name?: { ... }
9647
10469
  _manifest?: { ... }
10470
+ _changesets?: { ... }
9648
10471
  }
9649
10472
  diff?: {
9650
10473
  added?: { ... }
@@ -9943,3 +10766,106 @@ type ErrorObject = {
9943
10766
  error?: string
9944
10767
  }
9945
10768
  ```
10769
+
10770
+ ### `ChangesetCreator`
10771
+
10772
+ Identifies the actor that created the changeset.
10773
+
10774
+ ```ts
10775
+ type ChangesetCreator = {
10776
+ type?: "user" | "portal_user" | "api_client" | "automation"
10777
+ id?: string
10778
+ }
10779
+ ```
10780
+
10781
+ ### `Changeset`
10782
+
10783
+ A pending proposed change for a single entity attribute, awaiting external confirmation or human approval.
10784
+
10785
+ ```ts
10786
+ type Changeset = {
10787
+ proposed_value: unknown
10788
+ previous_value?: unknown
10789
+ created_at: string // date-time
10790
+ created_by?: {
10791
+ type?: "user" | "portal_user" | "api_client" | "automation"
10792
+ id?: string
10793
+ }
10794
+ edit_mode: "external" | "approval"
10795
+ match_strategy?: "exact" | "fuzzy" | "any"
10796
+ source?: string
10797
+ related_values?: Record<string, {
10798
+ proposed_value?: unknown
10799
+ previous_value?: unknown
10800
+ }>
10801
+ }
10802
+ ```
10803
+
10804
+ ### `ChangesetMap`
10805
+
10806
+ Map of attribute name to pending changeset. At most one changeset per attribute.
10807
+
10808
+ ```ts
10809
+ type ChangesetMap = Record<string, {
10810
+ proposed_value: unknown
10811
+ previous_value?: unknown
10812
+ created_at: string // date-time
10813
+ created_by?: {
10814
+ type?: "user" | "portal_user" | "api_client" | "automation"
10815
+ id?: string
10816
+ }
10817
+ edit_mode: "external" | "approval"
10818
+ match_strategy?: "exact" | "fuzzy" | "any"
10819
+ source?: string
10820
+ related_values?: Record<string, {
10821
+ proposed_value?: unknown
10822
+ previous_value?: unknown
10823
+ }>
10824
+ }>
10825
+ ```
10826
+
10827
+ ### `EditModeConfig`
10828
+
10829
+ Configuration for non-direct edit modes on an entity attribute.
10830
+
10831
+ ```ts
10832
+ type EditModeConfig = {
10833
+ match_strategy?: "exact" | "fuzzy" | "any"
10834
+ fuzzy_config?: {
10835
+ type: "suffix" | "digits_only" | "normalize_phone" | "ignore_fields" | "contains_entry" | "regex"
10836
+ suffix_length?: number
10837
+ fields_to_ignore?: string[]
10838
+ regex_flags?: string
10839
+ country_code?: string
10840
+ match_on?: string
10841
+ pattern?: string
10842
+ }
10843
+ }
10844
+ ```
10845
+
10846
+ ### `FuzzyConfig`
10847
+
10848
+ Configuration for fuzzy match strategies on changeset auto-clearing.
10849
+
10850
+ ```ts
10851
+ type FuzzyConfig = {
10852
+ type: "suffix" | "digits_only" | "normalize_phone" | "ignore_fields" | "contains_entry" | "regex"
10853
+ suffix_length?: number
10854
+ fields_to_ignore?: string[]
10855
+ regex_flags?: string
10856
+ country_code?: string
10857
+ match_on?: string
10858
+ pattern?: string
10859
+ }
10860
+ ```
10861
+
10862
+ ### `MatchStrategy`
10863
+
10864
+ Strategy for auto-clearing the changeset when an external update is received.
10865
+ - `exact`: The inbound value must exactly match the proposed value (deep equality).
10866
+ - `fuzzy`: The inbound value is compared using the configured fuzzy algorithm.
10867
+ - `any`: Any update to the attribute clears the changeset,
10868
+
10869
+ ```ts
10870
+ type MatchStrategy = "exact" | "fuzzy" | "any"
10871
+ ```