@grc-claw/integration-marketplace 0.8.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 (311) hide show
  1. package/dist/IntegrationMarketplace.d.ts +32 -0
  2. package/dist/IntegrationMarketplace.js +319 -0
  3. package/dist/connectors/ADPConnector.d.ts +12 -0
  4. package/dist/connectors/ADPConnector.js +97 -0
  5. package/dist/connectors/AWSCloudTrailConnector.d.ts +12 -0
  6. package/dist/connectors/AWSCloudTrailConnector.js +77 -0
  7. package/dist/connectors/AWSCloudWatchConnector.d.ts +12 -0
  8. package/dist/connectors/AWSCloudWatchConnector.js +70 -0
  9. package/dist/connectors/AWSGuardDutyConnector.d.ts +12 -0
  10. package/dist/connectors/AWSGuardDutyConnector.js +139 -0
  11. package/dist/connectors/AWSIAMConnector.d.ts +12 -0
  12. package/dist/connectors/AWSIAMConnector.js +90 -0
  13. package/dist/connectors/AWSKMSConnector.d.ts +12 -0
  14. package/dist/connectors/AWSKMSConnector.js +70 -0
  15. package/dist/connectors/AWSLambdaConnector.d.ts +12 -0
  16. package/dist/connectors/AWSLambdaConnector.js +84 -0
  17. package/dist/connectors/AWSRDSConnector.d.ts +12 -0
  18. package/dist/connectors/AWSRDSConnector.js +84 -0
  19. package/dist/connectors/AWSS3Connector.d.ts +12 -0
  20. package/dist/connectors/AWSS3Connector.js +112 -0
  21. package/dist/connectors/AkamaiConnector.d.ts +12 -0
  22. package/dist/connectors/AkamaiConnector.js +98 -0
  23. package/dist/connectors/ArgoCDConnector.d.ts +12 -0
  24. package/dist/connectors/ArgoCDConnector.js +93 -0
  25. package/dist/connectors/ArtifactoryConnector.d.ts +12 -0
  26. package/dist/connectors/ArtifactoryConnector.js +94 -0
  27. package/dist/connectors/AtlassianJiraConnector.d.ts +12 -0
  28. package/dist/connectors/AtlassianJiraConnector.js +134 -0
  29. package/dist/connectors/Auth0Connector.d.ts +12 -0
  30. package/dist/connectors/Auth0Connector.js +150 -0
  31. package/dist/connectors/AzureADConnector.d.ts +12 -0
  32. package/dist/connectors/AzureADConnector.js +115 -0
  33. package/dist/connectors/AzureDevOpsConnector.d.ts +12 -0
  34. package/dist/connectors/AzureDevOpsConnector.js +130 -0
  35. package/dist/connectors/AzureDevOpsPipelinesConnector.d.ts +12 -0
  36. package/dist/connectors/AzureDevOpsPipelinesConnector.js +72 -0
  37. package/dist/connectors/AzurePipelinesConnector.d.ts +12 -0
  38. package/dist/connectors/AzurePipelinesConnector.js +72 -0
  39. package/dist/connectors/AzurePolicyConnector.d.ts +12 -0
  40. package/dist/connectors/AzurePolicyConnector.js +141 -0
  41. package/dist/connectors/AzureReposConnector.d.ts +12 -0
  42. package/dist/connectors/AzureReposConnector.js +96 -0
  43. package/dist/connectors/AzureSentinelConnector.d.ts +12 -0
  44. package/dist/connectors/AzureSentinelConnector.js +88 -0
  45. package/dist/connectors/BambooCICDConnector.d.ts +12 -0
  46. package/dist/connectors/BambooCICDConnector.js +72 -0
  47. package/dist/connectors/BambooHRConnector.d.ts +12 -0
  48. package/dist/connectors/BambooHRConnector.js +84 -0
  49. package/dist/connectors/BeyondTrustConnector.d.ts +12 -0
  50. package/dist/connectors/BeyondTrustConnector.js +94 -0
  51. package/dist/connectors/BitbucketConnector.d.ts +12 -0
  52. package/dist/connectors/BitbucketConnector.js +100 -0
  53. package/dist/connectors/BitbucketPipelinesConnector.d.ts +12 -0
  54. package/dist/connectors/BitbucketPipelinesConnector.js +72 -0
  55. package/dist/connectors/BoxConnector.d.ts +12 -0
  56. package/dist/connectors/BoxConnector.js +122 -0
  57. package/dist/connectors/BuildkiteConnector.d.ts +12 -0
  58. package/dist/connectors/BuildkiteConnector.js +95 -0
  59. package/dist/connectors/CarbonBlackConnector.d.ts +12 -0
  60. package/dist/connectors/CarbonBlackConnector.js +89 -0
  61. package/dist/connectors/CassandraConnector.d.ts +12 -0
  62. package/dist/connectors/CassandraConnector.js +69 -0
  63. package/dist/connectors/CheckPointConnector.d.ts +12 -0
  64. package/dist/connectors/CheckPointConnector.js +98 -0
  65. package/dist/connectors/CircleCIConnector.d.ts +12 -0
  66. package/dist/connectors/CircleCIConnector.js +129 -0
  67. package/dist/connectors/CircleCIConnectorsConnector.d.ts +12 -0
  68. package/dist/connectors/CircleCIConnectorsConnector.js +69 -0
  69. package/dist/connectors/CiscoUmbrellaConnector.d.ts +12 -0
  70. package/dist/connectors/CiscoUmbrellaConnector.js +96 -0
  71. package/dist/connectors/CloudBeesJenkinsConnector.d.ts +12 -0
  72. package/dist/connectors/CloudBeesJenkinsConnector.js +70 -0
  73. package/dist/connectors/CloudflareDNSConnector.d.ts +12 -0
  74. package/dist/connectors/CloudflareDNSConnector.js +71 -0
  75. package/dist/connectors/CloudflareWAFConnector.d.ts +12 -0
  76. package/dist/connectors/CloudflareWAFConnector.js +98 -0
  77. package/dist/connectors/ConfluenceConnector.d.ts +12 -0
  78. package/dist/connectors/ConfluenceConnector.js +101 -0
  79. package/dist/connectors/ConstantContactConnector.d.ts +12 -0
  80. package/dist/connectors/ConstantContactConnector.js +70 -0
  81. package/dist/connectors/CouchDBConnector.d.ts +12 -0
  82. package/dist/connectors/CouchDBConnector.js +69 -0
  83. package/dist/connectors/CrowdStrikeConnector.d.ts +12 -0
  84. package/dist/connectors/CrowdStrikeConnector.js +86 -0
  85. package/dist/connectors/CrowdStrikeFalconConnector.d.ts +12 -0
  86. package/dist/connectors/CrowdStrikeFalconConnector.js +92 -0
  87. package/dist/connectors/CrowdStrikeSpotlightConnector.d.ts +12 -0
  88. package/dist/connectors/CrowdStrikeSpotlightConnector.js +139 -0
  89. package/dist/connectors/CyberArkConnector.d.ts +12 -0
  90. package/dist/connectors/CyberArkConnector.js +95 -0
  91. package/dist/connectors/DatabricksConnector.d.ts +12 -0
  92. package/dist/connectors/DatabricksConnector.js +95 -0
  93. package/dist/connectors/DatadogConnector.d.ts +12 -0
  94. package/dist/connectors/DatadogConnector.js +110 -0
  95. package/dist/connectors/DigitalOceanConnector.d.ts +12 -0
  96. package/dist/connectors/DigitalOceanConnector.js +85 -0
  97. package/dist/connectors/DiscordConnector.d.ts +12 -0
  98. package/dist/connectors/DiscordConnector.js +98 -0
  99. package/dist/connectors/DockerHubConnector.d.ts +12 -0
  100. package/dist/connectors/DockerHubConnector.js +80 -0
  101. package/dist/connectors/DocuSignConnector.d.ts +12 -0
  102. package/dist/connectors/DocuSignConnector.js +96 -0
  103. package/dist/connectors/DriftConnector.d.ts +12 -0
  104. package/dist/connectors/DriftConnector.js +69 -0
  105. package/dist/connectors/DropboxConnector.d.ts +12 -0
  106. package/dist/connectors/DropboxConnector.js +127 -0
  107. package/dist/connectors/ESETConnector.d.ts +12 -0
  108. package/dist/connectors/ESETConnector.js +70 -0
  109. package/dist/connectors/ElasticsearchCloudConnector.d.ts +12 -0
  110. package/dist/connectors/ElasticsearchCloudConnector.js +70 -0
  111. package/dist/connectors/FSecureConnector.d.ts +12 -0
  112. package/dist/connectors/FSecureConnector.js +70 -0
  113. package/dist/connectors/FeatureFlagConnector.d.ts +12 -0
  114. package/dist/connectors/FeatureFlagConnector.js +70 -0
  115. package/dist/connectors/FluxCDConnector.d.ts +12 -0
  116. package/dist/connectors/FluxCDConnector.js +94 -0
  117. package/dist/connectors/ForgeRockConnector.d.ts +12 -0
  118. package/dist/connectors/ForgeRockConnector.js +95 -0
  119. package/dist/connectors/FortinetConnector.d.ts +12 -0
  120. package/dist/connectors/FortinetConnector.js +98 -0
  121. package/dist/connectors/FreshdeskConnector.d.ts +12 -0
  122. package/dist/connectors/FreshdeskConnector.js +71 -0
  123. package/dist/connectors/GCPBigQueryConnector.d.ts +12 -0
  124. package/dist/connectors/GCPBigQueryConnector.js +71 -0
  125. package/dist/connectors/GCPComputeConnector.d.ts +12 -0
  126. package/dist/connectors/GCPComputeConnector.js +87 -0
  127. package/dist/connectors/GCPConfigConnector.d.ts +12 -0
  128. package/dist/connectors/GCPConfigConnector.js +149 -0
  129. package/dist/connectors/GCPFirestoreConnector.d.ts +12 -0
  130. package/dist/connectors/GCPFirestoreConnector.js +71 -0
  131. package/dist/connectors/GCPIAMConnector.d.ts +12 -0
  132. package/dist/connectors/GCPIAMConnector.js +98 -0
  133. package/dist/connectors/GCPSCCConnector.d.ts +12 -0
  134. package/dist/connectors/GCPSCCConnector.js +94 -0
  135. package/dist/connectors/GitHubActionsConnector.d.ts +12 -0
  136. package/dist/connectors/GitHubActionsConnector.js +104 -0
  137. package/dist/connectors/GitHubConnector.d.ts +12 -0
  138. package/dist/connectors/GitHubConnector.js +135 -0
  139. package/dist/connectors/GitHubCopilotConnector.d.ts +12 -0
  140. package/dist/connectors/GitHubCopilotConnector.js +72 -0
  141. package/dist/connectors/GitLabCIConnector.d.ts +12 -0
  142. package/dist/connectors/GitLabCIConnector.js +71 -0
  143. package/dist/connectors/GitLabConnector.d.ts +12 -0
  144. package/dist/connectors/GitLabConnector.js +101 -0
  145. package/dist/connectors/GitLabSASTConnector.d.ts +12 -0
  146. package/dist/connectors/GitLabSASTConnector.js +130 -0
  147. package/dist/connectors/GoogleWorkspaceConnector.d.ts +12 -0
  148. package/dist/connectors/GoogleWorkspaceConnector.js +136 -0
  149. package/dist/connectors/HelmConnector.d.ts +12 -0
  150. package/dist/connectors/HelmConnector.js +94 -0
  151. package/dist/connectors/HubSpotConnector.d.ts +12 -0
  152. package/dist/connectors/HubSpotConnector.js +77 -0
  153. package/dist/connectors/IFTTTConnector.d.ts +12 -0
  154. package/dist/connectors/IFTTTConnector.js +70 -0
  155. package/dist/connectors/ImpervaConnector.d.ts +12 -0
  156. package/dist/connectors/ImpervaConnector.js +94 -0
  157. package/dist/connectors/InfluxDBConnector.d.ts +12 -0
  158. package/dist/connectors/InfluxDBConnector.js +70 -0
  159. package/dist/connectors/IntercomConnector.d.ts +12 -0
  160. package/dist/connectors/IntercomConnector.js +69 -0
  161. package/dist/connectors/JenkinsConnector.d.ts +12 -0
  162. package/dist/connectors/JenkinsConnector.js +96 -0
  163. package/dist/connectors/JiraConnector.d.ts +12 -0
  164. package/dist/connectors/JiraConnector.js +103 -0
  165. package/dist/connectors/KafkaConnector.d.ts +12 -0
  166. package/dist/connectors/KafkaConnector.js +70 -0
  167. package/dist/connectors/KasperskyConnector.d.ts +12 -0
  168. package/dist/connectors/KasperskyConnector.js +70 -0
  169. package/dist/connectors/KubernetesConnector.d.ts +12 -0
  170. package/dist/connectors/KubernetesConnector.js +109 -0
  171. package/dist/connectors/LaceworkConnector.d.ts +13 -0
  172. package/dist/connectors/LaceworkConnector.js +143 -0
  173. package/dist/connectors/LaunchDarklyConnector.d.ts +12 -0
  174. package/dist/connectors/LaunchDarklyConnector.js +86 -0
  175. package/dist/connectors/LinodeConnector.d.ts +12 -0
  176. package/dist/connectors/LinodeConnector.js +70 -0
  177. package/dist/connectors/LookerConnector.d.ts +12 -0
  178. package/dist/connectors/LookerConnector.js +94 -0
  179. package/dist/connectors/MailchimpConnector.d.ts +12 -0
  180. package/dist/connectors/MailchimpConnector.js +71 -0
  181. package/dist/connectors/MalwarebytesConnector.d.ts +12 -0
  182. package/dist/connectors/MalwarebytesConnector.js +85 -0
  183. package/dist/connectors/McAfeeConnector.d.ts +12 -0
  184. package/dist/connectors/McAfeeConnector.js +85 -0
  185. package/dist/connectors/Microsoft365Connector.d.ts +12 -0
  186. package/dist/connectors/Microsoft365Connector.js +139 -0
  187. package/dist/connectors/MongoDBConnector.d.ts +12 -0
  188. package/dist/connectors/MongoDBConnector.js +86 -0
  189. package/dist/connectors/NamelyConnector.d.ts +12 -0
  190. package/dist/connectors/NamelyConnector.js +97 -0
  191. package/dist/connectors/Neo4jConnector.d.ts +12 -0
  192. package/dist/connectors/Neo4jConnector.js +70 -0
  193. package/dist/connectors/NetSuiteConnector.d.ts +12 -0
  194. package/dist/connectors/NetSuiteConnector.js +94 -0
  195. package/dist/connectors/NetskopeConnector.d.ts +12 -0
  196. package/dist/connectors/NetskopeConnector.js +98 -0
  197. package/dist/connectors/NexusConnector.d.ts +12 -0
  198. package/dist/connectors/NexusConnector.js +93 -0
  199. package/dist/connectors/NotionConnector.d.ts +12 -0
  200. package/dist/connectors/NotionConnector.js +109 -0
  201. package/dist/connectors/OktaConnector.d.ts +12 -0
  202. package/dist/connectors/OktaConnector.js +123 -0
  203. package/dist/connectors/OktaSystemLogConnector.d.ts +12 -0
  204. package/dist/connectors/OktaSystemLogConnector.js +129 -0
  205. package/dist/connectors/OpsgenieConnector.d.ts +12 -0
  206. package/dist/connectors/OpsgenieConnector.js +70 -0
  207. package/dist/connectors/PagerDutyConnector.d.ts +12 -0
  208. package/dist/connectors/PagerDutyConnector.js +106 -0
  209. package/dist/connectors/PalantirConnector.d.ts +12 -0
  210. package/dist/connectors/PalantirConnector.js +95 -0
  211. package/dist/connectors/PaloAltoPrismaCloudConnector.d.ts +12 -0
  212. package/dist/connectors/PaloAltoPrismaCloudConnector.js +110 -0
  213. package/dist/connectors/PingFederateConnector.d.ts +12 -0
  214. package/dist/connectors/PingFederateConnector.js +97 -0
  215. package/dist/connectors/PostgreSQLCloudConnector.d.ts +12 -0
  216. package/dist/connectors/PostgreSQLCloudConnector.js +70 -0
  217. package/dist/connectors/PowerBIConnector.d.ts +12 -0
  218. package/dist/connectors/PowerBIConnector.js +95 -0
  219. package/dist/connectors/PrismaCloudConnector.d.ts +12 -0
  220. package/dist/connectors/PrismaCloudConnector.js +147 -0
  221. package/dist/connectors/QualysConnector.d.ts +12 -0
  222. package/dist/connectors/QualysConnector.js +96 -0
  223. package/dist/connectors/QualysScannerConnector.d.ts +12 -0
  224. package/dist/connectors/QualysScannerConnector.js +131 -0
  225. package/dist/connectors/QuickBooksConnector.d.ts +12 -0
  226. package/dist/connectors/QuickBooksConnector.js +97 -0
  227. package/dist/connectors/RabbitMQConnector.d.ts +12 -0
  228. package/dist/connectors/RabbitMQConnector.js +69 -0
  229. package/dist/connectors/RadwareConnector.d.ts +12 -0
  230. package/dist/connectors/RadwareConnector.js +94 -0
  231. package/dist/connectors/RedisCloudConnector.d.ts +12 -0
  232. package/dist/connectors/RedisCloudConnector.js +70 -0
  233. package/dist/connectors/RingCentralConnector.d.ts +12 -0
  234. package/dist/connectors/RingCentralConnector.js +94 -0
  235. package/dist/connectors/SAPSuccessFactorsConnector.d.ts +12 -0
  236. package/dist/connectors/SAPSuccessFactorsConnector.js +103 -0
  237. package/dist/connectors/SailPointConnector.d.ts +12 -0
  238. package/dist/connectors/SailPointConnector.js +97 -0
  239. package/dist/connectors/SalesforceConnector.d.ts +12 -0
  240. package/dist/connectors/SalesforceConnector.js +91 -0
  241. package/dist/connectors/SendGridConnector.d.ts +12 -0
  242. package/dist/connectors/SendGridConnector.js +69 -0
  243. package/dist/connectors/SentinelOneConnector.d.ts +12 -0
  244. package/dist/connectors/SentinelOneConnector.js +89 -0
  245. package/dist/connectors/ServiceNowConnector.d.ts +12 -0
  246. package/dist/connectors/ServiceNowConnector.js +123 -0
  247. package/dist/connectors/SlackConnector.d.ts +12 -0
  248. package/dist/connectors/SlackConnector.js +109 -0
  249. package/dist/connectors/SnowflakeConnector.d.ts +12 -0
  250. package/dist/connectors/SnowflakeConnector.js +105 -0
  251. package/dist/connectors/SnykConnector.d.ts +12 -0
  252. package/dist/connectors/SnykConnector.js +84 -0
  253. package/dist/connectors/SnykMonitorConnector.d.ts +12 -0
  254. package/dist/connectors/SnykMonitorConnector.js +131 -0
  255. package/dist/connectors/SophosConnector.d.ts +12 -0
  256. package/dist/connectors/SophosConnector.js +87 -0
  257. package/dist/connectors/SpinnakerConnector.d.ts +12 -0
  258. package/dist/connectors/SpinnakerConnector.js +70 -0
  259. package/dist/connectors/SplunkConnector.d.ts +12 -0
  260. package/dist/connectors/SplunkConnector.js +126 -0
  261. package/dist/connectors/StripeConnector.d.ts +12 -0
  262. package/dist/connectors/StripeConnector.js +97 -0
  263. package/dist/connectors/TableauConnector.d.ts +12 -0
  264. package/dist/connectors/TableauConnector.js +101 -0
  265. package/dist/connectors/TaniumConnector.d.ts +12 -0
  266. package/dist/connectors/TaniumConnector.js +97 -0
  267. package/dist/connectors/TeamCityConnector.d.ts +12 -0
  268. package/dist/connectors/TeamCityConnector.js +71 -0
  269. package/dist/connectors/TeamsConnector.d.ts +12 -0
  270. package/dist/connectors/TeamsConnector.js +96 -0
  271. package/dist/connectors/TenableIOConnector.d.ts +12 -0
  272. package/dist/connectors/TenableIOConnector.js +130 -0
  273. package/dist/connectors/TerraformCloudConnector.d.ts +12 -0
  274. package/dist/connectors/TerraformCloudConnector.js +106 -0
  275. package/dist/connectors/TravisCIConnector.d.ts +12 -0
  276. package/dist/connectors/TravisCIConnector.js +95 -0
  277. package/dist/connectors/TrendMicroConnector.d.ts +12 -0
  278. package/dist/connectors/TrendMicroConnector.js +85 -0
  279. package/dist/connectors/TwilioConnector.d.ts +12 -0
  280. package/dist/connectors/TwilioConnector.js +70 -0
  281. package/dist/connectors/VercelConnector.d.ts +12 -0
  282. package/dist/connectors/VercelConnector.js +70 -0
  283. package/dist/connectors/VultrConnector.d.ts +12 -0
  284. package/dist/connectors/VultrConnector.js +70 -0
  285. package/dist/connectors/WebexConnector.d.ts +12 -0
  286. package/dist/connectors/WebexConnector.js +94 -0
  287. package/dist/connectors/WizConnector.d.ts +12 -0
  288. package/dist/connectors/WizConnector.js +172 -0
  289. package/dist/connectors/WorkdayConnector.d.ts +12 -0
  290. package/dist/connectors/WorkdayConnector.js +100 -0
  291. package/dist/connectors/XeroConnector.d.ts +12 -0
  292. package/dist/connectors/XeroConnector.js +96 -0
  293. package/dist/connectors/ZapierConnector.d.ts +12 -0
  294. package/dist/connectors/ZapierConnector.js +70 -0
  295. package/dist/connectors/ZendeskConnector.d.ts +12 -0
  296. package/dist/connectors/ZendeskConnector.js +71 -0
  297. package/dist/connectors/ZenefitsConnector.d.ts +12 -0
  298. package/dist/connectors/ZenefitsConnector.js +93 -0
  299. package/dist/connectors/ZoomConnector.d.ts +12 -0
  300. package/dist/connectors/ZoomConnector.js +97 -0
  301. package/dist/connectors/ZscalerConnector.d.ts +12 -0
  302. package/dist/connectors/ZscalerConnector.js +97 -0
  303. package/dist/connectors/index.d.ts +150 -0
  304. package/dist/connectors/index.js +157 -0
  305. package/dist/index.d.ts +5 -0
  306. package/dist/index.js +16 -0
  307. package/dist/index.test.d.ts +1 -0
  308. package/dist/index.test.js +139 -0
  309. package/dist/types.d.ts +57 -0
  310. package/dist/types.js +8 -0
  311. package/package.json +33 -0
@@ -0,0 +1,95 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "cyberark-safe",
5
+ name: "Safe Management",
6
+ description: "Fetch safe configurations and access policies",
7
+ evidenceCategories: ["access_control", "data_protection"],
8
+ },
9
+ {
10
+ id: "cyberark-accounts",
11
+ name: "Account Management",
12
+ description: "Fetch managed accounts and rotation status",
13
+ evidenceCategories: ["access_control", "data_protection"],
14
+ },
15
+ {
16
+ id: "cyberark-psm",
17
+ name: "Session Monitoring",
18
+ description: "Fetch PSM session recordings and access logs",
19
+ evidenceCategories: ["monitoring", "access_control"],
20
+ },
21
+ {
22
+ id: "cyberark-policies",
23
+ name: "Password Policies",
24
+ description: "Fetch password complexity and rotation policies",
25
+ evidenceCategories: ["data_protection", "configuration"],
26
+ },
27
+ ];
28
+ export class CyberArkConnector {
29
+ id = "cyberark";
30
+ name = "CyberArk";
31
+ category = "identity";
32
+ authType = "api_key";
33
+ capabilities = capabilities;
34
+ frameworks = [
35
+ "SOC2",
36
+ "ISO27001",
37
+ "NIST_CSF",
38
+ "PCI_DSS",
39
+ "HIPAA",
40
+ ];
41
+ async fetchApi(config, endpoint) {
42
+ const base = config.baseUrl || "https://cyberark.example.com";
43
+ const resp = await fetch(`${base}/PasswordVault/API${endpoint}`, {
44
+ headers: {
45
+ Authorization: `Bearer ${config.apiToken}`,
46
+ "Content-Type": "application/json",
47
+ },
48
+ });
49
+ if (!resp.ok)
50
+ throw new Error(`CyberArk API ${resp.status}: ${resp.statusText}`);
51
+ return (await resp.json());
52
+ }
53
+ async testConnection(config) {
54
+ try {
55
+ await this.fetchApi(config, "/ Vaults");
56
+ return true;
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ async collectEvidence(config) {
63
+ const artifacts = [];
64
+ const now = new Date().toISOString();
65
+ const safes = await this.fetchApi(config, "/Vaults").catch(() => ({ value: [] }));
66
+ artifacts.push({
67
+ id: generateEvidenceId(),
68
+ connectorId: this.id,
69
+ capabilityId: "cyberark-safe",
70
+ timestamp: now,
71
+ hash: hashEvidence(safes),
72
+ framework: "SOC2",
73
+ controlId: "CC6.1",
74
+ source: "cyberark/safes",
75
+ status: safes.value?.length > 0 ? "compliant" : "unknown",
76
+ data: { safeCount: safes.value?.length || 0 },
77
+ metadata: {},
78
+ });
79
+ const accounts = await this.fetchApi(config, "/Accounts").catch(() => ({ value: [] }));
80
+ artifacts.push({
81
+ id: generateEvidenceId(),
82
+ connectorId: this.id,
83
+ capabilityId: "cyberark-accounts",
84
+ timestamp: now,
85
+ hash: hashEvidence(accounts),
86
+ framework: "ISO27001",
87
+ controlId: "A.9.2.6",
88
+ source: "cyberark/accounts",
89
+ status: accounts.value?.length > 0 ? "compliant" : "non_compliant",
90
+ data: { managedAccounts: accounts.value?.length || 0 },
91
+ metadata: {},
92
+ });
93
+ return artifacts;
94
+ }
95
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class DatabricksConnector implements IntegrationConnector {
3
+ readonly id = "databricks";
4
+ readonly name = "Databricks";
5
+ readonly category: "data_warehouse";
6
+ readonly authType: "api_key";
7
+ readonly capabilities: IntegrationCapability[];
8
+ readonly frameworks: ComplianceFramework[];
9
+ private fetchApi;
10
+ testConnection(config: ConnectorConfig): Promise<boolean>;
11
+ collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
12
+ }
@@ -0,0 +1,95 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "databricks-workspaces",
5
+ name: "Workspace Security",
6
+ description: "Fetch workspace access controls and Unity Catalog permissions",
7
+ evidenceCategories: ["access_control", "data_protection"],
8
+ },
9
+ {
10
+ id: "databricks-jobs",
11
+ name: "Job Configurations",
12
+ description: "Fetch job definitions and cluster configurations",
13
+ evidenceCategories: ["change_management", "configuration"],
14
+ },
15
+ {
16
+ id: "databricks-data-governance",
17
+ name: "Data Governance",
18
+ description: "Fetch data lineage, classification tags, and access policies",
19
+ evidenceCategories: ["data_protection", "compliance"],
20
+ },
21
+ {
22
+ id: "databricks-audit",
23
+ name: "Audit Logs",
24
+ description: "Fetch workspace audit log events",
25
+ evidenceCategories: ["monitoring", "access_control"],
26
+ },
27
+ ];
28
+ export class DatabricksConnector {
29
+ id = "databricks";
30
+ name = "Databricks";
31
+ category = "data_warehouse";
32
+ authType = "api_key";
33
+ capabilities = capabilities;
34
+ frameworks = [
35
+ "SOC2",
36
+ "ISO27001",
37
+ "NIST_CSF",
38
+ "HIPAA",
39
+ "PCI_DSS",
40
+ ];
41
+ async fetchApi(config, endpoint) {
42
+ const base = config.baseUrl || "https://adb-default.cloud.databricks.com";
43
+ const resp = await fetch(`${base}/api/2.0${endpoint}`, {
44
+ headers: {
45
+ Authorization: `Bearer ${config.apiToken}`,
46
+ "Content-Type": "application/json",
47
+ },
48
+ });
49
+ if (!resp.ok)
50
+ throw new Error(`Databricks API ${resp.status}: ${resp.statusText}`);
51
+ return (await resp.json());
52
+ }
53
+ async testConnection(config) {
54
+ try {
55
+ await this.fetchApi(config, "/clusters/list");
56
+ return true;
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ async collectEvidence(config) {
63
+ const artifacts = [];
64
+ const now = new Date().toISOString();
65
+ const clusters = await this.fetchApi(config, "/clusters/list").catch(() => ({ clusters: [] }));
66
+ artifacts.push({
67
+ id: generateEvidenceId(),
68
+ connectorId: this.id,
69
+ capabilityId: "databricks-workspaces",
70
+ timestamp: now,
71
+ hash: hashEvidence(clusters),
72
+ framework: "SOC2",
73
+ controlId: "CC6.1",
74
+ source: "databricks/clusters",
75
+ status: clusters.clusters?.length > 0 ? "compliant" : "unknown",
76
+ data: { clusterCount: clusters.clusters?.length || 0 },
77
+ metadata: {},
78
+ });
79
+ const jobs = await this.fetchApi(config, "/jobs/list").catch(() => ({ jobs: [] }));
80
+ artifacts.push({
81
+ id: generateEvidenceId(),
82
+ connectorId: this.id,
83
+ capabilityId: "databricks-jobs",
84
+ timestamp: now,
85
+ hash: hashEvidence(jobs),
86
+ framework: "ISO27001",
87
+ controlId: "A.12.1.1",
88
+ source: "databricks/jobs",
89
+ status: jobs.jobs?.length > 0 ? "compliant" : "non_compliant",
90
+ data: { jobCount: jobs.jobs?.length || 0 },
91
+ metadata: {},
92
+ });
93
+ return artifacts;
94
+ }
95
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class DatadogConnector implements IntegrationConnector {
3
+ readonly id = "datadog";
4
+ readonly name = "Datadog";
5
+ readonly category: "monitoring";
6
+ readonly authType: "api_key";
7
+ readonly capabilities: IntegrationCapability[];
8
+ readonly frameworks: ComplianceFramework[];
9
+ private fetchApi;
10
+ testConnection(config: ConnectorConfig): Promise<boolean>;
11
+ collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
12
+ }
@@ -0,0 +1,110 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "dd-monitors",
5
+ name: "Monitors",
6
+ description: "Fetch Datadog monitor configurations and alert states",
7
+ evidenceCategories: ["monitoring", "configuration"],
8
+ },
9
+ {
10
+ id: "dd-alerts",
11
+ name: "Alerts",
12
+ description: "Fetch triggered alerts and alert rule configurations",
13
+ evidenceCategories: ["monitoring", "incident_detection"],
14
+ },
15
+ {
16
+ id: "dd-apm",
17
+ name: "APM Configurations",
18
+ description: "Fetch APM service configurations and security tracking",
19
+ evidenceCategories: ["application_security", "monitoring"],
20
+ },
21
+ ];
22
+ export class DatadogConnector {
23
+ id = "datadog";
24
+ name = "Datadog";
25
+ category = "monitoring";
26
+ authType = "api_key";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001"];
29
+ async fetchApi(config, endpoint, method = "GET") {
30
+ const site = config.extra?.site || "datadoghq.com";
31
+ const base = `https://api.${site}`;
32
+ const resp = await fetch(`${base}${endpoint}`, {
33
+ method,
34
+ headers: {
35
+ "DD-API-KEY": config.apiToken || "",
36
+ "DD-APPLICATION-KEY": config.extra?.appKey || "",
37
+ "Content-Type": "application/json",
38
+ },
39
+ });
40
+ if (!resp.ok)
41
+ throw new Error(`Datadog API ${resp.status}: ${resp.statusText}`);
42
+ return (await resp.json());
43
+ }
44
+ async testConnection(config) {
45
+ try {
46
+ await this.fetchApi(config, "/api/v1/validate");
47
+ return true;
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ }
53
+ async collectEvidence(config) {
54
+ const artifacts = [];
55
+ const now = new Date().toISOString();
56
+ const monitors = await this.fetchApi(config, "/api/v1/monitor");
57
+ const monitorList = Array.isArray(monitors) ? monitors : [];
58
+ const activeMonitors = monitorList.filter((m) => m.overall_state === "OK");
59
+ artifacts.push({
60
+ id: generateEvidenceId(),
61
+ connectorId: this.id,
62
+ capabilityId: "dd-monitors",
63
+ timestamp: now,
64
+ hash: hashEvidence({ monitorCount: monitorList.length }),
65
+ framework: "SOC2",
66
+ controlId: "CC7.1",
67
+ source: "datadog/monitors",
68
+ status: monitorList.length > 0 ? "compliant" : "non_compliant",
69
+ data: {
70
+ totalMonitors: monitorList.length,
71
+ activeMonitors: activeMonitors.length,
72
+ alertMonitors: monitorList.length - activeMonitors.length,
73
+ },
74
+ metadata: { site: config.extra?.site || "datadoghq.com" },
75
+ });
76
+ const alerts = await this.fetchApi(config, "/api/v1/alerts").catch(() => []);
77
+ const alertList = Array.isArray(alerts) ? alerts : [];
78
+ artifacts.push({
79
+ id: generateEvidenceId(),
80
+ connectorId: this.id,
81
+ capabilityId: "dd-alerts",
82
+ timestamp: now,
83
+ hash: hashEvidence({ alertCount: alertList.length }),
84
+ framework: "SOC2",
85
+ controlId: "CC7.2",
86
+ source: "datadog/alerts",
87
+ status: "unknown",
88
+ data: { alertRuleCount: alertList.length },
89
+ metadata: { site: config.extra?.site || "datadoghq.com" },
90
+ });
91
+ const services = await this.fetchApi(config, "/api/v1/services").catch(() => ({
92
+ services: [],
93
+ }));
94
+ const serviceList = (services.services || []);
95
+ artifacts.push({
96
+ id: generateEvidenceId(),
97
+ connectorId: this.id,
98
+ capabilityId: "dd-apm",
99
+ timestamp: now,
100
+ hash: hashEvidence({ serviceCount: serviceList.length }),
101
+ framework: "ISO27001",
102
+ controlId: "A.12.4.1",
103
+ source: "datadog/services",
104
+ status: "unknown",
105
+ data: { serviceCount: serviceList.length },
106
+ metadata: { site: config.extra?.site || "datadoghq.com" },
107
+ });
108
+ return artifacts;
109
+ }
110
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class DigitalOceanConnector implements IntegrationConnector {
3
+ readonly id = "digitalocean";
4
+ readonly name = "DigitalOcean";
5
+ readonly category: "cloud_provider";
6
+ readonly authType: "bearer_token";
7
+ readonly capabilities: IntegrationCapability[];
8
+ readonly frameworks: ComplianceFramework[];
9
+ private fetchApi;
10
+ testConnection(config: ConnectorConfig): Promise<boolean>;
11
+ collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
12
+ }
@@ -0,0 +1,85 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "do-droplets",
5
+ name: "Droplets",
6
+ description: "Fetch DigitalOcean droplet configurations and status",
7
+ evidenceCategories: ["cloud_configuration", "infrastructure"],
8
+ },
9
+ {
10
+ id: "do-firewalls",
11
+ name: "Cloud Firewalls",
12
+ description: "Fetch cloud firewall rules and inbound/outbound policies",
13
+ evidenceCategories: ["network_security", "access_control"],
14
+ },
15
+ {
16
+ id: "do-vpc",
17
+ name: "VPC Networks",
18
+ description: "Fetch VPC configurations and IP range allocations",
19
+ evidenceCategories: ["network_security", "cloud_configuration"],
20
+ },
21
+ ];
22
+ export class DigitalOceanConnector {
23
+ id = "digitalocean";
24
+ name = "DigitalOcean";
25
+ category = "cloud_provider";
26
+ authType = "bearer_token";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001", "NIST_CSF"];
29
+ async fetchApi(config, endpoint) {
30
+ const base = config.baseUrl || "https://api.digitalocean.com/v2";
31
+ const resp = await fetch(`${base}${endpoint}`, {
32
+ headers: {
33
+ Authorization: `Bearer ${config.apiToken}`,
34
+ "Content-Type": "application/json",
35
+ },
36
+ });
37
+ if (!resp.ok)
38
+ throw new Error(`DigitalOcean API ${resp.status}: ${resp.statusText}`);
39
+ return (await resp.json());
40
+ }
41
+ async testConnection(config) {
42
+ try {
43
+ await this.fetchApi(config, "/account");
44
+ return true;
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ }
50
+ async collectEvidence(config) {
51
+ const artifacts = [];
52
+ const now = new Date().toISOString();
53
+ const droplets = await this.fetchApi(config, "/droplets?per_page=100").catch(() => ({ droplets: [] }));
54
+ const dropletList = (droplets.droplets || []);
55
+ artifacts.push({
56
+ id: generateEvidenceId(),
57
+ connectorId: this.id,
58
+ capabilityId: "do-droplets",
59
+ timestamp: now,
60
+ hash: hashEvidence({ dropletCount: dropletList.length }),
61
+ framework: "SOC2",
62
+ controlId: "CC6.1",
63
+ source: "digitalocean/droplets",
64
+ status: "unknown",
65
+ data: { dropletCount: dropletList.length },
66
+ metadata: {},
67
+ });
68
+ const firewalls = await this.fetchApi(config, "/firewalls").catch(() => ({ firewalls: [] }));
69
+ const fwList = (firewalls.firewalls || []);
70
+ artifacts.push({
71
+ id: generateEvidenceId(),
72
+ connectorId: this.id,
73
+ capabilityId: "do-firewalls",
74
+ timestamp: now,
75
+ hash: hashEvidence({ firewallCount: fwList.length }),
76
+ framework: "ISO27001",
77
+ controlId: "A.13.1.1",
78
+ source: "digitalocean/firewalls",
79
+ status: fwList.length > 0 ? "compliant" : "non_compliant",
80
+ data: { firewallCount: fwList.length },
81
+ metadata: {},
82
+ });
83
+ return artifacts;
84
+ }
85
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class DiscordConnector implements IntegrationConnector {
3
+ readonly id = "discord";
4
+ readonly name = "Discord";
5
+ readonly category: "communication";
6
+ readonly authType: "api_key";
7
+ readonly capabilities: IntegrationCapability[];
8
+ readonly frameworks: ComplianceFramework[];
9
+ private fetchApi;
10
+ testConnection(config: ConnectorConfig): Promise<boolean>;
11
+ collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
12
+ }
@@ -0,0 +1,98 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "discord-servers",
5
+ name: "Server Settings",
6
+ description: "Fetch Discord server verification and security settings",
7
+ evidenceCategories: ["access_control", "configuration"],
8
+ },
9
+ {
10
+ id: "discord-roles",
11
+ name: "Role Management",
12
+ description: "Fetch server roles and permission configurations",
13
+ evidenceCategories: ["access_control", "configuration"],
14
+ },
15
+ {
16
+ id: "discord-audit",
17
+ name: "Audit Logs",
18
+ description: "Fetch Discord server audit log entries",
19
+ evidenceCategories: ["monitoring", "access_control"],
20
+ },
21
+ {
22
+ id: "discord-integrations",
23
+ name: "Bot & Webhook Security",
24
+ description: "Fetch bot permissions and webhook configurations",
25
+ evidenceCategories: ["access_control", "data_protection"],
26
+ },
27
+ ];
28
+ export class DiscordConnector {
29
+ id = "discord";
30
+ name = "Discord";
31
+ category = "communication";
32
+ authType = "api_key";
33
+ capabilities = capabilities;
34
+ frameworks = [
35
+ "SOC2",
36
+ "ISO27001",
37
+ "NIST_CSF",
38
+ ];
39
+ async fetchApi(config, endpoint) {
40
+ const base = config.baseUrl || "https://discord.com/api/v10";
41
+ const resp = await fetch(`${base}${endpoint}`, {
42
+ headers: {
43
+ Authorization: `Bot ${config.apiToken}`,
44
+ "Content-Type": "application/json",
45
+ },
46
+ });
47
+ if (!resp.ok)
48
+ throw new Error(`Discord API ${resp.status}: ${resp.statusText}`);
49
+ return (await resp.json());
50
+ }
51
+ async testConnection(config) {
52
+ try {
53
+ await this.fetchApi(config, "/users/@me");
54
+ return true;
55
+ }
56
+ catch {
57
+ return false;
58
+ }
59
+ }
60
+ async collectEvidence(config) {
61
+ const artifacts = [];
62
+ const now = new Date().toISOString();
63
+ const guildId = config.extra?.guildId || "";
64
+ const guild = await this.fetchApi(config, `/guilds/${guildId}?with_counts=true`).catch(() => ({}));
65
+ artifacts.push({
66
+ id: generateEvidenceId(),
67
+ connectorId: this.id,
68
+ capabilityId: "discord-servers",
69
+ timestamp: now,
70
+ hash: hashEvidence(guild),
71
+ framework: "SOC2",
72
+ controlId: "CC6.1",
73
+ source: `discord/${guildId}`,
74
+ status: guild.id ? "compliant" : "unknown",
75
+ data: {
76
+ name: guild.name,
77
+ verificationLevel: guild.verification_level,
78
+ mfaLevel: guild.mfa_level,
79
+ },
80
+ metadata: { guildId },
81
+ });
82
+ const roles = await this.fetchApi(config, `/guilds/${guildId}/roles`).catch(() => []);
83
+ artifacts.push({
84
+ id: generateEvidenceId(),
85
+ connectorId: this.id,
86
+ capabilityId: "discord-roles",
87
+ timestamp: now,
88
+ hash: hashEvidence(Array.isArray(roles) ? { count: roles.length } : roles),
89
+ framework: "ISO27001",
90
+ controlId: "A.6.2.1",
91
+ source: `discord/${guildId}/roles`,
92
+ status: Array.isArray(roles) && roles.length > 0 ? "compliant" : "non_compliant",
93
+ data: { roleCount: Array.isArray(roles) ? roles.length : 0 },
94
+ metadata: { guildId },
95
+ });
96
+ return artifacts;
97
+ }
98
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class DockerHubConnector implements IntegrationConnector {
3
+ readonly id = "docker-hub";
4
+ readonly name = "Docker Hub";
5
+ readonly category: "container";
6
+ readonly authType: "bearer_token";
7
+ readonly capabilities: IntegrationCapability[];
8
+ readonly frameworks: ComplianceFramework[];
9
+ private fetchApi;
10
+ testConnection(config: ConnectorConfig): Promise<boolean>;
11
+ collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
12
+ }
@@ -0,0 +1,80 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "docker-image-scans",
5
+ name: "Image Scans",
6
+ description: "Fetch Docker Hub image vulnerability scan results",
7
+ evidenceCategories: ["container_security", "vulnerability_management"],
8
+ },
9
+ {
10
+ id: "docker-vuln-reports",
11
+ name: "Vulnerability Reports",
12
+ description: "Fetch detailed vulnerability reports per image tag",
13
+ evidenceCategories: ["vulnerability_management", "supply_chain"],
14
+ },
15
+ ];
16
+ export class DockerHubConnector {
17
+ id = "docker-hub";
18
+ name = "Docker Hub";
19
+ category = "container";
20
+ authType = "bearer_token";
21
+ capabilities = capabilities;
22
+ frameworks = ["SOC2", "ISO27001", "NIST_CSF"];
23
+ async fetchApi(config, endpoint) {
24
+ const base = config.baseUrl || "https://hub.docker.com/v2";
25
+ const resp = await fetch(`${base}${endpoint}`, {
26
+ headers: { Authorization: `Bearer ${config.apiToken}` },
27
+ });
28
+ if (!resp.ok)
29
+ throw new Error(`Docker Hub API ${resp.status}: ${resp.statusText}`);
30
+ return (await resp.json());
31
+ }
32
+ async testConnection(config) {
33
+ try {
34
+ await this.fetchApi(config, "/user/");
35
+ return true;
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ async collectEvidence(config) {
42
+ const artifacts = [];
43
+ const now = new Date().toISOString();
44
+ const namespace = config.extra?.namespace || "library";
45
+ const repo = config.extra?.repo || "nginx";
46
+ const images = await this.fetchApi(config, `/repositories/${namespace}/${repo}/tags?page_size=50`).catch(() => ({ results: [] }));
47
+ const tagList = (images.results || []);
48
+ artifacts.push({
49
+ id: generateEvidenceId(),
50
+ connectorId: this.id,
51
+ capabilityId: "docker-image-scans",
52
+ timestamp: now,
53
+ hash: hashEvidence({ tagCount: tagList.length }),
54
+ framework: "SOC2",
55
+ controlId: "CC6.8",
56
+ source: `dockerhub/${namespace}/${repo}/tags`,
57
+ status: tagList.length > 0 ? "compliant" : "non_compliant",
58
+ data: { tagCount: tagList.length, tags: tagList.map((t) => t.name) },
59
+ metadata: { namespace, repo },
60
+ });
61
+ const vulnReport = tagList.length > 0
62
+ ? await this.fetchApi(config, `/repositories/${namespace}/${repo}/tags/${tagList[0].name}/vulnerabilities`).catch(() => ({ vulnerabilities: [] }))
63
+ : { vulnerabilities: [] };
64
+ const vulns = (vulnReport.vulnerabilities || []);
65
+ artifacts.push({
66
+ id: generateEvidenceId(),
67
+ connectorId: this.id,
68
+ capabilityId: "docker-vuln-reports",
69
+ timestamp: now,
70
+ hash: hashEvidence({ vulnCount: vulns.length }),
71
+ framework: "ISO27001",
72
+ controlId: "A.12.6.1",
73
+ source: `dockerhub/${namespace}/${repo}/vulnerabilities`,
74
+ status: vulns.length === 0 ? "compliant" : "non_compliant",
75
+ data: { totalVulnerabilities: vulns.length },
76
+ metadata: { namespace, repo },
77
+ });
78
+ return artifacts;
79
+ }
80
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class DocuSignConnector implements IntegrationConnector {
3
+ readonly id = "docusign";
4
+ readonly name = "DocuSign";
5
+ readonly category: "finance";
6
+ readonly authType: "api_key";
7
+ readonly capabilities: IntegrationCapability[];
8
+ readonly frameworks: ComplianceFramework[];
9
+ private fetchApi;
10
+ testConnection(config: ConnectorConfig): Promise<boolean>;
11
+ collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
12
+ }