n8n-nodes-split 1.0.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 (264) hide show
  1. package/LICENSE +46 -0
  2. package/README.md +425 -0
  3. package/dist/credentials/SplitApi.credentials.d.ts +10 -0
  4. package/dist/credentials/SplitApi.credentials.d.ts.map +1 -0
  5. package/dist/credentials/SplitApi.credentials.js +54 -0
  6. package/dist/credentials/SplitApi.credentials.js.map +1 -0
  7. package/dist/nodes/Split/Split.node.d.ts +6 -0
  8. package/dist/nodes/Split/Split.node.d.ts.map +1 -0
  9. package/dist/nodes/Split/Split.node.js +468 -0
  10. package/dist/nodes/Split/Split.node.js.map +1 -0
  11. package/dist/nodes/Split/SplitTrigger.node.d.ts +13 -0
  12. package/dist/nodes/Split/SplitTrigger.node.d.ts.map +1 -0
  13. package/dist/nodes/Split/SplitTrigger.node.js +234 -0
  14. package/dist/nodes/Split/SplitTrigger.node.js.map +1 -0
  15. package/dist/nodes/Split/actions/apiKey/index.d.ts +5 -0
  16. package/dist/nodes/Split/actions/apiKey/index.d.ts.map +1 -0
  17. package/dist/nodes/Split/actions/apiKey/index.js +53 -0
  18. package/dist/nodes/Split/actions/apiKey/index.js.map +1 -0
  19. package/dist/nodes/Split/actions/auditLog/index.d.ts +6 -0
  20. package/dist/nodes/Split/actions/auditLog/index.d.ts.map +1 -0
  21. package/dist/nodes/Split/actions/auditLog/index.js +127 -0
  22. package/dist/nodes/Split/actions/auditLog/index.js.map +1 -0
  23. package/dist/nodes/Split/actions/definition/activate.d.ts +3 -0
  24. package/dist/nodes/Split/actions/definition/activate.d.ts.map +1 -0
  25. package/dist/nodes/Split/actions/definition/activate.js +34 -0
  26. package/dist/nodes/Split/actions/definition/activate.js.map +1 -0
  27. package/dist/nodes/Split/actions/definition/addTargetingRule.d.ts +3 -0
  28. package/dist/nodes/Split/actions/definition/addTargetingRule.d.ts.map +1 -0
  29. package/dist/nodes/Split/actions/definition/addTargetingRule.js +35 -0
  30. package/dist/nodes/Split/actions/definition/addTargetingRule.js.map +1 -0
  31. package/dist/nodes/Split/actions/definition/addTreatment.d.ts +3 -0
  32. package/dist/nodes/Split/actions/definition/addTreatment.d.ts.map +1 -0
  33. package/dist/nodes/Split/actions/definition/addTreatment.js +39 -0
  34. package/dist/nodes/Split/actions/definition/addTreatment.js.map +1 -0
  35. package/dist/nodes/Split/actions/definition/deactivate.d.ts +3 -0
  36. package/dist/nodes/Split/actions/definition/deactivate.d.ts.map +1 -0
  37. package/dist/nodes/Split/actions/definition/deactivate.js +34 -0
  38. package/dist/nodes/Split/actions/definition/deactivate.js.map +1 -0
  39. package/dist/nodes/Split/actions/definition/get.d.ts +3 -0
  40. package/dist/nodes/Split/actions/definition/get.d.ts.map +1 -0
  41. package/dist/nodes/Split/actions/definition/get.js +18 -0
  42. package/dist/nodes/Split/actions/definition/get.js.map +1 -0
  43. package/dist/nodes/Split/actions/definition/index.d.ts +12 -0
  44. package/dist/nodes/Split/actions/definition/index.d.ts.map +1 -0
  45. package/dist/nodes/Split/actions/definition/index.js +34 -0
  46. package/dist/nodes/Split/actions/definition/index.js.map +1 -0
  47. package/dist/nodes/Split/actions/definition/removeTargetingRule.d.ts +3 -0
  48. package/dist/nodes/Split/actions/definition/removeTargetingRule.d.ts.map +1 -0
  49. package/dist/nodes/Split/actions/definition/removeTargetingRule.js +33 -0
  50. package/dist/nodes/Split/actions/definition/removeTargetingRule.js.map +1 -0
  51. package/dist/nodes/Split/actions/definition/removeTreatment.d.ts +3 -0
  52. package/dist/nodes/Split/actions/definition/removeTreatment.d.ts.map +1 -0
  53. package/dist/nodes/Split/actions/definition/removeTreatment.js +40 -0
  54. package/dist/nodes/Split/actions/definition/removeTreatment.js.map +1 -0
  55. package/dist/nodes/Split/actions/definition/setDefaultTreatment.d.ts +3 -0
  56. package/dist/nodes/Split/actions/definition/setDefaultTreatment.d.ts.map +1 -0
  57. package/dist/nodes/Split/actions/definition/setDefaultTreatment.js +34 -0
  58. package/dist/nodes/Split/actions/definition/setDefaultTreatment.js.map +1 -0
  59. package/dist/nodes/Split/actions/definition/updateDefaultRule.d.ts +3 -0
  60. package/dist/nodes/Split/actions/definition/updateDefaultRule.d.ts.map +1 -0
  61. package/dist/nodes/Split/actions/definition/updateDefaultRule.js +37 -0
  62. package/dist/nodes/Split/actions/definition/updateDefaultRule.js.map +1 -0
  63. package/dist/nodes/Split/actions/definition/updateTargeting.d.ts +3 -0
  64. package/dist/nodes/Split/actions/definition/updateTargeting.d.ts.map +1 -0
  65. package/dist/nodes/Split/actions/definition/updateTargeting.js +35 -0
  66. package/dist/nodes/Split/actions/definition/updateTargeting.js.map +1 -0
  67. package/dist/nodes/Split/actions/definition/updateTargetingRule.d.ts +3 -0
  68. package/dist/nodes/Split/actions/definition/updateTargetingRule.d.ts.map +1 -0
  69. package/dist/nodes/Split/actions/definition/updateTargetingRule.js +36 -0
  70. package/dist/nodes/Split/actions/definition/updateTargetingRule.js.map +1 -0
  71. package/dist/nodes/Split/actions/environment/index.d.ts +7 -0
  72. package/dist/nodes/Split/actions/environment/index.d.ts.map +1 -0
  73. package/dist/nodes/Split/actions/environment/index.js +75 -0
  74. package/dist/nodes/Split/actions/environment/index.js.map +1 -0
  75. package/dist/nodes/Split/actions/featureFlag/associateTags.d.ts +3 -0
  76. package/dist/nodes/Split/actions/featureFlag/associateTags.d.ts.map +1 -0
  77. package/dist/nodes/Split/actions/featureFlag/associateTags.js +20 -0
  78. package/dist/nodes/Split/actions/featureFlag/associateTags.js.map +1 -0
  79. package/dist/nodes/Split/actions/featureFlag/create.d.ts +3 -0
  80. package/dist/nodes/Split/actions/featureFlag/create.d.ts.map +1 -0
  81. package/dist/nodes/Split/actions/featureFlag/create.js +29 -0
  82. package/dist/nodes/Split/actions/featureFlag/create.js.map +1 -0
  83. package/dist/nodes/Split/actions/featureFlag/delete.d.ts +3 -0
  84. package/dist/nodes/Split/actions/featureFlag/delete.d.ts.map +1 -0
  85. package/dist/nodes/Split/actions/featureFlag/delete.js +17 -0
  86. package/dist/nodes/Split/actions/featureFlag/delete.js.map +1 -0
  87. package/dist/nodes/Split/actions/featureFlag/get.d.ts +3 -0
  88. package/dist/nodes/Split/actions/featureFlag/get.d.ts.map +1 -0
  89. package/dist/nodes/Split/actions/featureFlag/get.js +17 -0
  90. package/dist/nodes/Split/actions/featureFlag/get.js.map +1 -0
  91. package/dist/nodes/Split/actions/featureFlag/index.d.ts +10 -0
  92. package/dist/nodes/Split/actions/featureFlag/index.d.ts.map +1 -0
  93. package/dist/nodes/Split/actions/featureFlag/index.js +32 -0
  94. package/dist/nodes/Split/actions/featureFlag/index.js.map +1 -0
  95. package/dist/nodes/Split/actions/featureFlag/kill.d.ts +3 -0
  96. package/dist/nodes/Split/actions/featureFlag/kill.d.ts.map +1 -0
  97. package/dist/nodes/Split/actions/featureFlag/kill.js +22 -0
  98. package/dist/nodes/Split/actions/featureFlag/kill.js.map +1 -0
  99. package/dist/nodes/Split/actions/featureFlag/list.d.ts +3 -0
  100. package/dist/nodes/Split/actions/featureFlag/list.d.ts.map +1 -0
  101. package/dist/nodes/Split/actions/featureFlag/list.js +35 -0
  102. package/dist/nodes/Split/actions/featureFlag/list.js.map +1 -0
  103. package/dist/nodes/Split/actions/featureFlag/removeTags.d.ts +3 -0
  104. package/dist/nodes/Split/actions/featureFlag/removeTags.d.ts.map +1 -0
  105. package/dist/nodes/Split/actions/featureFlag/removeTags.js +20 -0
  106. package/dist/nodes/Split/actions/featureFlag/removeTags.js.map +1 -0
  107. package/dist/nodes/Split/actions/featureFlag/restore.d.ts +3 -0
  108. package/dist/nodes/Split/actions/featureFlag/restore.d.ts.map +1 -0
  109. package/dist/nodes/Split/actions/featureFlag/restore.js +18 -0
  110. package/dist/nodes/Split/actions/featureFlag/restore.js.map +1 -0
  111. package/dist/nodes/Split/actions/featureFlag/update.d.ts +3 -0
  112. package/dist/nodes/Split/actions/featureFlag/update.d.ts.map +1 -0
  113. package/dist/nodes/Split/actions/featureFlag/update.js +33 -0
  114. package/dist/nodes/Split/actions/featureFlag/update.js.map +1 -0
  115. package/dist/nodes/Split/actions/group/index.d.ts +9 -0
  116. package/dist/nodes/Split/actions/group/index.d.ts.map +1 -0
  117. package/dist/nodes/Split/actions/group/index.js +96 -0
  118. package/dist/nodes/Split/actions/group/index.js.map +1 -0
  119. package/dist/nodes/Split/actions/identity/index.d.ts +5 -0
  120. package/dist/nodes/Split/actions/identity/index.d.ts.map +1 -0
  121. package/dist/nodes/Split/actions/identity/index.js +51 -0
  122. package/dist/nodes/Split/actions/identity/index.js.map +1 -0
  123. package/dist/nodes/Split/actions/metric/index.d.ts +7 -0
  124. package/dist/nodes/Split/actions/metric/index.d.ts.map +1 -0
  125. package/dist/nodes/Split/actions/metric/index.js +81 -0
  126. package/dist/nodes/Split/actions/metric/index.js.map +1 -0
  127. package/dist/nodes/Split/actions/rolloutPlan/index.d.ts +9 -0
  128. package/dist/nodes/Split/actions/rolloutPlan/index.d.ts.map +1 -0
  129. package/dist/nodes/Split/actions/rolloutPlan/index.js +130 -0
  130. package/dist/nodes/Split/actions/rolloutPlan/index.js.map +1 -0
  131. package/dist/nodes/Split/actions/segment/addKeys.d.ts +3 -0
  132. package/dist/nodes/Split/actions/segment/addKeys.d.ts.map +1 -0
  133. package/dist/nodes/Split/actions/segment/addKeys.js +28 -0
  134. package/dist/nodes/Split/actions/segment/addKeys.js.map +1 -0
  135. package/dist/nodes/Split/actions/segment/create.d.ts +3 -0
  136. package/dist/nodes/Split/actions/segment/create.d.ts.map +1 -0
  137. package/dist/nodes/Split/actions/segment/create.js +29 -0
  138. package/dist/nodes/Split/actions/segment/create.js.map +1 -0
  139. package/dist/nodes/Split/actions/segment/delete.d.ts +3 -0
  140. package/dist/nodes/Split/actions/segment/delete.d.ts.map +1 -0
  141. package/dist/nodes/Split/actions/segment/delete.js +17 -0
  142. package/dist/nodes/Split/actions/segment/delete.js.map +1 -0
  143. package/dist/nodes/Split/actions/segment/exportKeys.d.ts +3 -0
  144. package/dist/nodes/Split/actions/segment/exportKeys.d.ts.map +1 -0
  145. package/dist/nodes/Split/actions/segment/exportKeys.js +19 -0
  146. package/dist/nodes/Split/actions/segment/exportKeys.js.map +1 -0
  147. package/dist/nodes/Split/actions/segment/get.d.ts +3 -0
  148. package/dist/nodes/Split/actions/segment/get.d.ts.map +1 -0
  149. package/dist/nodes/Split/actions/segment/get.js +17 -0
  150. package/dist/nodes/Split/actions/segment/get.js.map +1 -0
  151. package/dist/nodes/Split/actions/segment/getKeys.d.ts +3 -0
  152. package/dist/nodes/Split/actions/segment/getKeys.d.ts.map +1 -0
  153. package/dist/nodes/Split/actions/segment/getKeys.js +28 -0
  154. package/dist/nodes/Split/actions/segment/getKeys.js.map +1 -0
  155. package/dist/nodes/Split/actions/segment/getSize.d.ts +3 -0
  156. package/dist/nodes/Split/actions/segment/getSize.d.ts.map +1 -0
  157. package/dist/nodes/Split/actions/segment/getSize.js +19 -0
  158. package/dist/nodes/Split/actions/segment/getSize.js.map +1 -0
  159. package/dist/nodes/Split/actions/segment/importKeys.d.ts +3 -0
  160. package/dist/nodes/Split/actions/segment/importKeys.d.ts.map +1 -0
  161. package/dist/nodes/Split/actions/segment/importKeys.js +27 -0
  162. package/dist/nodes/Split/actions/segment/importKeys.js.map +1 -0
  163. package/dist/nodes/Split/actions/segment/index.d.ts +12 -0
  164. package/dist/nodes/Split/actions/segment/index.d.ts.map +1 -0
  165. package/dist/nodes/Split/actions/segment/index.js +34 -0
  166. package/dist/nodes/Split/actions/segment/index.js.map +1 -0
  167. package/dist/nodes/Split/actions/segment/list.d.ts +3 -0
  168. package/dist/nodes/Split/actions/segment/list.d.ts.map +1 -0
  169. package/dist/nodes/Split/actions/segment/list.js +26 -0
  170. package/dist/nodes/Split/actions/segment/list.js.map +1 -0
  171. package/dist/nodes/Split/actions/segment/removeKeys.d.ts +3 -0
  172. package/dist/nodes/Split/actions/segment/removeKeys.d.ts.map +1 -0
  173. package/dist/nodes/Split/actions/segment/removeKeys.js +28 -0
  174. package/dist/nodes/Split/actions/segment/removeKeys.js.map +1 -0
  175. package/dist/nodes/Split/actions/segment/update.d.ts +3 -0
  176. package/dist/nodes/Split/actions/segment/update.d.ts.map +1 -0
  177. package/dist/nodes/Split/actions/segment/update.js +33 -0
  178. package/dist/nodes/Split/actions/segment/update.js.map +1 -0
  179. package/dist/nodes/Split/actions/trafficType/index.d.ts +5 -0
  180. package/dist/nodes/Split/actions/trafficType/index.d.ts.map +1 -0
  181. package/dist/nodes/Split/actions/trafficType/index.js +47 -0
  182. package/dist/nodes/Split/actions/trafficType/index.js.map +1 -0
  183. package/dist/nodes/Split/actions/workspace/index.d.ts +7 -0
  184. package/dist/nodes/Split/actions/workspace/index.d.ts.map +1 -0
  185. package/dist/nodes/Split/actions/workspace/index.js +72 -0
  186. package/dist/nodes/Split/actions/workspace/index.js.map +1 -0
  187. package/dist/nodes/Split/constants/constants.d.ts +93 -0
  188. package/dist/nodes/Split/constants/constants.d.ts.map +1 -0
  189. package/dist/nodes/Split/constants/constants.js +64 -0
  190. package/dist/nodes/Split/constants/constants.js.map +1 -0
  191. package/dist/nodes/Split/descriptions/ApiKeyDescription.d.ts +4 -0
  192. package/dist/nodes/Split/descriptions/ApiKeyDescription.d.ts.map +1 -0
  193. package/dist/nodes/Split/descriptions/ApiKeyDescription.js +178 -0
  194. package/dist/nodes/Split/descriptions/ApiKeyDescription.js.map +1 -0
  195. package/dist/nodes/Split/descriptions/AuditLogDescription.d.ts +4 -0
  196. package/dist/nodes/Split/descriptions/AuditLogDescription.d.ts.map +1 -0
  197. package/dist/nodes/Split/descriptions/AuditLogDescription.js +218 -0
  198. package/dist/nodes/Split/descriptions/AuditLogDescription.js.map +1 -0
  199. package/dist/nodes/Split/descriptions/DefinitionDescription.d.ts +4 -0
  200. package/dist/nodes/Split/descriptions/DefinitionDescription.d.ts.map +1 -0
  201. package/dist/nodes/Split/descriptions/DefinitionDescription.js +274 -0
  202. package/dist/nodes/Split/descriptions/DefinitionDescription.js.map +1 -0
  203. package/dist/nodes/Split/descriptions/EnvironmentDescription.d.ts +4 -0
  204. package/dist/nodes/Split/descriptions/EnvironmentDescription.d.ts.map +1 -0
  205. package/dist/nodes/Split/descriptions/EnvironmentDescription.js +187 -0
  206. package/dist/nodes/Split/descriptions/EnvironmentDescription.js.map +1 -0
  207. package/dist/nodes/Split/descriptions/FeatureFlagDescription.d.ts +4 -0
  208. package/dist/nodes/Split/descriptions/FeatureFlagDescription.d.ts.map +1 -0
  209. package/dist/nodes/Split/descriptions/FeatureFlagDescription.js +318 -0
  210. package/dist/nodes/Split/descriptions/FeatureFlagDescription.js.map +1 -0
  211. package/dist/nodes/Split/descriptions/GroupDescription.d.ts +4 -0
  212. package/dist/nodes/Split/descriptions/GroupDescription.d.ts.map +1 -0
  213. package/dist/nodes/Split/descriptions/GroupDescription.js +222 -0
  214. package/dist/nodes/Split/descriptions/GroupDescription.js.map +1 -0
  215. package/dist/nodes/Split/descriptions/IdentityDescription.d.ts +4 -0
  216. package/dist/nodes/Split/descriptions/IdentityDescription.d.ts.map +1 -0
  217. package/dist/nodes/Split/descriptions/IdentityDescription.js +117 -0
  218. package/dist/nodes/Split/descriptions/IdentityDescription.js.map +1 -0
  219. package/dist/nodes/Split/descriptions/MetricDescription.d.ts +4 -0
  220. package/dist/nodes/Split/descriptions/MetricDescription.d.ts.map +1 -0
  221. package/dist/nodes/Split/descriptions/MetricDescription.js +229 -0
  222. package/dist/nodes/Split/descriptions/MetricDescription.js.map +1 -0
  223. package/dist/nodes/Split/descriptions/RolloutPlanDescription.d.ts +4 -0
  224. package/dist/nodes/Split/descriptions/RolloutPlanDescription.d.ts.map +1 -0
  225. package/dist/nodes/Split/descriptions/RolloutPlanDescription.js +317 -0
  226. package/dist/nodes/Split/descriptions/RolloutPlanDescription.js.map +1 -0
  227. package/dist/nodes/Split/descriptions/SegmentDescription.d.ts +4 -0
  228. package/dist/nodes/Split/descriptions/SegmentDescription.d.ts.map +1 -0
  229. package/dist/nodes/Split/descriptions/SegmentDescription.js +313 -0
  230. package/dist/nodes/Split/descriptions/SegmentDescription.js.map +1 -0
  231. package/dist/nodes/Split/descriptions/TrafficTypeDescription.d.ts +4 -0
  232. package/dist/nodes/Split/descriptions/TrafficTypeDescription.d.ts.map +1 -0
  233. package/dist/nodes/Split/descriptions/TrafficTypeDescription.js +152 -0
  234. package/dist/nodes/Split/descriptions/TrafficTypeDescription.js.map +1 -0
  235. package/dist/nodes/Split/descriptions/WorkspaceDescription.d.ts +4 -0
  236. package/dist/nodes/Split/descriptions/WorkspaceDescription.d.ts.map +1 -0
  237. package/dist/nodes/Split/descriptions/WorkspaceDescription.js +180 -0
  238. package/dist/nodes/Split/descriptions/WorkspaceDescription.js.map +1 -0
  239. package/dist/nodes/Split/descriptions/index.d.ts +13 -0
  240. package/dist/nodes/Split/descriptions/index.d.ts.map +1 -0
  241. package/dist/nodes/Split/descriptions/index.js +35 -0
  242. package/dist/nodes/Split/descriptions/index.js.map +1 -0
  243. package/dist/nodes/Split/split.svg +13 -0
  244. package/dist/nodes/Split/transport/index.d.ts +2 -0
  245. package/dist/nodes/Split/transport/index.d.ts.map +1 -0
  246. package/dist/nodes/Split/transport/index.js +24 -0
  247. package/dist/nodes/Split/transport/index.js.map +1 -0
  248. package/dist/nodes/Split/transport/splitApiRequest.d.ts +40 -0
  249. package/dist/nodes/Split/transport/splitApiRequest.d.ts.map +1 -0
  250. package/dist/nodes/Split/transport/splitApiRequest.js +146 -0
  251. package/dist/nodes/Split/transport/splitApiRequest.js.map +1 -0
  252. package/dist/nodes/Split/types/SplitTypes.d.ts +124 -0
  253. package/dist/nodes/Split/types/SplitTypes.d.ts.map +1 -0
  254. package/dist/nodes/Split/types/SplitTypes.js +9 -0
  255. package/dist/nodes/Split/types/SplitTypes.js.map +1 -0
  256. package/dist/nodes/Split/utils/helpers.d.ts +42 -0
  257. package/dist/nodes/Split/utils/helpers.d.ts.map +1 -0
  258. package/dist/nodes/Split/utils/helpers.js +127 -0
  259. package/dist/nodes/Split/utils/helpers.js.map +1 -0
  260. package/dist/nodes/Split/utils/index.d.ts +2 -0
  261. package/dist/nodes/Split/utils/index.d.ts.map +1 -0
  262. package/dist/nodes/Split/utils/index.js +24 -0
  263. package/dist/nodes/Split/utils/index.js.map +1 -0
  264. package/package.json +81 -0
package/LICENSE ADDED
@@ -0,0 +1,46 @@
1
+ Business Source License 1.1
2
+
3
+ License text copyright (c) 2017 MariaDB Corporation Ab.
4
+
5
+ Licensor:
6
+ Velocity BPA, LLC
7
+ https://velobpa.com
8
+
9
+ Licensed Work:
10
+ This repository and all source code, documentation, and associated artifacts
11
+ contained herein, including all n8n community nodes published by Velocity BPA.
12
+
13
+ Additional Use Grant:
14
+ You may use, modify, and run the Licensed Work free of charge for:
15
+ - Personal use
16
+ - Educational use
17
+ - Research use
18
+ - Internal business use, provided such use does not involve resale,
19
+ redistribution, or offering the Licensed Work as part of a commercial
20
+ product or service.
21
+
22
+ Commercial Use Restriction:
23
+ Commercial Use of the Licensed Work is prohibited without a valid
24
+ Commercial License issued by the Licensor.
25
+
26
+ Commercial Use includes, but is not limited to:
27
+ - Use of the Licensed Work within any Software-as-a-Service (SaaS),
28
+ Platform-as-a-Service (PaaS), or hosted application that is sold,
29
+ licensed, or monetized in any form
30
+ - Offering the Licensed Work as part of a managed services engagement
31
+ - Bundling or redistributing the Licensed Work with a paid product
32
+ - Reselling, sublicensing, or white-labeling the Licensed Work
33
+ - Embedding the Licensed Work into any commercial automation platform,
34
+ integration product, or solution offering
35
+
36
+ Change Date:
37
+ January 1, 2030
38
+
39
+ Change License:
40
+ Apache License, Version 2.0
41
+
42
+ For commercial licensing inquiries:
43
+ licensing@velobpa.com
44
+
45
+ Business Source License 1.1 full text:
46
+ https://mariadb.com/bsl11/
package/README.md ADDED
@@ -0,0 +1,425 @@
1
+ # n8n-nodes-split
2
+
3
+ > [Velocity BPA Licensing Notice]
4
+ >
5
+ > This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
6
+ >
7
+ > Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
8
+ >
9
+ > For licensing information, visit https://velobpa.com/licensing or contact licensing@velobpa.com.
10
+
11
+ A comprehensive n8n community node for **Split** (by Harness) - the feature flag and experimentation platform. This node provides complete access to Split's Admin API for automating feature flag management, targeting rules, segments, environments, and experimentation workflows.
12
+
13
+ ![n8n](https://img.shields.io/badge/n8n-community--node-orange)
14
+ ![Version](https://img.shields.io/badge/version-1.0.0-blue)
15
+ ![License](https://img.shields.io/badge/license-BSL--1.1-blue)
16
+ ![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue)
17
+
18
+ ## Features
19
+
20
+ - **Feature Flags (Splits)**: Create, update, delete, kill, restore, and manage tags
21
+ - **Split Definitions**: Configure targeting rules, treatments, default rules, and rollout percentages
22
+ - **Segments**: Manage user segments with key-based targeting, import/export keys
23
+ - **Environments**: Manage deployment environments (staging, production, etc.)
24
+ - **Workspaces**: Organize and manage workspaces
25
+ - **Traffic Types**: Configure traffic types for different user categories
26
+ - **Identities**: Manage user identities and attributes
27
+ - **Metrics**: Configure metrics for experimentation
28
+ - **Groups (Metric Groups)**: Organize metrics into groups
29
+ - **API Keys**: Manage API keys with different permission levels
30
+ - **Audit Log**: View, search, and export audit log entries
31
+ - **Rollout Plans**: Create and manage gradual rollout plans
32
+ - **Webhook Triggers**: Receive real-time notifications for Split events
33
+
34
+ ## Installation
35
+
36
+ ### Community Nodes (Recommended)
37
+
38
+ 1. Open your n8n instance
39
+ 2. Go to **Settings** → **Community Nodes**
40
+ 3. Click **Install a community node**
41
+ 4. Enter `n8n-nodes-split`
42
+ 5. Click **Install**
43
+
44
+ ### Manual Installation
45
+
46
+ ```bash
47
+ # Navigate to your n8n installation directory
48
+ cd ~/.n8n
49
+
50
+ # Install the package
51
+ npm install n8n-nodes-split
52
+ ```
53
+
54
+ ### Development Installation
55
+
56
+ ```bash
57
+ # 1. Extract the zip file
58
+ unzip n8n-nodes-split.zip
59
+ cd n8n-nodes-split
60
+
61
+ # 2. Install dependencies
62
+ npm install
63
+
64
+ # 3. Build the project
65
+ npm run build
66
+
67
+ # 4. Create symlink to n8n custom nodes directory
68
+ # For Linux/macOS:
69
+ mkdir -p ~/.n8n/custom
70
+ ln -s $(pwd) ~/.n8n/custom/n8n-nodes-split
71
+
72
+ # For Windows (run as Administrator):
73
+ # mklink /D %USERPROFILE%\.n8n\custom\n8n-nodes-split %CD%
74
+
75
+ # 5. Restart n8n
76
+ n8n start
77
+ ```
78
+
79
+ ## Credentials Setup
80
+
81
+ ### Split API Credentials
82
+
83
+ | Field | Type | Description |
84
+ |-------|------|-------------|
85
+ | Admin API Key | Password | Split Admin API key from Admin Settings → API Keys |
86
+ | Organization ID | String | Your Split organization identifier |
87
+
88
+ ### Creating API Credentials in Split
89
+
90
+ 1. Log in to your Split dashboard
91
+ 2. Navigate to **Admin Settings** → **API Keys**
92
+ 3. Click **Create API Key**
93
+ 4. Select **Admin** key type for full access
94
+ 5. Copy the generated API key
95
+ 6. In n8n, create new **Split API** credentials
96
+ 7. Paste the API key and enter your Organization ID
97
+
98
+ ## Resources & Operations
99
+
100
+ ### Feature Flags (Splits)
101
+
102
+ | Operation | Description |
103
+ |-----------|-------------|
104
+ | List | List all feature flags in a workspace |
105
+ | Get | Get details of a specific feature flag |
106
+ | Create | Create a new feature flag |
107
+ | Update | Update feature flag properties (PATCH) |
108
+ | Delete | Delete a feature flag |
109
+ | Kill | Kill a feature flag in an environment |
110
+ | Restore | Restore a killed feature flag |
111
+ | Associate Tags | Add tags to a feature flag |
112
+ | Remove Tags | Remove tags from a feature flag |
113
+
114
+ ### Split Definitions
115
+
116
+ | Operation | Description |
117
+ |-----------|-------------|
118
+ | Get | Get definition for a specific environment |
119
+ | Update Targeting | Update targeting rules using JSON Patch |
120
+ | Update Default Rule | Update the default rollout percentages |
121
+ | Activate | Activate a feature flag in an environment |
122
+ | Deactivate | Deactivate (kill) a feature flag |
123
+ | Set Default Treatment | Set the default treatment |
124
+ | Add Treatment | Add a treatment variation |
125
+ | Remove Treatment | Remove a treatment variation |
126
+ | Add Targeting Rule | Add a targeting rule |
127
+ | Update Targeting Rule | Update an existing targeting rule |
128
+ | Remove Targeting Rule | Remove a targeting rule |
129
+
130
+ ### Segments
131
+
132
+ | Operation | Description |
133
+ |-----------|-------------|
134
+ | List | List all segments |
135
+ | Get | Get segment details |
136
+ | Create | Create a new segment |
137
+ | Update | Update segment properties |
138
+ | Delete | Delete a segment |
139
+ | Add Keys | Add user keys to a segment |
140
+ | Remove Keys | Remove user keys from a segment |
141
+ | Get Keys | Get all keys in a segment |
142
+ | Import Keys | Bulk import keys to a segment |
143
+ | Export Keys | Export segment keys |
144
+ | Get Size | Get the number of keys in a segment |
145
+
146
+ ### Environments
147
+
148
+ | Operation | Description |
149
+ |-----------|-------------|
150
+ | List | List all environments |
151
+ | Get | Get environment details |
152
+ | Create | Create a new environment |
153
+ | Update | Update environment properties |
154
+ | Delete | Delete an environment |
155
+
156
+ ### Workspaces
157
+
158
+ | Operation | Description |
159
+ |-----------|-------------|
160
+ | List | List all workspaces |
161
+ | Get | Get workspace details |
162
+ | Create | Create a new workspace |
163
+ | Update | Update workspace properties |
164
+ | Delete | Delete a workspace |
165
+
166
+ ### Traffic Types
167
+
168
+ | Operation | Description |
169
+ |-----------|-------------|
170
+ | List | List all traffic types |
171
+ | Get | Get traffic type details |
172
+ | Create | Create a new traffic type |
173
+
174
+ ### Identities
175
+
176
+ | Operation | Description |
177
+ |-----------|-------------|
178
+ | Save | Create or update an identity |
179
+ | Get | Get identity details |
180
+ | Delete | Delete an identity |
181
+
182
+ ### Metrics
183
+
184
+ | Operation | Description |
185
+ |-----------|-------------|
186
+ | List | List all metrics |
187
+ | Get | Get metric details |
188
+ | Create | Create a new metric |
189
+ | Update | Update metric properties |
190
+ | Delete | Delete a metric |
191
+
192
+ ### API Keys
193
+
194
+ | Operation | Description |
195
+ |-----------|-------------|
196
+ | List | List all API keys |
197
+ | Create | Create a new API key |
198
+ | Delete | Delete an API key |
199
+
200
+ ### Groups (Metric Groups)
201
+
202
+ | Operation | Description |
203
+ |-----------|-------------|
204
+ | List | List all metric groups |
205
+ | Get | Get metric group details |
206
+ | Create | Create a new metric group |
207
+ | Update | Update metric group properties |
208
+ | Delete | Delete a metric group |
209
+ | Add Metrics | Add metrics to a group |
210
+ | Remove Metrics | Remove metrics from a group |
211
+
212
+ ### Audit Log
213
+
214
+ | Operation | Description |
215
+ |-----------|-------------|
216
+ | List | List audit log entries |
217
+ | Get Entry | Get a specific audit log entry |
218
+ | Search | Search audit log entries |
219
+ | Export | Export audit log data |
220
+
221
+ ### Rollout Plans
222
+
223
+ | Operation | Description |
224
+ |-----------|-------------|
225
+ | List | List all rollout plans |
226
+ | Get | Get rollout plan details |
227
+ | Create | Create a new rollout plan |
228
+ | Update | Update rollout plan properties |
229
+ | Delete | Delete a rollout plan |
230
+ | Activate | Activate a rollout plan |
231
+ | Pause | Pause a rollout plan |
232
+
233
+ ## Trigger Node
234
+
235
+ The **Split Trigger** node receives webhook events from Split:
236
+
237
+ | Event Type | Description |
238
+ |------------|-------------|
239
+ | All Events | Receive all Split webhook events |
240
+ | Audit Log | Administrative actions audit log |
241
+ | Impressions | Feature flag evaluation impressions |
242
+ | Metric Alert | Metric threshold alerts |
243
+ | Significance Event | Experiment statistical significance events |
244
+ | Split Change | Feature flag configuration changes |
245
+ | Segment Change | Segment configuration changes |
246
+
247
+ ### Webhook Configuration
248
+
249
+ 1. Add the **Split Trigger** node to your workflow
250
+ 2. Copy the webhook URL from the node
251
+ 3. In Split, go to **Admin Settings** → **Integrations** → **Webhooks**
252
+ 4. Add the webhook URL and select the events you want to receive
253
+
254
+ ## Usage Examples
255
+
256
+ ### Create a Feature Flag
257
+
258
+ ```javascript
259
+ // Node configuration
260
+ {
261
+ "resource": "featureFlag",
262
+ "operation": "create",
263
+ "workspaceId": "ws-123456",
264
+ "trafficTypeName": "user",
265
+ "name": "new-checkout-flow",
266
+ "additionalFields": {
267
+ "description": "New checkout experience",
268
+ "tags": "checkout, experiment"
269
+ }
270
+ }
271
+ ```
272
+
273
+ ### Update Rollout Percentage
274
+
275
+ ```javascript
276
+ // Node configuration
277
+ {
278
+ "resource": "definition",
279
+ "operation": "updateDefaultRule",
280
+ "workspaceId": "ws-123456",
281
+ "splitName": "new-checkout-flow",
282
+ "environmentId": "env-production",
283
+ "treatmentsDistribution": "on:25, off:75"
284
+ }
285
+ ```
286
+
287
+ ### Add Users to Segment
288
+
289
+ ```javascript
290
+ // Node configuration
291
+ {
292
+ "resource": "segment",
293
+ "operation": "addKeys",
294
+ "workspaceId": "ws-123456",
295
+ "segmentName": "beta-users",
296
+ "environmentId": "env-production",
297
+ "keys": "user-1, user-2, user-3"
298
+ }
299
+ ```
300
+
301
+ ## Split Concepts
302
+
303
+ ### Feature Flags (Splits)
304
+
305
+ Feature flags (called "splits" in Split) allow you to control feature releases independently of code deployments. Each split can have multiple treatments (variations) that users can be assigned to.
306
+
307
+ ### Treatments
308
+
309
+ Treatments are the different variations of a feature flag. Common treatments include:
310
+ - `on` / `off` - Simple binary flags
311
+ - `control` / `variant_a` / `variant_b` - A/B/C testing variations
312
+ - Custom treatments for multivariate tests
313
+
314
+ ### Targeting Rules
315
+
316
+ Targeting rules determine which users see which treatment based on:
317
+ - User attributes (location, plan type, etc.)
318
+ - Segment membership
319
+ - Individual user targeting
320
+ - Percentage-based rollouts
321
+
322
+ ### Segments
323
+
324
+ Segments are reusable groups of users that can be targeted across multiple feature flags. Users can be added to segments by their key (user ID).
325
+
326
+ ### Environments
327
+
328
+ Environments represent different deployment stages (development, staging, production). Each environment has its own feature flag configurations.
329
+
330
+ ## Error Handling
331
+
332
+ The node handles Split API errors with descriptive messages:
333
+
334
+ | Error Code | Description |
335
+ |------------|-------------|
336
+ | 400 | Bad request - Invalid parameters |
337
+ | 401 | Unauthorized - Check API key |
338
+ | 403 | Forbidden - Insufficient permissions |
339
+ | 404 | Not found - Resource doesn't exist |
340
+ | 409 | Conflict - Resource already exists |
341
+ | 429 | Rate limited - Too many requests |
342
+ | 500 | Server error - Split API issue |
343
+
344
+ Enable **Continue On Fail** to process remaining items if one fails.
345
+
346
+ ## Security Best Practices
347
+
348
+ 1. **Use Admin API Keys Carefully**: Admin keys have full access - use more restrictive key types when possible
349
+ 2. **Rotate Keys Regularly**: Rotate API keys periodically for security
350
+ 3. **Environment Separation**: Use different API keys for different environments
351
+ 4. **Audit Logging**: Enable audit log webhooks to track changes
352
+ 5. **Credential Storage**: Store credentials securely in n8n's credential manager
353
+
354
+ ## Development
355
+
356
+ ```bash
357
+ # Install dependencies
358
+ npm install
359
+
360
+ # Build the project
361
+ npm run build
362
+
363
+ # Run linting
364
+ npm run lint
365
+
366
+ # Fix linting issues
367
+ npm run lint:fix
368
+
369
+ # Run tests
370
+ npm test
371
+
372
+ # Run tests with coverage
373
+ npm run test:coverage
374
+
375
+ # Watch mode for development
376
+ npm run dev
377
+ ```
378
+
379
+ ## Author
380
+
381
+ **Velocity BPA**
382
+ - Website: [velobpa.com](https://velobpa.com)
383
+ - GitHub: [Velocity-BPA](https://github.com/Velocity-BPA)
384
+
385
+ ## Licensing
386
+
387
+ This n8n community node is licensed under the **Business Source License 1.1**.
388
+
389
+ ### Free Use
390
+ Permitted for personal, educational, research, and internal business use.
391
+
392
+ ### Commercial Use
393
+ Use of this node within any SaaS, PaaS, hosted platform, managed service,
394
+ or paid automation offering requires a commercial license.
395
+
396
+ For licensing inquiries:
397
+ **licensing@velobpa.com**
398
+
399
+ See [LICENSE](LICENSE), [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md), and [LICENSING_FAQ.md](LICENSING_FAQ.md) for details.
400
+
401
+ ## Contributing
402
+
403
+ Contributions are welcome! Please follow these guidelines:
404
+
405
+ 1. Fork the repository
406
+ 2. Create a feature branch: `git checkout -b feature/my-feature`
407
+ 3. Make your changes with tests
408
+ 4. Run linting: `npm run lint:fix`
409
+ 5. Run tests: `npm test`
410
+ 6. Commit changes: `git commit -m "Add my feature"`
411
+ 7. Push to branch: `git push origin feature/my-feature`
412
+ 8. Open a Pull Request
413
+
414
+ ## Support
415
+
416
+ - **Issues**: [GitHub Issues](https://github.com/Velocity-BPA/n8n-nodes-split/issues)
417
+ - **Email**: support@velobpa.com
418
+ - **Split Documentation**: [docs.split.io](https://docs.split.io)
419
+ - **n8n Community**: [community.n8n.io](https://community.n8n.io)
420
+
421
+ ## Acknowledgments
422
+
423
+ - [Split.io](https://split.io) for their feature flag platform
424
+ - [n8n](https://n8n.io) for the workflow automation platform
425
+ - The n8n community for inspiration and support
@@ -0,0 +1,10 @@
1
+ import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class SplitApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ authenticate: IAuthenticateGeneric;
8
+ test: ICredentialTestRequest;
9
+ }
10
+ //# sourceMappingURL=SplitApi.credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/SplitApi.credentials.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB,qBAAa,QAAS,YAAW,eAAe;IAC9C,IAAI,SAAc;IAClB,WAAW,SAAe;IAC1B,gBAAgB,SAAkD;IAClE,UAAU,EAAE,eAAe,EAAE,CAqB3B;IAEF,YAAY,EAAE,oBAAoB,CAOhC;IAEF,IAAI,EAAE,sBAAsB,CAM1B;CACH"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) Velocity BPA, LLC
4
+ * Licensed under the Business Source License 1.1
5
+ * Commercial use requires a separate commercial license.
6
+ * See LICENSE file for details.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SplitApi = void 0;
10
+ class SplitApi {
11
+ constructor() {
12
+ this.name = 'splitApi';
13
+ this.displayName = 'Split API';
14
+ this.documentationUrl = 'https://docs.split.io/reference/api-overview';
15
+ this.properties = [
16
+ {
17
+ displayName: 'Admin API Key',
18
+ name: 'adminApiKey',
19
+ type: 'string',
20
+ typeOptions: {
21
+ password: true,
22
+ },
23
+ default: '',
24
+ required: true,
25
+ description: 'Split Admin API Key. Create one in Admin Settings > API Keys.',
26
+ },
27
+ {
28
+ displayName: 'Organization ID',
29
+ name: 'organizationId',
30
+ type: 'string',
31
+ default: '',
32
+ required: true,
33
+ description: 'Your Split Organization ID. Found in Admin Settings > Organization settings.',
34
+ },
35
+ ];
36
+ this.authenticate = {
37
+ type: 'generic',
38
+ properties: {
39
+ headers: {
40
+ Authorization: '={{"Bearer " + $credentials.adminApiKey}}',
41
+ },
42
+ },
43
+ };
44
+ this.test = {
45
+ request: {
46
+ baseURL: 'https://api.split.io/internal/api/v2',
47
+ url: '/workspaces',
48
+ method: 'GET',
49
+ },
50
+ };
51
+ }
52
+ }
53
+ exports.SplitApi = SplitApi;
54
+ //# sourceMappingURL=SplitApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitApi.credentials.js","sourceRoot":"","sources":["../../credentials/SplitApi.credentials.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH,MAAa,QAAQ;IAArB;QACE,SAAI,GAAG,UAAU,CAAC;QAClB,gBAAW,GAAG,WAAW,CAAC;QAC1B,qBAAgB,GAAG,8CAA8C,CAAC;QAClE,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,+DAA+D;aAC7E;YACD;gBACE,WAAW,EAAE,iBAAiB;gBAC9B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EACT,8EAA8E;aACjF;SACF,CAAC;QAEF,iBAAY,GAAyB;YACnC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,aAAa,EAAE,2CAA2C;iBAC3D;aACF;SACF,CAAC;QAEF,SAAI,GAA2B;YAC7B,OAAO,EAAE;gBACP,OAAO,EAAE,sCAAsC;gBAC/C,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,KAAK;aACd;SACF,CAAC;IACJ,CAAC;CAAA;AA3CD,4BA2CC"}
@@ -0,0 +1,6 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Split implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
6
+ //# sourceMappingURL=Split.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Split.node.d.ts","sourceRoot":"","sources":["../../../nodes/Split/Split.node.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACrB,MAAM,cAAc,CAAC;AA4CtB,qBAAa,KAAM,YAAW,SAAS;IACrC,WAAW,EAAE,oBAAoB,CAkH/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAkTxE"}