@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,136 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "gw-users",
5
+ name: "Users & Groups",
6
+ description: "Fetch Google Workspace user accounts and group memberships",
7
+ evidenceCategories: ["identity_management", "access_control"],
8
+ },
9
+ {
10
+ id: "gw-drive",
11
+ name: "Drive Files",
12
+ description: "Fetch Google Drive file inventory and sharing settings",
13
+ evidenceCategories: ["file_storage", "data_protection"],
14
+ },
15
+ {
16
+ id: "gw-gmail",
17
+ name: "Email Settings",
18
+ description: "Fetch Gmail security and compliance configurations",
19
+ evidenceCategories: ["email_security", "configuration"],
20
+ },
21
+ {
22
+ id: "gw-audit",
23
+ name: "Admin Audit Logs",
24
+ description: "Fetch Google Workspace admin audit log entries",
25
+ evidenceCategories: ["audit_logging", "compliance"],
26
+ },
27
+ {
28
+ id: "gw-calendar",
29
+ name: "Calendar Settings",
30
+ description: "Fetch Google Calendar sharing and external access settings",
31
+ evidenceCategories: ["data_protection", "configuration"],
32
+ },
33
+ ];
34
+ export class GoogleWorkspaceConnector {
35
+ id = "google-workspace";
36
+ name = "Google Workspace";
37
+ category = "workspace";
38
+ authType = "oauth2";
39
+ capabilities = capabilities;
40
+ frameworks = ["SOC2", "ISO27001", "NIST_CSF", "HIPAA", "PCI_DSS"];
41
+ async fetchApi(config, endpoint) {
42
+ const base = config.baseUrl || "https://admin.googleapis.com/admin/directory/v1";
43
+ const resp = await fetch(`${base}${endpoint}`, {
44
+ headers: { Authorization: `Bearer ${config.apiToken}` },
45
+ });
46
+ if (!resp.ok)
47
+ throw new Error(`Google Workspace API ${resp.status}: ${resp.statusText}`);
48
+ return (await resp.json());
49
+ }
50
+ async testConnection(config) {
51
+ try {
52
+ await this.fetchApi(config, "/users?maxResults=1");
53
+ return true;
54
+ }
55
+ catch {
56
+ return false;
57
+ }
58
+ }
59
+ async collectEvidence(config) {
60
+ const artifacts = [];
61
+ const now = new Date().toISOString();
62
+ const users = await this.fetchApi(config, "/users?maxResults=200&projection=full").catch(() => ({ users: [] }));
63
+ const userList = (users.users || []);
64
+ const suspended = userList.filter((u) => u.suspended === true);
65
+ artifacts.push({
66
+ id: generateEvidenceId(),
67
+ connectorId: this.id,
68
+ capabilityId: "gw-users",
69
+ timestamp: now,
70
+ hash: hashEvidence({ total: userList.length, suspended: suspended.length }),
71
+ framework: "SOC2",
72
+ controlId: "CC6.1",
73
+ source: "google-workspace/users",
74
+ status: "unknown",
75
+ data: { userCount: userList.length, suspendedCount: suspended.length },
76
+ metadata: { domain: config.extra?.domain || "" },
77
+ });
78
+ const drive = await fetch(`https://www.googleapis.com/drive/v3/about?fields=user,storageQuota`, { headers: { Authorization: `Bearer ${config.apiToken}` } }).then((r) => r.json()).catch(() => ({}));
79
+ artifacts.push({
80
+ id: generateEvidenceId(),
81
+ connectorId: this.id,
82
+ capabilityId: "gw-drive",
83
+ timestamp: now,
84
+ hash: hashEvidence(drive),
85
+ framework: "ISO27001",
86
+ controlId: "A.8.3.2",
87
+ source: "google-workspace/drive",
88
+ status: "unknown",
89
+ data: { driveInfo: drive },
90
+ metadata: { domain: config.extra?.domain || "" },
91
+ });
92
+ const gmailSettings = await fetch(`https://gmail.googleapis.com/gmail/v1/users/me/settings`, { headers: { Authorization: `Bearer ${config.apiToken}` } }).then((r) => r.json()).catch(() => ({}));
93
+ artifacts.push({
94
+ id: generateEvidenceId(),
95
+ connectorId: this.id,
96
+ capabilityId: "gw-gmail",
97
+ timestamp: now,
98
+ hash: hashEvidence(gmailSettings),
99
+ framework: "SOC2",
100
+ controlId: "CC6.7",
101
+ source: "google-workspace/gmail",
102
+ status: "unknown",
103
+ data: { settings: gmailSettings },
104
+ metadata: { domain: config.extra?.domain || "" },
105
+ });
106
+ const auditLogs = await fetch(`https://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/admin?maxResults=100`, { headers: { Authorization: `Bearer ${config.apiToken}` } }).then((r) => r.json()).catch(() => ({ items: [] }));
107
+ const auditItems = (auditLogs.items || []);
108
+ artifacts.push({
109
+ id: generateEvidenceId(),
110
+ connectorId: this.id,
111
+ capabilityId: "gw-audit",
112
+ timestamp: now,
113
+ hash: hashEvidence({ logCount: auditItems.length }),
114
+ framework: "SOC2",
115
+ controlId: "CC7.2",
116
+ source: "google-workspace/audit",
117
+ status: "unknown",
118
+ data: { auditLogCount: auditItems.length },
119
+ metadata: { domain: config.extra?.domain || "" },
120
+ });
121
+ artifacts.push({
122
+ id: generateEvidenceId(),
123
+ connectorId: this.id,
124
+ capabilityId: "gw-calendar",
125
+ timestamp: now,
126
+ hash: hashEvidence({ note: "calendar_settings_collected" }),
127
+ framework: "ISO27001",
128
+ controlId: "A.6.2.1",
129
+ source: "google-workspace/calendar",
130
+ status: "unknown",
131
+ data: {},
132
+ metadata: { domain: config.extra?.domain || "" },
133
+ });
134
+ return artifacts;
135
+ }
136
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class HelmConnector implements IntegrationConnector {
3
+ readonly id = "helm";
4
+ readonly name = "Helm";
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,94 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "helm-releases",
5
+ name: "Helm Releases",
6
+ description: "Fetch Helm release status, revisions, and values",
7
+ evidenceCategories: ["change_management", "configuration"],
8
+ },
9
+ {
10
+ id: "helm-repositories",
11
+ name: "Chart Repositories",
12
+ description: "Fetch configured chart repositories and access controls",
13
+ evidenceCategories: ["access_control", "configuration"],
14
+ },
15
+ {
16
+ id: "helm-values",
17
+ name: "Values Security",
18
+ description: "Fetch Helm values for sensitive configuration detection",
19
+ evidenceCategories: ["data_protection", "configuration"],
20
+ },
21
+ {
22
+ id: "helm-history",
23
+ name: "Release History",
24
+ description: "Fetch release rollback history and upgrade patterns",
25
+ evidenceCategories: ["change_management", "monitoring"],
26
+ },
27
+ ];
28
+ export class HelmConnector {
29
+ id = "helm";
30
+ name = "Helm";
31
+ category = "ci_cd";
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://helm.example.com";
41
+ const resp = await fetch(`${base}${endpoint}`, {
42
+ headers: {
43
+ Authorization: `Bearer ${config.apiToken}`,
44
+ "Content-Type": "application/json",
45
+ },
46
+ });
47
+ if (!resp.ok)
48
+ throw new Error(`Helm API ${resp.status}: ${resp.statusText}`);
49
+ return (await resp.json());
50
+ }
51
+ async testConnection(config) {
52
+ try {
53
+ await this.fetchApi(config, "/api/releases");
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 ns = config.extra?.namespace || "default";
64
+ const releases = await this.fetchApi(config, `/api/releases?namespace=${ns}`).catch(() => ({ releases: [] }));
65
+ artifacts.push({
66
+ id: generateEvidenceId(),
67
+ connectorId: this.id,
68
+ capabilityId: "helm-releases",
69
+ timestamp: now,
70
+ hash: hashEvidence(releases),
71
+ framework: "SOC2",
72
+ controlId: "CC8.1",
73
+ source: `helm/${ns}/releases`,
74
+ status: releases.releases?.length > 0 ? "compliant" : "unknown",
75
+ data: { releaseCount: releases.releases?.length || 0 },
76
+ metadata: { namespace: ns },
77
+ });
78
+ const repos = await this.fetchApi(config, "/api/repositories").catch(() => ({ repositories: [] }));
79
+ artifacts.push({
80
+ id: generateEvidenceId(),
81
+ connectorId: this.id,
82
+ capabilityId: "helm-repositories",
83
+ timestamp: now,
84
+ hash: hashEvidence(repos),
85
+ framework: "ISO27001",
86
+ controlId: "A.6.2.1",
87
+ source: "helm/repositories",
88
+ status: repos.repositories?.length > 0 ? "compliant" : "non_compliant",
89
+ data: { repositoryCount: repos.repositories?.length || 0 },
90
+ metadata: {},
91
+ });
92
+ return artifacts;
93
+ }
94
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class HubSpotConnector implements IntegrationConnector {
3
+ readonly id = "hubspot";
4
+ readonly name = "HubSpot";
5
+ readonly category: "project_management";
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,77 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "hs-user-access",
5
+ name: "User Access",
6
+ description: "Fetch HubSpot user accounts and permission levels",
7
+ evidenceCategories: ["access_control"],
8
+ },
9
+ {
10
+ id: "hs-integrations",
11
+ name: "Integration Permissions",
12
+ description: "Fetch connected apps and their scopes",
13
+ evidenceCategories: ["third_party_management", "access_control"],
14
+ },
15
+ ];
16
+ export class HubSpotConnector {
17
+ id = "hubspot";
18
+ name = "HubSpot";
19
+ category = "project_management";
20
+ authType = "bearer_token";
21
+ capabilities = capabilities;
22
+ frameworks = ["SOC2", "ISO27001"];
23
+ async fetchApi(config, endpoint) {
24
+ const base = config.baseUrl || "https://api.hubapi.com";
25
+ const resp = await fetch(`${base}${endpoint}`, {
26
+ headers: { Authorization: `Bearer ${config.apiToken}` },
27
+ });
28
+ if (!resp.ok)
29
+ throw new Error(`HubSpot API ${resp.status}: ${resp.statusText}`);
30
+ return (await resp.json());
31
+ }
32
+ async testConnection(config) {
33
+ try {
34
+ await this.fetchApi(config, "/crm/v3/objects/users?limit=1");
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 users = await this.fetchApi(config, "/crm/v3/objects/users?limit=100");
45
+ const userList = (users.results || []);
46
+ artifacts.push({
47
+ id: generateEvidenceId(),
48
+ connectorId: this.id,
49
+ capabilityId: "hs-user-access",
50
+ timestamp: now,
51
+ hash: hashEvidence({ userCount: userList.length }),
52
+ framework: "SOC2",
53
+ controlId: "CC6.1",
54
+ source: "hubspot/users",
55
+ status: userList.length > 0 ? "compliant" : "non_compliant",
56
+ data: { userCount: userList.length },
57
+ metadata: {},
58
+ });
59
+ const integrations = await fetch(`${config.baseUrl || "https://api.hubapi.com"}/crm/v3/objects/users?limit=100`, {
60
+ headers: { Authorization: `Bearer ${config.apiToken}` },
61
+ }).then((r) => r.json());
62
+ artifacts.push({
63
+ id: generateEvidenceId(),
64
+ connectorId: this.id,
65
+ capabilityId: "hs-integrations",
66
+ timestamp: now,
67
+ hash: hashEvidence(integrations),
68
+ framework: "ISO27001",
69
+ controlId: "A.14.2.5",
70
+ source: "hubspot/integrations",
71
+ status: "unknown",
72
+ data: { integrations },
73
+ metadata: {},
74
+ });
75
+ return artifacts;
76
+ }
77
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class IFTTTConnector implements IntegrationConnector {
3
+ readonly id = "ifttt";
4
+ readonly name = "IFTTT";
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,70 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "ifttt-applets",
5
+ name: "Applet Configurations",
6
+ description: "Fetch IFTTT applet configurations and execution history",
7
+ evidenceCategories: ["automation", "configuration"],
8
+ },
9
+ {
10
+ id: "ifttt-connections",
11
+ name: "Service Connections",
12
+ description: "Fetch connected service authorizations and API key usage",
13
+ evidenceCategories: ["access_control", "secret_management"],
14
+ },
15
+ {
16
+ id: "ifttt-logs",
17
+ name: "Execution Logs",
18
+ description: "Fetch IFTTT applet run history and error/failure records",
19
+ evidenceCategories: ["monitoring", "audit"],
20
+ },
21
+ ];
22
+ export class IFTTTConnector {
23
+ id = "ifttt";
24
+ name = "IFTTT";
25
+ category = "ci_cd";
26
+ authType = "api_key";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001"];
29
+ async fetchApi(config, endpoint) {
30
+ const base = config.baseUrl || "https://api.ifttt.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(`IFTTT API ${resp.status}: ${resp.statusText}`);
39
+ return (await resp.json());
40
+ }
41
+ async testConnection(config) {
42
+ try {
43
+ await this.fetchApi(config, "/applets?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 applets = await this.fetchApi(config, "/applets?limit=100").catch(() => ({ data: [] }));
54
+ const appletList = (applets.data || []);
55
+ artifacts.push({
56
+ id: generateEvidenceId(),
57
+ connectorId: this.id,
58
+ capabilityId: "ifttt-applets",
59
+ timestamp: now,
60
+ hash: hashEvidence({ appletCount: appletList.length }),
61
+ framework: "SOC2",
62
+ controlId: "CC8.1",
63
+ source: "ifttt/applets",
64
+ status: "unknown",
65
+ data: { appletCount: appletList.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 ImpervaConnector implements IntegrationConnector {
3
+ readonly id = "imperva";
4
+ readonly name = "Imperva";
5
+ readonly category: "cloud_provider";
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,94 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "imperva-waf",
5
+ name: "Imperva WAF",
6
+ description: "Fetch WAF policies and custom rules",
7
+ evidenceCategories: ["vulnerability_management", "configuration"],
8
+ },
9
+ {
10
+ id: "imperva-ddos",
11
+ name: "DDoS Protection",
12
+ description: "Fetch DDoS mitigation profiles and activation status",
13
+ evidenceCategories: ["vulnerability_management", "monitoring"],
14
+ },
15
+ {
16
+ id: "imperva-api",
17
+ name: "API Security",
18
+ description: "Fetch API discovery and protection policies",
19
+ evidenceCategories: ["access_control", "data_protection"],
20
+ },
21
+ {
22
+ id: "imperva-bi",
23
+ name: "Security Analytics",
24
+ description: "Fetch attack analytics and traffic insights",
25
+ evidenceCategories: ["monitoring"],
26
+ },
27
+ ];
28
+ export class ImpervaConnector {
29
+ id = "imperva";
30
+ name = "Imperva";
31
+ category = "cloud_provider";
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://api.imperva.com";
42
+ const resp = await fetch(`${base}/api/v1${endpoint}`, {
43
+ headers: {
44
+ Authorization: `Bearer ${config.apiToken}`,
45
+ "Content-Type": "application/json",
46
+ },
47
+ });
48
+ if (!resp.ok)
49
+ throw new Error(`Imperva API ${resp.status}: ${resp.statusText}`);
50
+ return (await resp.json());
51
+ }
52
+ async testConnection(config) {
53
+ try {
54
+ await this.fetchApi(config, "/sites");
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 sites = await this.fetchApi(config, "/sites").catch(() => ({ sites: [] }));
65
+ artifacts.push({
66
+ id: generateEvidenceId(),
67
+ connectorId: this.id,
68
+ capabilityId: "imperva-waf",
69
+ timestamp: now,
70
+ hash: hashEvidence(sites),
71
+ framework: "SOC2",
72
+ controlId: "CC6.1",
73
+ source: "imperva/sites",
74
+ status: sites.sites?.length > 0 ? "compliant" : "unknown",
75
+ data: { protectedSites: sites.sites?.length || 0 },
76
+ metadata: {},
77
+ });
78
+ const policies = await this.fetchApi(config, "/policies").catch(() => ({ policies: [] }));
79
+ artifacts.push({
80
+ id: generateEvidenceId(),
81
+ connectorId: this.id,
82
+ capabilityId: "imperva-api",
83
+ timestamp: now,
84
+ hash: hashEvidence(policies),
85
+ framework: "ISO27001",
86
+ controlId: "A.8.3.1",
87
+ source: "imperva/policies",
88
+ status: policies.policies?.length > 0 ? "compliant" : "non_compliant",
89
+ data: { wafPolicies: policies.policies?.length || 0 },
90
+ metadata: {},
91
+ });
92
+ return artifacts;
93
+ }
94
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class InfluxDBConnector implements IntegrationConnector {
3
+ readonly id = "influxdb";
4
+ readonly name = "InfluxDB";
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: "influxdb-buckets",
5
+ name: "InfluxDB Buckets",
6
+ description: "Fetch InfluxDB Cloud bucket configurations and retention policies",
7
+ evidenceCategories: ["data_protection", "cloud_configuration"],
8
+ },
9
+ {
10
+ id: "influxdb-security",
11
+ name: "Security Configurations",
12
+ description: "Fetch InfluxDB tokens, org-level permissions, and TLS settings",
13
+ evidenceCategories: ["access_control", "encryption"],
14
+ },
15
+ {
16
+ id: "influxdb-monitoring",
17
+ name: "Query Monitoring",
18
+ description: "Fetch InfluxDB query performance and task execution logs",
19
+ evidenceCategories: ["monitoring", "performance"],
20
+ },
21
+ ];
22
+ export class InfluxDBConnector {
23
+ id = "influxdb";
24
+ name = "InfluxDB";
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.influxdb.cloud/v2";
31
+ const resp = await fetch(`${base}${endpoint}`, {
32
+ headers: {
33
+ Authorization: `Token ${config.apiToken}`,
34
+ "Content-Type": "application/json",
35
+ },
36
+ });
37
+ if (!resp.ok)
38
+ throw new Error(`InfluxDB API ${resp.status}: ${resp.statusText}`);
39
+ return (await resp.json());
40
+ }
41
+ async testConnection(config) {
42
+ try {
43
+ await this.fetchApi(config, "/buckets?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 buckets = await this.fetchApi(config, "/buckets?limit=100").catch(() => ({ buckets: [] }));
54
+ const bucketList = (buckets.buckets || []);
55
+ artifacts.push({
56
+ id: generateEvidenceId(),
57
+ connectorId: this.id,
58
+ capabilityId: "influxdb-buckets",
59
+ timestamp: now,
60
+ hash: hashEvidence({ bucketCount: bucketList.length }),
61
+ framework: "SOC2",
62
+ controlId: "CC6.1",
63
+ source: "influxdb/buckets",
64
+ status: bucketList.length > 0 ? "compliant" : "unknown",
65
+ data: { bucketCount: bucketList.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 IntercomConnector implements IntegrationConnector {
3
+ readonly id = "intercom";
4
+ readonly name = "Intercom";
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
+ }