Skip to content

Add atomic controls, ACXD checks, and scoped Cloudscape reports - #11

Merged
agasthik merged 10 commits into
aws-samples:mainfrom
sushant-aws:feature/atomic-cloudscape-assessment
Oct 7, 2026
Merged

agasthik merged 10 commits into
aws-samples:mainfrom
sushant-aws:feature/atomic-cloudscape-assessment

Conversation

@sushant-aws

@sushant-aws sushant-aws commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • add the canonical 64-control catalog with disposition-aware scoring and one outcome per selected control and instance
  • add Connect-side Agentic CX Designer handoff, error-routing, and escalation coverage with explicit proof boundaries
  • extend the existing Cloudscape report with report-wide instance scope, clickable metric and chart drill-downs, responsive evidence, and complete scoped print output
  • harden report rendering, exports, IAM evidence collection, flow analysis, and incomplete-evidence handling
  • regenerate the public sample report, screenshots, architecture, and documentation

Validation

  • 1,125 Python tests passed, 3 skipped; 83.59% coverage
  • 90 frontend tests passed
  • npm audit reported 0 vulnerabilities
  • Ruff, mypy, bundle freshness check, catalog invariants, architecture XML, and ASH passed

Public branch scope

This branch intentionally excludes changes to .github/workflows/**, .kiro/**, .gitlab-ci.yml, internal presenter artifacts, internal reports, and local scanner state.

Add the 64-control catalog, disposition-aware scoring, Connect-side Agentic CX Designer checks, and hardened evidence handling. Extend the existing Cloudscape report with report-wide instance scope, clickable metric and chart drill-downs, responsive evidence, complete print output, and a Git-independent bundle freshness check. Regenerate the public sample report, screenshots, architecture, and user documentation.
Describe the self-contained React and Cloudscape report accurately and remove stale Chart.js and Font Awesome CDN guidance. Add a regression check so public documentation cannot reintroduce those dependencies.
@sushant-aws
sushant-aws requested a review from agasthik as a code owner October 5, 2026 03:38
@github-actions github-actions Bot added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file report tests checks journey infrastructure analyzers parsers labels Oct 5, 2026
sushant-aws and others added 8 commits October 5, 2026 13:12
Backfill missing selected-control outcomes, tighten Journey coverage and AWS evidence handling, and preserve stable ASFF identity. Restore UTC output, complete report printing, instance scoping, documentation, and regenerated sample artifacts.
- Allow intentional severity escalation for the three quota controls
  (res-quota-config-001, res-quota-headroom-001, res-quota-growth-001)
  via a dynamic_severity catalog flag so a near-quota instance no longer
  aborts the assessment with ValueError in finding validation.
- Storage encryption (sec-storage-001): Kinesis stream/Firehose delivery
  no longer forces SKIPPED (agent events can only stream to Kinesis);
  a single failed resource-type read no longer discards evaluated types.
  SKIPPED is reserved for runs where nothing could be evaluated, and
  PASS/FAIL descriptions carry explicit scope notes.
- Honour top-level skip_flow_analysis during check registration so the
  journey controls are not selected-but-never-executed and backfilled
  as synthetic ERROR outcomes.
- Deduplicate _error_code into checks/base.py.
- Build the ACXD flow inventory once per instance (identity-keyed
  weakref cache) instead of re-parsing every flow in each of the three
  Agentic CX checks.
- Update AGENTS.md: HTML report shell uses @@name@@ placeholder
  substitution, not Jinja.

Adds regression tests for each fix; suite: 1204 passed, 3 skipped.
The check declared Informational while its control catalog entry
(cost-usage-metrics-001) is Manual Review. Declare MANUAL_REVIEW and
update the disposition test accordingly.
register_check now copies catalog disposition and methodology onto the
check, so final validation no longer rejects findings from checks that
bypassed hydrate_base_checks.
…atalog

_canonical_missing_outcome assumed every registered control ID exists in the
built-in catalog and raised KeyError for custom checks. Fall back to the
registered check's metadata.
Standalone checks registered without a catalog were validated against
global catalog metadata sharing their ID, raising ValueError for valid
findings.
@agasthik
agasthik merged commit 9cef050 into aws-samples:main Oct 7, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

analyzers checks dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation infrastructure journey parsers report tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants