@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,94 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "flux-reconcile",
5
+ name: "Reconciliation Status",
6
+ description: "Fetch FluxCD source and kustomization reconciliation status",
7
+ evidenceCategories: ["change_management", "monitoring"],
8
+ },
9
+ {
10
+ id: "flux-repositories",
11
+ name: "Git Repositories",
12
+ description: "Fetch GitRepository source configurations and drift detection",
13
+ evidenceCategories: ["access_control", "change_management"],
14
+ },
15
+ {
16
+ id: "flux-policies",
17
+ name: "Image Policies",
18
+ description: "Fetch image update automation and policies",
19
+ evidenceCategories: ["change_management", "data_protection"],
20
+ },
21
+ {
22
+ id: "flux-alerts",
23
+ name: "Alert Provider",
24
+ description: "Fetch alert configurations and notification status",
25
+ evidenceCategories: ["monitoring"],
26
+ },
27
+ ];
28
+ export class FluxCDConnector {
29
+ id = "fluxcd";
30
+ name = "FluxCD";
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://flux.example.com";
41
+ const resp = await fetch(`${base}/apis${endpoint}`, {
42
+ headers: {
43
+ Authorization: `Bearer ${config.apiToken}`,
44
+ "Content-Type": "application/json",
45
+ },
46
+ });
47
+ if (!resp.ok)
48
+ throw new Error(`FluxCD API ${resp.status}: ${resp.statusText}`);
49
+ return (await resp.json());
50
+ }
51
+ async testConnection(config) {
52
+ try {
53
+ await this.fetchApi(config, "/kustomize.toolkit.fluxcd.io/v1/namespaces");
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 || "flux-system";
64
+ const kustomizations = await this.fetchApi(config, `/kustomize.toolkit.fluxcd.io/v1/namespaces/${ns}/kustomizations`).catch(() => ({ items: [] }));
65
+ artifacts.push({
66
+ id: generateEvidenceId(),
67
+ connectorId: this.id,
68
+ capabilityId: "flux-reconcile",
69
+ timestamp: now,
70
+ hash: hashEvidence(kustomizations),
71
+ framework: "SOC2",
72
+ controlId: "CC8.1",
73
+ source: `fluxcd/${ns}/kustomizations`,
74
+ status: kustomizations.items?.length > 0 ? "compliant" : "unknown",
75
+ data: { kustomizationCount: kustomizations.items?.length || 0 },
76
+ metadata: { namespace: ns },
77
+ });
78
+ const gitrepos = await this.fetchApi(config, `/source.toolkit.fluxcd.io/v1/namespaces/${ns}/gitrepositories`).catch(() => ({ items: [] }));
79
+ artifacts.push({
80
+ id: generateEvidenceId(),
81
+ connectorId: this.id,
82
+ capabilityId: "flux-repositories",
83
+ timestamp: now,
84
+ hash: hashEvidence(gitrepos),
85
+ framework: "ISO27001",
86
+ controlId: "A.6.2.1",
87
+ source: `fluxcd/${ns}/gitrepositories`,
88
+ status: gitrepos.items?.length > 0 ? "compliant" : "non_compliant",
89
+ data: { gitRepositoryCount: gitrepos.items?.length || 0 },
90
+ metadata: { namespace: ns },
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 ForgeRockConnector implements IntegrationConnector {
3
+ readonly id = "forgerock";
4
+ readonly name = "ForgeRock";
5
+ readonly category: "identity";
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: "forgerock-realms",
5
+ name: "Realm Configuration",
6
+ description: "Fetch authentication realms and chain configurations",
7
+ evidenceCategories: ["access_control", "configuration"],
8
+ },
9
+ {
10
+ id: "forgerock-policies",
11
+ name: "Authorization Policies",
12
+ description: "Fetch policy decisions and access rules",
13
+ evidenceCategories: ["access_control", "configuration"],
14
+ },
15
+ {
16
+ id: "forgerock-tokens",
17
+ name: "Session Tokens",
18
+ description: "Fetch token issuance and session management",
19
+ evidenceCategories: ["access_control", "monitoring"],
20
+ },
21
+ {
22
+ id: "forgerock-audit",
23
+ name: "Access Audit",
24
+ description: "Fetch authentication and authorization audit logs",
25
+ evidenceCategories: ["monitoring", "access_control"],
26
+ },
27
+ ];
28
+ export class ForgeRockConnector {
29
+ id = "forgerock";
30
+ name = "ForgeRock";
31
+ category = "identity";
32
+ authType = "api_key";
33
+ capabilities = capabilities;
34
+ frameworks = [
35
+ "SOC2",
36
+ "ISO27001",
37
+ "NIST_CSF",
38
+ "HIPAA",
39
+ ];
40
+ async fetchApi(config, endpoint) {
41
+ const base = config.baseUrl || "https://forgerock.example.com";
42
+ const resp = await fetch(`${base}/openam/json${endpoint}`, {
43
+ headers: {
44
+ Authorization: `Bearer ${config.apiToken}`,
45
+ "Content-Type": "application/json",
46
+ "Accept-API-Version": "resource=2.1",
47
+ },
48
+ });
49
+ if (!resp.ok)
50
+ throw new Error(`ForgeRock API ${resp.status}: ${resp.statusText}`);
51
+ return (await resp.json());
52
+ }
53
+ async testConnection(config) {
54
+ try {
55
+ await this.fetchApi(config, "/realms");
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 realms = await this.fetchApi(config, "/realms").catch(() => ({ realmNames: [] }));
66
+ artifacts.push({
67
+ id: generateEvidenceId(),
68
+ connectorId: this.id,
69
+ capabilityId: "forgerock-realms",
70
+ timestamp: now,
71
+ hash: hashEvidence(realms),
72
+ framework: "SOC2",
73
+ controlId: "CC6.1",
74
+ source: "forgerock/realms",
75
+ status: realms.realmNames?.length > 0 ? "compliant" : "unknown",
76
+ data: { realmCount: realms.realmNames?.length || 0 },
77
+ metadata: {},
78
+ });
79
+ const policies = await this.fetchApi(config, "/policies").catch(() => ({ result: [] }));
80
+ artifacts.push({
81
+ id: generateEvidenceId(),
82
+ connectorId: this.id,
83
+ capabilityId: "forgerock-policies",
84
+ timestamp: now,
85
+ hash: hashEvidence(policies),
86
+ framework: "ISO27001",
87
+ controlId: "A.6.2.1",
88
+ source: "forgerock/policies",
89
+ status: policies.result?.length > 0 ? "compliant" : "non_compliant",
90
+ data: { policyCount: policies.result?.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 FortinetConnector implements IntegrationConnector {
3
+ readonly id = "fortinet";
4
+ readonly name = "Fortinet FortiGate";
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,98 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "fortinet-firewall",
5
+ name: "FortiGate Firewall",
6
+ description: "Fetch FortiGate firewall policies and interfaces",
7
+ evidenceCategories: ["access_control", "configuration"],
8
+ },
9
+ {
10
+ id: "fortinet-ips",
11
+ name: "IPS Signatures",
12
+ description: "Fetch intrusion prevention signature status",
13
+ evidenceCategories: ["vulnerability_management", "monitoring"],
14
+ },
15
+ {
16
+ id: "fortinet-webfilter",
17
+ name: "Web Filtering",
18
+ description: "Fetch web filter profiles and URL categories",
19
+ evidenceCategories: ["access_control", "data_protection"],
20
+ },
21
+ {
22
+ id: "fortinet-logs",
23
+ name: "Security Logs",
24
+ description: "Fetch FortiGate event and traffic logs",
25
+ evidenceCategories: ["monitoring"],
26
+ },
27
+ ];
28
+ export class FortinetConnector {
29
+ id = "fortinet";
30
+ name = "Fortinet FortiGate";
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://fortigate.example.com";
42
+ const resp = await fetch(`${base}/api/v2${endpoint}`, {
43
+ headers: {
44
+ Authorization: `Bearer ${config.apiToken}`,
45
+ "Content-Type": "application/json",
46
+ },
47
+ });
48
+ if (!resp.ok)
49
+ throw new Error(`Fortinet API ${resp.status}: ${resp.statusText}`);
50
+ return (await resp.json());
51
+ }
52
+ async testConnection(config) {
53
+ try {
54
+ await this.fetchApi(config, "/monitor/system/status");
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 policies = await this.fetchApi(config, "/monitor/firewall/policy").catch(() => ({
65
+ results: [],
66
+ }));
67
+ artifacts.push({
68
+ id: generateEvidenceId(),
69
+ connectorId: this.id,
70
+ capabilityId: "fortinet-firewall",
71
+ timestamp: now,
72
+ hash: hashEvidence(policies),
73
+ framework: "SOC2",
74
+ controlId: "CC6.1",
75
+ source: "fortinet/firewall/policies",
76
+ status: policies.results?.length > 0 ? "compliant" : "unknown",
77
+ data: { policyCount: policies.results?.length || 0 },
78
+ metadata: {},
79
+ });
80
+ const ips = await this.fetchApi(config, "/monitor/ips/signature").catch(() => ({
81
+ results: [],
82
+ }));
83
+ artifacts.push({
84
+ id: generateEvidenceId(),
85
+ connectorId: this.id,
86
+ capabilityId: "fortinet-ips",
87
+ timestamp: now,
88
+ hash: hashEvidence(ips),
89
+ framework: "ISO27001",
90
+ controlId: "A.12.2.1",
91
+ source: "fortinet/ips/signatures",
92
+ status: ips.results?.length > 0 ? "compliant" : "non_compliant",
93
+ data: { signatureCount: ips.results?.length || 0 },
94
+ metadata: {},
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 FreshdeskConnector implements IntegrationConnector {
3
+ readonly id = "freshdesk";
4
+ readonly name = "Freshdesk";
5
+ readonly category: "incident_management";
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,71 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "freshdesk-tickets",
5
+ name: "Support Tickets",
6
+ description: "Fetch Freshdesk ticket queue, SLA compliance, and resolution metrics",
7
+ evidenceCategories: ["incident_management", "monitoring"],
8
+ },
9
+ {
10
+ id: "freshdesk-security",
11
+ name: "Security Settings",
12
+ description: "Fetch Freshdesk SSO, 2FA enforcement, and agent access controls",
13
+ evidenceCategories: ["access_control", "configuration"],
14
+ },
15
+ {
16
+ id: "freshdesk-audit",
17
+ name: "Audit Logs",
18
+ description: "Fetch Freshdesk audit log events for configuration and access changes",
19
+ evidenceCategories: ["audit", "change_management"],
20
+ },
21
+ ];
22
+ export class FreshdeskConnector {
23
+ id = "freshdesk";
24
+ name = "Freshdesk";
25
+ category = "incident_management";
26
+ authType = "api_key";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001"];
29
+ async fetchApi(config, endpoint) {
30
+ const domain = config.extra?.domain || "default";
31
+ const base = config.baseUrl || `https://${domain}.freshdesk.com/api/v2`;
32
+ const resp = await fetch(`${base}${endpoint}`, {
33
+ headers: {
34
+ Authorization: `Bearer ${config.apiToken}`,
35
+ "Content-Type": "application/json",
36
+ },
37
+ });
38
+ if (!resp.ok)
39
+ throw new Error(`Freshdesk API ${resp.status}: ${resp.statusText}`);
40
+ return (await resp.json());
41
+ }
42
+ async testConnection(config) {
43
+ try {
44
+ await this.fetchApi(config, "/agents/me.json");
45
+ return true;
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ async collectEvidence(config) {
52
+ const artifacts = [];
53
+ const now = new Date().toISOString();
54
+ const tickets = await this.fetchApi(config, "/tickets.json?per_page=100&order_by=created_at&order_type=desc").catch(() => []);
55
+ const ticketList = Array.isArray(tickets) ? tickets : [];
56
+ artifacts.push({
57
+ id: generateEvidenceId(),
58
+ connectorId: this.id,
59
+ capabilityId: "freshdesk-tickets",
60
+ timestamp: now,
61
+ hash: hashEvidence({ ticketCount: ticketList.length }),
62
+ framework: "SOC2",
63
+ controlId: "CC7.3",
64
+ source: "freshdesk/tickets",
65
+ status: "unknown",
66
+ data: { recentTickets: ticketList.length },
67
+ metadata: {},
68
+ });
69
+ return artifacts;
70
+ }
71
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class GCPBigQueryConnector implements IntegrationConnector {
3
+ readonly id = "gcp-bigquery";
4
+ readonly name = "GCP BigQuery";
5
+ readonly category: "data_warehouse";
6
+ readonly authType: "service_account";
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,71 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "gcpbigquery-datasets",
5
+ name: "BigQuery Datasets",
6
+ description: "Fetch BigQuery dataset configurations and access controls",
7
+ evidenceCategories: ["data_protection", "cloud_configuration"],
8
+ },
9
+ {
10
+ id: "gcpbigquery-iam",
11
+ name: "Dataset IAM Policies",
12
+ description: "Fetch IAM bindings and authorized views on BigQuery datasets",
13
+ evidenceCategories: ["access_control", "data_protection"],
14
+ },
15
+ {
16
+ id: "gcpbigquery-audit",
17
+ name: "Query Audit Logs",
18
+ description: "Fetch BigQuery data access audit logs and query history",
19
+ evidenceCategories: ["monitoring", "audit"],
20
+ },
21
+ ];
22
+ export class GCPBigQueryConnector {
23
+ id = "gcp-bigquery";
24
+ name = "GCP BigQuery";
25
+ category = "data_warehouse";
26
+ authType = "service_account";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001", "NIST_CSF", "HIPAA"];
29
+ async fetchApi(config, endpoint) {
30
+ const project = config.extra?.project || "default";
31
+ const base = config.baseUrl || `https://bigquery.googleapis.com/bigquery/v2/projects/${project}`;
32
+ const resp = await fetch(`${base}${endpoint}`, {
33
+ headers: {
34
+ Authorization: `Bearer ${config.apiToken}`,
35
+ "Content-Type": "application/json",
36
+ },
37
+ });
38
+ if (!resp.ok)
39
+ throw new Error(`GCP BigQuery API ${resp.status}: ${resp.statusText}`);
40
+ return (await resp.json());
41
+ }
42
+ async testConnection(config) {
43
+ try {
44
+ await this.fetchApi(config, "/datasets?maxResults=1");
45
+ return true;
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ async collectEvidence(config) {
52
+ const artifacts = [];
53
+ const now = new Date().toISOString();
54
+ const datasets = await this.fetchApi(config, "/datasets?maxResults=100").catch(() => ({ datasets: [] }));
55
+ const datasetList = (datasets.datasets || []);
56
+ artifacts.push({
57
+ id: generateEvidenceId(),
58
+ connectorId: this.id,
59
+ capabilityId: "gcpbigquery-datasets",
60
+ timestamp: now,
61
+ hash: hashEvidence({ datasetCount: datasetList.length }),
62
+ framework: "SOC2",
63
+ controlId: "CC6.1",
64
+ source: "gcp-bigquery/datasets",
65
+ status: datasetList.length > 0 ? "compliant" : "unknown",
66
+ data: { datasetCount: datasetList.length },
67
+ metadata: {},
68
+ });
69
+ return artifacts;
70
+ }
71
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class GCPComputeConnector implements IntegrationConnector {
3
+ readonly id = "gcp-compute";
4
+ readonly name = "GCP Compute Engine";
5
+ readonly category: "cloud_provider";
6
+ readonly authType: "service_account";
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,87 @@
1
+ import { hashEvidence, generateEvidenceId } from "../types.js";
2
+ const capabilities = [
3
+ {
4
+ id: "gcpcompute-instances",
5
+ name: "Compute Instances",
6
+ description: "Fetch GCP Compute Engine instance configurations and metadata",
7
+ evidenceCategories: ["cloud_configuration", "infrastructure"],
8
+ },
9
+ {
10
+ id: "gcpcompute-firewall",
11
+ name: "Firewall Rules",
12
+ description: "Fetch VPC firewall rules and network access controls",
13
+ evidenceCategories: ["network_security", "access_control"],
14
+ },
15
+ {
16
+ id: "gcpcompute-osconfig",
17
+ name: "OS Patch Management",
18
+ description: "Fetch OS patch policies and compliance status for compute instances",
19
+ evidenceCategories: ["vulnerability_management", "configuration"],
20
+ },
21
+ ];
22
+ export class GCPComputeConnector {
23
+ id = "gcp-compute";
24
+ name = "GCP Compute Engine";
25
+ category = "cloud_provider";
26
+ authType = "service_account";
27
+ capabilities = capabilities;
28
+ frameworks = ["SOC2", "ISO27001", "NIST_CSF", "PCI_DSS"];
29
+ async fetchApi(config, endpoint) {
30
+ const project = config.extra?.project || "default";
31
+ const base = config.baseUrl || `https://compute.googleapis.com/compute/v1/projects/${project}`;
32
+ const resp = await fetch(`${base}${endpoint}`, {
33
+ headers: {
34
+ Authorization: `Bearer ${config.apiToken}`,
35
+ "Content-Type": "application/json",
36
+ },
37
+ });
38
+ if (!resp.ok)
39
+ throw new Error(`GCP Compute API ${resp.status}: ${resp.statusText}`);
40
+ return (await resp.json());
41
+ }
42
+ async testConnection(config) {
43
+ try {
44
+ await this.fetchApi(config, "/aggregated/instances?maxResults=1");
45
+ return true;
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ async collectEvidence(config) {
52
+ const artifacts = [];
53
+ const now = new Date().toISOString();
54
+ const instances = await this.fetchApi(config, "/aggregated/instances").catch(() => ({ items: {} }));
55
+ const items = instances.items || {};
56
+ const instanceCount = Object.keys(items).length;
57
+ artifacts.push({
58
+ id: generateEvidenceId(),
59
+ connectorId: this.id,
60
+ capabilityId: "gcpcompute-instances",
61
+ timestamp: now,
62
+ hash: hashEvidence({ instanceCount }),
63
+ framework: "SOC2",
64
+ controlId: "CC6.1",
65
+ source: "gcp-compute/instances",
66
+ status: "unknown",
67
+ data: { instanceCount },
68
+ metadata: {},
69
+ });
70
+ const firewalls = await this.fetchApi(config, "/global/firewalls").catch(() => ({ items: [] }));
71
+ const fwList = (firewalls.items || []);
72
+ artifacts.push({
73
+ id: generateEvidenceId(),
74
+ connectorId: this.id,
75
+ capabilityId: "gcpcompute-firewall",
76
+ timestamp: now,
77
+ hash: hashEvidence({ ruleCount: fwList.length }),
78
+ framework: "ISO27001",
79
+ controlId: "A.13.1.1",
80
+ source: "gcp-compute/firewalls",
81
+ status: "unknown",
82
+ data: { firewallRuleCount: fwList.length },
83
+ metadata: {},
84
+ });
85
+ return artifacts;
86
+ }
87
+ }
@@ -0,0 +1,12 @@
1
+ import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
2
+ export declare class GCPConfigConnector implements IntegrationConnector {
3
+ readonly id = "gcp_config";
4
+ readonly name = "GCP Config Validator";
5
+ readonly category: "cloud_provider";
6
+ readonly authType: "service_account";
7
+ readonly capabilities: IntegrationCapability[];
8
+ readonly frameworks: ComplianceFramework[];
9
+ private getToken;
10
+ testConnection(config: ConnectorConfig): Promise<boolean>;
11
+ collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
12
+ }