Skip to content

CloudFormation inventory: an unreadable stack policy is a Floci gap - #81

Merged
returnvalue merged 1 commit into
mainfrom
claude/cfn-stack-policy-gap
Nov 7, 2026
Merged

returnvalue merged 1 commit into
mainfrom
claude/cfn-stack-policy-gap

Conversation

@returnvalue

Copy link
Copy Markdown
Collaborator

Requested by Chris

What broke

dashboard.integration_tests failed on Floci 2.4.0 whenever any CloudFormation stack existed: cloudformation: 'GetStackPolicyResult'. CI never sees it because its Floci has no stacks.

Floci 2.4.0 answers GetStackPolicy with an empty <GetStackPolicyResponse> (no GetStackPolicyResult), with or without a policy set, so boto3 raises KeyError. Floci's main already stores and returns stack policies (floci-io/floci#7552, 2026-11-05), not released yet.

Fix

The inventory reports that case as {'unavailable': ...} (a Floci gap) instead of an error. Other failures still surface as errors. The console doesn't display this field, so nothing changes on screen.

Checks

  • New unit test; ruff check . clean.
  • dashboard.integration_tests against a throwaway Floci 2.4.0 with a stack present: 19/19 pass (was 18/19).

🤖 Generated with Claude Code

@returnvalue returnvalue self-assigned this Nov 7, 2026
Floci 2.4.0 answers GetStackPolicy without a GetStackPolicyResult element, so
boto3 raises KeyError and every stack's inventory carried an error, failing
dashboard.integration_tests whenever a stack exists. Report it as unavailable.
Floci's main branch already returns stored policies (floci-io/floci#7552).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@returnvalue
returnvalue force-pushed the claude/cfn-stack-policy-gap branch from 964ba32 to 6b0b443 Compare November 7, 2026 19:04
@returnvalue
returnvalue merged commit acc4d81 into main Nov 7, 2026
2 checks passed
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