Closes#390.
Note that 50 session tags are the AWS default, and this commit changes
our default set from 7 tags to 15 tags. This commit includes logic to
split the tags into "required" vs "overridable". Required tags are this
action's previous defaults and could never be overridden. Overridable
tags are the new set and can be overridden by custom-tags. The action
will not add tags if the addition plus the required plus the user's
custom tags exceed the AWS limit of 50 total tags. This ensures
backwards compat for the tag additions.
* Add possibility to input custom session tags
* Use json for input to custom-tags, add documentation for custom-tags
* Add more examples
* Simplify example to avoid parse error
* Add input validation for custom tags
* Fix unit tests for custom-tags
* Add debugging message
* Skip failing test for now
* Build package
* Remove some unused validation for custom tags
* feat: add validation for custom session tags
Harden the custom-tags feature against misuse and
misconfiguration:
- Validate input is a JSON object (reject arrays, primitives, null)
- Enforce STS tag constraints: key length (128), value length (256),
allowed characters
- Reject nested object/array values that would silently stringify to
'[object Object]'
- Block overriding default session tags (GitHub, Repository,
Workflow, etc.)
- Enforce 50-tag session limit
- Warn when custom-tags used with OIDC or web identity
- Fix missing await on helpers test assertion
- Remove unused CUSTOM_TAGS_JSON_INPUTS fixture
- Normalize test mocking to vi.mocked() pattern
---------
Co-authored-by: Sylvain Verly <sylvain.verly@gmail.com>
* chore: migrate to biomejs
* chore: migrate to biomejs
* chore: migrate from jest to vitest
* chore: error on lint warnings
* chore: remove obsolete depedencies