Skip to content

Implement case-preserving provider ID algorithm v3#54

Merged
InfoSecHack merged 1 commit into
mainfrom
codex/case-preserving-provider-id-v3
Jun 4, 2026
Merged

Implement case-preserving provider ID algorithm v3#54
InfoSecHack merged 1 commit into
mainfrom
codex/case-preserving-provider-id-v3

Conversation

@InfoSecHack
Copy link
Copy Markdown
Owner

@InfoSecHack InfoSecHack commented Jun 4, 2026

Summary

  • Bump ID_ALGORITHM to sha256_null_separated_v3_case_sensitive_provider_ids.
  • Preserve case for provider-owned identity fields in node_id and edge_id while keeping structural fields normalized.
  • Keep constraint_id on the legacy lowercase canonicalization path pending separate review.
  • Convert case-sensitive ARN collision tests from xfail evidence to passing regression coverage.
  • Refresh directly affected scenario metadata, golden outputs, and live-binding/demo fixture IDs caused by v3 node/edge ID churn.

ID behavior

  • node_id: normalizes provider and node_type; preserves provider_id case.
  • edge_id: normalizes edge_type and region; preserves src_provider_id, dst_provider_id, and features_digest.
  • constraint_id: unchanged legacy canonical_id behavior.

Validation

  • python -m pytest -q tests/identity/test_case_sensitive_id_collision.py: 6 passed
  • python -m pytest -q tests/test_deterministic_ids.py tests/test_scenario_output.py tests/test_findings_json.py: 85 passed
  • Focused affected golden/live-binding/replay tests: 168 passed
  • ./scripts/check.sh: passed
  • ./scripts/test_fast.sh: 1996 passed
  • git diff --check: passed
  • Account/ARN hygiene scans: clean
  • Terraform/raw artifact scan: clean

@InfoSecHack InfoSecHack marked this pull request as ready for review June 4, 2026 23:41
@InfoSecHack InfoSecHack merged commit 710d101 into main Jun 4, 2026
6 checks passed
@InfoSecHack InfoSecHack deleted the codex/case-preserving-provider-id-v3 branch June 4, 2026 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant