Skip to content

Conversation

@kddejong
Copy link
Contributor

@kddejong kddejong commented Jan 22, 2026

Based on @egut's work in #152

Key Changes

  • YAML Parameter Support: Native YAML object/array support for parameter-overrides and tags inputs
  • Event Streaming: Real-time CloudFormation event streaming during deployments (new src/event-streaming.ts)
  • API Retry Logic: Exponential backoff for CloudFormation API throttling
  • Enhanced Parsing: Multiple format support for parameters (YAML objects, arrays, JSON files, comma-delimited strings)

What was excluded from PR #152

  • .trunk/ configuration and tooling
  • Formatting/prettier changes to existing files
  • Test file modifications
  • Workflow changes

Credit

Original implementation by @egut in #152. This PR extracts the core functionality changes while maintaining cleaner integration with the develop branch.

Testing Needed

  • YAML parameter parsing
  • YAML tag parsing
  • Event streaming during deployment
  • API throttling retry logic

egut and others added 2 commits January 22, 2026 11:36
- Native YAML object/array support for parameters and tags
- Real-time CloudFormation event streaming during deployments
- Retry logic with exponential backoff for API throttling
- Enhanced parameter parsing with multiple format support

Based on PR aws-actions#152
@kddejong kddejong force-pushed the feature/yaml-params-event-streaming branch 2 times, most recently from 0606a5d to 7909a8b Compare January 22, 2026 19:52
kddejong and others added 2 commits January 22, 2026 13:05
Co-authored-by: Erik Günther <egut@users.noreply.github.com>
- Add event-streaming-coverage.test.ts (1061 lines)
- Add fast-check dependency for property testing
- Fix ThrottlingException mocks
- Add core.warning to jest setup
- Skip property tests temporarily (integration issues)

Coverage improved from 63% to 93%

Co-authored-by: Erik Günther <egut@users.noreply.github.com>
@kddejong kddejong force-pushed the feature/yaml-params-event-streaming branch from bb5a483 to a80a443 Compare January 22, 2026 21:06
kddejong and others added 4 commits January 22, 2026 15:24
- Use DescribeEventsCommand with ChangeSetName for precise event tracking
- Only get events for the specific change set operation
- Update EventMonitorConfig to accept changeSetName
- Update all test mocks to use OperationEvents instead of StackEvents
- Maintains 93% test coverage

This provides more accurate event filtering by tracking only the current
deployment operation instead of all historical stack events.

Co-authored-by: Erik Günther <egut@users.noreply.github.com>
Display additional OperationEvent fields for better debugging:
- EventType (VALIDATION_ERROR, PROVISIONING_ERROR, HOOK_INVOCATION_ERROR, etc.)
- DetailedStatus (CONFIGURATION_COMPLETE, VALIDATION_FAILED)
- Hook information (type, status, failure mode, invocation point)
- Validation information (name, failure mode)
- Operation information (type, status)

Example output:
  [VALIDATION_ERROR] AWS::Lambda::Function/MyFunc CREATE_FAILED (VALIDATION_FAILED) [Validation: PermissionCheck (FAIL)] ERROR: Insufficient permissions

This provides comprehensive visibility into all CloudFormation operation events
including hooks, validations, and detailed error context.

Co-authored-by: Erik Günther <egut@users.noreply.github.com>
- Test validation error event formatting
- Test hook invocation error formatting
- Test operation information display
- Test event type filtering (STACK_EVENT vs others)
- Coverage improved from 89.86% to 94.05%

Co-authored-by: Erik Günther <egut@users.noreply.github.com>
CloudFormation API uses error.name === 'Throttling' (not 'ThrottlingException')
with message 'Rate exceeded' and HTTP status 400.

Updated throttling detection to check for:
- 'Throttling' (CloudFormation standard)
- 'ThrottlingException' (other AWS services)
- 'TooManyRequestsException' (fallback)
- Message contains 'Rate exceeded'

Added test for CloudFormation-specific Throttling error name.

Co-authored-by: Erik Günther <egut@users.noreply.github.com>
@kddejong kddejong merged commit 52f9eda into aws-actions:develop Jan 23, 2026
1 check passed
@kddejong kddejong deleted the feature/yaml-params-event-streaming branch January 23, 2026 15:27
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.

2 participants