@arbium/enterprise-agent-connect 0.0.0-stage → 0.1.2-dev.9022f22

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 (322) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +269 -2
  3. package/dist/connectors/dell-techdirect/connector.json +39 -0
  4. package/dist/connectors/dell-techdirect/index.d.ts +8 -0
  5. package/dist/connectors/dell-techdirect/index.js +7 -0
  6. package/dist/connectors/dell-techdirect/index.js.map +1 -0
  7. package/dist/connectors/dell-techdirect/tools.d.ts +2 -0
  8. package/dist/connectors/dell-techdirect/tools.js +49 -0
  9. package/dist/connectors/dell-techdirect/tools.js.map +1 -0
  10. package/dist/connectors/dell-techdirect/vendor.d.ts +6 -0
  11. package/dist/connectors/dell-techdirect/vendor.js +57 -0
  12. package/dist/connectors/dell-techdirect/vendor.js.map +1 -0
  13. package/dist/connectors/dynamics-365/connector.json +228 -0
  14. package/dist/connectors/dynamics-365/index.d.ts +8 -0
  15. package/dist/connectors/dynamics-365/index.js +10 -0
  16. package/dist/connectors/dynamics-365/index.js.map +1 -0
  17. package/dist/connectors/dynamics-365/tools.d.ts +35 -0
  18. package/dist/connectors/dynamics-365/tools.js +806 -0
  19. package/dist/connectors/dynamics-365/tools.js.map +1 -0
  20. package/dist/connectors/dynamics-365/vendor.d.ts +9 -0
  21. package/dist/connectors/dynamics-365/vendor.js +110 -0
  22. package/dist/connectors/dynamics-365/vendor.js.map +1 -0
  23. package/dist/connectors/entra/connector.json +85 -0
  24. package/dist/connectors/entra/index.d.ts +2 -0
  25. package/dist/connectors/entra/index.js +4 -0
  26. package/dist/connectors/entra/index.js.map +1 -0
  27. package/dist/connectors/entra/tools.d.ts +14 -0
  28. package/dist/connectors/entra/tools.js +262 -0
  29. package/dist/connectors/entra/tools.js.map +1 -0
  30. package/dist/connectors/fedex/connector.json +118 -0
  31. package/dist/connectors/fedex/index.d.ts +8 -0
  32. package/dist/connectors/fedex/index.js +7 -0
  33. package/dist/connectors/fedex/index.js.map +1 -0
  34. package/dist/connectors/fedex/tools.d.ts +3 -0
  35. package/dist/connectors/fedex/tools.js +152 -0
  36. package/dist/connectors/fedex/tools.js.map +1 -0
  37. package/dist/connectors/fedex/vendor.d.ts +7 -0
  38. package/dist/connectors/fedex/vendor.js +98 -0
  39. package/dist/connectors/fedex/vendor.js.map +1 -0
  40. package/dist/connectors/gong/connector.json +127 -0
  41. package/dist/connectors/gong/index.d.ts +8 -0
  42. package/dist/connectors/gong/index.js +7 -0
  43. package/dist/connectors/gong/index.js.map +1 -0
  44. package/dist/connectors/gong/tools.d.ts +8 -0
  45. package/dist/connectors/gong/tools.js +424 -0
  46. package/dist/connectors/gong/tools.js.map +1 -0
  47. package/dist/connectors/gong/vendor.d.ts +4 -0
  48. package/dist/connectors/gong/vendor.js +89 -0
  49. package/dist/connectors/gong/vendor.js.map +1 -0
  50. package/dist/connectors/http/index.d.ts +34 -0
  51. package/dist/connectors/http/index.js +325 -0
  52. package/dist/connectors/http/index.js.map +1 -0
  53. package/dist/connectors/intune/connector.json +106 -0
  54. package/dist/connectors/intune/index.d.ts +2 -0
  55. package/dist/connectors/intune/index.js +4 -0
  56. package/dist/connectors/intune/index.js.map +1 -0
  57. package/dist/connectors/intune/tools.d.ts +12 -0
  58. package/dist/connectors/intune/tools.js +416 -0
  59. package/dist/connectors/intune/tools.js.map +1 -0
  60. package/dist/connectors/jamf/connector.json +182 -0
  61. package/dist/connectors/jamf/index.d.ts +8 -0
  62. package/dist/connectors/jamf/index.js +7 -0
  63. package/dist/connectors/jamf/index.js.map +1 -0
  64. package/dist/connectors/jamf/tools.d.ts +7 -0
  65. package/dist/connectors/jamf/tools.js +659 -0
  66. package/dist/connectors/jamf/tools.js.map +1 -0
  67. package/dist/connectors/jamf/vendor.d.ts +5 -0
  68. package/dist/connectors/jamf/vendor.js +70 -0
  69. package/dist/connectors/jamf/vendor.js.map +1 -0
  70. package/dist/connectors/jira/connector.json +272 -0
  71. package/dist/connectors/jira/index.d.ts +8 -0
  72. package/dist/connectors/jira/index.js +7 -0
  73. package/dist/connectors/jira/index.js.map +1 -0
  74. package/dist/connectors/jira/jql.d.ts +4 -0
  75. package/dist/connectors/jira/jql.js +67 -0
  76. package/dist/connectors/jira/jql.js.map +1 -0
  77. package/dist/connectors/jira/tools.d.ts +3 -0
  78. package/dist/connectors/jira/tools.js +464 -0
  79. package/dist/connectors/jira/tools.js.map +1 -0
  80. package/dist/connectors/jira/vendor.d.ts +3 -0
  81. package/dist/connectors/jira/vendor.js +100 -0
  82. package/dist/connectors/jira/vendor.js.map +1 -0
  83. package/dist/connectors/microsoft/client.d.ts +66 -0
  84. package/dist/connectors/microsoft/client.js +452 -0
  85. package/dist/connectors/microsoft/client.js.map +1 -0
  86. package/dist/connectors/microsoft/provider.json +118 -0
  87. package/dist/connectors/netsuite/connector.json +317 -0
  88. package/dist/connectors/netsuite/index.d.ts +8 -0
  89. package/dist/connectors/netsuite/index.js +7 -0
  90. package/dist/connectors/netsuite/index.js.map +1 -0
  91. package/dist/connectors/netsuite/tools.d.ts +24 -0
  92. package/dist/connectors/netsuite/tools.js +447 -0
  93. package/dist/connectors/netsuite/tools.js.map +1 -0
  94. package/dist/connectors/netsuite/vendor.d.ts +26 -0
  95. package/dist/connectors/netsuite/vendor.js +247 -0
  96. package/dist/connectors/netsuite/vendor.js.map +1 -0
  97. package/dist/connectors/odata/index.d.ts +33 -0
  98. package/dist/connectors/odata/index.js +460 -0
  99. package/dist/connectors/odata/index.js.map +1 -0
  100. package/dist/connectors/okta/connector.json +194 -0
  101. package/dist/connectors/okta/index.d.ts +8 -0
  102. package/dist/connectors/okta/index.js +7 -0
  103. package/dist/connectors/okta/index.js.map +1 -0
  104. package/dist/connectors/okta/tools.d.ts +6 -0
  105. package/dist/connectors/okta/tools.js +429 -0
  106. package/dist/connectors/okta/tools.js.map +1 -0
  107. package/dist/connectors/okta/vendor.d.ts +14 -0
  108. package/dist/connectors/okta/vendor.js +204 -0
  109. package/dist/connectors/okta/vendor.js.map +1 -0
  110. package/dist/connectors/outlook-calendar/connector.json +136 -0
  111. package/dist/connectors/outlook-calendar/index.d.ts +2 -0
  112. package/dist/connectors/outlook-calendar/index.js +4 -0
  113. package/dist/connectors/outlook-calendar/index.js.map +1 -0
  114. package/dist/connectors/outlook-calendar/tools.d.ts +65 -0
  115. package/dist/connectors/outlook-calendar/tools.js +398 -0
  116. package/dist/connectors/outlook-calendar/tools.js.map +1 -0
  117. package/dist/connectors/outlook-mail/connector.json +154 -0
  118. package/dist/connectors/outlook-mail/index.d.ts +2 -0
  119. package/dist/connectors/outlook-mail/index.js +4 -0
  120. package/dist/connectors/outlook-mail/index.js.map +1 -0
  121. package/dist/connectors/outlook-mail/tools.d.ts +8 -0
  122. package/dist/connectors/outlook-mail/tools.js +236 -0
  123. package/dist/connectors/outlook-mail/tools.js.map +1 -0
  124. package/dist/connectors/salesforce/connector.json +122 -0
  125. package/dist/connectors/salesforce/index.d.ts +8 -0
  126. package/dist/connectors/salesforce/index.js +7 -0
  127. package/dist/connectors/salesforce/index.js.map +1 -0
  128. package/dist/connectors/salesforce/soql.d.ts +3 -0
  129. package/dist/connectors/salesforce/soql.js +60 -0
  130. package/dist/connectors/salesforce/soql.js.map +1 -0
  131. package/dist/connectors/salesforce/tools.d.ts +9 -0
  132. package/dist/connectors/salesforce/tools.js +234 -0
  133. package/dist/connectors/salesforce/tools.js.map +1 -0
  134. package/dist/connectors/salesforce/vendor.d.ts +3 -0
  135. package/dist/connectors/salesforce/vendor.js +113 -0
  136. package/dist/connectors/salesforce/vendor.js.map +1 -0
  137. package/dist/connectors/sap-s4hana/connector.json +264 -0
  138. package/dist/connectors/sap-s4hana/index.d.ts +8 -0
  139. package/dist/connectors/sap-s4hana/index.js +7 -0
  140. package/dist/connectors/sap-s4hana/index.js.map +1 -0
  141. package/dist/connectors/sap-s4hana/tools.d.ts +4 -0
  142. package/dist/connectors/sap-s4hana/tools.js +761 -0
  143. package/dist/connectors/sap-s4hana/tools.js.map +1 -0
  144. package/dist/connectors/sap-s4hana/vendor.d.ts +5 -0
  145. package/dist/connectors/sap-s4hana/vendor.js +176 -0
  146. package/dist/connectors/sap-s4hana/vendor.js.map +1 -0
  147. package/dist/connectors/servicenow/connector.json +228 -0
  148. package/dist/connectors/servicenow/index.d.ts +8 -0
  149. package/dist/connectors/servicenow/index.js +7 -0
  150. package/dist/connectors/servicenow/index.js.map +1 -0
  151. package/dist/connectors/servicenow/tools.d.ts +4 -0
  152. package/dist/connectors/servicenow/tools.js +884 -0
  153. package/dist/connectors/servicenow/tools.js.map +1 -0
  154. package/dist/connectors/servicenow/vendor.d.ts +3 -0
  155. package/dist/connectors/servicenow/vendor.js +106 -0
  156. package/dist/connectors/servicenow/vendor.js.map +1 -0
  157. package/dist/connectors/sharepoint-files/connector.json +194 -0
  158. package/dist/connectors/sharepoint-files/excel.d.ts +16 -0
  159. package/dist/connectors/sharepoint-files/excel.js +300 -0
  160. package/dist/connectors/sharepoint-files/excel.js.map +1 -0
  161. package/dist/connectors/sharepoint-files/index.d.ts +8 -0
  162. package/dist/connectors/sharepoint-files/index.js +12 -0
  163. package/dist/connectors/sharepoint-files/index.js.map +1 -0
  164. package/dist/connectors/sharepoint-files/tools.d.ts +52 -0
  165. package/dist/connectors/sharepoint-files/tools.js +365 -0
  166. package/dist/connectors/sharepoint-files/tools.js.map +1 -0
  167. package/dist/connectors/sharepoint-files/vendor.d.ts +11 -0
  168. package/dist/connectors/sharepoint-files/vendor.js +167 -0
  169. package/dist/connectors/sharepoint-files/vendor.js.map +1 -0
  170. package/dist/connectors/slack/connector.json +148 -0
  171. package/dist/connectors/slack/index.d.ts +8 -0
  172. package/dist/connectors/slack/index.js +7 -0
  173. package/dist/connectors/slack/index.js.map +1 -0
  174. package/dist/connectors/slack/tools.d.ts +3 -0
  175. package/dist/connectors/slack/tools.js +355 -0
  176. package/dist/connectors/slack/tools.js.map +1 -0
  177. package/dist/connectors/slack/vendor.d.ts +17 -0
  178. package/dist/connectors/slack/vendor.js +189 -0
  179. package/dist/connectors/slack/vendor.js.map +1 -0
  180. package/dist/connectors/soap/index.d.ts +16 -0
  181. package/dist/connectors/soap/index.js +248 -0
  182. package/dist/connectors/soap/index.js.map +1 -0
  183. package/dist/connectors/soap/xml.d.ts +12 -0
  184. package/dist/connectors/soap/xml.js +126 -0
  185. package/dist/connectors/soap/xml.js.map +1 -0
  186. package/dist/connectors/sql/engines.d.ts +58 -0
  187. package/dist/connectors/sql/engines.js +292 -0
  188. package/dist/connectors/sql/engines.js.map +1 -0
  189. package/dist/connectors/sql/index.d.ts +16 -0
  190. package/dist/connectors/sql/index.js +214 -0
  191. package/dist/connectors/sql/index.js.map +1 -0
  192. package/dist/connectors/teams/connector.json +298 -0
  193. package/dist/connectors/teams/index.d.ts +2 -0
  194. package/dist/connectors/teams/index.js +5 -0
  195. package/dist/connectors/teams/index.js.map +1 -0
  196. package/dist/connectors/teams/tools.d.ts +7 -0
  197. package/dist/connectors/teams/tools.js +392 -0
  198. package/dist/connectors/teams/tools.js.map +1 -0
  199. package/dist/connectors/workday/connector.json +188 -0
  200. package/dist/connectors/workday/index.d.ts +8 -0
  201. package/dist/connectors/workday/index.js +7 -0
  202. package/dist/connectors/workday/index.js.map +1 -0
  203. package/dist/connectors/workday/tools.d.ts +33 -0
  204. package/dist/connectors/workday/tools.js +410 -0
  205. package/dist/connectors/workday/tools.js.map +1 -0
  206. package/dist/connectors/workday/vendor.d.ts +18 -0
  207. package/dist/connectors/workday/vendor.js +199 -0
  208. package/dist/connectors/workday/vendor.js.map +1 -0
  209. package/dist/packages/connector-kit/src/branding.d.ts +57 -0
  210. package/dist/packages/connector-kit/src/branding.js +102 -0
  211. package/dist/packages/connector-kit/src/branding.js.map +1 -0
  212. package/dist/packages/connector-kit/src/certificate.d.ts +19 -0
  213. package/dist/packages/connector-kit/src/certificate.js +84 -0
  214. package/dist/packages/connector-kit/src/certificate.js.map +1 -0
  215. package/dist/packages/connector-kit/src/common.d.ts +36 -0
  216. package/dist/packages/connector-kit/src/common.js +110 -0
  217. package/dist/packages/connector-kit/src/common.js.map +1 -0
  218. package/dist/packages/connector-kit/src/connector.d.ts +1356 -0
  219. package/dist/packages/connector-kit/src/connector.js +1073 -0
  220. package/dist/packages/connector-kit/src/connector.js.map +1 -0
  221. package/dist/packages/connector-kit/src/fetch.d.ts +6 -0
  222. package/dist/packages/connector-kit/src/fetch.js +44 -0
  223. package/dist/packages/connector-kit/src/fetch.js.map +1 -0
  224. package/dist/packages/connector-kit/src/index.d.ts +5 -0
  225. package/dist/packages/connector-kit/src/index.js +6 -0
  226. package/dist/packages/connector-kit/src/index.js.map +1 -0
  227. package/dist/packages/connector-kit/src/oauth.d.ts +15 -0
  228. package/dist/packages/connector-kit/src/oauth.js +98 -0
  229. package/dist/packages/connector-kit/src/oauth.js.map +1 -0
  230. package/dist/packages/connector-kit/src/types.d.ts +87 -0
  231. package/dist/packages/connector-kit/src/types.js +20 -0
  232. package/dist/packages/connector-kit/src/types.js.map +1 -0
  233. package/dist/packages/server/migrations/0001_tables.sql +268 -0
  234. package/dist/packages/server/migrations/0002_organizations.sql +72 -0
  235. package/dist/packages/server/migrations/0003_drop_unused.sql +3 -0
  236. package/dist/packages/server/migrations/0004_trigger_runners.sql +15 -0
  237. package/dist/packages/server/migrations/0005_run_runner.sql +3 -0
  238. package/dist/packages/server/migrations/0006_approvals.sql +36 -0
  239. package/dist/packages/server/migrations/0007_app_events.sql +110 -0
  240. package/dist/packages/server/migrations/rollback/to-legacy.sql +90 -0
  241. package/dist/packages/server/src/api.d.ts +3730 -0
  242. package/dist/packages/server/src/api.js +820 -0
  243. package/dist/packages/server/src/api.js.map +1 -0
  244. package/dist/packages/server/src/app.d.ts +23 -0
  245. package/dist/packages/server/src/app.js +467 -0
  246. package/dist/packages/server/src/app.js.map +1 -0
  247. package/dist/packages/server/src/builtin.d.ts +5 -0
  248. package/dist/packages/server/src/builtin.js +42 -0
  249. package/dist/packages/server/src/builtin.js.map +1 -0
  250. package/dist/packages/server/src/consent.d.ts +27 -0
  251. package/dist/packages/server/src/consent.js +36 -0
  252. package/dist/packages/server/src/consent.js.map +1 -0
  253. package/dist/packages/server/src/events/admin.d.ts +156 -0
  254. package/dist/packages/server/src/events/admin.js +255 -0
  255. package/dist/packages/server/src/events/admin.js.map +1 -0
  256. package/dist/packages/server/src/events/deliver.d.ts +43 -0
  257. package/dist/packages/server/src/events/deliver.js +129 -0
  258. package/dist/packages/server/src/events/deliver.js.map +1 -0
  259. package/dist/packages/server/src/events/runtime.d.ts +28 -0
  260. package/dist/packages/server/src/events/runtime.js +400 -0
  261. package/dist/packages/server/src/events/runtime.js.map +1 -0
  262. package/dist/packages/server/src/events/store.d.ts +172 -0
  263. package/dist/packages/server/src/events/store.js +275 -0
  264. package/dist/packages/server/src/events/store.js.map +1 -0
  265. package/dist/packages/server/src/index.d.ts +40 -0
  266. package/dist/packages/server/src/index.js +186 -0
  267. package/dist/packages/server/src/index.js.map +1 -0
  268. package/dist/packages/server/src/migrate.d.ts +11 -0
  269. package/dist/packages/server/src/migrate.js +134 -0
  270. package/dist/packages/server/src/migrate.js.map +1 -0
  271. package/dist/packages/server/src/openapi.d.ts +4 -0
  272. package/dist/packages/server/src/openapi.js +101 -0
  273. package/dist/packages/server/src/openapi.js.map +1 -0
  274. package/dist/packages/server/src/queue.d.ts +10 -0
  275. package/dist/packages/server/src/queue.js +45 -0
  276. package/dist/packages/server/src/queue.js.map +1 -0
  277. package/dist/packages/server/src/secrets.d.ts +19 -0
  278. package/dist/packages/server/src/secrets.js +76 -0
  279. package/dist/packages/server/src/secrets.js.map +1 -0
  280. package/dist/packages/server/src/server.d.ts +1 -0
  281. package/dist/packages/server/src/server.js +82 -0
  282. package/dist/packages/server/src/server.js.map +1 -0
  283. package/dist/packages/server/src/service.d.ts +767 -0
  284. package/dist/packages/server/src/service.js +924 -0
  285. package/dist/packages/server/src/service.js.map +1 -0
  286. package/dist/packages/server/src/store.d.ts +157 -0
  287. package/dist/packages/server/src/store.js +415 -0
  288. package/dist/packages/server/src/store.js.map +1 -0
  289. package/dist/packages/server/src/teams/activity.d.ts +123 -0
  290. package/dist/packages/server/src/teams/activity.js +188 -0
  291. package/dist/packages/server/src/teams/activity.js.map +1 -0
  292. package/dist/packages/server/src/teams/admin.d.ts +335 -0
  293. package/dist/packages/server/src/teams/admin.js +699 -0
  294. package/dist/packages/server/src/teams/admin.js.map +1 -0
  295. package/dist/packages/server/src/teams/approval.d.ts +57 -0
  296. package/dist/packages/server/src/teams/approval.js +118 -0
  297. package/dist/packages/server/src/teams/approval.js.map +1 -0
  298. package/dist/packages/server/src/teams/bot.d.ts +25 -0
  299. package/dist/packages/server/src/teams/bot.js +124 -0
  300. package/dist/packages/server/src/teams/bot.js.map +1 -0
  301. package/dist/packages/server/src/teams/claude.d.ts +46 -0
  302. package/dist/packages/server/src/teams/claude.js +165 -0
  303. package/dist/packages/server/src/teams/claude.js.map +1 -0
  304. package/dist/packages/server/src/teams/jwt.d.ts +17 -0
  305. package/dist/packages/server/src/teams/jwt.js +121 -0
  306. package/dist/packages/server/src/teams/jwt.js.map +1 -0
  307. package/dist/packages/server/src/teams/package.d.ts +79 -0
  308. package/dist/packages/server/src/teams/package.js +319 -0
  309. package/dist/packages/server/src/teams/package.js.map +1 -0
  310. package/dist/packages/server/src/teams/provision.d.ts +84 -0
  311. package/dist/packages/server/src/teams/provision.js +505 -0
  312. package/dist/packages/server/src/teams/provision.js.map +1 -0
  313. package/dist/packages/server/src/teams/runner.d.ts +80 -0
  314. package/dist/packages/server/src/teams/runner.js +187 -0
  315. package/dist/packages/server/src/teams/runner.js.map +1 -0
  316. package/dist/packages/server/src/teams/runtime.d.ts +91 -0
  317. package/dist/packages/server/src/teams/runtime.js +679 -0
  318. package/dist/packages/server/src/teams/runtime.js.map +1 -0
  319. package/dist/packages/server/src/teams/store.d.ts +233 -0
  320. package/dist/packages/server/src/teams/store.js +507 -0
  321. package/dist/packages/server/src/teams/store.js.map +1 -0
  322. package/package.json +68 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../connectors/sap-s4hana/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type Fetch, type Vendor } from "../../packages/connector-kit/src/types.js";
2
+ export declare const ODATA = "/sap/opu/odata/sap";
3
+ export declare function normalizeHost(input: string): string;
4
+ export declare function serviceRoot(path: string): string;
5
+ export declare function sapVendor(fetchImpl?: Fetch): Vendor;
@@ -0,0 +1,176 @@
1
+ import { createHash } from "node:crypto";
2
+ import { guardedFetch } from "../http/index.js";
3
+ import { ConnectError, TokenCache, } from "../../packages/connector-kit/src/types.js";
4
+ // SAP S/4HANA's released OData v2 APIs under /sap/opu/odata/sap/<service>/, the same on
5
+ // S/4HANA Cloud (a communication user of the services' communication arrangements) and on
6
+ // premise through SAP Gateway (a technical user, with the client as sap-client). Basic auth,
7
+ // or on Cloud OAuth 2.0 client credentials at /sap/bc/sec/oauth2/token with the
8
+ // communication user as the client. Writes carry an x-csrf-token fetched first from the same
9
+ // service, with the session cookies it came with.
10
+ export const ODATA = "/sap/opu/odata/sap";
11
+ const HOST = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)*(?::\d{1,5})?$/;
12
+ const SAP_CLIENT = /^\d{3}$/;
13
+ const SERVICE = /^API_[A-Z0-9_]+$/;
14
+ // What connect reads to prove the user signs in: 401 is a refused sign-in, anything else
15
+ // (even 403 or 404 before the arrangement or service exists) means SAP knew the user.
16
+ const SIGN_IN_PROBE = `${ODATA}/API_BUSINESS_PARTNER/`;
17
+ export function normalizeHost(input) {
18
+ const raw = input.trim().toLowerCase();
19
+ if (raw.startsWith("http://"))
20
+ throw new ConnectError("SAP must be reached over https. Enter the https address.");
21
+ const host = raw.replace(/^https:\/\//, "").replace(/\/.*$/, "");
22
+ if (!HOST.test(host))
23
+ throw new ConnectError("Enter the API host name, for example my123456-api.s4hana.cloud.sap");
24
+ return host;
25
+ }
26
+ // The service a path belongs to: the CSRF token is fetched from its root.
27
+ export function serviceRoot(path) {
28
+ const m = /^\/sap\/opu\/odata\/sap\/(API_[A-Z0-9_]+)\//.exec(path);
29
+ if (!m)
30
+ throw new Error(`Not an SAP API path: ${path}`);
31
+ return `${ODATA}/${m[1]}/`;
32
+ }
33
+ export function sapVendor(fetchImpl = fetch) {
34
+ const tokens = new TokenCache();
35
+ const origin = (c) => `https://${c.config.host}`;
36
+ const withClient = (c, path) => c.config.sapClient
37
+ ? `${path}${path.includes("?") ? "&" : "?"}sap-client=${c.config.sapClient}`
38
+ : path;
39
+ const basic = (c) => `Basic ${Buffer.from(`${c.config.user}:${c.secret.password}`).toString("base64")}`;
40
+ const cacheKey = (c) => createHash("sha256")
41
+ .update(`${c.config.host}\n${c.config.user}\n${c.secret.password}`)
42
+ .digest("hex");
43
+ async function reach(c, path, init) {
44
+ try {
45
+ return await guardedFetch([origin(c)], fetchImpl)(`${origin(c)}${withClient(c, path)}`, init);
46
+ }
47
+ catch (error) {
48
+ if (error instanceof ConnectError)
49
+ throw error;
50
+ throw new ConnectError(`${c.config.host} could not be reached from this service`);
51
+ }
52
+ }
53
+ async function mint(c) {
54
+ const res = await reach(c, "/sap/bc/sec/oauth2/token", {
55
+ method: "POST",
56
+ headers: {
57
+ authorization: basic(c),
58
+ accept: "application/json",
59
+ "content-type": "application/x-www-form-urlencoded",
60
+ },
61
+ body: new URLSearchParams({ grant_type: "client_credentials" }),
62
+ });
63
+ const body = parse(await res.text());
64
+ if (!res.ok || typeof body?.access_token !== "string") {
65
+ const why = typeof body?.error_description === "string" ? body.error_description : null;
66
+ throw new ConnectError(`SAP refused the sign-in (${res.status})${why ? `: ${why.slice(0, 300)}` : ""}`);
67
+ }
68
+ const expiresIn = Number(body.expires_in);
69
+ if (!Number.isFinite(expiresIn) || expiresIn <= 60)
70
+ throw new ConnectError("SAP answered the sign-in without a usable token lifetime");
71
+ return { token: body.access_token, expiresIn };
72
+ }
73
+ async function authorization(c) {
74
+ return c.config.auth === "oauth"
75
+ ? `Bearer ${await tokens.get(cacheKey(c), () => mint(c))}`
76
+ : basic(c);
77
+ }
78
+ async function send(c, request, extra = {}) {
79
+ const res = await reach(c, request.path, {
80
+ method: request.method,
81
+ headers: {
82
+ authorization: await authorization(c),
83
+ accept: "application/json",
84
+ "accept-language": "en",
85
+ ...extra,
86
+ ...(request.body === undefined ? {} : { "content-type": "application/json" }),
87
+ },
88
+ body: request.body === undefined ? undefined : JSON.stringify(request.body),
89
+ });
90
+ const raw = await res.text();
91
+ return { status: res.status, data: raw ? parse(raw) : null, headers: res.headers };
92
+ }
93
+ // The token is bound to the session the cookies name, so both go with the write. A refused
94
+ // fetch is answered as is (a 401 is retried with a new OAuth token).
95
+ async function once(c, request) {
96
+ if (request.method === "GET")
97
+ return send(c, request);
98
+ const res = await send(c, { method: "GET", path: serviceRoot(request.path) }, { "x-csrf-token": "Fetch" });
99
+ if (res.status < 200 || res.status >= 300)
100
+ return res;
101
+ const token = res.headers.get("x-csrf-token");
102
+ if (!token || token.toLowerCase() === "required")
103
+ throw new ConnectError("SAP did not hand out a CSRF token for the change");
104
+ const cookie = res.headers
105
+ .getSetCookie()
106
+ .map((s) => s.split(";")[0])
107
+ .join("; ");
108
+ return send(c, request, { "x-csrf-token": token, ...(cookie ? { cookie } : {}) });
109
+ }
110
+ return {
111
+ async connect(fields) {
112
+ const deployment = fields.deployment === "on_premise" ? "on_premise" : "cloud";
113
+ const onPremise = deployment === "on_premise";
114
+ const host = normalizeHost((onPremise ? fields.gateway_host : fields.host) ?? "");
115
+ // Not asked on Cloud, which has no client to choose.
116
+ const sapClient = onPremise ? (fields.sap_client?.trim() ?? "") : "";
117
+ if (sapClient && !SAP_CLIENT.test(sapClient))
118
+ throw new ConnectError("The client is three digits, for example 100");
119
+ const user = fields.user?.trim();
120
+ const password = fields.password ?? "";
121
+ if (!user || !password)
122
+ throw new ConnectError("Enter the user name and password");
123
+ const auth = deployment === "cloud" && fields.auth === "oauth" ? "oauth" : "basic";
124
+ const system = sapClient ? `${host} client ${sapClient}` : host;
125
+ const conn = {
126
+ config: { deployment, auth, host, ...(sapClient ? { sapClient } : {}), user, system },
127
+ secret: { password },
128
+ };
129
+ if (auth === "oauth")
130
+ tokens.forget(cacheKey(conn));
131
+ const res = await send(conn, { method: "GET", path: SIGN_IN_PROBE });
132
+ if (res.status === 401)
133
+ throw new ConnectError(`SAP did not accept the user name and password for ${user}`);
134
+ return { ...conn, accountLabel: system };
135
+ },
136
+ async call(c, request) {
137
+ let res = await once(c, request);
138
+ if (res.status === 401 && c.config.auth === "oauth") {
139
+ tokens.forget(cacheKey(c));
140
+ res = await once(c, request);
141
+ }
142
+ return { status: res.status, data: res.data };
143
+ },
144
+ checks: {
145
+ // Which of the ticked capabilities' services this user can open (their service roots).
146
+ async services(c, { expected }) {
147
+ const reached = [];
148
+ const missing = [];
149
+ for (const service of expected.filter((s) => SERVICE.test(s))) {
150
+ const res = await send(c, { method: "GET", path: `${ODATA}/${service}/` });
151
+ if (res.status >= 200 && res.status < 300)
152
+ reached.push(service);
153
+ else
154
+ missing.push(`${service} (${res.status === 404 ? "not active" : res.status === 403 ? "not allowed for this user" : `answered ${res.status}`})`);
155
+ }
156
+ return {
157
+ values: reached,
158
+ ...(missing.length
159
+ ? {
160
+ warning: `The user cannot use these services yet: ${missing.join(", ")}. Follow the setup steps for them.`,
161
+ }
162
+ : {}),
163
+ };
164
+ },
165
+ },
166
+ };
167
+ }
168
+ function parse(raw) {
169
+ try {
170
+ return JSON.parse(raw);
171
+ }
172
+ catch {
173
+ return raw;
174
+ }
175
+ }
176
+ //# sourceMappingURL=vendor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../../connectors/sap-s4hana/vendor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ {
2
+ "id": "servicenow",
3
+ "name": "ServiceNow",
4
+ "description": "Let agents work on incidents, look up changes, devices and knowledge articles, and order from the service catalog in your ServiceNow instance.",
5
+ "logo": "/brand/registry/servicenow.svg",
6
+ "identity": "A ServiceNow integration user named \"{brand.microsoft.appName}\" with web service access only. Agents never see more than its roles allow.",
7
+ "accountKey": "instance",
8
+ "connectionKind": "guided",
9
+ "setup": [
10
+ {
11
+ "title": "Create an integration user",
12
+ "body": "Create a user named \"{brand.microsoft.appName}\" and select Web service access only, so it can call the API but never sign in to the ServiceNow interface.",
13
+ "click": [
14
+ "All > User Administration > Users > New",
15
+ "User ID: {brand.microsoft.appName}, First name: {brand.microsoft.appName}",
16
+ "Select Web service access only > Submit"
17
+ ]
18
+ },
19
+ {
20
+ "title": "Give it the roles agents need",
21
+ "body": "Add these roles to the integration user. Each one matches something you allow below, so leave out any that agents will not use. Knowledge articles are read with the integration user's own access: it must be allowed to read the knowledge bases agents should search.",
22
+ "click": [
23
+ "All > User Administration > Users > {brand.microsoft.appName}",
24
+ "Roles tab > Edit > add each role below > Save"
25
+ ],
26
+ "permissions": true
27
+ },
28
+ {
29
+ "title": "Set its password",
30
+ "body": "Open the integration user, select Set Password, and copy the password it makes. You enter it below.",
31
+ "click": [
32
+ "All > User Administration > Users > {brand.microsoft.appName}",
33
+ "Set Password > Generate > Save Password"
34
+ ],
35
+ "option": { "field": "auth", "value": "basic" }
36
+ },
37
+ {
38
+ "title": "Turn on the client credentials sign-in",
39
+ "body": "ServiceNow turns this sign-in off by default. Create the system property glide.oauth.inbound.client.credential.grant_type.enabled, of type true | false, with the value true. You need the oauth_admin role (or admin).",
40
+ "click": [
41
+ "In the navigator filter, type sys_properties.list and press Enter > New",
42
+ "Name: glide.oauth.inbound.client.credential.grant_type.enabled",
43
+ "Type: true | false, Value: true > Submit"
44
+ ],
45
+ "link": {
46
+ "label": "About client credentials in ServiceNow",
47
+ "href": "https://docs.servicenow.com/bundle/xanadu-platform-security/page/integrate/authentication/concept/client-credentials.html"
48
+ },
49
+ "option": { "field": "auth", "value": "oauth" }
50
+ },
51
+ {
52
+ "title": "Create an OAuth application registry entry",
53
+ "body": "Create an OAuth API endpoint for external clients named \"{brand.microsoft.appName}\", and set its OAuth Application User to the integration user, so every call runs as that user. If the form does not show OAuth Application User, add it with Configure > Form Layout. Then copy the client ID and the client secret (select the lock icon to see it).",
54
+ "click": [
55
+ "All > System OAuth > Application Registry > New > Create an OAuth API endpoint for external clients",
56
+ "Name: {brand.microsoft.appName} > Submit, then open the new entry",
57
+ "Form menu > Configure > Form Layout > move OAuth Application User to Selected > Save",
58
+ "OAuth Application User: {brand.microsoft.appName} > Update"
59
+ ],
60
+ "option": { "field": "auth", "value": "oauth" }
61
+ }
62
+ ],
63
+ "afterConnect": [],
64
+ "fields": [
65
+ {
66
+ "id": "instance",
67
+ "label": "Instance address",
68
+ "help": "The address you open ServiceNow at: your-company.service-now.com, or your company's own https address for it.",
69
+ "placeholder": "https://your-company.service-now.com",
70
+ "secret": false
71
+ },
72
+ {
73
+ "id": "auth",
74
+ "label": "Sign-in",
75
+ "secret": false,
76
+ "options": [
77
+ {
78
+ "value": "oauth",
79
+ "label": "OAuth application (recommended)",
80
+ "description": "An application registry entry that runs as the integration user. Its secret can be replaced without touching the user."
81
+ },
82
+ {
83
+ "value": "basic",
84
+ "label": "User name and password",
85
+ "description": "The integration user's own password. Use this when your instance cannot turn on client credentials."
86
+ }
87
+ ]
88
+ },
89
+ {
90
+ "id": "client_id",
91
+ "label": "Client ID",
92
+ "secret": false,
93
+ "requires": { "field": "auth", "value": "oauth" }
94
+ },
95
+ {
96
+ "id": "client_secret",
97
+ "label": "Client secret",
98
+ "secret": true,
99
+ "requires": { "field": "auth", "value": "oauth" }
100
+ },
101
+ {
102
+ "id": "username",
103
+ "label": "User ID",
104
+ "help": "The integration user's User ID.",
105
+ "secret": false,
106
+ "requires": { "field": "auth", "value": "basic" }
107
+ },
108
+ {
109
+ "id": "password",
110
+ "label": "Password",
111
+ "secret": true,
112
+ "requires": { "field": "auth", "value": "basic" }
113
+ }
114
+ ],
115
+ "capabilities": [
116
+ {
117
+ "id": "read_incidents",
118
+ "label": "Read incidents",
119
+ "description": "Search and read incidents, with their comments and work notes.",
120
+ "scopes": [],
121
+ "permissions": ["sn_incident_read"],
122
+ "forbidden": "Give the integration user the sn_incident_read role.",
123
+ "tools": ["servicenow_search_incidents", "servicenow_get_incident"]
124
+ },
125
+ {
126
+ "id": "create_incidents",
127
+ "label": "Open incidents",
128
+ "description": "Open new incidents.",
129
+ "scopes": [],
130
+ "permissions": ["sn_incident_write"],
131
+ "forbidden": "Give the integration user the sn_incident_write role.",
132
+ "tools": ["servicenow_create_incident"]
133
+ },
134
+ {
135
+ "id": "update_incidents",
136
+ "label": "Work on incidents",
137
+ "description": "Change and reassign incidents, add work notes and customer comments, and resolve incidents. A customer comment is usually emailed to the caller.",
138
+ "scopes": [],
139
+ "permissions": ["sn_incident_write"],
140
+ "forbidden": "Give the integration user the sn_incident_write role.",
141
+ "tools": [
142
+ "servicenow_update_incident",
143
+ "servicenow_add_incident_note",
144
+ "servicenow_resolve_incident"
145
+ ]
146
+ },
147
+ {
148
+ "id": "read_changes",
149
+ "label": "Read change requests",
150
+ "description": "Search and read change requests and their plans.",
151
+ "scopes": [],
152
+ "permissions": ["sn_change_read"],
153
+ "forbidden": "Give the integration user the sn_change_read role.",
154
+ "tools": ["servicenow_search_changes", "servicenow_get_change"]
155
+ },
156
+ {
157
+ "id": "read_cmdb",
158
+ "label": "Look up devices and systems",
159
+ "description": "Find configuration items in the CMDB by name or serial number.",
160
+ "scopes": [],
161
+ "permissions": ["cmdb_read"],
162
+ "forbidden": "Give the integration user the cmdb_read role.",
163
+ "tools": ["servicenow_find_configuration_items"]
164
+ },
165
+ {
166
+ "id": "read_knowledge",
167
+ "label": "Read knowledge articles",
168
+ "description": "Search and read published knowledge articles, as text.",
169
+ "scopes": [],
170
+ "permissions": [],
171
+ "forbidden": "Let the integration user read the knowledge bases agents should search (each knowledge base's Can Read user criteria).",
172
+ "tools": ["servicenow_search_knowledge", "servicenow_get_article"]
173
+ },
174
+ {
175
+ "id": "requests",
176
+ "label": "Browse the catalog and track requests",
177
+ "description": "Search the service catalog and follow requested items. Without the itil role agents see only the requests they placed.",
178
+ "scopes": [],
179
+ "permissions": ["itil"],
180
+ "forbidden": "Give the integration user the itil role.",
181
+ "tools": [
182
+ "servicenow_search_catalog_items",
183
+ "servicenow_get_catalog_item",
184
+ "servicenow_search_requests"
185
+ ]
186
+ },
187
+ {
188
+ "id": "order",
189
+ "label": "Order from the catalog",
190
+ "description": "Order catalog items for people. Each order starts the item's approvals and fulfillment.",
191
+ "note": "Orders go through the approvals your catalog items already have. An item with no approval is fulfilled as ordered.",
192
+ "scopes": [],
193
+ "permissions": [],
194
+ "tools": ["servicenow_order_catalog_item"]
195
+ }
196
+ ],
197
+ "limits": [
198
+ {
199
+ "id": "groups",
200
+ "label": "Assignment groups",
201
+ "help": "Group names, each unique in your instance. Incidents and change requests of other groups are hidden and cannot be changed, and new incidents must go to one of these. Leave empty to allow every group.",
202
+ "kind": "list",
203
+ "required": false,
204
+ "pattern": "^[^\\^\\r\\n]{1,100}$"
205
+ },
206
+ {
207
+ "id": "companies",
208
+ "label": "Companies",
209
+ "help": "Company names. Incidents, change requests, configuration items and requested items of other companies are hidden and cannot be changed, and agents may open incidents and order only for people of these companies. Knowledge articles and the catalog are not narrowed. Leave empty to allow every company.",
210
+ "kind": "list",
211
+ "required": false,
212
+ "pattern": "^[^\\^\\r\\n]{1,100}$"
213
+ }
214
+ ],
215
+ "verify": {
216
+ "method": "GET",
217
+ "path": "/api/now/table/sys_user?sysparm_query=sys_id%3Djavascript%3Ags.getUserID()&sysparm_fields=user_name&sysparm_limit=1",
218
+ "label": "Signed in as",
219
+ "show": "result[].user_name"
220
+ },
221
+ "discover": {
222
+ "method": "GET",
223
+ "path": "/api/now/table/sys_user_group?sysparm_query=active%3Dtrue%5EORDERBYname&sysparm_fields=name&sysparm_limit=500",
224
+ "label": "Assignment groups",
225
+ "show": "result[].name"
226
+ },
227
+ "revoke": "In ServiceNow, open System OAuth, then Application Registry, and set the {brand.microsoft.appName} entry to inactive, or open User Administration, then Users, and set the {brand.microsoft.appName} user to inactive."
228
+ }
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ id: string;
3
+ create: () => {
4
+ vendor: import("../../packages/connector-kit/src/types.js").Vendor;
5
+ toolset: import("../../packages/connector-kit/src/common.js").Toolset;
6
+ };
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import { servicenowTools } from "./tools.js";
2
+ import { servicenowVendor } from "./vendor.js";
3
+ export default {
4
+ id: "servicenow",
5
+ create: () => ({ vendor: servicenowVendor(), toolset: servicenowTools }),
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../connectors/servicenow/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAe;IACb,EAAE,EAAE,YAAY;IAChB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;CAC/C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Toolset } from "../../packages/connector-kit/src/common.js";
2
+ export declare function safe(value: string, what?: string): string;
3
+ export declare function htmlText(html: string | null): string;
4
+ export declare const servicenowTools: Toolset;