@meyicloud/meyi-insight-server 1.1.11 → 1.1.12
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/features/sources/cloudtrail/controller.d.ts +5 -0
- package/dist/features/sources/cloudtrail/controller.d.ts.map +1 -1
- package/dist/features/sources/cloudtrail/controller.js +96 -25
- package/dist/features/sources/cloudtrail/controller.js.map +1 -1
- package/dist/features/sources/cloudtrail/reconciler.d.ts +17 -0
- package/dist/features/sources/cloudtrail/reconciler.d.ts.map +1 -1
- package/dist/features/sources/cloudtrail/reconciler.js +59 -1
- package/dist/features/sources/cloudtrail/reconciler.js.map +1 -1
- package/dist/features/sources/cloudtrail/schema.d.ts.map +1 -1
- package/dist/features/sources/cloudtrail/schema.js +3 -0
- package/dist/features/sources/cloudtrail/schema.js.map +1 -1
- package/dist/features/sources/cloudtrail/template.d.ts +24 -0
- package/dist/features/sources/cloudtrail/template.d.ts.map +1 -1
- package/dist/features/sources/cloudtrail/template.js +147 -88
- package/dist/features/sources/cloudtrail/template.js.map +1 -1
- package/dist/migrations/run.d.ts.map +1 -1
- package/dist/migrations/run.js +34 -0
- package/dist/migrations/run.js.map +1 -1
- package/dist/models/source.model.d.ts +8 -0
- package/dist/models/source.model.d.ts.map +1 -1
- package/dist/models/source.model.js +19 -0
- package/dist/models/source.model.js.map +1 -1
- package/dist/services/source.service.d.ts +2 -0
- package/dist/services/source.service.d.ts.map +1 -1
- package/dist/services/source.service.js +3 -0
- package/dist/services/source.service.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { Request, Response } from "express";
|
|
2
2
|
import type { SourceService } from "../../../services/source.service.js";
|
|
3
3
|
import type { ConnectorService } from "../../../services/connector.service.js";
|
|
4
|
+
/**
|
|
5
|
+
* Parent-stack COMPLETE only means CloudFormation finished; the StackSet instances may still
|
|
6
|
+
* have failed. Never let it overwrite a failure reported by a StackSet / instance event.
|
|
7
|
+
*/
|
|
8
|
+
export declare function shouldKeepFailedStatus(currentStatus: string | null | undefined, nextStatus: string, detailType: string | null | undefined): boolean;
|
|
4
9
|
export declare function createCloudTrailSourceController(sourceService: SourceService, connectorService?: ConnectorService): {
|
|
5
10
|
/**
|
|
6
11
|
* GET /:id/aws/cloudtrail/setup
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAqG/E;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACpC,OAAO,CAMT;AAOD,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,aAAa,EAC5B,gBAAgB,CAAC,EAAE,gBAAgB;IAyBjC;;;OAGG;kBACiB,OAAO,OAAO,QAAQ;IAkC1C;;;;;;;;;OASG;0BACyB,OAAO,OAAO,QAAQ;IAgNlD;;;OAGG;+BAC8B,OAAO,OAAO,QAAQ;IA0CvD;;;OAGG;gCAC+B,OAAO,OAAO,QAAQ;IAmFxD;;;;OAIG;0BACyB,OAAO,OAAO,QAAQ;EAmDrD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { timingSafeEqual } from "node:crypto";
|
|
2
|
-
import { buildCloudTrailCentralStackTemplate, ALL_AWS_ACTIVE_REGIONS } from "./template.js";
|
|
2
|
+
import { buildCloudTrailCentralStackTemplate, ALL_AWS_ACTIVE_REGIONS, l1StackName, l1StackSetName, resolveMeyiEnvironment, } from "./template.js";
|
|
3
3
|
import { resolveTenantId } from "../../../tenancy.js";
|
|
4
4
|
import { reconcileCloudTrailDeployment } from "./reconciler.js";
|
|
5
5
|
function normalizeSourceType(value) {
|
|
@@ -45,12 +45,6 @@ function buildPublicBaseUrl(req) {
|
|
|
45
45
|
}
|
|
46
46
|
return stripTrailingSlash(`${proto}://${host}`);
|
|
47
47
|
}
|
|
48
|
-
function sanitizeAwsName(value, fallback, maxLength) {
|
|
49
|
-
const raw = String(value || "").trim();
|
|
50
|
-
const base = raw || fallback;
|
|
51
|
-
const cleaned = base.replace(/[^a-zA-Z0-9-_]/g, "-").replace(/-+/g, "-").replace(/^-+|-+$/g, "");
|
|
52
|
-
return (cleaned || fallback).slice(0, maxLength);
|
|
53
|
-
}
|
|
54
48
|
function buildAwsConsoleCreateStackUrl(input) {
|
|
55
49
|
const region = encodeURIComponent(input.region || "ap-south-1");
|
|
56
50
|
const stackName = encodeURIComponent(input.stackName);
|
|
@@ -74,12 +68,44 @@ function isAwsSupportedTemplateUrl(value) {
|
|
|
74
68
|
return false;
|
|
75
69
|
}
|
|
76
70
|
}
|
|
71
|
+
const L1_STACK_EXISTS_MESSAGE = "This AWS account already has L1 security monitoring for this environment. " +
|
|
72
|
+
"Remove the existing CloudTrail source (and its CloudFormation stack) before adding another.";
|
|
73
|
+
function isUniqueViolation(e) {
|
|
74
|
+
return e?.code === "23505" || e?.cause?.code === "23505";
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Parent-stack COMPLETE only means CloudFormation finished; the StackSet instances may still
|
|
78
|
+
* have failed. Never let it overwrite a failure reported by a StackSet / instance event.
|
|
79
|
+
*/
|
|
80
|
+
export function shouldKeepFailedStatus(currentStatus, nextStatus, detailType) {
|
|
81
|
+
return (String(currentStatus || "").toLowerCase() === "failed" &&
|
|
82
|
+
nextStatus === "deployed" &&
|
|
83
|
+
detailType === "CloudFormation Stack Status Change");
|
|
84
|
+
}
|
|
77
85
|
function tokensEqual(given, expected) {
|
|
78
86
|
const a = Buffer.from(given);
|
|
79
87
|
const b = Buffer.from(expected);
|
|
80
88
|
return a.length === b.length && timingSafeEqual(a, b);
|
|
81
89
|
}
|
|
82
90
|
export function createCloudTrailSourceController(sourceService, connectorService) {
|
|
91
|
+
/**
|
|
92
|
+
* Responds 409 when another source already has an active L1 stack in this account for this
|
|
93
|
+
* environment. Only reveals the other source's id when it belongs to the caller's tenant.
|
|
94
|
+
*/
|
|
95
|
+
async function rejectIfAccountTaken(res, sourceId, deployAccountId, tenantId) {
|
|
96
|
+
if (!deployAccountId)
|
|
97
|
+
return false;
|
|
98
|
+
const other = await sourceService.findActiveCloudTrailByDeployAccount(deployAccountId, sourceId);
|
|
99
|
+
if (!other)
|
|
100
|
+
return false;
|
|
101
|
+
res.status(409).json({
|
|
102
|
+
ok: false,
|
|
103
|
+
code: "L1_STACK_EXISTS",
|
|
104
|
+
error: L1_STACK_EXISTS_MESSAGE,
|
|
105
|
+
existingSourceId: tenantId && other.tenantId === tenantId ? other.sourceId : undefined,
|
|
106
|
+
});
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
83
109
|
return {
|
|
84
110
|
/**
|
|
85
111
|
* GET /:id/aws/cloudtrail/setup
|
|
@@ -106,7 +132,7 @@ export function createCloudTrailSourceController(sourceService, connectorService
|
|
|
106
132
|
},
|
|
107
133
|
setup: {
|
|
108
134
|
awsRegion: String(source.awsRegion || "ap-south-1"),
|
|
109
|
-
awsStackName: String(source.awsStackName ||
|
|
135
|
+
awsStackName: String(source.awsStackName || l1StackName(resolveMeyiEnvironment())),
|
|
110
136
|
awsCreateNewTrail: source.awsCreateNewTrail !== false, // default true
|
|
111
137
|
awsDeploymentStatus: String(source.awsDeploymentStatus || "not_started"),
|
|
112
138
|
awsDeploymentStatusReason: source.awsDeploymentStatusReason ?? null,
|
|
@@ -141,7 +167,15 @@ export function createCloudTrailSourceController(sourceService, connectorService
|
|
|
141
167
|
source = await reconcileCloudTrailDeployment(source, sourceService, connectorService, tenantId);
|
|
142
168
|
}
|
|
143
169
|
const region = String(req.query.region || source.awsRegion || "ap-south-1").trim() || "ap-south-1";
|
|
144
|
-
|
|
170
|
+
// Fixed per environment: one L1 security stack per environment per AWS account.
|
|
171
|
+
// Any caller-supplied stackName is ignored. A stack that is already pending/deployed
|
|
172
|
+
// keeps its recorded name (older stacks were named meyi-cloudtrail-<id>), because the
|
|
173
|
+
// detail page calls this endpoint just to show the setup and the reconciler needs it.
|
|
174
|
+
const environment = resolveMeyiEnvironment();
|
|
175
|
+
const currentStatus = String(source.awsDeploymentStatus || "").toLowerCase();
|
|
176
|
+
const stackName = (currentStatus === "pending" || currentStatus === "deployed") && source.awsStackName
|
|
177
|
+
? String(source.awsStackName)
|
|
178
|
+
: l1StackName(environment);
|
|
145
179
|
// createNewTrail: query param > stored value > default true
|
|
146
180
|
let createNewTrail;
|
|
147
181
|
if (req.query.createNewTrail !== undefined) {
|
|
@@ -213,15 +247,29 @@ export function createCloudTrailSourceController(sourceService, connectorService
|
|
|
213
247
|
}
|
|
214
248
|
// targetRegions: always deploy to all active regions (not user-specified)
|
|
215
249
|
const targetRegions = "";
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
250
|
+
// The account the stack is created in: management account (Organizations) or the target account.
|
|
251
|
+
const deployAccountId = (deploymentMode === "Organizations" ? managementAccountId : targetAccounts) || null;
|
|
252
|
+
if (await rejectIfAccountTaken(res, source.id, deployAccountId, tenantId))
|
|
253
|
+
return;
|
|
254
|
+
try {
|
|
255
|
+
await sourceService.updateCloudTrailSetup(source.id, {
|
|
256
|
+
awsDeployAccountId: deployAccountId,
|
|
257
|
+
awsRegion: region,
|
|
258
|
+
awsStackName: stackName,
|
|
259
|
+
awsCreateNewTrail: createNewTrail,
|
|
260
|
+
awsDeploymentMode: deploymentMode,
|
|
261
|
+
awsTargetOUs: targetOUs || null,
|
|
262
|
+
awsTargetAccounts: targetAccounts || null,
|
|
263
|
+
awsTargetRegions: null, // always all active regions
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
catch (e) {
|
|
267
|
+
// This source is already pending/deployed and another source took the account first.
|
|
268
|
+
if (isUniqueViolation(e)) {
|
|
269
|
+
return res.status(409).json({ ok: false, code: "L1_STACK_EXISTS", error: L1_STACK_EXISTS_MESSAGE });
|
|
270
|
+
}
|
|
271
|
+
throw e;
|
|
272
|
+
}
|
|
225
273
|
const baseUrl = buildPublicBaseUrl(req);
|
|
226
274
|
const webhookPath = `/api/v1/insight/webhook/${source.webhookToken}`;
|
|
227
275
|
let webhookUrl = `${baseUrl}${webhookPath}`;
|
|
@@ -245,7 +293,7 @@ export function createCloudTrailSourceController(sourceService, connectorService
|
|
|
245
293
|
});
|
|
246
294
|
// StackSet name (predictable from the central stack name)
|
|
247
295
|
// Used by the frontend to build the "Add instances" console link
|
|
248
|
-
const stackSetName =
|
|
296
|
+
const stackSetName = l1StackSetName(environment);
|
|
249
297
|
const encodedRegion = encodeURIComponent(region);
|
|
250
298
|
const encodedStackSetName = encodeURIComponent(stackSetName);
|
|
251
299
|
// URL to the "Add stacks to StackSet" wizard in AWS Console (no OU ID needed — wizard handles it)
|
|
@@ -305,12 +353,25 @@ export function createCloudTrailSourceController(sourceService, connectorService
|
|
|
305
353
|
if (!isCloudTrailType(source.type)) {
|
|
306
354
|
return res.status(400).json({ ok: false, error: "Source type must be cloudtrail" });
|
|
307
355
|
}
|
|
308
|
-
const stackName =
|
|
309
|
-
const
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
356
|
+
const stackName = l1StackName(resolveMeyiEnvironment());
|
|
357
|
+
const tenantId = resolveTenantId(req);
|
|
358
|
+
if (await rejectIfAccountTaken(res, source.id, source.awsDeployAccountId ?? null, tenantId))
|
|
359
|
+
return;
|
|
360
|
+
let updated;
|
|
361
|
+
try {
|
|
362
|
+
updated = await sourceService.updateCloudTrailDeployment(source.id, {
|
|
363
|
+
awsDeploymentStatus: "pending",
|
|
364
|
+
awsDeploymentStatusReason: "AWS Console stack creation opened",
|
|
365
|
+
awsStackName: stackName,
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
catch (e) {
|
|
369
|
+
// Lost a race with another source for the same account (partial unique index).
|
|
370
|
+
if (isUniqueViolation(e)) {
|
|
371
|
+
return res.status(409).json({ ok: false, code: "L1_STACK_EXISTS", error: L1_STACK_EXISTS_MESSAGE });
|
|
372
|
+
}
|
|
373
|
+
throw e;
|
|
374
|
+
}
|
|
314
375
|
return res.json({
|
|
315
376
|
ok: true,
|
|
316
377
|
source: {
|
|
@@ -356,6 +417,7 @@ export function createCloudTrailSourceController(sourceService, connectorService
|
|
|
356
417
|
return res.status(403).json({ ok: false, error: "Invalid deployment status token" });
|
|
357
418
|
}
|
|
358
419
|
let parsedBody = req.body;
|
|
420
|
+
const detailType = req.body?.["detail-type"] ?? null;
|
|
359
421
|
if (req.body?.source === "aws.cloudformation" && req.body?.detail) {
|
|
360
422
|
const detail = req.body.detail;
|
|
361
423
|
const statusDetails = detail["status-details"] || {};
|
|
@@ -381,6 +443,15 @@ export function createCloudTrailSourceController(sourceService, connectorService
|
|
|
381
443
|
}
|
|
382
444
|
const allowed = new Set(["not_started", "pending", "deployed", "failed", "deleted"]);
|
|
383
445
|
const status = allowed.has(requestedStatus) ? requestedStatus : "pending";
|
|
446
|
+
if (shouldKeepFailedStatus(source.awsDeploymentStatus, status, detailType)) {
|
|
447
|
+
return res.json({
|
|
448
|
+
ok: true,
|
|
449
|
+
sourceId: source.id,
|
|
450
|
+
awsDeploymentStatus: source.awsDeploymentStatus,
|
|
451
|
+
awsDeploymentStatusReason: source.awsDeploymentStatusReason ?? null,
|
|
452
|
+
awsStackId: source.awsStackId ?? null,
|
|
453
|
+
});
|
|
454
|
+
}
|
|
384
455
|
const updated = await sourceService.updateCloudTrailDeployment(source.id, {
|
|
385
456
|
awsDeploymentStatus: status,
|
|
386
457
|
awsDeploymentStatusReason: String(parsedBody?.reason || "").trim() || (status === "deployed" ? "Deployment completed in AWS" : null),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,25 @@
|
|
|
1
|
+
import { CloudFormationClient } from "@aws-sdk/client-cloudformation";
|
|
1
2
|
import type { SourceService } from "../../../services/source.service.js";
|
|
2
3
|
import type { ConnectorService } from "../../../services/connector.service.js";
|
|
4
|
+
type InstanceCheck = {
|
|
5
|
+
state: "ok";
|
|
6
|
+
} | {
|
|
7
|
+
state: "pending";
|
|
8
|
+
} | {
|
|
9
|
+
state: "failed";
|
|
10
|
+
reason: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* The parent stack can be CREATE_COMPLETE while StackSet instances failed (failure tolerance
|
|
14
|
+
* in Organizations mode). Looks at every StackSet this environment's stack creates.
|
|
15
|
+
* Returns "ok" when the instances cannot be listed (e.g. missing permission) so the
|
|
16
|
+
* reconciler behaves as it did before rather than getting stuck.
|
|
17
|
+
*/
|
|
18
|
+
export declare function checkL1StackInstances(cfnClient: Pick<InstanceType<typeof CloudFormationClient>, "send">, environment: string, deploymentMode: string | null | undefined): Promise<InstanceCheck>;
|
|
3
19
|
/**
|
|
4
20
|
* Reconciles CloudTrail deployment status by checking actual CloudFormation / StackSet state in AWS.
|
|
5
21
|
* This runs automatically whenever a pending CloudTrail source is loaded by the UI or queried by poller.
|
|
6
22
|
*/
|
|
7
23
|
export declare function reconcileCloudTrailDeployment(source: any, sourceService: SourceService, connectorService?: ConnectorService, tenantId?: string): Promise<any>;
|
|
24
|
+
export {};
|
|
8
25
|
//# sourceMappingURL=reconciler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/reconciler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/reconciler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EAIrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG/E,KAAK,aAAa,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,oBAAoB,CAAC,EAAE,MAAM,CAAC,EAClE,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACxC,OAAO,CAAC,aAAa,CAAC,CAkCxB;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,GAAG,EACX,aAAa,EAAE,aAAa,EAC5B,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CAsId"}
|
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
import { STSClient, AssumeRoleCommand } from "@aws-sdk/client-sts";
|
|
2
|
-
import { CloudFormationClient, DescribeStacksCommand, DescribeStackSetCommand, } from "@aws-sdk/client-cloudformation";
|
|
2
|
+
import { CloudFormationClient, DescribeStacksCommand, DescribeStackSetCommand, ListStackInstancesCommand, } from "@aws-sdk/client-cloudformation";
|
|
3
|
+
import { l1StackName, l1StackSetName, resolveMeyiEnvironment } from "./template.js";
|
|
4
|
+
/**
|
|
5
|
+
* The parent stack can be CREATE_COMPLETE while StackSet instances failed (failure tolerance
|
|
6
|
+
* in Organizations mode). Looks at every StackSet this environment's stack creates.
|
|
7
|
+
* Returns "ok" when the instances cannot be listed (e.g. missing permission) so the
|
|
8
|
+
* reconciler behaves as it did before rather than getting stuck.
|
|
9
|
+
*/
|
|
10
|
+
export async function checkL1StackInstances(cfnClient, environment, deploymentMode) {
|
|
11
|
+
const base = l1StackSetName(environment);
|
|
12
|
+
const names = [base, `${base}-Global`];
|
|
13
|
+
if (deploymentMode === "Organizations")
|
|
14
|
+
names.push(`${base}-Mgmt`, `${base}-Global-Mgmt`);
|
|
15
|
+
for (const StackSetName of names) {
|
|
16
|
+
let NextToken;
|
|
17
|
+
try {
|
|
18
|
+
do {
|
|
19
|
+
const resp = await cfnClient.send(new ListStackInstancesCommand({ StackSetName, NextToken, CallAs: "SELF" }));
|
|
20
|
+
for (const inst of resp.Summaries ?? []) {
|
|
21
|
+
const detailed = String(inst.StackInstanceStatus?.DetailedStatus || "").toUpperCase();
|
|
22
|
+
if (detailed === "PENDING" || detailed === "RUNNING")
|
|
23
|
+
return { state: "pending" };
|
|
24
|
+
if (detailed === "FAILED" || detailed === "CANCELLED" || detailed === "INOPERABLE" || inst.Status === "INOPERABLE") {
|
|
25
|
+
return {
|
|
26
|
+
state: "failed",
|
|
27
|
+
reason: `StackSet ${StackSetName} instance ${inst.Account}/${inst.Region} ${detailed || inst.Status}: ${inst.StatusReason || "no reason given"}`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
NextToken = resp.NextToken;
|
|
32
|
+
} while (NextToken);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
// StackSetNotFound: that StackSet is not part of this deployment (e.g. management copy
|
|
36
|
+
// disabled). Anything else (AccessDenied, throttling): don't block on it.
|
|
37
|
+
if (err?.name !== "StackSetNotFoundException") {
|
|
38
|
+
console.warn(`[CloudTrail Reconciler] Could not list instances of ${StackSetName}: ${err?.message}`);
|
|
39
|
+
return { state: "ok" };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return { state: "ok" };
|
|
44
|
+
}
|
|
3
45
|
/**
|
|
4
46
|
* Reconciles CloudTrail deployment status by checking actual CloudFormation / StackSet state in AWS.
|
|
5
47
|
* This runs automatically whenever a pending CloudTrail source is loaded by the UI or queried by poller.
|
|
@@ -83,6 +125,22 @@ export async function reconcileCloudTrailDeployment(source, sourceService, conne
|
|
|
83
125
|
const isComplete = statusUpper === "CREATE_COMPLETE" || statusUpper === "UPDATE_COMPLETE";
|
|
84
126
|
const isFailed = statusUpper.includes("FAILED") || statusUpper.includes("ROLLBACK");
|
|
85
127
|
if (isComplete) {
|
|
128
|
+
// Only stacks built from the env-named template have predictable StackSet names.
|
|
129
|
+
const environment = resolveMeyiEnvironment();
|
|
130
|
+
if (stackName === l1StackName(environment)) {
|
|
131
|
+
const instances = await checkL1StackInstances(cfnClient, environment, source.awsDeploymentMode);
|
|
132
|
+
if (instances.state === "pending")
|
|
133
|
+
return source;
|
|
134
|
+
if (instances.state === "failed") {
|
|
135
|
+
const updated = await sourceService.updateCloudTrailDeployment(source.id, {
|
|
136
|
+
awsDeploymentStatus: "failed",
|
|
137
|
+
awsDeploymentStatusReason: instances.reason.slice(0, 1000),
|
|
138
|
+
awsStackId: stackId || source.awsStackId,
|
|
139
|
+
awsStackName: stackName,
|
|
140
|
+
}, effectiveTenantId);
|
|
141
|
+
return updated || { ...source, awsDeploymentStatus: "failed" };
|
|
142
|
+
}
|
|
143
|
+
}
|
|
86
144
|
const updated = await sourceService.updateCloudTrailDeployment(source.id, {
|
|
87
145
|
awsDeploymentStatus: "deployed",
|
|
88
146
|
awsDeploymentStatusReason: `CloudFormation stack ${stackStatus}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/reconciler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/schema.ts"],"names":[],"mappings":"AAEA,wBAAgB,mCAAmC,CAAC,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/schema.ts"],"names":[],"mappings":"AAEA,wBAAgB,mCAAmC,CAAC,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,OA8BxF"}
|
|
@@ -16,6 +16,9 @@ export function createInsightCloudTrailSourceSetups(meyiconnect, insightSources)
|
|
|
16
16
|
awsTargetOUs: text("aws_target_ous"), // comma-separated OU IDs or Root ID; null = all accounts
|
|
17
17
|
awsTargetAccounts: text("aws_target_accounts"), // comma-separated account IDs; null = all accounts in OU
|
|
18
18
|
awsTargetRegions: text("aws_target_regions"), // comma-separated region names; null = all active regions
|
|
19
|
+
// Account the L1 stack is deployed into: management account (Organizations) or the target
|
|
20
|
+
// account (Standalone). One pending/deployed stack per account per environment.
|
|
21
|
+
awsDeployAccountId: text("aws_deploy_account_id"),
|
|
19
22
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
20
23
|
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
|
|
21
24
|
}, (t) => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEzF,MAAM,UAAU,mCAAmC,CAAC,WAAgB,EAAE,cAAmB;IACvF,OAAO,WAAW,CAAC,KAAK,CACtB,kCAAkC,EAClC;QACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;QAC3C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;aACxB,OAAO,EAAE;aACT,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC/D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC;QACpC,iBAAiB,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1E,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;QACnF,yBAAyB,EAAE,IAAI,CAAC,8BAA8B,CAAC;QAC/D,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC;QAChC,6DAA6D;QAC7D,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QACvE,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAa,yDAAyD;QAC1G,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAG,yDAAyD;QAC1G,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAK,0DAA0D;QAC3G,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;QACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;KAClF,EACD,CAAC,CAAM,EAAE,EAAE,CAAC;QACV,WAAW,CAAC,gDAAgD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5E,KAAK,CAAC,6CAA6C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;KAC/E,CACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEzF,MAAM,UAAU,mCAAmC,CAAC,WAAgB,EAAE,cAAmB;IACvF,OAAO,WAAW,CAAC,KAAK,CACtB,kCAAkC,EAClC;QACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;QAC3C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;aACxB,OAAO,EAAE;aACT,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC/D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC;QACpC,iBAAiB,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1E,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;QACnF,yBAAyB,EAAE,IAAI,CAAC,8BAA8B,CAAC;QAC/D,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC;QAChC,6DAA6D;QAC7D,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QACvE,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAa,yDAAyD;QAC1G,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAG,yDAAyD;QAC1G,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAK,0DAA0D;QAC3G,0FAA0F;QAC1F,gFAAgF;QAChF,kBAAkB,EAAE,IAAI,CAAC,uBAAuB,CAAC;QACjD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;QACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;KAClF,EACD,CAAC,CAAM,EAAE,EAAE,CAAC;QACV,WAAW,CAAC,gDAAgD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5E,KAAK,CAAC,6CAA6C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;KAC/E,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -6,8 +6,30 @@
|
|
|
6
6
|
* __MEYI_WEBHOOK_URL__ → the source's authenticated webhook URL
|
|
7
7
|
* __MEYI_DEPLOYMENT_STATUS_URL__ → the deployment-status callback URL (token-gated)
|
|
8
8
|
* __MEYI_WEBHOOK_AUTH_TOKEN__ → webhook auth token
|
|
9
|
+
* __MEYI_ENVIRONMENT__ → MeyiConnect environment (MEYI_ENVIRONMENT, e.g. dev / prod)
|
|
10
|
+
*
|
|
11
|
+
* Every named AWS resource is meyi-<env>-l1-*, never derived from the stack name, so
|
|
12
|
+
* environments can share an AWS account and a second stack for the same environment in
|
|
13
|
+
* the same account fails on the name conflict.
|
|
9
14
|
*/
|
|
10
15
|
export declare const ALL_AWS_ACTIVE_REGIONS: string;
|
|
16
|
+
/**
|
|
17
|
+
* Normalises a MeyiConnect environment name ("dev", "prod", ...) for AWS resource names.
|
|
18
|
+
* Must match the template's MeyiEnvironment AllowedPattern. Throws on anything else
|
|
19
|
+
* rather than silently producing a name that could collide with another environment.
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeMeyiEnvironment(raw: string | null | undefined): string;
|
|
22
|
+
/**
|
|
23
|
+
* The environment this server belongs to, from MEYI_ENVIRONMENT (set on the backend ECS task).
|
|
24
|
+
* Falls back to "local" so a developer machine can never produce prod's resource names.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveMeyiEnvironment(env?: NodeJS.ProcessEnv): string;
|
|
27
|
+
/** All names below must stay in sync with the template's meyi-<env>-l1-* naming. */
|
|
28
|
+
export declare function l1NamePrefix(environment: string): string;
|
|
29
|
+
/** Fixed CloudFormation stack name: one L1 security stack per environment per AWS account. */
|
|
30
|
+
export declare function l1StackName(environment: string): string;
|
|
31
|
+
/** Name of the regional StackSet the stack creates (used for the "Add stacks" console link). */
|
|
32
|
+
export declare function l1StackSetName(environment: string): string;
|
|
11
33
|
export declare function buildCloudTrailCentralStackTemplate(input: {
|
|
12
34
|
webhookUrl: string;
|
|
13
35
|
webhookAuthToken?: string | null;
|
|
@@ -17,5 +39,7 @@ export declare function buildCloudTrailCentralStackTemplate(input: {
|
|
|
17
39
|
targetAccounts?: string;
|
|
18
40
|
targetRegions?: string;
|
|
19
41
|
targetOUs?: string;
|
|
42
|
+
/** MeyiConnect environment; defaults to MEYI_ENVIRONMENT. */
|
|
43
|
+
environment?: string;
|
|
20
44
|
}): string;
|
|
21
45
|
//# sourceMappingURL=template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/template.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../src/features/sources/cloudtrail/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,sBAAsB,QAUxB,CAAC;AA00CZ;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAQ/E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAUnF;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,eAAe,GAAG,YAAY,CAAC;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAuBT"}
|