@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.
- package/dist/IntegrationMarketplace.d.ts +32 -0
- package/dist/IntegrationMarketplace.js +319 -0
- package/dist/connectors/ADPConnector.d.ts +12 -0
- package/dist/connectors/ADPConnector.js +97 -0
- package/dist/connectors/AWSCloudTrailConnector.d.ts +12 -0
- package/dist/connectors/AWSCloudTrailConnector.js +77 -0
- package/dist/connectors/AWSCloudWatchConnector.d.ts +12 -0
- package/dist/connectors/AWSCloudWatchConnector.js +70 -0
- package/dist/connectors/AWSGuardDutyConnector.d.ts +12 -0
- package/dist/connectors/AWSGuardDutyConnector.js +139 -0
- package/dist/connectors/AWSIAMConnector.d.ts +12 -0
- package/dist/connectors/AWSIAMConnector.js +90 -0
- package/dist/connectors/AWSKMSConnector.d.ts +12 -0
- package/dist/connectors/AWSKMSConnector.js +70 -0
- package/dist/connectors/AWSLambdaConnector.d.ts +12 -0
- package/dist/connectors/AWSLambdaConnector.js +84 -0
- package/dist/connectors/AWSRDSConnector.d.ts +12 -0
- package/dist/connectors/AWSRDSConnector.js +84 -0
- package/dist/connectors/AWSS3Connector.d.ts +12 -0
- package/dist/connectors/AWSS3Connector.js +112 -0
- package/dist/connectors/AkamaiConnector.d.ts +12 -0
- package/dist/connectors/AkamaiConnector.js +98 -0
- package/dist/connectors/ArgoCDConnector.d.ts +12 -0
- package/dist/connectors/ArgoCDConnector.js +93 -0
- package/dist/connectors/ArtifactoryConnector.d.ts +12 -0
- package/dist/connectors/ArtifactoryConnector.js +94 -0
- package/dist/connectors/AtlassianJiraConnector.d.ts +12 -0
- package/dist/connectors/AtlassianJiraConnector.js +134 -0
- package/dist/connectors/Auth0Connector.d.ts +12 -0
- package/dist/connectors/Auth0Connector.js +150 -0
- package/dist/connectors/AzureADConnector.d.ts +12 -0
- package/dist/connectors/AzureADConnector.js +115 -0
- package/dist/connectors/AzureDevOpsConnector.d.ts +12 -0
- package/dist/connectors/AzureDevOpsConnector.js +130 -0
- package/dist/connectors/AzureDevOpsPipelinesConnector.d.ts +12 -0
- package/dist/connectors/AzureDevOpsPipelinesConnector.js +72 -0
- package/dist/connectors/AzurePipelinesConnector.d.ts +12 -0
- package/dist/connectors/AzurePipelinesConnector.js +72 -0
- package/dist/connectors/AzurePolicyConnector.d.ts +12 -0
- package/dist/connectors/AzurePolicyConnector.js +141 -0
- package/dist/connectors/AzureReposConnector.d.ts +12 -0
- package/dist/connectors/AzureReposConnector.js +96 -0
- package/dist/connectors/AzureSentinelConnector.d.ts +12 -0
- package/dist/connectors/AzureSentinelConnector.js +88 -0
- package/dist/connectors/BambooCICDConnector.d.ts +12 -0
- package/dist/connectors/BambooCICDConnector.js +72 -0
- package/dist/connectors/BambooHRConnector.d.ts +12 -0
- package/dist/connectors/BambooHRConnector.js +84 -0
- package/dist/connectors/BeyondTrustConnector.d.ts +12 -0
- package/dist/connectors/BeyondTrustConnector.js +94 -0
- package/dist/connectors/BitbucketConnector.d.ts +12 -0
- package/dist/connectors/BitbucketConnector.js +100 -0
- package/dist/connectors/BitbucketPipelinesConnector.d.ts +12 -0
- package/dist/connectors/BitbucketPipelinesConnector.js +72 -0
- package/dist/connectors/BoxConnector.d.ts +12 -0
- package/dist/connectors/BoxConnector.js +122 -0
- package/dist/connectors/BuildkiteConnector.d.ts +12 -0
- package/dist/connectors/BuildkiteConnector.js +95 -0
- package/dist/connectors/CarbonBlackConnector.d.ts +12 -0
- package/dist/connectors/CarbonBlackConnector.js +89 -0
- package/dist/connectors/CassandraConnector.d.ts +12 -0
- package/dist/connectors/CassandraConnector.js +69 -0
- package/dist/connectors/CheckPointConnector.d.ts +12 -0
- package/dist/connectors/CheckPointConnector.js +98 -0
- package/dist/connectors/CircleCIConnector.d.ts +12 -0
- package/dist/connectors/CircleCIConnector.js +129 -0
- package/dist/connectors/CircleCIConnectorsConnector.d.ts +12 -0
- package/dist/connectors/CircleCIConnectorsConnector.js +69 -0
- package/dist/connectors/CiscoUmbrellaConnector.d.ts +12 -0
- package/dist/connectors/CiscoUmbrellaConnector.js +96 -0
- package/dist/connectors/CloudBeesJenkinsConnector.d.ts +12 -0
- package/dist/connectors/CloudBeesJenkinsConnector.js +70 -0
- package/dist/connectors/CloudflareDNSConnector.d.ts +12 -0
- package/dist/connectors/CloudflareDNSConnector.js +71 -0
- package/dist/connectors/CloudflareWAFConnector.d.ts +12 -0
- package/dist/connectors/CloudflareWAFConnector.js +98 -0
- package/dist/connectors/ConfluenceConnector.d.ts +12 -0
- package/dist/connectors/ConfluenceConnector.js +101 -0
- package/dist/connectors/ConstantContactConnector.d.ts +12 -0
- package/dist/connectors/ConstantContactConnector.js +70 -0
- package/dist/connectors/CouchDBConnector.d.ts +12 -0
- package/dist/connectors/CouchDBConnector.js +69 -0
- package/dist/connectors/CrowdStrikeConnector.d.ts +12 -0
- package/dist/connectors/CrowdStrikeConnector.js +86 -0
- package/dist/connectors/CrowdStrikeFalconConnector.d.ts +12 -0
- package/dist/connectors/CrowdStrikeFalconConnector.js +92 -0
- package/dist/connectors/CrowdStrikeSpotlightConnector.d.ts +12 -0
- package/dist/connectors/CrowdStrikeSpotlightConnector.js +139 -0
- package/dist/connectors/CyberArkConnector.d.ts +12 -0
- package/dist/connectors/CyberArkConnector.js +95 -0
- package/dist/connectors/DatabricksConnector.d.ts +12 -0
- package/dist/connectors/DatabricksConnector.js +95 -0
- package/dist/connectors/DatadogConnector.d.ts +12 -0
- package/dist/connectors/DatadogConnector.js +110 -0
- package/dist/connectors/DigitalOceanConnector.d.ts +12 -0
- package/dist/connectors/DigitalOceanConnector.js +85 -0
- package/dist/connectors/DiscordConnector.d.ts +12 -0
- package/dist/connectors/DiscordConnector.js +98 -0
- package/dist/connectors/DockerHubConnector.d.ts +12 -0
- package/dist/connectors/DockerHubConnector.js +80 -0
- package/dist/connectors/DocuSignConnector.d.ts +12 -0
- package/dist/connectors/DocuSignConnector.js +96 -0
- package/dist/connectors/DriftConnector.d.ts +12 -0
- package/dist/connectors/DriftConnector.js +69 -0
- package/dist/connectors/DropboxConnector.d.ts +12 -0
- package/dist/connectors/DropboxConnector.js +127 -0
- package/dist/connectors/ESETConnector.d.ts +12 -0
- package/dist/connectors/ESETConnector.js +70 -0
- package/dist/connectors/ElasticsearchCloudConnector.d.ts +12 -0
- package/dist/connectors/ElasticsearchCloudConnector.js +70 -0
- package/dist/connectors/FSecureConnector.d.ts +12 -0
- package/dist/connectors/FSecureConnector.js +70 -0
- package/dist/connectors/FeatureFlagConnector.d.ts +12 -0
- package/dist/connectors/FeatureFlagConnector.js +70 -0
- package/dist/connectors/FluxCDConnector.d.ts +12 -0
- package/dist/connectors/FluxCDConnector.js +94 -0
- package/dist/connectors/ForgeRockConnector.d.ts +12 -0
- package/dist/connectors/ForgeRockConnector.js +95 -0
- package/dist/connectors/FortinetConnector.d.ts +12 -0
- package/dist/connectors/FortinetConnector.js +98 -0
- package/dist/connectors/FreshdeskConnector.d.ts +12 -0
- package/dist/connectors/FreshdeskConnector.js +71 -0
- package/dist/connectors/GCPBigQueryConnector.d.ts +12 -0
- package/dist/connectors/GCPBigQueryConnector.js +71 -0
- package/dist/connectors/GCPComputeConnector.d.ts +12 -0
- package/dist/connectors/GCPComputeConnector.js +87 -0
- package/dist/connectors/GCPConfigConnector.d.ts +12 -0
- package/dist/connectors/GCPConfigConnector.js +149 -0
- package/dist/connectors/GCPFirestoreConnector.d.ts +12 -0
- package/dist/connectors/GCPFirestoreConnector.js +71 -0
- package/dist/connectors/GCPIAMConnector.d.ts +12 -0
- package/dist/connectors/GCPIAMConnector.js +98 -0
- package/dist/connectors/GCPSCCConnector.d.ts +12 -0
- package/dist/connectors/GCPSCCConnector.js +94 -0
- package/dist/connectors/GitHubActionsConnector.d.ts +12 -0
- package/dist/connectors/GitHubActionsConnector.js +104 -0
- package/dist/connectors/GitHubConnector.d.ts +12 -0
- package/dist/connectors/GitHubConnector.js +135 -0
- package/dist/connectors/GitHubCopilotConnector.d.ts +12 -0
- package/dist/connectors/GitHubCopilotConnector.js +72 -0
- package/dist/connectors/GitLabCIConnector.d.ts +12 -0
- package/dist/connectors/GitLabCIConnector.js +71 -0
- package/dist/connectors/GitLabConnector.d.ts +12 -0
- package/dist/connectors/GitLabConnector.js +101 -0
- package/dist/connectors/GitLabSASTConnector.d.ts +12 -0
- package/dist/connectors/GitLabSASTConnector.js +130 -0
- package/dist/connectors/GoogleWorkspaceConnector.d.ts +12 -0
- package/dist/connectors/GoogleWorkspaceConnector.js +136 -0
- package/dist/connectors/HelmConnector.d.ts +12 -0
- package/dist/connectors/HelmConnector.js +94 -0
- package/dist/connectors/HubSpotConnector.d.ts +12 -0
- package/dist/connectors/HubSpotConnector.js +77 -0
- package/dist/connectors/IFTTTConnector.d.ts +12 -0
- package/dist/connectors/IFTTTConnector.js +70 -0
- package/dist/connectors/ImpervaConnector.d.ts +12 -0
- package/dist/connectors/ImpervaConnector.js +94 -0
- package/dist/connectors/InfluxDBConnector.d.ts +12 -0
- package/dist/connectors/InfluxDBConnector.js +70 -0
- package/dist/connectors/IntercomConnector.d.ts +12 -0
- package/dist/connectors/IntercomConnector.js +69 -0
- package/dist/connectors/JenkinsConnector.d.ts +12 -0
- package/dist/connectors/JenkinsConnector.js +96 -0
- package/dist/connectors/JiraConnector.d.ts +12 -0
- package/dist/connectors/JiraConnector.js +103 -0
- package/dist/connectors/KafkaConnector.d.ts +12 -0
- package/dist/connectors/KafkaConnector.js +70 -0
- package/dist/connectors/KasperskyConnector.d.ts +12 -0
- package/dist/connectors/KasperskyConnector.js +70 -0
- package/dist/connectors/KubernetesConnector.d.ts +12 -0
- package/dist/connectors/KubernetesConnector.js +109 -0
- package/dist/connectors/LaceworkConnector.d.ts +13 -0
- package/dist/connectors/LaceworkConnector.js +143 -0
- package/dist/connectors/LaunchDarklyConnector.d.ts +12 -0
- package/dist/connectors/LaunchDarklyConnector.js +86 -0
- package/dist/connectors/LinodeConnector.d.ts +12 -0
- package/dist/connectors/LinodeConnector.js +70 -0
- package/dist/connectors/LookerConnector.d.ts +12 -0
- package/dist/connectors/LookerConnector.js +94 -0
- package/dist/connectors/MailchimpConnector.d.ts +12 -0
- package/dist/connectors/MailchimpConnector.js +71 -0
- package/dist/connectors/MalwarebytesConnector.d.ts +12 -0
- package/dist/connectors/MalwarebytesConnector.js +85 -0
- package/dist/connectors/McAfeeConnector.d.ts +12 -0
- package/dist/connectors/McAfeeConnector.js +85 -0
- package/dist/connectors/Microsoft365Connector.d.ts +12 -0
- package/dist/connectors/Microsoft365Connector.js +139 -0
- package/dist/connectors/MongoDBConnector.d.ts +12 -0
- package/dist/connectors/MongoDBConnector.js +86 -0
- package/dist/connectors/NamelyConnector.d.ts +12 -0
- package/dist/connectors/NamelyConnector.js +97 -0
- package/dist/connectors/Neo4jConnector.d.ts +12 -0
- package/dist/connectors/Neo4jConnector.js +70 -0
- package/dist/connectors/NetSuiteConnector.d.ts +12 -0
- package/dist/connectors/NetSuiteConnector.js +94 -0
- package/dist/connectors/NetskopeConnector.d.ts +12 -0
- package/dist/connectors/NetskopeConnector.js +98 -0
- package/dist/connectors/NexusConnector.d.ts +12 -0
- package/dist/connectors/NexusConnector.js +93 -0
- package/dist/connectors/NotionConnector.d.ts +12 -0
- package/dist/connectors/NotionConnector.js +109 -0
- package/dist/connectors/OktaConnector.d.ts +12 -0
- package/dist/connectors/OktaConnector.js +123 -0
- package/dist/connectors/OktaSystemLogConnector.d.ts +12 -0
- package/dist/connectors/OktaSystemLogConnector.js +129 -0
- package/dist/connectors/OpsgenieConnector.d.ts +12 -0
- package/dist/connectors/OpsgenieConnector.js +70 -0
- package/dist/connectors/PagerDutyConnector.d.ts +12 -0
- package/dist/connectors/PagerDutyConnector.js +106 -0
- package/dist/connectors/PalantirConnector.d.ts +12 -0
- package/dist/connectors/PalantirConnector.js +95 -0
- package/dist/connectors/PaloAltoPrismaCloudConnector.d.ts +12 -0
- package/dist/connectors/PaloAltoPrismaCloudConnector.js +110 -0
- package/dist/connectors/PingFederateConnector.d.ts +12 -0
- package/dist/connectors/PingFederateConnector.js +97 -0
- package/dist/connectors/PostgreSQLCloudConnector.d.ts +12 -0
- package/dist/connectors/PostgreSQLCloudConnector.js +70 -0
- package/dist/connectors/PowerBIConnector.d.ts +12 -0
- package/dist/connectors/PowerBIConnector.js +95 -0
- package/dist/connectors/PrismaCloudConnector.d.ts +12 -0
- package/dist/connectors/PrismaCloudConnector.js +147 -0
- package/dist/connectors/QualysConnector.d.ts +12 -0
- package/dist/connectors/QualysConnector.js +96 -0
- package/dist/connectors/QualysScannerConnector.d.ts +12 -0
- package/dist/connectors/QualysScannerConnector.js +131 -0
- package/dist/connectors/QuickBooksConnector.d.ts +12 -0
- package/dist/connectors/QuickBooksConnector.js +97 -0
- package/dist/connectors/RabbitMQConnector.d.ts +12 -0
- package/dist/connectors/RabbitMQConnector.js +69 -0
- package/dist/connectors/RadwareConnector.d.ts +12 -0
- package/dist/connectors/RadwareConnector.js +94 -0
- package/dist/connectors/RedisCloudConnector.d.ts +12 -0
- package/dist/connectors/RedisCloudConnector.js +70 -0
- package/dist/connectors/RingCentralConnector.d.ts +12 -0
- package/dist/connectors/RingCentralConnector.js +94 -0
- package/dist/connectors/SAPSuccessFactorsConnector.d.ts +12 -0
- package/dist/connectors/SAPSuccessFactorsConnector.js +103 -0
- package/dist/connectors/SailPointConnector.d.ts +12 -0
- package/dist/connectors/SailPointConnector.js +97 -0
- package/dist/connectors/SalesforceConnector.d.ts +12 -0
- package/dist/connectors/SalesforceConnector.js +91 -0
- package/dist/connectors/SendGridConnector.d.ts +12 -0
- package/dist/connectors/SendGridConnector.js +69 -0
- package/dist/connectors/SentinelOneConnector.d.ts +12 -0
- package/dist/connectors/SentinelOneConnector.js +89 -0
- package/dist/connectors/ServiceNowConnector.d.ts +12 -0
- package/dist/connectors/ServiceNowConnector.js +123 -0
- package/dist/connectors/SlackConnector.d.ts +12 -0
- package/dist/connectors/SlackConnector.js +109 -0
- package/dist/connectors/SnowflakeConnector.d.ts +12 -0
- package/dist/connectors/SnowflakeConnector.js +105 -0
- package/dist/connectors/SnykConnector.d.ts +12 -0
- package/dist/connectors/SnykConnector.js +84 -0
- package/dist/connectors/SnykMonitorConnector.d.ts +12 -0
- package/dist/connectors/SnykMonitorConnector.js +131 -0
- package/dist/connectors/SophosConnector.d.ts +12 -0
- package/dist/connectors/SophosConnector.js +87 -0
- package/dist/connectors/SpinnakerConnector.d.ts +12 -0
- package/dist/connectors/SpinnakerConnector.js +70 -0
- package/dist/connectors/SplunkConnector.d.ts +12 -0
- package/dist/connectors/SplunkConnector.js +126 -0
- package/dist/connectors/StripeConnector.d.ts +12 -0
- package/dist/connectors/StripeConnector.js +97 -0
- package/dist/connectors/TableauConnector.d.ts +12 -0
- package/dist/connectors/TableauConnector.js +101 -0
- package/dist/connectors/TaniumConnector.d.ts +12 -0
- package/dist/connectors/TaniumConnector.js +97 -0
- package/dist/connectors/TeamCityConnector.d.ts +12 -0
- package/dist/connectors/TeamCityConnector.js +71 -0
- package/dist/connectors/TeamsConnector.d.ts +12 -0
- package/dist/connectors/TeamsConnector.js +96 -0
- package/dist/connectors/TenableIOConnector.d.ts +12 -0
- package/dist/connectors/TenableIOConnector.js +130 -0
- package/dist/connectors/TerraformCloudConnector.d.ts +12 -0
- package/dist/connectors/TerraformCloudConnector.js +106 -0
- package/dist/connectors/TravisCIConnector.d.ts +12 -0
- package/dist/connectors/TravisCIConnector.js +95 -0
- package/dist/connectors/TrendMicroConnector.d.ts +12 -0
- package/dist/connectors/TrendMicroConnector.js +85 -0
- package/dist/connectors/TwilioConnector.d.ts +12 -0
- package/dist/connectors/TwilioConnector.js +70 -0
- package/dist/connectors/VercelConnector.d.ts +12 -0
- package/dist/connectors/VercelConnector.js +70 -0
- package/dist/connectors/VultrConnector.d.ts +12 -0
- package/dist/connectors/VultrConnector.js +70 -0
- package/dist/connectors/WebexConnector.d.ts +12 -0
- package/dist/connectors/WebexConnector.js +94 -0
- package/dist/connectors/WizConnector.d.ts +12 -0
- package/dist/connectors/WizConnector.js +172 -0
- package/dist/connectors/WorkdayConnector.d.ts +12 -0
- package/dist/connectors/WorkdayConnector.js +100 -0
- package/dist/connectors/XeroConnector.d.ts +12 -0
- package/dist/connectors/XeroConnector.js +96 -0
- package/dist/connectors/ZapierConnector.d.ts +12 -0
- package/dist/connectors/ZapierConnector.js +70 -0
- package/dist/connectors/ZendeskConnector.d.ts +12 -0
- package/dist/connectors/ZendeskConnector.js +71 -0
- package/dist/connectors/ZenefitsConnector.d.ts +12 -0
- package/dist/connectors/ZenefitsConnector.js +93 -0
- package/dist/connectors/ZoomConnector.d.ts +12 -0
- package/dist/connectors/ZoomConnector.js +97 -0
- package/dist/connectors/ZscalerConnector.d.ts +12 -0
- package/dist/connectors/ZscalerConnector.js +97 -0
- package/dist/connectors/index.d.ts +150 -0
- package/dist/connectors/index.js +157 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +16 -0
- package/dist/index.test.d.ts +1 -0
- package/dist/index.test.js +139 -0
- package/dist/types.d.ts +57 -0
- package/dist/types.js +8 -0
- package/package.json +33 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCategory, ComplianceFramework, MarketplaceStats } from "./types.js";
|
|
2
|
+
export interface CollectionJob {
|
|
3
|
+
id: string;
|
|
4
|
+
connectorId: string;
|
|
5
|
+
startedAt: string;
|
|
6
|
+
completedAt?: string;
|
|
7
|
+
status: "running" | "completed" | "failed";
|
|
8
|
+
artifacts: EvidenceArtifact[];
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class IntegrationMarketplace {
|
|
12
|
+
private registrations;
|
|
13
|
+
private configs;
|
|
14
|
+
private jobs;
|
|
15
|
+
constructor();
|
|
16
|
+
private registerBuiltinConnectors;
|
|
17
|
+
registerConnector(connector: IntegrationConnector): void;
|
|
18
|
+
unregisterConnector(connectorId: string): boolean;
|
|
19
|
+
enableConnector(connectorId: string): void;
|
|
20
|
+
disableConnector(connectorId: string): void;
|
|
21
|
+
setConfig(connectorId: string, config: ConnectorConfig): void;
|
|
22
|
+
getConnector(connectorId: string): IntegrationConnector | undefined;
|
|
23
|
+
getEnabledConnectors(): IntegrationConnector[];
|
|
24
|
+
getConnectorsByCategory(category: IntegrationCategory): IntegrationConnector[];
|
|
25
|
+
getConnectorsByFramework(framework: ComplianceFramework): IntegrationConnector[];
|
|
26
|
+
testAllConnections(): Promise<Map<string, boolean>>;
|
|
27
|
+
collectFromConnector(connectorId: string): Promise<CollectionJob>;
|
|
28
|
+
collectAll(): Promise<CollectionJob[]>;
|
|
29
|
+
getStats(): MarketplaceStats;
|
|
30
|
+
getJobs(): CollectionJob[];
|
|
31
|
+
getRecentJobs(limit?: number): CollectionJob[];
|
|
32
|
+
}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { GitHubConnector, GitLabConnector, AWSIAMConnector, AWSS3Connector, AWSCloudTrailConnector, AzureADConnector, AzureSentinelConnector, GCPIAMConnector, GCPSCCConnector, OktaConnector, JiraConnector, SlackConnector, PagerDutyConnector, SnowflakeConnector, DatadogConnector, CrowdStrikeConnector, QualysConnector, SnykConnector, TerraformCloudConnector, GitHubActionsConnector, DockerHubConnector, KubernetesConnector, SalesforceConnector, HubSpotConnector, BambooHRConnector, CrowdStrikeFalconConnector, ServiceNowConnector, SplunkConnector, ConfluenceConnector, NotionConnector, BoxConnector, DropboxConnector, GoogleWorkspaceConnector, Microsoft365Connector, Auth0Connector, AtlassianJiraConnector, GitLabSASTConnector, AWSGuardDutyConnector, AzurePolicyConnector, GCPConfigConnector, OktaSystemLogConnector, CrowdStrikeSpotlightConnector, QualysScannerConnector, TenableIOConnector, SnykMonitorConnector, PrismaCloudConnector, WizConnector, LaceworkConnector, AzureDevOpsConnector, CircleCIConnector, PaloAltoPrismaCloudConnector, CheckPointConnector, FortinetConnector, CiscoUmbrellaConnector, ZscalerConnector, NetskopeConnector, CloudflareWAFConnector, AkamaiConnector, ImpervaConnector, RadwareConnector, BitbucketConnector, AzureReposConnector, JenkinsConnector, TravisCIConnector, BuildkiteConnector, ArgoCDConnector, FluxCDConnector, HelmConnector, ArtifactoryConnector, NexusConnector, PingFederateConnector, ForgeRockConnector, CyberArkConnector, BeyondTrustConnector, SailPointConnector, DatabricksConnector, PalantirConnector, TableauConnector, PowerBIConnector, LookerConnector, TaniumConnector, SentinelOneConnector, CarbonBlackConnector, TrendMicroConnector, ESETConnector, WorkdayConnector, SAPSuccessFactorsConnector, ADPConnector, ZenefitsConnector, NamelyConnector, NetSuiteConnector, QuickBooksConnector, XeroConnector, StripeConnector, DocuSignConnector, ZoomConnector, WebexConnector, TeamsConnector, DiscordConnector, RingCentralConnector,
|
|
2
|
+
// --- 50 new connectors (150+ total) ---
|
|
3
|
+
// Cloud Infrastructure (10)
|
|
4
|
+
AWSLambdaConnector, AWSRDSConnector, AWSKMSConnector, AzureDevOpsPipelinesConnector, GCPFirestoreConnector, GCPBigQueryConnector, GCPComputeConnector, DigitalOceanConnector, LinodeConnector, VultrConnector,
|
|
5
|
+
// Security (5 new)
|
|
6
|
+
MalwarebytesConnector, SophosConnector, McAfeeConnector, FSecureConnector, KasperskyConnector,
|
|
7
|
+
// DevOps (9 new)
|
|
8
|
+
GitLabCIConnector, BambooCICDConnector, TeamCityConnector, AzurePipelinesConnector, BitbucketPipelinesConnector, CloudBeesJenkinsConnector, SpinnakerConnector, LaunchDarklyConnector, FeatureFlagConnector,
|
|
9
|
+
// Data (10)
|
|
10
|
+
MongoDBConnector, PostgreSQLCloudConnector, RedisCloudConnector, ElasticsearchCloudConnector, KafkaConnector, RabbitMQConnector, CassandraConnector, CouchDBConnector, Neo4jConnector, InfluxDBConnector,
|
|
11
|
+
// Other (10)
|
|
12
|
+
ZapierConnector, IFTTTConnector, TwilioConnector, SendGridConnector, MailchimpConnector, ConstantContactConnector, ZendeskConnector, FreshdeskConnector, IntercomConnector, DriftConnector,
|
|
13
|
+
// Additional connectors for 150+ total
|
|
14
|
+
CloudflareDNSConnector, OpsgenieConnector, GitHubCopilotConnector, VercelConnector, AWSCloudWatchConnector, CircleCIConnectorsConnector, } from "./connectors/index.js";
|
|
15
|
+
export class IntegrationMarketplace {
|
|
16
|
+
registrations = new Map();
|
|
17
|
+
configs = new Map();
|
|
18
|
+
jobs = [];
|
|
19
|
+
constructor() {
|
|
20
|
+
this.registerBuiltinConnectors();
|
|
21
|
+
}
|
|
22
|
+
registerBuiltinConnectors() {
|
|
23
|
+
const builtins = [
|
|
24
|
+
new GitHubConnector(),
|
|
25
|
+
new GitLabConnector(),
|
|
26
|
+
new AWSIAMConnector(),
|
|
27
|
+
new AWSS3Connector(),
|
|
28
|
+
new AWSCloudTrailConnector(),
|
|
29
|
+
new AzureADConnector(),
|
|
30
|
+
new AzureSentinelConnector(),
|
|
31
|
+
new GCPIAMConnector(),
|
|
32
|
+
new GCPSCCConnector(),
|
|
33
|
+
new OktaConnector(),
|
|
34
|
+
new JiraConnector(),
|
|
35
|
+
new SlackConnector(),
|
|
36
|
+
new PagerDutyConnector(),
|
|
37
|
+
new SnowflakeConnector(),
|
|
38
|
+
new DatadogConnector(),
|
|
39
|
+
new CrowdStrikeConnector(),
|
|
40
|
+
new QualysConnector(),
|
|
41
|
+
new SnykConnector(),
|
|
42
|
+
new TerraformCloudConnector(),
|
|
43
|
+
new GitHubActionsConnector(),
|
|
44
|
+
new DockerHubConnector(),
|
|
45
|
+
new KubernetesConnector(),
|
|
46
|
+
new SalesforceConnector(),
|
|
47
|
+
new HubSpotConnector(),
|
|
48
|
+
new BambooHRConnector(),
|
|
49
|
+
new CrowdStrikeFalconConnector(),
|
|
50
|
+
new ServiceNowConnector(),
|
|
51
|
+
new SplunkConnector(),
|
|
52
|
+
new ConfluenceConnector(),
|
|
53
|
+
new NotionConnector(),
|
|
54
|
+
new BoxConnector(),
|
|
55
|
+
new DropboxConnector(),
|
|
56
|
+
new GoogleWorkspaceConnector(),
|
|
57
|
+
new Microsoft365Connector(),
|
|
58
|
+
new Auth0Connector(),
|
|
59
|
+
new AtlassianJiraConnector(),
|
|
60
|
+
new GitLabSASTConnector(),
|
|
61
|
+
new AWSGuardDutyConnector(),
|
|
62
|
+
new AzurePolicyConnector(),
|
|
63
|
+
new GCPConfigConnector(),
|
|
64
|
+
new OktaSystemLogConnector(),
|
|
65
|
+
new CrowdStrikeSpotlightConnector(),
|
|
66
|
+
new QualysScannerConnector(),
|
|
67
|
+
new TenableIOConnector(),
|
|
68
|
+
new SnykMonitorConnector(),
|
|
69
|
+
new PrismaCloudConnector(),
|
|
70
|
+
new WizConnector(),
|
|
71
|
+
new LaceworkConnector(),
|
|
72
|
+
new AzureDevOpsConnector(),
|
|
73
|
+
new CircleCIConnector(),
|
|
74
|
+
// --- 50 new connectors (100+ total) ---
|
|
75
|
+
// Cloud Security (10)
|
|
76
|
+
new PaloAltoPrismaCloudConnector(),
|
|
77
|
+
new CheckPointConnector(),
|
|
78
|
+
new FortinetConnector(),
|
|
79
|
+
new CiscoUmbrellaConnector(),
|
|
80
|
+
new ZscalerConnector(),
|
|
81
|
+
new NetskopeConnector(),
|
|
82
|
+
new CloudflareWAFConnector(),
|
|
83
|
+
new AkamaiConnector(),
|
|
84
|
+
new ImpervaConnector(),
|
|
85
|
+
new RadwareConnector(),
|
|
86
|
+
// DevOps & CI/CD (10)
|
|
87
|
+
new BitbucketConnector(),
|
|
88
|
+
new AzureReposConnector(),
|
|
89
|
+
new JenkinsConnector(),
|
|
90
|
+
new TravisCIConnector(),
|
|
91
|
+
new BuildkiteConnector(),
|
|
92
|
+
new ArgoCDConnector(),
|
|
93
|
+
new FluxCDConnector(),
|
|
94
|
+
new HelmConnector(),
|
|
95
|
+
new ArtifactoryConnector(),
|
|
96
|
+
new NexusConnector(),
|
|
97
|
+
// Identity & Access (5)
|
|
98
|
+
new PingFederateConnector(),
|
|
99
|
+
new ForgeRockConnector(),
|
|
100
|
+
new CyberArkConnector(),
|
|
101
|
+
new BeyondTrustConnector(),
|
|
102
|
+
new SailPointConnector(),
|
|
103
|
+
// Data & Analytics (5)
|
|
104
|
+
new DatabricksConnector(),
|
|
105
|
+
new PalantirConnector(),
|
|
106
|
+
new TableauConnector(),
|
|
107
|
+
new PowerBIConnector(),
|
|
108
|
+
new LookerConnector(),
|
|
109
|
+
// Security Operations (5)
|
|
110
|
+
new TaniumConnector(),
|
|
111
|
+
new SentinelOneConnector(),
|
|
112
|
+
new CarbonBlackConnector(),
|
|
113
|
+
new TrendMicroConnector(),
|
|
114
|
+
new ESETConnector(),
|
|
115
|
+
// HR & Compliance (5)
|
|
116
|
+
new WorkdayConnector(),
|
|
117
|
+
new SAPSuccessFactorsConnector(),
|
|
118
|
+
new ADPConnector(),
|
|
119
|
+
new ZenefitsConnector(),
|
|
120
|
+
new NamelyConnector(),
|
|
121
|
+
// Finance & Legal (5)
|
|
122
|
+
new NetSuiteConnector(),
|
|
123
|
+
new QuickBooksConnector(),
|
|
124
|
+
new XeroConnector(),
|
|
125
|
+
new StripeConnector(),
|
|
126
|
+
new DocuSignConnector(),
|
|
127
|
+
// Communication (5)
|
|
128
|
+
new ZoomConnector(),
|
|
129
|
+
new WebexConnector(),
|
|
130
|
+
new TeamsConnector(),
|
|
131
|
+
new DiscordConnector(),
|
|
132
|
+
new RingCentralConnector(),
|
|
133
|
+
// --- 50 new connectors (150+ total) ---
|
|
134
|
+
// Cloud Infrastructure (10)
|
|
135
|
+
new AWSLambdaConnector(),
|
|
136
|
+
new AWSRDSConnector(),
|
|
137
|
+
new AWSKMSConnector(),
|
|
138
|
+
new AzureDevOpsPipelinesConnector(),
|
|
139
|
+
new GCPFirestoreConnector(),
|
|
140
|
+
new GCPBigQueryConnector(),
|
|
141
|
+
new GCPComputeConnector(),
|
|
142
|
+
new DigitalOceanConnector(),
|
|
143
|
+
new LinodeConnector(),
|
|
144
|
+
new VultrConnector(),
|
|
145
|
+
// Security (5 new)
|
|
146
|
+
new MalwarebytesConnector(),
|
|
147
|
+
new SophosConnector(),
|
|
148
|
+
new McAfeeConnector(),
|
|
149
|
+
new FSecureConnector(),
|
|
150
|
+
new KasperskyConnector(),
|
|
151
|
+
// DevOps (9 new)
|
|
152
|
+
new GitLabCIConnector(),
|
|
153
|
+
new BambooCICDConnector(),
|
|
154
|
+
new TeamCityConnector(),
|
|
155
|
+
new AzurePipelinesConnector(),
|
|
156
|
+
new BitbucketPipelinesConnector(),
|
|
157
|
+
new CloudBeesJenkinsConnector(),
|
|
158
|
+
new SpinnakerConnector(),
|
|
159
|
+
new LaunchDarklyConnector(),
|
|
160
|
+
new FeatureFlagConnector(),
|
|
161
|
+
// Data (10)
|
|
162
|
+
new MongoDBConnector(),
|
|
163
|
+
new PostgreSQLCloudConnector(),
|
|
164
|
+
new RedisCloudConnector(),
|
|
165
|
+
new ElasticsearchCloudConnector(),
|
|
166
|
+
new KafkaConnector(),
|
|
167
|
+
new RabbitMQConnector(),
|
|
168
|
+
new CassandraConnector(),
|
|
169
|
+
new CouchDBConnector(),
|
|
170
|
+
new Neo4jConnector(),
|
|
171
|
+
new InfluxDBConnector(),
|
|
172
|
+
// Other (10)
|
|
173
|
+
new ZapierConnector(),
|
|
174
|
+
new IFTTTConnector(),
|
|
175
|
+
new TwilioConnector(),
|
|
176
|
+
new SendGridConnector(),
|
|
177
|
+
new MailchimpConnector(),
|
|
178
|
+
new ConstantContactConnector(),
|
|
179
|
+
new ZendeskConnector(),
|
|
180
|
+
new FreshdeskConnector(),
|
|
181
|
+
new IntercomConnector(),
|
|
182
|
+
new DriftConnector(),
|
|
183
|
+
// Additional connectors for 150+ total
|
|
184
|
+
new CloudflareDNSConnector(),
|
|
185
|
+
new OpsgenieConnector(),
|
|
186
|
+
new GitHubCopilotConnector(),
|
|
187
|
+
new VercelConnector(),
|
|
188
|
+
new AWSCloudWatchConnector(),
|
|
189
|
+
new CircleCIConnectorsConnector(),
|
|
190
|
+
];
|
|
191
|
+
for (const connector of builtins) {
|
|
192
|
+
this.registrations.set(connector.id, {
|
|
193
|
+
connector,
|
|
194
|
+
enabled: true,
|
|
195
|
+
errorCount: 0,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
registerConnector(connector) {
|
|
200
|
+
this.registrations.set(connector.id, {
|
|
201
|
+
connector,
|
|
202
|
+
enabled: true,
|
|
203
|
+
errorCount: 0,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
unregisterConnector(connectorId) {
|
|
207
|
+
return this.registrations.delete(connectorId);
|
|
208
|
+
}
|
|
209
|
+
enableConnector(connectorId) {
|
|
210
|
+
const reg = this.registrations.get(connectorId);
|
|
211
|
+
if (reg)
|
|
212
|
+
reg.enabled = true;
|
|
213
|
+
}
|
|
214
|
+
disableConnector(connectorId) {
|
|
215
|
+
const reg = this.registrations.get(connectorId);
|
|
216
|
+
if (reg)
|
|
217
|
+
reg.enabled = false;
|
|
218
|
+
}
|
|
219
|
+
setConfig(connectorId, config) {
|
|
220
|
+
this.configs.set(connectorId, config);
|
|
221
|
+
}
|
|
222
|
+
getConnector(connectorId) {
|
|
223
|
+
return this.registrations.get(connectorId)?.connector;
|
|
224
|
+
}
|
|
225
|
+
getEnabledConnectors() {
|
|
226
|
+
return Array.from(this.registrations.values())
|
|
227
|
+
.filter((r) => r.enabled)
|
|
228
|
+
.map((r) => r.connector);
|
|
229
|
+
}
|
|
230
|
+
getConnectorsByCategory(category) {
|
|
231
|
+
return this.getEnabledConnectors().filter((c) => c.category === category);
|
|
232
|
+
}
|
|
233
|
+
getConnectorsByFramework(framework) {
|
|
234
|
+
return this.getEnabledConnectors().filter((c) => c.frameworks.includes(framework));
|
|
235
|
+
}
|
|
236
|
+
async testAllConnections() {
|
|
237
|
+
const results = new Map();
|
|
238
|
+
for (const [id, reg] of this.registrations) {
|
|
239
|
+
if (reg.enabled) {
|
|
240
|
+
const config = this.configs.get(id);
|
|
241
|
+
if (config) {
|
|
242
|
+
try {
|
|
243
|
+
results.set(id, await reg.connector.testConnection(config));
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
results.set(id, false);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
results.set(id, false);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return results;
|
|
255
|
+
}
|
|
256
|
+
async collectFromConnector(connectorId) {
|
|
257
|
+
const reg = this.registrations.get(connectorId);
|
|
258
|
+
if (!reg)
|
|
259
|
+
throw new Error(`Connector not found: ${connectorId}`);
|
|
260
|
+
const config = this.configs.get(connectorId);
|
|
261
|
+
if (!config)
|
|
262
|
+
throw new Error(`No config for connector: ${connectorId}`);
|
|
263
|
+
const job = {
|
|
264
|
+
id: `job-${Date.now()}-${connectorId}`,
|
|
265
|
+
connectorId,
|
|
266
|
+
startedAt: new Date().toISOString(),
|
|
267
|
+
status: "running",
|
|
268
|
+
artifacts: [],
|
|
269
|
+
};
|
|
270
|
+
this.jobs.push(job);
|
|
271
|
+
try {
|
|
272
|
+
job.artifacts = await reg.connector.collectEvidence(config);
|
|
273
|
+
job.status = "completed";
|
|
274
|
+
job.completedAt = new Date().toISOString();
|
|
275
|
+
reg.lastCollectedAt = job.completedAt;
|
|
276
|
+
reg.errorCount = 0;
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
job.status = "failed";
|
|
280
|
+
job.completedAt = new Date().toISOString();
|
|
281
|
+
job.error = err instanceof Error ? err.message : String(err);
|
|
282
|
+
reg.errorCount++;
|
|
283
|
+
}
|
|
284
|
+
return job;
|
|
285
|
+
}
|
|
286
|
+
async collectAll() {
|
|
287
|
+
const jobs = [];
|
|
288
|
+
for (const reg of this.registrations.values()) {
|
|
289
|
+
if (reg.enabled && this.configs.has(reg.connector.id)) {
|
|
290
|
+
jobs.push(await this.collectFromConnector(reg.connector.id));
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return jobs;
|
|
294
|
+
}
|
|
295
|
+
getStats() {
|
|
296
|
+
const connectors = this.getEnabledConnectors();
|
|
297
|
+
const byCategory = {};
|
|
298
|
+
const allFrameworks = new Set();
|
|
299
|
+
let totalCapabilities = 0;
|
|
300
|
+
for (const c of connectors) {
|
|
301
|
+
byCategory[c.category] = (byCategory[c.category] || 0) + 1;
|
|
302
|
+
totalCapabilities += c.capabilities.length;
|
|
303
|
+
for (const f of c.frameworks)
|
|
304
|
+
allFrameworks.add(f);
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
totalConnectors: connectors.length,
|
|
308
|
+
connectorsByCategory: byCategory,
|
|
309
|
+
totalCapabilities,
|
|
310
|
+
frameworksSupported: Array.from(allFrameworks),
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
getJobs() {
|
|
314
|
+
return [...this.jobs];
|
|
315
|
+
}
|
|
316
|
+
getRecentJobs(limit = 10) {
|
|
317
|
+
return this.jobs.slice(-limit);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
|
|
2
|
+
export declare class ADPConnector implements IntegrationConnector {
|
|
3
|
+
readonly id = "adp";
|
|
4
|
+
readonly name = "ADP";
|
|
5
|
+
readonly category: "hr";
|
|
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,97 @@
|
|
|
1
|
+
import { hashEvidence, generateEvidenceId } from "../types.js";
|
|
2
|
+
const capabilities = [
|
|
3
|
+
{
|
|
4
|
+
id: "adp-employees",
|
|
5
|
+
name: "Employee Records",
|
|
6
|
+
description: "Fetch employee data, status, and org hierarchy",
|
|
7
|
+
evidenceCategories: ["access_control", "data_protection"],
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
id: "adp-compliance",
|
|
11
|
+
name: "Compliance Management",
|
|
12
|
+
description: "Fetch I-9, W-4, and tax compliance statuses",
|
|
13
|
+
evidenceCategories: ["compliance", "monitoring"],
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: "adp-access",
|
|
17
|
+
name: "User Permissions",
|
|
18
|
+
description: "Fetch ADP account permissions and role assignments",
|
|
19
|
+
evidenceCategories: ["access_control", "configuration"],
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: "adp-audit",
|
|
23
|
+
name: "Change Audit",
|
|
24
|
+
description: "Fetch payroll and employee data change logs",
|
|
25
|
+
evidenceCategories: ["monitoring", "access_control"],
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
export class ADPConnector {
|
|
29
|
+
id = "adp";
|
|
30
|
+
name = "ADP";
|
|
31
|
+
category = "hr";
|
|
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://api.adp.com";
|
|
42
|
+
const resp = await fetch(`${base}${endpoint}`, {
|
|
43
|
+
headers: {
|
|
44
|
+
Authorization: `Bearer ${config.apiToken}`,
|
|
45
|
+
"Content-Type": "application/json",
|
|
46
|
+
Accept: "application/json",
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
if (!resp.ok)
|
|
50
|
+
throw new Error(`ADP API ${resp.status}: ${resp.statusText}`);
|
|
51
|
+
return (await resp.json());
|
|
52
|
+
}
|
|
53
|
+
async testConnection(config) {
|
|
54
|
+
try {
|
|
55
|
+
await this.fetchApi(config, "/hr/v2/workers?$top=1");
|
|
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 workers = await this.fetchApi(config, "/hr/v2/workers?$top=100").catch(() => ({
|
|
66
|
+
workers: [],
|
|
67
|
+
}));
|
|
68
|
+
artifacts.push({
|
|
69
|
+
id: generateEvidenceId(),
|
|
70
|
+
connectorId: this.id,
|
|
71
|
+
capabilityId: "adp-employees",
|
|
72
|
+
timestamp: now,
|
|
73
|
+
hash: hashEvidence(workers),
|
|
74
|
+
framework: "SOC2",
|
|
75
|
+
controlId: "CC6.1",
|
|
76
|
+
source: "adp/workers",
|
|
77
|
+
status: workers.workers?.length > 0 ? "compliant" : "unknown",
|
|
78
|
+
data: { workerCount: workers.workers?.length || 0 },
|
|
79
|
+
metadata: {},
|
|
80
|
+
});
|
|
81
|
+
const users = await this.fetchApi(config, "/admin/v1/users").catch(() => ({ resources: [] }));
|
|
82
|
+
artifacts.push({
|
|
83
|
+
id: generateEvidenceId(),
|
|
84
|
+
connectorId: this.id,
|
|
85
|
+
capabilityId: "adp-access",
|
|
86
|
+
timestamp: now,
|
|
87
|
+
hash: hashEvidence(users),
|
|
88
|
+
framework: "ISO27001",
|
|
89
|
+
controlId: "A.6.2.1",
|
|
90
|
+
source: "adp/users",
|
|
91
|
+
status: users.resources?.length > 0 ? "compliant" : "non_compliant",
|
|
92
|
+
data: { adminUsers: users.resources?.length || 0 },
|
|
93
|
+
metadata: {},
|
|
94
|
+
});
|
|
95
|
+
return artifacts;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
|
|
2
|
+
export declare class AWSCloudTrailConnector implements IntegrationConnector {
|
|
3
|
+
readonly id = "aws-cloudtrail";
|
|
4
|
+
readonly name = "AWS CloudTrail";
|
|
5
|
+
readonly category: "cloud_provider";
|
|
6
|
+
readonly authType: "service_account";
|
|
7
|
+
readonly capabilities: IntegrationCapability[];
|
|
8
|
+
readonly frameworks: ComplianceFramework[];
|
|
9
|
+
private fetchCloudTrail;
|
|
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: "ct-audit-logs",
|
|
5
|
+
name: "CloudTrail Audit Logs",
|
|
6
|
+
description: "Fetch CloudTrail event history and trail configuration",
|
|
7
|
+
evidenceCategories: ["logging", "audit"],
|
|
8
|
+
},
|
|
9
|
+
];
|
|
10
|
+
export class AWSCloudTrailConnector {
|
|
11
|
+
id = "aws-cloudtrail";
|
|
12
|
+
name = "AWS CloudTrail";
|
|
13
|
+
category = "cloud_provider";
|
|
14
|
+
authType = "service_account";
|
|
15
|
+
capabilities = capabilities;
|
|
16
|
+
frameworks = [
|
|
17
|
+
"SOC2",
|
|
18
|
+
"ISO27001",
|
|
19
|
+
"NIST_CSF",
|
|
20
|
+
"HIPAA",
|
|
21
|
+
"PCI_DSS",
|
|
22
|
+
];
|
|
23
|
+
async fetchCloudTrail(config, action, params = {}) {
|
|
24
|
+
const region = config.region || "us-east-1";
|
|
25
|
+
const host = `cloudtrail.${region}.amazonaws.com`;
|
|
26
|
+
const query = new URLSearchParams({ Action: action, Version: "2013-11-01", ...params });
|
|
27
|
+
const resp = await fetch(`https://${host}/?${query}`, {
|
|
28
|
+
headers: {
|
|
29
|
+
Authorization: `AWS4-HMAC-SHA256 Credential=${config.apiToken}/${region}/cloudtrail/aws4_request`,
|
|
30
|
+
"X-Amz-Date": new Date().toISOString().replace(/[:-]|\.\d{3}/g, ""),
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
if (!resp.ok)
|
|
34
|
+
throw new Error(`CloudTrail ${resp.status}`);
|
|
35
|
+
return (await resp.json());
|
|
36
|
+
}
|
|
37
|
+
async testConnection(config) {
|
|
38
|
+
try {
|
|
39
|
+
await this.fetchCloudTrail(config, "DescribeTrails");
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async collectEvidence(config) {
|
|
47
|
+
const now = new Date().toISOString();
|
|
48
|
+
const trails = await this.fetchCloudTrail(config, "DescribeTrails").catch(() => ({
|
|
49
|
+
trailList: [],
|
|
50
|
+
}));
|
|
51
|
+
const trailList = (trails.trailList || []);
|
|
52
|
+
return [
|
|
53
|
+
{
|
|
54
|
+
id: generateEvidenceId(),
|
|
55
|
+
connectorId: this.id,
|
|
56
|
+
capabilityId: "ct-audit-logs",
|
|
57
|
+
timestamp: now,
|
|
58
|
+
hash: hashEvidence(trails),
|
|
59
|
+
framework: "SOC2",
|
|
60
|
+
controlId: "CC7.1",
|
|
61
|
+
source: "aws-cloudtrail/DescribeTrails",
|
|
62
|
+
status: trailList.length > 0 ? "compliant" : "non_compliant",
|
|
63
|
+
data: {
|
|
64
|
+
trailCount: trailList.length,
|
|
65
|
+
trails: trailList.map((t) => ({
|
|
66
|
+
name: t.Name,
|
|
67
|
+
s3BucketName: t.S3BucketName,
|
|
68
|
+
isMultiRegionTrail: t.IsMultiRegionTrail,
|
|
69
|
+
isOrganizationTrail: t.IsOrganizationTrail,
|
|
70
|
+
logFileValidationEnabled: t.LogFileValidationEnabled,
|
|
71
|
+
})),
|
|
72
|
+
},
|
|
73
|
+
metadata: { region: config.region || "us-east-1" },
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IntegrationConnector, ConnectorConfig, EvidenceArtifact, IntegrationCapability, ComplianceFramework } from "../types.js";
|
|
2
|
+
export declare class AWSCloudWatchConnector implements IntegrationConnector {
|
|
3
|
+
readonly id = "aws-cloudwatch";
|
|
4
|
+
readonly name = "AWS CloudWatch";
|
|
5
|
+
readonly category: "monitoring";
|
|
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,70 @@
|
|
|
1
|
+
import { hashEvidence, generateEvidenceId } from "../types.js";
|
|
2
|
+
const capabilities = [
|
|
3
|
+
{
|
|
4
|
+
id: "cloudwatch-alarms",
|
|
5
|
+
name: "CloudWatch Alarms",
|
|
6
|
+
description: "Fetch CloudWatch alarm configurations and state history",
|
|
7
|
+
evidenceCategories: ["monitoring", "configuration"],
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
id: "cloudwatch-logs",
|
|
11
|
+
name: "Log Groups",
|
|
12
|
+
description: "Fetch CloudWatch log group retention settings and metric filters",
|
|
13
|
+
evidenceCategories: ["data_protection", "monitoring"],
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: "cloudwatch-dashboards",
|
|
17
|
+
name: "Monitoring Dashboards",
|
|
18
|
+
description: "Fetch CloudWatch dashboard definitions and metric widgets",
|
|
19
|
+
evidenceCategories: ["monitoring", "configuration"],
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
export class AWSCloudWatchConnector {
|
|
23
|
+
id = "aws-cloudwatch";
|
|
24
|
+
name = "AWS CloudWatch";
|
|
25
|
+
category = "monitoring";
|
|
26
|
+
authType = "service_account";
|
|
27
|
+
capabilities = capabilities;
|
|
28
|
+
frameworks = ["SOC2", "ISO27001", "NIST_CSF", "PCI_DSS"];
|
|
29
|
+
async fetchApi(config, endpoint) {
|
|
30
|
+
const base = config.baseUrl || "https://monitoring.us-east-1.amazonaws.com";
|
|
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(`AWS CloudWatch API ${resp.status}: ${resp.statusText}`);
|
|
39
|
+
return (await resp.json());
|
|
40
|
+
}
|
|
41
|
+
async testConnection(config) {
|
|
42
|
+
try {
|
|
43
|
+
await this.fetchApi(config, "/?Action=DescribeAlarms&MaxRecords=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 alarms = await this.fetchApi(config, "/?Action=DescribeAlarms&MaxRecords=100").catch(() => ({ MetricAlarms: [] }));
|
|
54
|
+
const alarmList = (alarms.MetricAlarms || []);
|
|
55
|
+
artifacts.push({
|
|
56
|
+
id: generateEvidenceId(),
|
|
57
|
+
connectorId: this.id,
|
|
58
|
+
capabilityId: "cloudwatch-alarms",
|
|
59
|
+
timestamp: now,
|
|
60
|
+
hash: hashEvidence({ alarmCount: alarmList.length }),
|
|
61
|
+
framework: "SOC2",
|
|
62
|
+
controlId: "CC7.1",
|
|
63
|
+
source: "aws-cloudwatch/alarms",
|
|
64
|
+
status: alarmList.length > 0 ? "compliant" : "unknown",
|
|
65
|
+
data: { alarmCount: alarmList.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 AWSGuardDutyConnector implements IntegrationConnector {
|
|
3
|
+
readonly id = "aws_guardduty";
|
|
4
|
+
readonly name = "AWS GuardDuty";
|
|
5
|
+
readonly category: "cloud_provider";
|
|
6
|
+
readonly authType: "service_account";
|
|
7
|
+
readonly capabilities: IntegrationCapability[];
|
|
8
|
+
readonly frameworks: ComplianceFramework[];
|
|
9
|
+
private signRequest;
|
|
10
|
+
testConnection(config: ConnectorConfig): Promise<boolean>;
|
|
11
|
+
collectEvidence(config: ConnectorConfig): Promise<EvidenceArtifact[]>;
|
|
12
|
+
}
|