@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
59 lines (58 loc) • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@cloudgraph/sdk");
const format_1 = require("../../utils/format");
const generateArns_1 = require("../../utils/generateArns");
/**
* GuardDutyDetector
*/
exports.default = ({ account, service: rawData, region, }) => {
const { id, CreatedAt: createdAt, FindingPublishingFrequency: findingPublishingFrequency, ServiceRole: serviceRole, Status: status, UpdatedAt: updatedAt, DataSources: dataSources, members = [], Tags, } = rawData;
const arn = generateArns_1.guardDutyArn({ region, account, detectorId: id });
const formattedDataSources = {
cloudTrail: {
status: dataSources?.CloudTrail?.Status,
},
dnsLogs: {
status: dataSources?.DNSLogs?.Status,
},
flowLogs: {
status: dataSources?.FlowLogs?.Status,
},
s3Logs: {
status: dataSources?.S3Logs?.Status,
},
// kubernetes: { TODO: k8s logs support, maybe need to update aws sdk?
// auditLogs: {
// status: dataSources?.
// }
// }
};
const mappedMembers = members?.map(member => ({
id: sdk_1.generateUniqueId({
arn,
...member,
}),
accountId: member?.AccountId,
detectorId: member?.DetectorId,
masterId: member?.MasterId,
email: member?.Email,
relationshipStatus: member?.RelationshipStatus,
invitedAt: new Date(member?.InvitedAt)?.toISOString(),
updatedAt: new Date(member?.UpdatedAt)?.toISOString(),
}));
return {
id,
arn,
region,
accountId: account,
createdAt: new Date(createdAt)?.toISOString(),
updatedAt: new Date(updatedAt)?.toISOString(),
findingPublishingFrequency,
serviceRole,
status,
members: mappedMembers,
dataSources: formattedDataSources,
tags: format_1.formatTagsFromMap(Tags ?? {}),
};
};