🚀 Enhancements
feat: strip unused fields from `describe affected --upload` output @milldr (#2067)
## what- When
--uploadflag is used, strips fields not needed by Atmos Pro's Inngest processing - Reduces payload size by ~70-75% to stay within Inngest's 256KB limit
- Fields kept:
component,stack,included_in_dependents,dependents,settings.pro - Fields removed:
settings.depends_on,settings.github,component_type,component_path,namespace,tenant,environment,stage,stack_slug,affected
why
- Large infrastructure repos exceed Inngest's 256KB payload limit, causing 500 errors
- The removed fields are not used in Atmos Pro's Inngest event handlers
- Stripping at CLI level prevents uploading unnecessary data (vs server-side stripping)
- Tested against realistic fixtures: 328KB → 85KB (74% reduction)
references
- Linear: DEV-3940
- PRD:
docs/prd/describe-affected-upload-flag.md - Related Atmos Pro PR: cloudposse-corp/apps#636
Summary by CodeRabbit
-
New Features
- Added a --upload option to describe-affected that produces a minimized payload for external uploads.
-
Documentation
- Added a PRD detailing the upload behavior, retained fields, compatibility, testing, and migration guidance.
-
Tests
- Added unit tests covering payload trimming, recursive dependents, nil/empty cases, and settings retention.