@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,69 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "intercom-conversations",
5
+ name: "Conversations",
6
+ description: "Fetch Intercom conversation history, resolution rates, and SLA compliance",
7
+ evidenceCategories: ["incident_management", "monitoring"],
8
+ },
9
+ {
10
+ id: "intercom-security",
11
+ name: "Security Settings",
12
+ description: "Fetch Intercom SSO, data retention, and API access controls",
13
+ evidenceCategories: ["access_control", "data_protection"],
14
+ },
15
+ {
16
+ id: "intercom-audit",
17
+ name: "Audit Logs",
18
+ description: "Fetch Intercom admin audit log and workspace activity events",
19
+ evidenceCategories: ["audit", "change_management"],
20
+ },
21
+ ];
22
+ export class IntercomConnector {
23
+ id = "intercom";
24
+ name = "Intercom";
25
+ category = "communication";
26
+ authType = "api_key";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001"];
29
+ async fetchApi(config, endpoint) {
30
+ const base = config.baseUrl || "https://api.intercom.io";
31
+ const resp = await fetch(`${base}${endpoint}`, {
32
+ headers: {
33
+ Authorization: `Bearer ${config.apiToken}`,
34
+ Accept: "application/json",
35
+ },
36
+ });
37
+ if (!resp.ok)
38
+ throw new Error(`Intercom API ${resp.status}: ${resp.statusText}`);
39
+ return (await resp.json());
40
+ }
41
+ async testConnection(config) {
42
+ try {
43
+ await this.fetchApi(config, "/me");
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 me = await this.fetchApi(config, "/me").catch(() => ({}));
54
+ artifacts.push({
55
+ id: generateEvidenceId(),
56
+ connectorId: this.id,
57
+ capabilityId: "intercom-conversations",
58
+ timestamp: now,
59
+ hash: hashEvidence(me),
60
+ framework: "SOC2",
61
+ controlId: "CC7.3",
62
+ source: "intercom/me",
63
+ status: "unknown",
64
+ data: { connected: true },
65
+ metadata: {},
66
+ });
67
+ return artifacts;
68
+ }
69
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class JenkinsConnector implements IntegrationConnector {
3
+ readonly id = "jenkins";
4
+ readonly name = "Jenkins";
5
+ readonly category: "ci_cd";
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,96 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "jenkins-jobs",
5
+ name: "Build Jobs",
6
+ description: "Fetch Jenkins job configurations and build history",
7
+ evidenceCategories: ["change_management", "configuration"],
8
+ },
9
+ {
10
+ id: "jenkins-plugins",
11
+ name: "Plugins & Security",
12
+ description: "Fetch installed plugins and security configurations",
13
+ evidenceCategories: ["vulnerability_management", "configuration"],
14
+ },
15
+ {
16
+ id: "jenkins-credentials",
17
+ name: "Credential Management",
18
+ description: "Fetch credential store configurations and usage",
19
+ evidenceCategories: ["access_control", "data_protection"],
20
+ },
21
+ {
22
+ id: "jenkins-audit",
23
+ name: "Audit Trail",
24
+ description: "Fetch Jenkins audit log and user activity",
25
+ evidenceCategories: ["monitoring", "access_control"],
26
+ },
27
+ ];
28
+ export class JenkinsConnector {
29
+ id = "jenkins";
30
+ name = "Jenkins";
31
+ category = "ci_cd";
32
+ authType = "api_key";
33
+ capabilities = capabilities;
34
+ frameworks = [
35
+ "SOC2",
36
+ "ISO27001",
37
+ "NIST_CSF",
38
+ "PCI_DSS",
39
+ ];
40
+ async fetchApi(config, endpoint) {
41
+ const base = config.baseUrl || "https://jenkins.example.com";
42
+ const resp = await fetch(`${base}${endpoint}`, {
43
+ headers: {
44
+ Authorization: `Bearer ${config.apiToken}`,
45
+ "Content-Type": "application/json",
46
+ },
47
+ });
48
+ if (!resp.ok)
49
+ throw new Error(`Jenkins API ${resp.status}: ${resp.statusText}`);
50
+ return (await resp.json());
51
+ }
52
+ async testConnection(config) {
53
+ try {
54
+ await this.fetchApi(config, "/api/json");
55
+ return true;
56
+ }
57
+ catch {
58
+ return false;
59
+ }
60
+ }
61
+ async collectEvidence(config) {
62
+ const artifacts = [];
63
+ const now = new Date().toISOString();
64
+ const jobs = await this.fetchApi(config, "/api/json?tree=jobs[name,url,color]").catch(() => ({
65
+ jobs: [],
66
+ }));
67
+ artifacts.push({
68
+ id: generateEvidenceId(),
69
+ connectorId: this.id,
70
+ capabilityId: "jenkins-jobs",
71
+ timestamp: now,
72
+ hash: hashEvidence(jobs),
73
+ framework: "SOC2",
74
+ controlId: "CC8.1",
75
+ source: "jenkins/jobs",
76
+ status: jobs.jobs?.length > 0 ? "compliant" : "unknown",
77
+ data: { jobCount: jobs.jobs?.length || 0 },
78
+ metadata: {},
79
+ });
80
+ const plugins = await this.fetchApi(config, "/pluginManager/api/json?tree=shortName,version").catch(() => ({ plugins: [] }));
81
+ artifacts.push({
82
+ id: generateEvidenceId(),
83
+ connectorId: this.id,
84
+ capabilityId: "jenkins-plugins",
85
+ timestamp: now,
86
+ hash: hashEvidence(plugins),
87
+ framework: "ISO27001",
88
+ controlId: "A.12.6.1",
89
+ source: "jenkins/plugins",
90
+ status: "partial",
91
+ data: { installedPlugins: plugins.plugins?.length || 0 },
92
+ metadata: {},
93
+ });
94
+ return artifacts;
95
+ }
96
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class JiraConnector implements IntegrationConnector {
3
+ readonly id = "jira";
4
+ readonly name = "Jira";
5
+ readonly category: "project_management";
6
+ readonly authType: "basic_auth";
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,103 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "jira-projects",
5
+ name: "Jira Projects",
6
+ description: "Fetch Jira project configurations and permissions",
7
+ evidenceCategories: ["project_management", "access_control"],
8
+ },
9
+ {
10
+ id: "jira-workflows",
11
+ name: "Workflows",
12
+ description: "Fetch workflow configurations and approval gates",
13
+ evidenceCategories: ["change_management"],
14
+ },
15
+ {
16
+ id: "jira-sla",
17
+ name: "SLA Compliance",
18
+ description: "Fetch SLA compliance metrics and breach history",
19
+ evidenceCategories: ["service_management"],
20
+ },
21
+ ];
22
+ export class JiraConnector {
23
+ id = "jira";
24
+ name = "Jira";
25
+ category = "project_management";
26
+ authType = "basic_auth";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001"];
29
+ async fetchApi(config, endpoint) {
30
+ const base = config.baseUrl || "https://your-domain.atlassian.net";
31
+ const resp = await fetch(`${base}/rest/api/3${endpoint}`, {
32
+ headers: {
33
+ Authorization: `Basic ${Buffer.from(`${config.clientId}:${config.apiToken}`).toString("base64")}`,
34
+ Accept: "application/json",
35
+ },
36
+ });
37
+ if (!resp.ok)
38
+ throw new Error(`Jira API ${resp.status}: ${resp.statusText}`);
39
+ return (await resp.json());
40
+ }
41
+ async testConnection(config) {
42
+ try {
43
+ await this.fetchApi(config, "/myself");
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 projects = await this.fetchApi(config, "/project");
54
+ const projectList = Array.isArray(projects) ? projects : [];
55
+ artifacts.push({
56
+ id: generateEvidenceId(),
57
+ connectorId: this.id,
58
+ capabilityId: "jira-projects",
59
+ timestamp: now,
60
+ hash: hashEvidence({ projects: projectList.map((p) => ({ id: p.id, key: p.key })) }),
61
+ framework: "SOC2",
62
+ controlId: "CC8.1",
63
+ source: "jira/projects",
64
+ status: "unknown",
65
+ data: { projectCount: projectList.length },
66
+ metadata: { domain: config.baseUrl || "" },
67
+ });
68
+ const workflows = await fetch(`${config.baseUrl || "https://your-domain.atlassian.net"}/rest/api/3/workflow`, {
69
+ headers: {
70
+ Authorization: `Basic ${Buffer.from(`${config.clientId}:${config.apiToken}`).toString("base64")}`,
71
+ Accept: "application/json",
72
+ },
73
+ }).then((r) => r.json());
74
+ artifacts.push({
75
+ id: generateEvidenceId(),
76
+ connectorId: this.id,
77
+ capabilityId: "jira-workflows",
78
+ timestamp: now,
79
+ hash: hashEvidence(workflows),
80
+ framework: "SOC2",
81
+ controlId: "CC8.1",
82
+ source: "jira/workflows",
83
+ status: "unknown",
84
+ data: { workflows },
85
+ metadata: { domain: config.baseUrl || "" },
86
+ });
87
+ const issues = await this.fetchApi(config, "/search?jql=issuetype=Story&maxResults=0&expand=names").catch(() => ({ total: 0 }));
88
+ artifacts.push({
89
+ id: generateEvidenceId(),
90
+ connectorId: this.id,
91
+ capabilityId: "jira-sla",
92
+ timestamp: now,
93
+ hash: hashEvidence(issues),
94
+ framework: "ISO27001",
95
+ controlId: "A.12.1.4",
96
+ source: "jira/search",
97
+ status: "unknown",
98
+ data: { totalIssues: issues.total || 0 },
99
+ metadata: { domain: config.baseUrl || "" },
100
+ });
101
+ return artifacts;
102
+ }
103
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class KafkaConnector implements IntegrationConnector {
3
+ readonly id = "kafka";
4
+ readonly name = "Apache Kafka";
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,70 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "kafka-clusters",
5
+ name: "Kafka Clusters",
6
+ description: "Fetch Kafka cluster configurations and topic inventory",
7
+ evidenceCategories: ["data_protection", "cloud_configuration"],
8
+ },
9
+ {
10
+ id: "kafka-security",
11
+ name: "Security Configurations",
12
+ description: "Fetch Kafka SASL/SSL settings and ACL configurations",
13
+ evidenceCategories: ["access_control", "encryption"],
14
+ },
15
+ {
16
+ id: "kafka-consumers",
17
+ name: "Consumer Groups",
18
+ description: "Fetch consumer group lag metrics and partition assignments",
19
+ evidenceCategories: ["monitoring", "performance"],
20
+ },
21
+ ];
22
+ export class KafkaConnector {
23
+ id = "kafka";
24
+ name = "Apache Kafka";
25
+ category = "data_warehouse";
26
+ authType = "api_key";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001", "NIST_CSF"];
29
+ async fetchApi(config, endpoint) {
30
+ const base = config.baseUrl || "https://api.kafka.example.com/v1";
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(`Kafka API ${resp.status}: ${resp.statusText}`);
39
+ return (await resp.json());
40
+ }
41
+ async testConnection(config) {
42
+ try {
43
+ await this.fetchApi(config, "/clusters?limit=1");
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 clusters = await this.fetchApi(config, "/clusters?limit=100").catch(() => ({ items: [] }));
54
+ const clusterList = (clusters.items || []);
55
+ artifacts.push({
56
+ id: generateEvidenceId(),
57
+ connectorId: this.id,
58
+ capabilityId: "kafka-clusters",
59
+ timestamp: now,
60
+ hash: hashEvidence({ clusterCount: clusterList.length }),
61
+ framework: "SOC2",
62
+ controlId: "CC6.1",
63
+ source: "kafka/clusters",
64
+ status: clusterList.length > 0 ? "compliant" : "unknown",
65
+ data: { clusterCount: clusterList.length },
66
+ metadata: {},
67
+ });
68
+ return artifacts;
69
+ }
70
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class KasperskyConnector implements IntegrationConnector {
3
+ readonly id = "kaspersky";
4
+ readonly name = "Kaspersky";
5
+ readonly category: "endpoint";
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,70 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "kaspersky-endpoints",
5
+ name: "Endpoint Protection",
6
+ description: "Fetch Kaspersky endpoint agent status and security level metrics",
7
+ evidenceCategories: ["endpoint_security", "monitoring"],
8
+ },
9
+ {
10
+ id: "kaspersky-detections",
11
+ name: "Threat Detections",
12
+ description: "Fetch threat detection events and malware neutralization records",
13
+ evidenceCategories: ["vulnerability_management", "monitoring"],
14
+ },
15
+ {
16
+ id: "kaspersky-policies",
17
+ name: "Security Policies",
18
+ description: "Fetch Kaspersky policy configurations and task schedules",
19
+ evidenceCategories: ["policy_compliance", "configuration"],
20
+ },
21
+ ];
22
+ export class KasperskyConnector {
23
+ id = "kaspersky";
24
+ name = "Kaspersky";
25
+ category = "endpoint";
26
+ authType = "api_key";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001", "NIST_CSF"];
29
+ async fetchApi(config, endpoint) {
30
+ const base = config.baseUrl || "https://cloud.securitycenter.kaspersky.com/api/v1";
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(`Kaspersky API ${resp.status}: ${resp.statusText}`);
39
+ return (await resp.json());
40
+ }
41
+ async testConnection(config) {
42
+ try {
43
+ await this.fetchApi(config, "/hosts?limit=1");
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 hosts = await this.fetchApi(config, "/hosts?limit=100").catch(() => ({ items: [] }));
54
+ const hostList = (hosts.items || []);
55
+ artifacts.push({
56
+ id: generateEvidenceId(),
57
+ connectorId: this.id,
58
+ capabilityId: "kaspersky-endpoints",
59
+ timestamp: now,
60
+ hash: hashEvidence({ hostCount: hostList.length }),
61
+ framework: "SOC2",
62
+ controlId: "CC6.8",
63
+ source: "kaspersky/hosts",
64
+ status: hostList.length > 0 ? "compliant" : "unknown",
65
+ data: { endpointCount: hostList.length },
66
+ metadata: {},
67
+ });
68
+ return artifacts;
69
+ }
70
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class KubernetesConnector implements IntegrationConnector {
3
+ readonly id = "kubernetes";
4
+ readonly name = "Kubernetes";
5
+ readonly category: "infrastructure";
6
+ readonly authType: "bearer_token";
7
+ readonly capabilities: IntegrationCapability[];
8
+ readonly frameworks: ComplianceFramework[];
9
+ private fetchK8s;
10
+ testConnection(config: ConnectorConfig): Promise<boolean>;
11
+ collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
12
+ }
@@ -0,0 +1,109 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "k8s-rbac",
5
+ name: "RBAC Policies",
6
+ description: "Fetch Kubernetes ClusterRole, ClusterRoleBinding, and Role data",
7
+ evidenceCategories: ["access_control", "authorization"],
8
+ },
9
+ {
10
+ id: "k8s-network-policies",
11
+ name: "Network Policies",
12
+ description: "Fetch Kubernetes NetworkPolicy resources",
13
+ evidenceCategories: ["network_security"],
14
+ },
15
+ {
16
+ id: "k8s-pod-security",
17
+ name: "Pod Security",
18
+ description: "Fetch Pod Security Standards and PSP/PSA configurations",
19
+ evidenceCategories: ["container_security", "configuration"],
20
+ },
21
+ ];
22
+ export class KubernetesConnector {
23
+ id = "kubernetes";
24
+ name = "Kubernetes";
25
+ category = "infrastructure";
26
+ authType = "bearer_token";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001", "NIST_CSF"];
29
+ async fetchK8s(config, apiPath) {
30
+ const base = config.baseUrl || "https://kubernetes.default.svc";
31
+ const resp = await fetch(`${base}${apiPath}`, {
32
+ headers: { Authorization: `Bearer ${config.apiToken}` },
33
+ });
34
+ if (!resp.ok)
35
+ throw new Error(`K8s API ${resp.status}: ${resp.statusText}`);
36
+ return (await resp.json());
37
+ }
38
+ async testConnection(config) {
39
+ try {
40
+ await this.fetchK8s(config, "/version");
41
+ return true;
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ async collectEvidence(config) {
48
+ const artifacts = [];
49
+ const now = new Date().toISOString();
50
+ const rbac = await this.fetchK8s(config, "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings").catch(() => ({
51
+ items: [],
52
+ }));
53
+ const roleBindings = (rbac.items || []);
54
+ const clusterAdminBindings = roleBindings.filter((r) => r.roleRef?.name === "cluster-admin");
55
+ artifacts.push({
56
+ id: generateEvidenceId(),
57
+ connectorId: this.id,
58
+ capabilityId: "k8s-rbac",
59
+ timestamp: now,
60
+ hash: hashEvidence({ totalBindings: roleBindings.length, clusterAdminBindings: clusterAdminBindings.length }),
61
+ framework: "SOC2",
62
+ controlId: "CC6.1",
63
+ source: "k8s/rbac/clusterrolebindings",
64
+ status: clusterAdminBindings.length <= 2 ? "compliant" : "partial",
65
+ data: { totalBindings: roleBindings.length, clusterAdminBindings: clusterAdminBindings.length },
66
+ metadata: {},
67
+ });
68
+ const netPol = await this.fetchK8s(config, "/apis/networking.k8s.io/v1/networkpolicies").catch(() => ({
69
+ items: [],
70
+ }));
71
+ const netPolicies = (netPol.items || []);
72
+ artifacts.push({
73
+ id: generateEvidenceId(),
74
+ connectorId: this.id,
75
+ capabilityId: "k8s-network-policies",
76
+ timestamp: now,
77
+ hash: hashEvidence({ policyCount: netPolicies.length }),
78
+ framework: "ISO27001",
79
+ controlId: "A.13.1.1",
80
+ source: "k8s/networking/networkpolicies",
81
+ status: netPolicies.length > 0 ? "compliant" : "non_compliant",
82
+ data: { networkPolicyCount: netPolicies.length },
83
+ metadata: {},
84
+ });
85
+ const pods = await this.fetchK8s(config, "/api/v1/pods").catch(() => ({ items: [] }));
86
+ const podList = (pods.items || []);
87
+ const privilegedPods = podList.filter((p) => {
88
+ const containers = [
89
+ ...(p.spec?.containers || []),
90
+ ...(p.spec?.initContainers || []),
91
+ ];
92
+ return containers.some((c) => c.securityContext?.privileged === true);
93
+ });
94
+ artifacts.push({
95
+ id: generateEvidenceId(),
96
+ connectorId: this.id,
97
+ capabilityId: "k8s-pod-security",
98
+ timestamp: now,
99
+ hash: hashEvidence({ totalPods: podList.length, privilegedPods: privilegedPods.length }),
100
+ framework: "SOC2",
101
+ controlId: "CC6.8",
102
+ source: "k8s/pods",
103
+ status: privilegedPods.length === 0 ? "compliant" : "non_compliant",
104
+ data: { totalPods: podList.length, privilegedPods: privilegedPods.length },
105
+ metadata: {},
106
+ });
107
+ return artifacts;
108
+ }
109
+ }
@@ -0,0 +1,13 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class LaceworkConnector implements IntegrationConnector {
3
+ readonly id = "lacework";
4
+ readonly name = "Lacework";
5
+ readonly category: "monitoring";
6
+ readonly authType: "api_key";
7
+ readonly capabilities: IntegrationCapability[];
8
+ readonly frameworks: ComplianceFramework[];
9
+ private generateSignature;
10
+ private fetchApi;
11
+ testConnection(config: ConnectorConfig): Promise<boolean>;
12
+ collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
13
+ }