@prism-d1/cli 1.0.69 → 1.0.71

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.
@@ -222,89 +222,209 @@ jobs:
222
222
  \"EventBusName\":\"prism-d1-metrics\",
223
223
  \"Detail\":$(echo "${EVAL_EVENT}" | jq -c '.' | jq -Rs '.')}]"
224
224
 
225
- - name: Wait for Security Agent
226
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
225
+ - name: AWS Continuum diff scan
227
226
  id: security-gate
228
- with:
229
- script: |
230
- const pr = context.issue.number;
231
- const opts = { owner: context.repo.owner, repo: context.repo.repo };
232
-
233
- // Phase 1: Wait for Security Agent to start (2 min)
234
- let reviewingComment = null;
235
- for (let i = 0; i < 12; i++) {
236
- const { data: comments } = await github.rest.issues.listComments({ ...opts, issue_number: pr });
237
- reviewingComment = comments.find(c => c.user.login === 'aws-security-agent[bot]' && c.body.includes('reviewing your pull request'));
238
- if (reviewingComment) break;
239
- await new Promise(r => setTimeout(r, 10000));
240
- }
241
- if (!reviewingComment) { core.setOutput('findings', '0'); return; }
242
-
243
- // Phase 2: Wait for completion (10 min) — look after the "reviewing" comment
244
- const since = reviewingComment.created_at;
245
- for (let i = 0; i < 40; i++) {
246
- // Check for completed review submission (summary appears as review body, not issue comment)
247
- const { data: reviews } = await github.rest.pulls.listReviews({ ...opts, pull_number: pr });
248
- const botReview = reviews.find(r => r.user.login === 'aws-security-agent[bot]' && new Date(r.submitted_at) >= new Date(since));
249
- // Check for inline review comments
250
- const { data: reviewComments } = await github.rest.pulls.listReviewComments({ ...opts, pull_number: pr });
251
- const findings = reviewComments.filter(c => c.user.login === 'aws-security-agent[bot]' && new Date(c.created_at) >= new Date(since));
252
- if (botReview || findings.length > 0) {
253
- core.setOutput('findings', String(findings.length));
254
- return;
255
- }
256
- await new Promise(r => setTimeout(r, 15000));
257
- }
258
- core.setOutput('findings', '0');
227
+ env:
228
+ AWS_REGION: us-west-2
229
+ run: |
230
+ # Pre-flight: verify AWS CLI has securityagent subcommand
231
+ if ! aws securityagent help > /dev/null 2>&1; then
232
+ echo "::warning::AWS CLI does not support 'securityagent' commands (upgrade to v2.35+). Skipping scan."
233
+ echo "findings=0" >> "$GITHUB_OUTPUT"
234
+ echo "skipped=true" >> "$GITHUB_OUTPUT"
235
+ exit 0
236
+ fi
237
+
238
+ echo "::group::Retrieve Continuum config from SSM"
239
+ AGENT_SPACE_ID=$(aws ssm get-parameter --name /prism/continuum/agent-space-id --query Parameter.Value --output text 2>/dev/null || echo "")
240
+ SCAN_BUCKET=$(aws ssm get-parameter --name /prism/continuum/scan-bucket --query Parameter.Value --output text 2>/dev/null || echo "")
241
+ SERVICE_ROLE=$(aws ssm get-parameter --name /prism/continuum/service-role-arn --query Parameter.Value --output text 2>/dev/null || echo "")
242
+ echo "::endgroup::"
243
+
244
+ # Skip if core infrastructure not deployed
245
+ if [[ -z "$AGENT_SPACE_ID" || -z "$SCAN_BUCKET" ]]; then
246
+ echo "⚠️ AWS Continuum not configured (agent-space-id or scan-bucket missing). Skipping security scan."
247
+ echo "findings=0" >> "$GITHUB_OUTPUT"
248
+ echo "skipped=true" >> "$GITHUB_OUTPUT"
249
+ exit 0
250
+ fi
251
+
252
+ # Fallback for service role if SSM param not yet deployed
253
+ if [[ -z "$SERVICE_ROLE" ]]; then
254
+ ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
255
+ SERVICE_ROLE="arn:aws:iam::${ACCOUNT_ID}:role/prism-d1-security-agent-prism-d1-security"
256
+ echo "::notice::service-role-arn SSM param not found, using convention: ${SERVICE_ROLE}"
257
+ fi
258
+
259
+ # Derive repo slug for per-repo SSM key (org/repo → org-repo)
260
+ REPO_SLUG=$(echo "${{ github.repository }}" | tr '/' '-')
261
+
262
+ echo "::group::Resolve or bootstrap Code Review for ${REPO_SLUG}"
263
+ CODE_REVIEW_ID=$(aws ssm get-parameter --name "/prism/continuum/code-review-id/${REPO_SLUG}" --query Parameter.Value --output text 2>/dev/null || echo "")
264
+
265
+ if [[ -z "$CODE_REVIEW_ID" ]]; then
266
+ echo " No Code Review found for ${REPO_SLUG} — bootstrapping..."
267
+
268
+ # Upload repo ZIP as context for the diff scan
269
+ git archive HEAD --format=zip -o /tmp/repo.zip
270
+ aws s3 cp /tmp/repo.zip "s3://${SCAN_BUCKET}/repo/${REPO_SLUG}/latest.zip" --quiet
271
+
272
+ # Create Code Review resource
273
+ CR_RESPONSE=$(aws securityagent create-code-review \
274
+ --agent-space-id "${AGENT_SPACE_ID}" \
275
+ --title "${REPO_SLUG}-ci-diff-scan" \
276
+ --service-role "${SERVICE_ROLE}" \
277
+ --assets "{\"sourceCode\":[{\"s3Location\":\"s3://${SCAN_BUCKET}/repo/${REPO_SLUG}/latest.zip\"}]}" \
278
+ --output json 2>&1)
279
+
280
+ if echo "$CR_RESPONSE" | jq -e '.codeReviewId' > /dev/null 2>&1; then
281
+ CODE_REVIEW_ID=$(echo "$CR_RESPONSE" | jq -r '.codeReviewId')
282
+ echo " ✅ Code Review created: ${CODE_REVIEW_ID}"
283
+
284
+ # Persist for future runs
285
+ aws ssm put-parameter \
286
+ --name "/prism/continuum/code-review-id/${REPO_SLUG}" \
287
+ --value "${CODE_REVIEW_ID}" \
288
+ --type String --overwrite 2>/dev/null || true
289
+ else
290
+ echo " ⚠️ Failed to create Code Review: ${CR_RESPONSE}"
291
+ echo " Skipping scan (non-blocking)."
292
+ echo "findings=0" >> "$GITHUB_OUTPUT"
293
+ echo "skipped=true" >> "$GITHUB_OUTPUT"
294
+ exit 0
295
+ fi
296
+ else
297
+ echo " Using existing Code Review: ${CODE_REVIEW_ID}"
298
+
299
+ # Re-upload fresh repo ZIP (context for accurate cross-module analysis)
300
+ git archive HEAD --format=zip -o /tmp/repo.zip
301
+ aws s3 cp /tmp/repo.zip "s3://${SCAN_BUCKET}/repo/${REPO_SLUG}/latest.zip" --quiet
302
+ fi
303
+ echo "::endgroup::"
259
304
 
260
- - name: Forward Security Agent findings
261
- if: steps.security-gate.outputs.findings != '0'
305
+ echo "::group::Generate and upload diff"
306
+ BASE_SHA="${{ github.event.pull_request.base.sha }}"
307
+ HEAD_SHA="${{ github.sha }}"
308
+ git diff "${BASE_SHA}..${HEAD_SHA}" > /tmp/changes.patch
309
+
310
+ DIFF_SIZE=$(wc -c < /tmp/changes.patch)
311
+ if [[ "$DIFF_SIZE" -eq 0 ]]; then
312
+ echo "No changes to scan."
313
+ echo "findings=0" >> "$GITHUB_OUTPUT"
314
+ exit 0
315
+ fi
316
+
317
+ DIFF_KEY="diffs/${REPO_SLUG}/${{ github.event.pull_request.number }}/${HEAD_SHA}.patch"
318
+ aws s3 cp /tmp/changes.patch "s3://${SCAN_BUCKET}/${DIFF_KEY}" --quiet
319
+ echo "::endgroup::"
320
+
321
+ echo "::group::Start Continuum diff scan"
322
+ JOB_RESPONSE=$(aws securityagent start-code-review-job \
323
+ --agent-space-id "${AGENT_SPACE_ID}" \
324
+ --code-review-id "${CODE_REVIEW_ID}" \
325
+ --diff-source "{\"s3Uri\":\"s3://${SCAN_BUCKET}/${DIFF_KEY}\"}" \
326
+ --output json)
327
+
328
+ JOB_ID=$(echo "$JOB_RESPONSE" | jq -r '.codeReviewJobId')
329
+ echo "Job started: ${JOB_ID}"
330
+ echo "::endgroup::"
331
+
332
+ echo "::group::Poll for completion (timeout: 15 min)"
333
+ for i in $(seq 1 30); do
334
+ sleep 30
335
+ STATUS=$(aws securityagent batch-get-code-review-jobs \
336
+ --agent-space-id "${AGENT_SPACE_ID}" \
337
+ --code-review-job-ids "${JOB_ID}" \
338
+ --query 'codeReviewJobs[0].status' --output text 2>/dev/null || echo "UNKNOWN")
339
+
340
+ echo " Poll ${i}/30: ${STATUS}"
341
+ if [[ "$STATUS" == "COMPLETED" || "$STATUS" == "FAILED" || "$STATUS" == "STOPPED" ]]; then
342
+ break
343
+ fi
344
+ done
345
+ echo "::endgroup::"
346
+
347
+ if [[ "$STATUS" == "FAILED" ]]; then
348
+ echo "::warning::Continuum scan failed — treating as 0 findings (non-blocking)"
349
+ echo "findings=0" >> "$GITHUB_OUTPUT"
350
+ exit 0
351
+ fi
352
+
353
+ if [[ "$STATUS" != "COMPLETED" ]]; then
354
+ echo "::warning::Continuum scan timed out (status: ${STATUS}) — treating as 0 findings"
355
+ echo "findings=0" >> "$GITHUB_OUTPUT"
356
+ exit 0
357
+ fi
358
+
359
+ echo "::group::Retrieve findings"
360
+ FINDINGS_JSON=$(aws securityagent list-findings \
361
+ --agent-space-id "${AGENT_SPACE_ID}" \
362
+ --code-review-job-id "${JOB_ID}" \
363
+ --output json 2>/dev/null || echo '{"findingsSummaries":[]}')
364
+
365
+ TOTAL=$(echo "$FINDINGS_JSON" | jq '.findingsSummaries | length')
366
+ CRITICAL=$(echo "$FINDINGS_JSON" | jq '[.findingsSummaries[] | select(.riskLevel == "CRITICAL")] | length')
367
+ HIGH=$(echo "$FINDINGS_JSON" | jq '[.findingsSummaries[] | select(.riskLevel == "HIGH")] | length')
368
+ MEDIUM=$(echo "$FINDINGS_JSON" | jq '[.findingsSummaries[] | select(.riskLevel == "MEDIUM")] | length')
369
+
370
+ echo "Findings: ${TOTAL} total (${CRITICAL} critical, ${HIGH} high, ${MEDIUM} medium)"
371
+ echo "findings=${TOTAL}" >> "$GITHUB_OUTPUT"
372
+ echo "critical=${CRITICAL}" >> "$GITHUB_OUTPUT"
373
+ echo "high=${HIGH}" >> "$GITHUB_OUTPUT"
374
+ echo "findings_json=$(echo "$FINDINGS_JSON" | jq -c '.findingsSummaries')" >> "$GITHUB_OUTPUT"
375
+ echo "::endgroup::"
376
+
377
+ # Print findings summary for PR annotations
378
+ if [[ "$TOTAL" -gt 0 ]]; then
379
+ echo "$FINDINGS_JSON" | jq -r '.findingsSummaries[] | "::error ::[\(.riskLevel)] \(.name | .[0:120])"'
380
+ fi
381
+
382
+ - name: Emit Continuum findings to EventBridge
383
+ if: steps.security-gate.outputs.findings != '0' && steps.security-gate.outputs.skipped != 'true'
262
384
  env:
263
- GH_TOKEN: ${{ github.token }}
385
+ AWS_REGION: us-west-2
264
386
  run: |
265
387
  PR_NUMBER="${{ github.event.pull_request.number }}"
266
388
  REPO="${{ github.repository }}"
267
389
  TEAM_ID="${{ steps.prism-config.outputs.team_id }}"
268
- BASE_SHA="${{ github.event.pull_request.base.sha }}"
269
- HEAD_SHA="${{ github.sha }}"
390
+ FINDINGS='${{ steps.security-gate.outputs.findings_json }}'
270
391
 
271
392
  AI_ORIGIN="human"
393
+ BASE_SHA="${{ github.event.pull_request.base.sha }}"
394
+ HEAD_SHA="${{ github.sha }}"
272
395
  for SHA in $(git rev-list "${BASE_SHA}..${HEAD_SHA}"); do
273
396
  if git log -1 --format='%B' "${SHA}" | grep -q 'AI-Origin: ai-generated\|AI-Origin: ai-assisted'; then
274
397
  AI_ORIGIN="ai-assisted"; break
275
398
  fi
276
399
  done
277
400
 
278
- REVIEW_COMMENTS=$(gh api "repos/${REPO}/pulls/${PR_NUMBER}/comments" --paginate 2>/dev/null || echo "[]")
279
-
280
- ENTRIES=$(echo "${REVIEW_COMMENTS}" | jq --arg team_id "${TEAM_ID}" --arg repo "${REPO}" \
401
+ ENTRIES=$(echo "${FINDINGS}" | jq --arg team_id "${TEAM_ID}" --arg repo "${REPO}" \
281
402
  --arg ai_origin "${AI_ORIGIN}" --argjson pr_number "${PR_NUMBER}" '
282
- def cwe_severity:
283
- {"89":"CRITICAL","78":"CRITICAL","94":"CRITICAL","502":"CRITICAL","798":"CRITICAL",
284
- "79":"HIGH","22":"HIGH","918":"HIGH","352":"HIGH","287":"HIGH","862":"HIGH",
285
- "200":"MEDIUM","532":"MEDIUM","601":"MEDIUM"};
286
- [.[] | select(.user.login == "aws-security-agent[bot]")] |
287
- to_entries | map(.value as $c |
288
- ($c.body | capture("CWE-(?<id>[0-9]+)") // {id: null}).id as $cwe_id |
289
- (if $cwe_id then (cwe_severity[$cwe_id] // "MEDIUM") else "MEDIUM" end) as $severity |
403
+ to_entries | map(.value as $f |
290
404
  {Source:"prism.d1.velocity", DetailType:"prism.d1.security.code_review",
291
405
  EventBusName:"prism-d1-metrics",
292
- Detail:({team_id:$team_id, repo:$repo, timestamp:$c.created_at, prism_level:3,
406
+ Detail:({team_id:$team_id, repo:$repo, timestamp:($f.createdAt // now | tostring), prism_level:3,
293
407
  metric:{name:"security_finding",value:1,unit:"count"},
294
- ai_context:{tool:"security-agent",model:"aws-security-agent",origin:$ai_origin},
295
- security_agent_finding:{finding_id:"sa-pr\($pr_number)-\($c.id)", phase:"code_review",
296
- severity:$severity, cwe_id:(if $cwe_id then "CWE-\($cwe_id)" else null end),
297
- ai_origin:$ai_origin, found_at:$c.created_at}
408
+ ai_context:{tool:"continuum",model:"aws-continuum",origin:$ai_origin},
409
+ continuum_finding:{finding_id:($f.findingId // "cf-pr\($pr_number)-\(.key)"), phase:"code_review",
410
+ severity:($f.riskLevel // "MEDIUM"),
411
+ cwe_id:($f.cweId // null),
412
+ ai_origin:$ai_origin, found_at:($f.createdAt // null)}
298
413
  } | tostring)})' 2>/dev/null || echo "[]")
299
414
 
300
415
  TOTAL=$(echo "${ENTRIES}" | jq 'length')
301
- for i in $(seq 0 10 $((TOTAL - 1))); do
302
- aws events put-events --region us-west-2 --entries "$(echo "${ENTRIES}" | jq ".[$i:$((i+10))]")"
303
- done
416
+ if [[ "$TOTAL" -gt 0 ]]; then
417
+ for i in $(seq 0 10 $((TOTAL - 1))); do
418
+ aws events put-events --entries "$(echo "${ENTRIES}" | jq ".[$i:$((i+10))]")"
419
+ done
420
+ echo "Emitted ${TOTAL} finding events to EventBridge"
421
+ fi
304
422
 
305
423
  - name: Fail on eval or security issues
306
- if: steps.eval.outputs.overall_result == 'FAIL' || steps.security-gate.outputs.findings != '0'
424
+ if: steps.eval.outputs.overall_result == 'FAIL' || (steps.security-gate.outputs.findings != '0' && steps.security-gate.outputs.skipped != 'true')
307
425
  run: |
308
426
  [[ "${{ steps.eval.outputs.overall_result }}" == "FAIL" ]] && echo "❌ Eval gate failed"
309
- [[ "${{ steps.security-gate.outputs.findings }}" != "0" ]] && echo "❌ Security Agent found ${{ steps.security-gate.outputs.findings }} issues"
427
+ if [[ "${{ steps.security-gate.outputs.findings }}" != "0" && "${{ steps.security-gate.outputs.skipped }}" != "true" ]]; then
428
+ echo "❌ AWS Continuum found ${{ steps.security-gate.outputs.findings }} security issues (${{ steps.security-gate.outputs.critical }} critical, ${{ steps.security-gate.outputs.high }} high)"
429
+ fi
310
430
  exit 1
@@ -1,10 +1,10 @@
1
1
  /**
2
- * PRISM D1 — OTEL Collector construct (opt-in).
2
+ * PRISM D1 — OTEL Collector construct (on by default).
3
3
  *
4
4
  * Server side of `codeburn sync`: an HTTP API serving the codeburn discovery
5
5
  * doc and an OTLP/HTTP traces endpoint, authorized by OIDC JWT.
6
6
  *
7
- * Enable with: cdk deploy -c enableOtelCollector=true
7
+ * Skip with: cdk deploy -c skipOtelCollector=true
8
8
  * BYO IdP with: -c otelIssuer=... -c otelClientId=... [-c otelIdentityClaim=email]
9
9
  *
10
10
  * Default mode provisions a Cognito User Pool (admin-create-user only,
@@ -3,6 +3,8 @@ import * as securityagent from 'aws-cdk-lib/aws-securityagent';
3
3
  import * as iam from 'aws-cdk-lib/aws-iam';
4
4
  import * as kms from 'aws-cdk-lib/aws-kms';
5
5
  import * as logs from 'aws-cdk-lib/aws-logs';
6
+ import * as s3 from 'aws-cdk-lib/aws-s3';
7
+ import * as ssm from 'aws-cdk-lib/aws-ssm';
6
8
  import { Construct } from 'constructs';
7
9
  import { NagSuppressions } from 'cdk-nag';
8
10
 
@@ -52,6 +54,13 @@ export interface SecurityAgentProps {
52
54
  */
53
55
  codeRemediationStrategy?: 'AUTOMATIC' | 'DISABLED';
54
56
 
57
+ /**
58
+ * SSM Parameter Store prefix for CI/CD config retrieval.
59
+ * Stores agent space ID, code review ID, and scan bucket name.
60
+ * @default '/prism/continuum'
61
+ */
62
+ ssmParameterPrefix?: string;
63
+
55
64
  /**
56
65
  * Tags applied to all Security Agent resources.
57
66
  */
@@ -71,6 +80,7 @@ export class SecurityAgentConstruct extends Construct {
71
80
  public readonly agentSpaceId: string;
72
81
  public readonly serviceRole: iam.Role;
73
82
  public readonly targetDomainIds: string[];
83
+ public readonly scanBucket: s3.Bucket;
74
84
 
75
85
  constructor(scope: Construct, id: string, props: SecurityAgentProps) {
76
86
  super(scope, id);
@@ -93,9 +103,11 @@ export class SecurityAgentConstruct extends Construct {
93
103
  }),
94
104
  );
95
105
 
96
- // Grant KMS permissions for encrypted agent spaces
106
+ // Grant KMS permissions for encrypted agent spaces + log groups
97
107
  if (props.kmsKey) {
98
108
  props.kmsKey.grantEncryptDecrypt(this.serviceRole);
109
+ // DescribeKey is required for CreateLogGroup with KMS encryption
110
+ props.kmsKey.grant(this.serviceRole, 'kms:DescribeKey', 'kms:CreateGrant');
99
111
  }
100
112
 
101
113
  // Grant CloudWatch Logs access for pen test logging
@@ -197,11 +209,12 @@ export class SecurityAgentConstruct extends Construct {
197
209
  }
198
210
 
199
211
  // Log group for pen test results (Security Agent writes to /aws/securityagent/<space>/pt-<id>)
200
- new logs.LogGroup(this, 'PentestLogGroup', {
201
- logGroupName: `/aws/securityagent/${props.agentSpaceName}`,
202
- retention: logs.RetentionDays.SIX_MONTHS,
203
- removalPolicy: cdk.RemovalPolicy.RETAIN,
204
- });
212
+ // Note: we do NOT set logGroupName to avoid conflicts with pre-existing log groups
213
+ // created by prism-cli securityagent setup or the Security Agent service itself.
214
+ const pentestLogGroup = logs.LogGroup.fromLogGroupName(
215
+ this, 'PentestLogGroup',
216
+ `/aws/securityagent/${props.agentSpaceName}`,
217
+ );
205
218
 
206
219
  // Outputs
207
220
  new cdk.CfnOutput(this, 'AgentSpaceIdOutput', {
@@ -223,6 +236,111 @@ export class SecurityAgentConstruct extends Construct {
223
236
  exportName: `PrismD1SecurityAgentDomainIds`,
224
237
  });
225
238
  }
239
+
240
+ // -------------------------------------------------------
241
+ // S3 Scan Bucket — stores repo ZIPs and diff files for
242
+ // API-triggered code reviews (diff scans from CI/CD).
243
+ // -------------------------------------------------------
244
+ this.scanBucket = new s3.Bucket(this, 'ScanBucket', {
245
+ bucketName: `security-agent-scans-${cdk.Aws.ACCOUNT_ID}-${cdk.Aws.REGION}`,
246
+ // SSE-S3 (not the customer-managed KMS key): the Continuum service reads
247
+ // this bucket when creating the code review and cannot access a CMK it
248
+ // has no grant on. Artifacts here are ephemeral diffs (30-day lifecycle),
249
+ // the bucket is private (BLOCK_ALL) and SSL-enforced.
250
+ encryption: s3.BucketEncryption.S3_MANAGED,
251
+ blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL,
252
+ enforceSSL: true,
253
+ versioned: false,
254
+ lifecycleRules: [
255
+ {
256
+ id: 'expire-scan-artifacts',
257
+ expiration: cdk.Duration.days(30),
258
+ enabled: true,
259
+ },
260
+ ],
261
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
262
+ autoDeleteObjects: true,
263
+ });
264
+
265
+ // Grant Security Agent service role read access to the scan bucket
266
+ this.scanBucket.grantRead(this.serviceRole);
267
+
268
+ // Suppress cdk-nag for S3 read grant wildcards (grantRead expands to s3:GetObject*, s3:GetBucket*, s3:List*)
269
+ NagSuppressions.addResourceSuppressions(
270
+ this.serviceRole,
271
+ [
272
+ {
273
+ id: 'AwsSolutions-IAM5',
274
+ reason: 'grantRead() generates s3:GetObject*, s3:GetBucket*, s3:List* — standard CDK pattern for bucket read access',
275
+ appliesTo: ['Action::s3:GetObject*', 'Action::s3:GetBucket*', 'Action::s3:List*'],
276
+ },
277
+ {
278
+ id: 'AwsSolutions-IAM5',
279
+ reason: 'Scan bucket objects are dynamic (SHA-named diffs); wildcard on objects required',
280
+ appliesTo: ['Resource::<SecurityAgentScanBucketB752F4A9.Arn>/*'],
281
+ },
282
+ ],
283
+ true,
284
+ );
285
+
286
+ NagSuppressions.addResourceSuppressions(
287
+ this.scanBucket,
288
+ [
289
+ {
290
+ id: 'AwsSolutions-S1',
291
+ reason: 'Access logging not required for ephemeral scan artifacts (30-day lifecycle, auto-deleted)',
292
+ },
293
+ ],
294
+ true,
295
+ );
296
+
297
+ // -------------------------------------------------------
298
+ // Code Review resource — NOT created here in CDK.
299
+ // CreateCodeReview requires assets.sourceCode pointing to
300
+ // an existing ZIP of the repo (chicken-and-egg at deploy).
301
+ // Instead, `prism-cli securityagent setup` handles:
302
+ // 1. git archive → upload repo.zip to scan bucket
303
+ // 2. CreateCodeReview API call
304
+ // 3. Write code-review-id to SSM
305
+ // The CDK only provisions the bucket + role + SSM scaffold.
306
+ // -------------------------------------------------------
307
+
308
+ new cdk.CfnOutput(this, 'ScanBucketOutput', {
309
+ value: this.scanBucket.bucketName,
310
+ description: 'S3 bucket for scan artifacts (repo ZIPs + diffs)',
311
+ exportName: 'PrismD1ContinuumScanBucket',
312
+ });
313
+
314
+ // -------------------------------------------------------
315
+ // SSM Parameter Store — non-sensitive CI/CD config.
316
+ // GitHub Actions workflows read these at runtime so no
317
+ // hardcoded IDs are needed in the repository.
318
+ // -------------------------------------------------------
319
+ const prefix = props.ssmParameterPrefix ?? '/prism/continuum';
320
+
321
+ new ssm.StringParameter(this, 'ParamAgentSpaceId', {
322
+ parameterName: `${prefix}/agent-space-id`,
323
+ stringValue: this.agentSpaceId,
324
+ description: 'AWS Continuum Agent Space ID for PRISM D1',
325
+ tier: ssm.ParameterTier.STANDARD,
326
+ });
327
+
328
+ // code-review-id is written by `prism-cli securityagent setup` (not CDK)
329
+ // because CreateCodeReview needs an existing repo ZIP in S3 first.
330
+
331
+ new ssm.StringParameter(this, 'ParamScanBucket', {
332
+ parameterName: `${prefix}/scan-bucket`,
333
+ stringValue: this.scanBucket.bucketName,
334
+ description: 'S3 bucket name for uploading repo/diff scan artifacts',
335
+ tier: ssm.ParameterTier.STANDARD,
336
+ });
337
+
338
+ new ssm.StringParameter(this, 'ParamServiceRoleArn', {
339
+ parameterName: `${prefix}/service-role-arn`,
340
+ stringValue: this.serviceRole.roleArn,
341
+ description: 'Service role ARN for Continuum CreateCodeReview (passed via --service-role)',
342
+ tier: ssm.ParameterTier.STANDARD,
343
+ });
226
344
  }
227
345
 
228
346
  /**
@@ -236,8 +236,8 @@ export class DashboardStack extends cdk.Stack {
236
236
  // Cost breakdowns by Tool and Model. SEARCH expressions auto-discover
237
237
  // every dimension value, so new tools/models appear without dashboard
238
238
  // changes. These series are populated by the otel-metrics-publisher
239
- // (requires -c enableOtelCollector=true); the trailer path has no
240
- // per-tool/per-model breakdown and leaves these widgets empty.
239
+ // (deployed by default; skip with -c skipOtelCollector=true); the trailer
240
+ // path has no per-tool/per-model breakdown and leaves these widgets empty.
241
241
  teamDashboard.addWidgets(
242
242
  new cloudwatch.GraphWidget({
243
243
  title: 'AI Cost by Tool (USD)',
@@ -140,8 +140,11 @@ export class MetricsPipelineStack extends cdk.Stack {
140
140
  // same table answers by-repo / by-PR / by-commit / global-by-date.
141
141
  // -------------------------------------------------------
142
142
  // Read the OTEL collector flag early — it also controls the table stream
143
- // and which pipeline owns the token/cost CloudWatch metrics.
144
- const enableOtelCollector = this.node.tryGetContext('enableOtelCollector') === 'true';
143
+ // OTEL collector is ON by default. Skip with: -c skipOtelCollector=true
144
+ // Legacy flag -c enableOtelCollector=true is also respected for backwards compat.
145
+ const skipOtel = this.node.tryGetContext('skipOtelCollector') === 'true';
146
+ const legacyEnable = this.node.tryGetContext('enableOtelCollector') === 'true';
147
+ const enableOtelCollector = legacyEnable || !skipOtel;
145
148
 
146
149
  this.aiUsageTable = new dynamodb.Table(this, 'AiUsageTable', {
147
150
  tableName: 'prism-d1-ai-usage',
@@ -302,8 +305,8 @@ export class MetricsPipelineStack extends cdk.Stack {
302
305
  this.guardrail = new BedrockGuardrailConstruct(this, 'PrismGuardrail', createDefaultPrismGuardrailProps());
303
306
 
304
307
  // -------------------------------------------------------
305
- // OTEL Collector (opt-in — server side of `codeburn sync`)
306
- // Enable with: npx cdk deploy --context enableOtelCollector=true
308
+ // OTEL Collector (on by default — server side of `codeburn sync`)
309
+ // Skip with: npx cdk deploy --context skipOtelCollector=true
307
310
  // BYO IdP: -c otelIssuer=... -c otelClientId=... [-c otelIdentityClaim=email]
308
311
  // Per-user AI usage flows directly from codeburn sync to the
309
312
  // ai-usage table (spans + daily aggregates).
@@ -418,13 +421,108 @@ export class MetricsPipelineStack extends cdk.Stack {
418
421
  if (enableSecurityAgent) {
419
422
  this.securityAgent = new SecurityAgentConstruct(this, 'SecurityAgent', {
420
423
  agentSpaceName: 'prism-d1-security',
421
- description: 'PRISM D1 Security Agent space for design review, code review, and pen testing',
424
+ description: 'PRISM D1 Continuum space for design review, code review, and pen testing',
422
425
  kmsKey: prismKmsKey,
423
426
  codeRemediationStrategy: 'DISABLED',
424
427
  tags: {
425
428
  'prism:pillar': 'security',
426
429
  },
427
430
  });
431
+
432
+ // Grant GitHub OIDC roles access to scan bucket and Continuum APIs.
433
+ // The OIDC role is created by `prism-cli bootstrapper setup-github-oidc`
434
+ // with name pattern prism-d1-github-oidc-*.
435
+ this.securityAgent.scanBucket.addToResourcePolicy(
436
+ new iam.PolicyStatement({
437
+ effect: iam.Effect.ALLOW,
438
+ principals: [new iam.ArnPrincipal(`arn:aws:iam::${cdk.Aws.ACCOUNT_ID}:root`)],
439
+ actions: ['s3:PutObject', 's3:GetObject'],
440
+ resources: [this.securityAgent.scanBucket.arnForObjects('*')],
441
+ conditions: {
442
+ ArnLike: {
443
+ 'aws:PrincipalArn': `arn:aws:iam::${cdk.Aws.ACCOUNT_ID}:role/prism-d1-github-oidc-*`,
444
+ },
445
+ },
446
+ }),
447
+ );
448
+
449
+ // Create a managed policy for Continuum scan API access.
450
+ // Attached to the OIDC role by the bootstrapper setup script.
451
+ const continuumCiPolicy = new iam.ManagedPolicy(this, 'ContinuumCiPolicy', {
452
+ managedPolicyName: 'prism-d1-continuum-ci-scan',
453
+ description: 'Grants GitHub Actions workflows access to Continuum diff scan APIs and SSM config',
454
+ statements: [
455
+ new iam.PolicyStatement({
456
+ sid: 'ContinuumScanAPIs',
457
+ effect: iam.Effect.ALLOW,
458
+ actions: [
459
+ 'securityagent:StartCodeReviewJob',
460
+ 'securityagent:BatchGetCodeReviewJobs',
461
+ 'securityagent:BatchGetCodeReviewJobTasks',
462
+ 'securityagent:ListFindings',
463
+ 'securityagent:BatchGetFindings',
464
+ 'securityagent:CreateCodeReview',
465
+ 'securityagent:ListCodeReviews',
466
+ ],
467
+ resources: [
468
+ `arn:aws:securityagent:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:agent-space/*`,
469
+ ],
470
+ }),
471
+ new iam.PolicyStatement({
472
+ sid: 'PassRoleForCodeReview',
473
+ effect: iam.Effect.ALLOW,
474
+ actions: ['iam:PassRole'],
475
+ resources: [this.securityAgent.serviceRole.roleArn],
476
+ conditions: {
477
+ StringEquals: { 'iam:PassedToService': 'securityagent.amazonaws.com' },
478
+ },
479
+ }),
480
+ new iam.PolicyStatement({
481
+ sid: 'ScanBucketWrite',
482
+ effect: iam.Effect.ALLOW,
483
+ actions: ['s3:PutObject', 's3:GetObject', 's3:ListBucket'],
484
+ resources: [
485
+ this.securityAgent.scanBucket.bucketArn,
486
+ this.securityAgent.scanBucket.arnForObjects('*'),
487
+ ],
488
+ }),
489
+ new iam.PolicyStatement({
490
+ sid: 'SSMReadConfig',
491
+ effect: iam.Effect.ALLOW,
492
+ actions: ['ssm:GetParameter', 'ssm:GetParameters', 'ssm:PutParameter'],
493
+ resources: [
494
+ `arn:aws:ssm:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:parameter/prism/continuum/*`,
495
+ ],
496
+ }),
497
+ ],
498
+ });
499
+
500
+ NagSuppressions.addResourceSuppressions(
501
+ continuumCiPolicy,
502
+ [
503
+ {
504
+ id: 'AwsSolutions-IAM5',
505
+ reason: 'Agent space ID is dynamic; wildcard scoped to securityagent service resources only',
506
+ appliesTo: [`Resource::arn:aws:securityagent:<AWS::Region>:<AWS::AccountId>:agent-space/*`],
507
+ },
508
+ {
509
+ id: 'AwsSolutions-IAM5',
510
+ reason: 'Scan bucket objects include dynamic diff filenames (SHA-based); wildcard on objects only',
511
+ appliesTo: ['Resource::<SecurityAgentScanBucketB752F4A9.Arn>/*'],
512
+ },
513
+ {
514
+ id: 'AwsSolutions-IAM5',
515
+ reason: 'SSM parameters under /prism/continuum/ are all non-sensitive config values (IDs and bucket names)',
516
+ appliesTo: ['Resource::arn:aws:ssm:<AWS::Region>:<AWS::AccountId>:parameter/prism/continuum/*'],
517
+ },
518
+ ],
519
+ true,
520
+ );
521
+
522
+ new cdk.CfnOutput(this, 'ContinuumCiPolicyArn', {
523
+ value: continuumCiPolicy.managedPolicyArn,
524
+ description: 'Attach this policy to your GitHub OIDC role for Continuum CI scans',
525
+ });
428
526
  }
429
527
 
430
528
  // -------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"setup-otel-sync.d.ts","sourceRoot":"","sources":["../../../../src/commands/bootstrapper/setup-otel-sync.ts"],"names":[],"mappings":";;;;;;iBA4PqB;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;;AAR5F,wBAiIE"}
1
+ {"version":3,"file":"setup-otel-sync.d.ts","sourceRoot":"","sources":["../../../../src/commands/bootstrapper/setup-otel-sync.ts"],"names":[],"mappings":";;;;;;iBA6PqB;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;;AAR5F,wBAuIE"}
@@ -51,7 +51,7 @@ function linuxInstallSchedule(codeburnPath, intervalHours) {
51
51
  console.warn('\n⚠️ crontab not found — skipping automatic schedule installation.');
52
52
  console.warn(' Run "codeburn sync push --since 7d" manually, or install cronie:');
53
53
  console.warn(' sudo yum install cronie -y # then re-run this command\n');
54
- return;
54
+ return false;
55
55
  }
56
56
  const existing = run('crontab -l');
57
57
  const lines = existing.ok ? existing.stdout.split('\n').filter(l => !l.includes(CRON_MARKER)) : [];
@@ -64,6 +64,7 @@ function linuxInstallSchedule(codeburnPath, intervalHours) {
64
64
  const result = run(`crontab ${tmpFile}`);
65
65
  if (!result.ok)
66
66
  throw new Error(`Failed to install crontab: ${result.stderr}`);
67
+ return true;
67
68
  }
68
69
  function linuxRemoveSchedule() {
69
70
  if (!linuxCrontabAvailable())
@@ -151,8 +152,12 @@ function scheduleExists() {
151
152
  function installSchedule(codeburnPath, intervalHours) {
152
153
  mkdirSync(LOG_DIR, { recursive: true });
153
154
  switch (platform()) {
154
- case 'darwin': return darwinInstallSchedule(codeburnPath, intervalHours);
155
- case 'win32': return windowsInstallSchedule(codeburnPath, intervalHours);
155
+ case 'darwin':
156
+ darwinInstallSchedule(codeburnPath, intervalHours);
157
+ return true;
158
+ case 'win32':
159
+ windowsInstallSchedule(codeburnPath, intervalHours);
160
+ return true;
156
161
  default: return linuxInstallSchedule(codeburnPath, intervalHours);
157
162
  }
158
163
  }
@@ -328,14 +333,21 @@ export default {
328
333
  console.log(`\n ✓ ${schedulerName()} schedule already exists — updating.`);
329
334
  removeSchedule();
330
335
  }
331
- installSchedule(codeburnPath, intervalHours);
332
- console.log(` ✓ ${schedulerName()} schedule installed (every ${intervalHours}h).`);
336
+ const scheduled = installSchedule(codeburnPath, intervalHours);
337
+ if (scheduled) {
338
+ console.log(` ✓ ${schedulerName()} schedule installed (every ${intervalHours}h).`);
339
+ }
333
340
  // Summary
334
341
  console.log('\n════════════════════════════════════════════════');
335
342
  console.log(' ✅ OTEL sync setup complete!');
336
343
  console.log('════════════════════════════════════════════════');
337
344
  console.log(`\n Endpoint: ${otelUrl}`);
338
- console.log(` Schedule: every ${intervalHours}h via ${schedulerName()}`);
345
+ if (scheduled) {
346
+ console.log(` Schedule: every ${intervalHours}h via ${schedulerName()}`);
347
+ }
348
+ else {
349
+ console.log(` Schedule: ⚠️ not installed (run manually: codeburn sync push --since 7d)`);
350
+ }
339
351
  console.log(` Backfill: last 30d pushed (dashboard shows last 14d)`);
340
352
  console.log(` Logs: ${join(LOG_DIR, 'otel-sync.log')}`);
341
353
  console.log(`\n Run \`prism-cli bootstrapper setup-otel-sync --status\` to check health.`);
@@ -1 +1 @@
1
- {"version":3,"file":"setup-otel-sync.js","sourceRoot":"","sources":["../../../../src/commands/bootstrapper/setup-otel-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-otel-sync.js","sourceRoot":"","sources":["../../../../src/commands/bootstrapper/setup-otel-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,SAAS,MAAM,CAAC,QAAgB,EAAE,YAAqB;IACrD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,GAAG,CAAC,GAAW;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACrF,CAAC;AACH,CAAC;AAED,sBAAsB;AAEtB,MAAM,WAAW,GAAG,mBAAmB,CAAC;AACxC,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,YAAY,GAAG,eAAe,CAAC;AACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAElD,qCAAqC;AAErC,SAAS,eAAe;IACtB,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,gBAAgB,CAAC,YAAoB,EAAE,KAAa;IAC3D,OAAO,GAAG,YAAY,sBAAsB,KAAK,EAAE,CAAC;AACtD,CAAC;AAED,gCAAgC;AAEhC,SAAS,mBAAmB;IAC1B,IAAI,CAAC,qBAAqB,EAAE;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB;IAC5B,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,oBAAoB,CAAC,YAAoB,EAAE,aAAqB;IACvE,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,aAAa,QAAQ,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,OAAO,OAAO,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,wBAAwB,CAAC;IACzC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,CAAC,qBAAqB,EAAE;QAAE,OAAO;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrH,MAAM,OAAO,GAAG,wBAAwB,CAAC;IACzC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,+BAA+B;AAE/B,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,qBAAqB,CAAC,YAAoB,EAAE,aAAqB;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG;;;;;YAKJ,WAAW;;;cAGT,YAAY;;;;;;;aAOb,aAAa,GAAG,IAAI;;YAErB,OAAO;;YAEP,OAAO;;;;SAIV,CAAC;IACR,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChC,GAAG,CAAC,oBAAoB,SAAS,cAAc,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QACrC,GAAG,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,8BAA8B;AAE9B,SAAS,qBAAqB;IAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,uBAAuB,YAAY,UAAU,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAoB,EAAE,aAAqB;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,GAAG,YAAY,6BAA6B,OAAO,QAAQ,CAAC;IACxE,MAAM,MAAM,GAAG,GAAG,CAChB,wBAAwB,YAAY,mBAAmB,aAAa,GAAG;QACvE,eAAe,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAC9C,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,qBAAqB;IAC5B,GAAG,CAAC,wBAAwB,YAAY,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,wCAAwC;AAExC,SAAS,cAAc;IACrB,QAAQ,QAAQ,EAAE,EAAE,CAAC;QACnB,KAAK,QAAQ,CAAC,CAAC,OAAO,oBAAoB,EAAE,CAAC;QAC7C,KAAK,OAAO,CAAC,CAAC,OAAO,qBAAqB,EAAE,CAAC;QAC7C,OAAO,CAAC,CAAC,OAAO,mBAAmB,EAAE,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,YAAoB,EAAE,aAAqB;IAClE,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,QAAQ,QAAQ,EAAE,EAAE,CAAC;QACnB,KAAK,QAAQ;YAAE,qBAAqB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAC/E,KAAK,OAAO;YAAE,sBAAsB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAC/E,OAAO,CAAC,CAAC,OAAO,oBAAoB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,QAAQ,QAAQ,EAAE,EAAE,CAAC;QACnB,KAAK,QAAQ,CAAC,CAAC,OAAO,oBAAoB,EAAE,CAAC;QAC7C,KAAK,OAAO,CAAC,CAAC,OAAO,qBAAqB,EAAE,CAAC;QAC7C,OAAO,CAAC,CAAC,OAAO,mBAAmB,EAAE,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACpB,QAAQ,QAAQ,EAAE,EAAE,CAAC;QACnB,KAAK,QAAQ,CAAC,CAAC,OAAO,aAAa,CAAC;QACpC,KAAK,OAAO,CAAC,CAAC,OAAO,gBAAgB,CAAC;QACtC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,mBAAmB;AAEnB,SAAS,UAAU,CAAC,YAA2B;IAC7C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAEvC,sBAAsB;IACtB,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,YAAY,YAAY,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAED,mBAAmB;IACnB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACvE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,cAAc,EAAE,CAAC,CAAC;QAClG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAED,mBAAmB;IACnB,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,OAAO,aAAa,EAAE,kBAAkB,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,UAAU,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IAED,YAAY;IACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC;QAC9C,IAAI,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,IAAI,CAAC,CAAC;YAChD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,iBAAiB;AAEjB,eAAe;IACb,WAAW,EAAE,2EAA2E;IACxF,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,8DAA8D,EAAE;QACrG,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,sCAAsC,EAAE;QACpF,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,mCAAmC,EAAE;QACvE,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,0BAA0B,EAAE;KAC/D;IACD,KAAK,CAAC,MAAM,CAAC,IAA6E;QACxF,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QAEvC,WAAW;QACX,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,UAAU,CAAC,YAAY,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAED,WAAW;QACX,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,cAAc,EAAE,EAAE,CAAC;gBACrB,cAAc,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,SAAS,aAAa,EAAE,sBAAsB,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,UAAU,aAAa,EAAE,wCAAwC,CAAC,CAAC;YACjF,CAAC;YACD,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;QAE/E,4BAA4B;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,YAAY,YAAY,CAAC,CAAC;QACnD,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,KAAK,CAAC,6CAA6C,GAAG,gCAAgC,CAAC,CAAC;gBAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,gCAAgC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,MAAM,CAAC,8DAA8D,CAAC,CAAC;QACzG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,+DAA+D;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACvE,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;gBACzD,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;gBACjE,IAAI,WAAW,KAAK,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/D,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;oBACvE,UAAU,GAAG,KAAK,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,wDAAwD,WAAW,EAAE,CAAC,CAAC;oBACnF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;oBACzE,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;wBACnC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;wBACjD,UAAU,GAAG,KAAK,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,OAAO,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACtE,IAAI,CAAC;gBACH,QAAQ,CAAC,GAAG,YAAY,eAAe,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;gBAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,sFAAsF;QACtF,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,YAAY,wBAAwB,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,IAAI,QAAQ,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,yCAAyC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAChF,CAAC;QAED,yBAAyB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,cAAc,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,SAAS,aAAa,EAAE,sCAAsC,CAAC,CAAC;YAC5E,cAAc,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC/D,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,OAAO,aAAa,EAAE,8BAA8B,aAAa,KAAK,CAAC,CAAC;QACtF,CAAC;QAED,UAAU;QACV,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,sBAAsB,aAAa,SAAS,aAAa,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;IAC3F,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/commands/securityagent/setup.ts"],"names":[],"mappings":";;;;;;;oBAsCkB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;;AANrD,wBAyFE"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/commands/securityagent/setup.ts"],"names":[],"mappings":";;;;;;;oBAsCkB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;;AANrD,wBA+KE"}
@@ -109,6 +109,85 @@ export default {
109
109
  console.log(` Application: ${applicationId}`);
110
110
  console.log(` Web console: https://${region}.console.aws.amazon.com/securityagent/home?region=${region}`);
111
111
  console.log(' Click "Admin access" to open the web app.');
112
+ // -------------------------------------------------------
113
+ // Create Code Review for CI diff scans
114
+ // Requires: repo ZIP uploaded to scan bucket first
115
+ // -------------------------------------------------------
116
+ console.log('\n📦 Setting up Code Review for CI/CD diff scans...');
117
+ // Get scan bucket from SSM (created by CDK)
118
+ const bucketParam = runCapture(`aws ssm get-parameter --name /prism/continuum/scan-bucket ${env} --query Parameter.Value --output text`);
119
+ if (!bucketParam.ok || !bucketParam.stdout) {
120
+ console.log(' ⚠️ Scan bucket SSM param not found. Deploy with --context enableSecurityAgent=true first.');
121
+ console.log(' Skipping Code Review creation.');
122
+ return;
123
+ }
124
+ const scanBucket = bucketParam.stdout;
125
+ console.log(` Scan bucket: ${scanBucket}`);
126
+ // Zip the repo and upload
127
+ console.log(' Archiving repo...');
128
+ const repoRoot = process.cwd();
129
+ const zipResult = runCapture(`cd ${repoRoot} && git archive HEAD --format=zip -o /tmp/prism-repo.zip`);
130
+ if (!zipResult.ok) {
131
+ console.log(` ⚠️ git archive failed (not a git repo?): ${zipResult.stdout}`);
132
+ console.log(' Skipping Code Review creation. Run from a git repo root.');
133
+ return;
134
+ }
135
+ const upload = runCapture(`aws s3 cp /tmp/prism-repo.zip s3://${scanBucket}/repo/latest.zip ${env}`);
136
+ if (!upload.ok) {
137
+ console.error(` Failed to upload repo ZIP: ${upload.stdout}`);
138
+ return;
139
+ }
140
+ console.log(' ✅ Repo ZIP uploaded');
141
+ // Create Code Review (or find existing)
142
+ const codeReviewTitle = 'prism-d1-security-ci-diff-scan';
143
+ const createCr = runCapture(`aws securityagent create-code-review ` +
144
+ `--agent-space-id ${agentSpaceId} ` +
145
+ `--title ${codeReviewTitle} ` +
146
+ `--service-role ${roleArn} ` +
147
+ `--assets '{"sourceCode":[{"s3Location":"s3://${scanBucket}/repo/latest.zip"}]}' ` +
148
+ `${env} --output json`);
149
+ let codeReviewId;
150
+ if (createCr.ok) {
151
+ codeReviewId = JSON.parse(createCr.stdout).codeReviewId;
152
+ console.log(` ✅ Code Review created: ${codeReviewId}`);
153
+ }
154
+ else if (createCr.stdout.includes('Conflict') || createCr.stdout.includes('already exists')) {
155
+ // Already exists — find it
156
+ const listCr = runCapture(`aws securityagent list-code-reviews --agent-space-id ${agentSpaceId} ${env} --output json`);
157
+ if (listCr.ok) {
158
+ const reviews = JSON.parse(listCr.stdout).codeReviews || [];
159
+ const existing = reviews.find((r) => r.title === codeReviewTitle);
160
+ if (existing) {
161
+ codeReviewId = existing.codeReviewId;
162
+ console.log(` ✅ Code Review already exists: ${codeReviewId}`);
163
+ }
164
+ else {
165
+ console.error(' ❌ Could not find existing Code Review');
166
+ return;
167
+ }
168
+ }
169
+ else {
170
+ console.error(` ❌ Failed to list code reviews: ${listCr.stdout}`);
171
+ return;
172
+ }
173
+ }
174
+ else {
175
+ console.error(` ❌ Failed to create Code Review: ${createCr.stdout}`);
176
+ console.log(' The CI workflow will skip Continuum scanning until this is resolved.');
177
+ return;
178
+ }
179
+ // Write code-review-id to SSM
180
+ const ssmWrite = runCapture(`aws ssm put-parameter --name /prism/continuum/code-review-id ` +
181
+ `--value "${codeReviewId}" --type String --overwrite ${env}`);
182
+ if (ssmWrite.ok) {
183
+ console.log(' ✅ Code Review ID written to SSM: /prism/continuum/code-review-id');
184
+ }
185
+ else {
186
+ console.log(` ⚠️ Failed to write SSM param: ${ssmWrite.stdout}`);
187
+ console.log(` Manually run: aws ssm put-parameter --name /prism/continuum/code-review-id --value "${codeReviewId}" --type String --overwrite ${env}`);
188
+ }
189
+ console.log('\n🎉 Continuum CI scanning ready!');
190
+ console.log(' The eval gate workflow will now run diff scans on every PR.');
112
191
  },
113
192
  };
114
193
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/commands/securityagent/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/commands/securityagent/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prism-d1/cli",
3
- "version": "1.0.69",
3
+ "version": "1.0.71",
4
4
  "description": "PRISM D1 Velocity CLI — AI development lifecycle assessment tool",
5
5
  "author": "andklee",
6
6
  "engines": {