Skip to content

fix(cloudformation): apply stack tags during updates - #5031

Merged
pgermosen merged 7 commits into
floci-io:mainfrom
aniketshukla1:fix/cfn-update-stack-tags-4886
Oct 5, 2026
Merged

pgermosen merged 7 commits into
floci-io:mainfrom
aniketshukla1:fix/cfn-update-stack-tags-4886

Conversation

@aniketshukla1

@aniketshukla1 aniketshukla1 commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Closes #4886.

  • Carry supplied stack tags through UpdateStack and UPDATE change sets.
  • Apply replacement tags only when an update executes successfully. A change-set preview leaves deployed tags unchanged, and omitting Tags preserves the existing set.
  • Add a CloudFormation Query integration test for direct updates, change-set updates, previews and omitted-tag controls.

Type of change

  • Bug fix (fix:)
  • New feature (feat:)
  • Breaking change (feat!: or fix!:)
  • Docs / chore

AWS Compatibility

CloudFormation previously accepted Tags on updates but continued returning the old stack tags from DescribeStacks. Resource-tag propagation is outside this issue.

Checklist

  • ./mvnw test passes locally
  • New or updated integration test added
  • Commit messages follow Conventional Commits
  • I have no more than 2 open, non-draft pull requests in this repository (maintainers and dependency bots are exempt).

@greptile-apps

greptile-apps Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

[High risk] CloudFormation stack update now applies tags during execution.

The PR is not yet safe to merge because an omitted change-set type can cause an invalid request to create an UPDATE change set.

Summary

The PR carries supplied tags through direct stack updates and UPDATE change sets, applying them after successful execution while preserving tags when they are omitted. It adds Query and SDK coverage for tag updates. The latest revision also changes validation of change sets that omit their type.

Reviews (9) · Last reviewed commit: "fix(cloudformation): allow previous temp..."

@pgermosen pgermosen added bug Something isn't working cloudformation AWS CloudFormation labels Oct 3, 2026

@pgermosen pgermosen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aniketshukla1 Carrying the tags on the change set and only replacing them once the update commits both look right, and a failed update keeping its tags falls out of that ordering for free.

One case to pick up though: the reference says an omitted Tags leaves the stack's tags alone, while an empty one removes them all. extractTags returning null when the result is empty collapses those two, so a caller clearing every tag keeps them instead.

Greptile's tags-only test is worth adding while you are in there; nothing rejects a no-change update, so that path should already work.

@pgermosen pgermosen added the waiting-author Review posted; waiting on the PR author to respond label Oct 3, 2026
@aniketshukla1

Copy link
Copy Markdown
Contributor Author

Addressed in ce0f93a: omitted Tags preserve existing tags, while an explicitly empty Tags list clears them. Added direct-update and change-set coverage, plus tags-only and failed-update rollback tests. Focused tests and checkstyle pass.

@greptile-apps

greptile-apps Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Comments Outside Diff

These findings could not be posted inline.

  • P1 Omitted type becomes UPDATE src/main/java/io/github/hectorvent/floci/services/cloudformation/CloudFormationQueryHandler.java:222 ▶

    When CreateChangeSet omits ChangeSetType and sets UsePreviousTemplate=true, this check lets the request through. An omitted type normally defaults to CREATE, where UsePreviousTemplate is invalid, but the previous-template path forces UPDATE. Against an existing stack, the request now creates an UPDATE change set instead of returning a validation error.

            if (usePreviousTemplate && (changeSetType == null || "CREATE".equalsIgnoreCase(changeSetType))) {
    

@pgermosen pgermosen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aniketshukla1 Testing whether the parameter is present rather than whether the map came back empty is the right distinction, and since replaceTags clears before it puts, an explicitly empty list really does remove them all. Greptile's three asks look closed too, and the new compat poll exits as soon as the status matches.

It conflicts with main now though: #5054 landed and took runUnderScope out of CloudFormationService, the same file you edit. A rebase should be all it needs.

@aniketshukla1
aniketshukla1 force-pushed the fix/cfn-update-stack-tags-4886 branch from 1ad165e to c403e85 Compare October 5, 2026 04:24

@pgermosen pgermosen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aniketshukla1 Thanks for the rebase, and sorry, I should have caught this one last round. The UsePreviousTemplate check you took from Greptile's suggestion actually moves us further from AWS.

The CreateChangeSet docs say an omitted ChangeSetType defaults to UPDATE, not CREATE. So reusing the previous template without a type on an existing stack is just a normal update. Main already handled that right, and now it gets rejected. Greptile was going off Floci's own default, which is the part that's really wrong, but that's a fix for another PR.

Could you drop that check and the tests that expect the error? The tag work itself is ready.

@pgermosen pgermosen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aniketshukla1 Thanks, that's exactly it. I also put the checklist back to the template and trimmed the test-run note from the description, since it becomes the squash commit.

@pgermosen pgermosen removed the waiting-author Review posted; waiting on the PR author to respond label Oct 5, 2026
@pgermosen
pgermosen merged commit a6df1db into floci-io:main Oct 5, 2026
27 checks passed
AbhigyaKrishna pushed a commit to AbhigyaKrishna/floci that referenced this pull request Oct 6, 2026
# [2.2.0](https://github.com/floci-io/floci/compare/2.1.0...2.2.0) (2026-10-06)

### Bug Fixes

* add Scheduler retry backoff and DLQ handling ([#3687](https://github.com/floci-io/floci/issues/3687)) ([6829892](https://github.com/floci-io/floci/commit/682989288ad30e8ca1dec4d0ebd750f0ecbd9992))
* **apigateway,appsync:** sandbox VTL rendering with SecureUberspector and execution limits ([#3542](https://github.com/floci-io/floci/issues/3542)) ([144b90e](https://github.com/floci-io/floci/commit/144b90e6fa861a5ac882e99a090d503da01945c4)), closes [#foreach](https://github.com/floci-io/floci/issues/foreach) [#set](https://github.com/floci-io/floci/issues/set) [#foreach](https://github.com/floci-io/floci/issues/foreach)
* **apigateway:** accept a region label before the built-in execute-api suffixes ([#4705](https://github.com/floci-io/floci/issues/4705)) ([5000bcd](https://github.com/floci-io/floci/commit/5000bcd041890ea14d3125a771a4efe6dc07cf32)), closes [#4701](https://github.com/floci-io/floci/issues/4701)
* **apigateway:** capture HTTP proxy greedy suffixes ([#4980](https://github.com/floci-io/floci/issues/4980)) ([12e9cbd](https://github.com/floci-io/floci/commit/12e9cbd78b53948f28cbd704af178ded3b5a25f5))
* **apigateway:** complete API Gateway API key responses ([#3817](https://github.com/floci-io/floci/issues/3817)) ([ad20699](https://github.com/floci-io/floci/commit/ad20699a6b48862880f5c44b5917da77b7c6a858))
* **apigateway:** create API keys disabled unless enabled is set ([#4731](https://github.com/floci-io/floci/issues/4731)) ([b5c4283](https://github.com/floci-io/floci/commit/b5c428319fff8f11b64b97cd41c5a932d0ac9434))
* **apigateway:** drop the SigV4 Authorization header before REST integrations ([#4567](https://github.com/floci-io/floci/issues/4567)) ([2ec5300](https://github.com/floci-io/floci/commit/2ec5300029bd1a27c2673a0af1c3cde414b84977))
* **apigateway:** format request times with an English locale ([#5093](https://github.com/floci-io/floci/issues/5093)) ([5230039](https://github.com/floci-io/floci/commit/523003972eeebe11d0c33b2da4eb0674b32b5e20))
* **apigateway:** honor import warnings and strict rollback ([#4531](https://github.com/floci-io/floci/issues/4531)) ([b9efda8](https://github.com/floci-io/floci/commit/b9efda8606f87389af7379f46cc07093cf8adb25))
* **apigateway:** import x-amazon-apigateway-any-method in the native image and roll back failed imports ([#4473](https://github.com/floci-io/floci/issues/4473)) ([a5ded3e](https://github.com/floci-io/floci/commit/a5ded3e162db31b2dcbc3872a21475cd9c4ed153))
* **apigateway:** map authorizer context in HTTP integrations ([#4992](https://github.com/floci-io/floci/issues/4992)) ([036f55b](https://github.com/floci-io/floci/commit/036f55b196a3182bfbed218c8de065a25a79389a))
* **apigateway:** mark custom-domain routed requests so S3 virtual-host does not claim them ([#4966](https://github.com/floci-io/floci/issues/4966)) ([832bd97](https://github.com/floci-io/floci/commit/832bd9796689e1b9315de8df084e0070c03d6db6))
* **apigateway:** merge OpenAPI imports in PutRestApi ([#4570](https://github.com/floci-io/floci/issues/4570)) ([cfc9a44](https://github.com/floci-io/floci/commit/cfc9a440c19432e71d4807e5ed8151d76a15a358))
* **apigateway:** preserve and update method response parameters ([#5030](https://github.com/floci-io/floci/issues/5030)) ([b988a06](https://github.com/floci-io/floci/commit/b988a061b4f89048e1c5ae2591ab06633e97ca81))
* **apigateway:** prevent JWT issuer and JWKS SSRF ([#3743](https://github.com/floci-io/floci/issues/3743)) ([ef03c59](https://github.com/floci-io/floci/commit/ef03c59864d9f84a0e574460bc6b8f2a63e8434a))
* **apigateway:** provision CloudFormation MOCK CORS responses ([#4324](https://github.com/floci-io/floci/issues/4324)) ([243797c](https://github.com/floci-io/floci/commit/243797c2c6b83fa5b4b55f6eabbfa89c37388936))
* **apigateway:** register native VTL map reflection ([#4405](https://github.com/floci-io/floci/issues/4405)) ([41d07f6](https://github.com/floci-io/floci/commit/41d07f6e3bc76e857c9de8b585164410bd9be742))
* **apigateway:** reject method request parameter names AWS refuses ([#3549](https://github.com/floci-io/floci/issues/3549)) ([ce5c5b4](https://github.com/floci-io/floci/commit/ce5c5b4cfa0284154aa28ccaddee28e5ac370c6a))
* **apigateway:** resolve AWS variables on REST import ([#4547](https://github.com/floci-io/floci/issues/4547)) ([0383ecf](https://github.com/floci-io/floci/commit/0383ecf53efe8c03a3d936ff4b644faa592def01))
* **apigateway:** return embedded resource methods ([#5109](https://github.com/floci-io/floci/issues/5109)) ([d508a4e](https://github.com/floci-io/floci/commit/d508a4e1974995d491ed0ecbc7d06330857168e6))
* **apigateway:** return integration defaults and patch timeout ([#4798](https://github.com/floci-io/floci/issues/4798)) ([27bfb54](https://github.com/floci-io/floci/commit/27bfb54c6e86085d3c7bbd793b254529b534d073))
* **apigateway:** return stored method, policy, and stage settings ([#3857](https://github.com/floci-io/floci/issues/3857)) ([004d562](https://github.com/floci-io/floci/commit/004d562f3483262c449268879d78e2da1706805a))
* **apigateway:** route REST execute-api virtual hosts ([#4553](https://github.com/floci-io/floci/issues/4553)) ([af3d387](https://github.com/floci-io/floci/commit/af3d387140b800f24c9bb84d827fb8cc467c7b33))
* **apigateway:** share REST request context and complete mappings ([#5035](https://github.com/floci-io/floci/issues/5035)) ([3f591f8](https://github.com/floci-io/floci/commit/3f591f853d35dc6201185c279d61c6cb2a0ad788))
* **apigatewayv2:** allow an idempotent override-id tag on UpdateApi ([#4602](https://github.com/floci-io/floci/issues/4602)) ([cbc4cf9](https://github.com/floci-io/floci/commit/cbc4cf9b910ca4eb71d0df84cb970ab22545e672)), closes [#3430](https://github.com/floci-io/floci/issues/3430) [#3430](https://github.com/floci-io/floci/issues/3430)
* **apigatewayv2:** block link-local and metadata targets in HTTP_PROXY integrations ([#3962](https://github.com/floci-io/floci/issues/3962)) ([5f4aea2](https://github.com/floci-io/floci/commit/5f4aea20d52c4d457a255b00da4e3c688d8021b8))
* **apigatewayv2:** cap HTTP_PROXY integration responses at the 10 MB payload quota ([#4226](https://github.com/floci-io/floci/issues/4226)) ([ea60f70](https://github.com/floci-io/floci/commit/ea60f70ad259bff07f9d11ba6bb0b43d7dffe86c))
* **apigatewayv2:** evaluate HTTP and WebSocket authorizer policies ([#5020](https://github.com/floci-io/floci/issues/5020)) ([1320995](https://github.com/floci-io/floci/commit/1320995d7007ecad2d7ef3b787f84c80eb0ed698)), closes [#5086](https://github.com/floci-io/floci/issues/5086)
* **apigatewayv2:** pin the checked address and cover WebSocket HTTP integrations ([#3978](https://github.com/floci-io/floci/issues/3978)) ([0e02d34](https://github.com/floci-io/floci/commit/0e02d34c6b0189846095ad9b962b22b006f80eda))
* **apigatewayv2:** pin websocket HTTP targets ([#4341](https://github.com/floci-io/floci/issues/4341)) ([5467506](https://github.com/floci-io/floci/commit/5467506fca8cf2fbb43f9a034efc13aadc18a70a))
* **apigatewayv2:** reject an out-of-range AuthorizerResultTtlInSeconds ([#4294](https://github.com/floci-io/floci/issues/4294)) ([bdbc7e9](https://github.com/floci-io/floci/commit/bdbc7e93d3a38d6f243cc4aa27e16a7e9b79ab41)), closes [#4072](https://github.com/floci-io/floci/issues/4072)
* **apigateway:** validate and cache REST Lambda authorizers ([#5002](https://github.com/floci-io/floci/issues/5002)) ([ae3adfe](https://github.com/floci-io/floci/commit/ae3adfe992b6c74f3729db99b0c61f44c25a787a))
* **apigateway:** verify AWS_IAM signatures against the custom-domain path ([#4092](https://github.com/floci-io/floci/issues/4092)) ([c083aad](https://github.com/floci-io/floci/commit/c083aad12b108dbe0be8374ef84bb12f03d545ec))
* **appconfig:** resolve AppConfigData identifiers by name as well as ID ([#4661](https://github.com/floci-io/floci/issues/4661)) ([90c5511](https://github.com/floci-io/floci/commit/90c55114f9f2ccfcc3b1f059f3f467ef622a453f))
* **appconfig:** return feature flags in retrieval format ([#3890](https://github.com/floci-io/floci/issues/3890)) ([1370dc0](https://github.com/floci-io/floci/commit/1370dc02fad1a761f7fa07283d4dbf1bcffa773d))
* **appsync:** bound the Lambda authorizer result cache ([#4345](https://github.com/floci-io/floci/issues/4345)) ([6ed4726](https://github.com/floci-io/floci/commit/6ed4726f52a7ff52854f66477bba6ed1db3855d1))
* **appsync:** move the GraphQL engine to a sidecar, out of the native image ([#3534](https://github.com/floci-io/floci/issues/3534)) ([918a09f](https://github.com/floci-io/floci/commit/918a09f54a508f2d5bc8925e9faa7a315fc9a7e5)), closes [#2917](https://github.com/floci-io/floci/issues/2917) [#2914](https://github.com/floci-io/floci/issues/2914) [#2916](https://github.com/floci-io/floci/issues/2916) [#3799](https://github.com/floci-io/floci/issues/3799)
* **appsync:** send VTL Lambda payload to function ([#4579](https://github.com/floci-io/floci/issues/4579)) ([11b762d](https://github.com/floci-io/floci/commit/11b762d08b68acaea1f5a428f0db0cd053e8e5ce))
* **appsync:** supply reflection config so VTL runs on native image ([#4729](https://github.com/floci-io/floci/issues/4729)) ([7654a7c](https://github.com/floci-io/floci/commit/7654a7cbec59c032c5806c0b26ac0f06e6880a0c)), closes [#return](https://github.com/floci-io/floci/issues/return) [#return](https://github.com/floci-io/floci/issues/return)
* **athena:** accept IN lists and check each table in the injected-partition filter ([#5004](https://github.com/floci-io/floci/issues/5004)) ([008ddea](https://github.com/floci-io/floci/commit/008ddea054759c909bfd6ce4b1ce145771d2520e))
* **athena:** keep terminal queries terminal ([#4112](https://github.com/floci-io/floci/issues/4112)) ([75dd057](https://github.com/floci-io/floci/commit/75dd057b5cc4e71d455195a00ebc7bd7261f8f99))
* **athena:** read Iceberg-format Glue tables via iceberg_scan ([#3738](https://github.com/floci-io/floci/issues/3738)) ([9740b32](https://github.com/floci-io/floci/commit/9740b32b51c62e5c7f9dcc0a337040643b152038)), closes [#3737](https://github.com/floci-io/floci/issues/3737)
* **autoscaling:** prevent reconciler resurrecting deleted groups ([#3818](https://github.com/floci-io/floci/issues/3818)) ([bd9700d](https://github.com/floci-io/floci/commit/bd9700db0d1ae199e564cea1f7940e499d032243))
* **autoscaling:** reconcile groups in every account ([#3824](https://github.com/floci-io/floci/issues/3824)) ([dfb294a](https://github.com/floci-io/floci/commit/dfb294a79a070cde65e06055e3363b87f554855b))
* **autoscaling:** retain membership when instance termination fails ([#4115](https://github.com/floci-io/floci/issues/4115)) ([e377148](https://github.com/floci-io/floci/commit/e377148a523680ee84ad3516b925899106c389af))
* **autoscaling:** round-trip the whole target tracking configuration ([#4369](https://github.com/floci-io/floci/issues/4369)) ([a33c4e0](https://github.com/floci-io/floci/commit/a33c4e0b002b46ad1d754193341bafaa352bcf53))
* **backup:** run scheduled job transitions in the caller's account ([#4965](https://github.com/floci-io/floci/issues/4965)) ([e25f488](https://github.com/floci-io/floci/commit/e25f488bf3066ad19dc3aef3503e6e1bda0926c1))
* **bedrock-agentcore:** expire remembered delete client tokens ([#4477](https://github.com/floci-io/floci/issues/4477)) ([fe55cf0](https://github.com/floci-io/floci/commit/fe55cf0d0680fedbf15fbb878893f183897ab2cc))
* bring the partition literals that merged past the gate back under it ([#4314](https://github.com/floci-io/floci/issues/4314)) ([e73b80d](https://github.com/floci-io/floci/commit/e73b80d5ee22aeff8c59b2b78fdd1379314a3afe)), closes [#4270](https://github.com/floci-io/floci/issues/4270) [#4221](https://github.com/floci-io/floci/issues/4221) [#4304](https://github.com/floci-io/floci/issues/4304) [pull-throu#cache](https://github.com/pull-throu/issues/cache) [#4298](https://github.com/floci-io/floci/issues/4298)
* **build:** preserve Quarkus Surefire argLine ([#3988](https://github.com/floci-io/floci/issues/3988)) ([609b146](https://github.com/floci-io/floci/commit/609b1463897dcca8f3943531e8751aa74423f19b))
* **ci:** add draft PR handling to CI workflows for compatibility and build tests ([#4292](https://github.com/floci-io/floci/issues/4292)) ([375d83c](https://github.com/floci-io/floci/commit/375d83c0f44fe301361cfd7aba9435c542e7b6a0))
* **ci:** pass VERSION to the nightly native image build ([#5165](https://github.com/floci-io/floci/issues/5165)) ([6d417e5](https://github.com/floci-io/floci/commit/6d417e522fa9c412bed125f4941d3c7c493e895d))
* **cloudformation:** answer DescribeStackEvents on a missing stack with AWS's wording ([#4301](https://github.com/floci-io/floci/issues/4301)) ([3560593](https://github.com/floci-io/floci/commit/35605937c8c20d381e89abac7f5e0d699e6e38a8)), closes [#4235](https://github.com/floci-io/floci/issues/4235)
* **cloudformation:** apply an S3 bucket's declared configuration and its policy ([#3950](https://github.com/floci-io/floci/issues/3950)) ([28ca34a](https://github.com/floci-io/floci/commit/28ca34ad6c2b10e609a656cb781000a7dced97e7)), closes [#3947](https://github.com/floci-io/floci/issues/3947)
* **cloudformation:** apply EC2 Instance UserData and IamInstanceProfile in place ([#4206](https://github.com/floci-io/floci/issues/4206)) ([6fadba8](https://github.com/floci-io/floci/commit/6fadba8d572a054d4f92f1204fa4fe8961c8a704))
* **cloudformation:** apply every SQS queue property and reset dropped ones on update ([#4972](https://github.com/floci-io/floci/issues/4972)) ([ab2c0de](https://github.com/floci-io/floci/commit/ab2c0def0ad8ef523526340365fe030f670bb9f6))
* **cloudformation:** apply IAM user tags ([#4010](https://github.com/floci-io/floci/issues/4010)) ([bd40c21](https://github.com/floci-io/floci/commit/bd40c21982fcd5240219dc5e0d8684b0e373da75)), closes [#3998](https://github.com/floci-io/floci/issues/3998)
* **cloudformation:** apply stack tags during updates ([#5031](https://github.com/floci-io/floci/issues/5031)) ([a6df1db](https://github.com/floci-io/floci/commit/a6df1dbb127e6d4c87f409374ce2c78f8c105efa))
* **cloudformation:** await stack completion after ExecuteChangeSet in integration tests ([#4078](https://github.com/floci-io/floci/issues/4078)) ([fafe547](https://github.com/floci-io/floci/commit/fafe5476cd248b1c28ea1d24f279fd1f2c2c7cc5))
* **cloudformation:** bound operation executor ([#3761](https://github.com/floci-io/floci/issues/3761)) ([91de9e4](https://github.com/floci-io/floci/commit/91de9e452e64d124c7eb58165588ca3b3e23e01d))
* **cloudformation:** claim change set atomically before execution ([#3564](https://github.com/floci-io/floci/issues/3564)) ([03d3335](https://github.com/floci-io/floci/commit/03d33350a7da40fcc85d68b1b5dd3e2286ae91c0))
* **cloudformation:** delete UPDATE_FAILED resources on DeleteStack ([#4470](https://github.com/floci-io/floci/issues/4470)) ([60d1125](https://github.com/floci-io/floci/commit/60d112542d743fe254113f6f455afe3f40d8cdd6)), closes [#4467](https://github.com/floci-io/floci/issues/4467)
* **cloudformation:** fail an EC2 instance whose LaunchTemplate cannot be resolved ([#4058](https://github.com/floci-io/floci/issues/4058)) ([e1334cb](https://github.com/floci-io/floci/commit/e1334cb51282d0b6961e88212cdbae56fc25906b)), closes [#3810](https://github.com/floci-io/floci/issues/3810)
* **cloudformation:** forward ProviderARNs on AWS::ApiGateway::Authorizer ([#4704](https://github.com/floci-io/floci/issues/4704)) ([b5f053c](https://github.com/floci-io/floci/commit/b5f053c5872ca0e1d3ad837ec5f9e4ee800a8a52))
* **cloudformation:** honor UsePreviousTemplate on updates ([#5015](https://github.com/floci-io/floci/issues/5015)) ([f9a6558](https://github.com/floci-io/floci/commit/f9a65581beec2b2b628ee7862255bbddc861d284)), closes [#4881](https://github.com/floci-io/floci/issues/4881)
* **cloudformation:** identify Lambda microVM images and network connectors by ARN ([#4971](https://github.com/floci-io/floci/issues/4971)) ([be2998f](https://github.com/floci-io/floci/commit/be2998f2a22e5749c4de96e50e1202ee0d58ddde))
* **cloudformation:** improve EC2 Instance update fidelity ([#4130](https://github.com/floci-io/floci/issues/4130)) ([c847a99](https://github.com/floci-io/floci/commit/c847a9982839bb440113817fe4aceae1856b5eb5))
* **cloudformation:** keep a generated DynamoDB table name across updates ([#3721](https://github.com/floci-io/floci/issues/3721)) ([2d44480](https://github.com/floci-io/floci/commit/2d444801fd84cae4c0376a3dabbdaf8cf8227259)), closes [#3699](https://github.com/floci-io/floci/issues/3699)
* **cloudformation:** keep AWS::ApiGateway::RestApi on stack updates ([#4512](https://github.com/floci-io/floci/issues/4512)) ([a66e2a1](https://github.com/floci-io/floci/commit/a66e2a131dfb717900bff179e4415472758d9a33))
* **cloudformation:** keep unchanged AWS::ApiGateway::Resource on update and remove it on delete ([#4511](https://github.com/floci-io/floci/issues/4511)) ([1ea5a86](https://github.com/floci-io/floci/commit/1ea5a865e3b1b21c92a59f91a5926940221c0453))
* **cloudformation:** key the Lambda hot-reload identity on the Docker host path ([#4275](https://github.com/floci-io/floci/issues/4275)) ([69217df](https://github.com/floci-io/floci/commit/69217dff2a574ea8fd0308e824b6c06ee875275a)), closes [#4080](https://github.com/floci-io/floci/issues/4080)
* **cloudformation:** make a stack's collections safe for concurrent requests ([#4199](https://github.com/floci-io/floci/issues/4199)) ([fac87a6](https://github.com/floci-io/floci/commit/fac87a6cf42b31906deb0d1c7a705671c37c572e)), closes [#3564](https://github.com/floci-io/floci/issues/3564) [#2473](https://github.com/floci-io/floci/issues/2473) [#2419](https://github.com/floci-io/floci/issues/2419)
* **cloudformation:** make EKS Nodegroup Ref the composite cluster/nodegroup id ([#4136](https://github.com/floci-io/floci/issues/4136)) ([69e3717](https://github.com/floci-io/floci/commit/69e371721b49d11eaad86c5463650ad4f7df6af2))
* **cloudformation:** pass Lambda hot-reload code through to the Lambda service ([#4093](https://github.com/floci-io/floci/issues/4093)) ([34f4f72](https://github.com/floci-io/floci/commit/34f4f72e8257532f88b6d9549e90ee7b32bf6f7d)), closes [#4053](https://github.com/floci-io/floci/issues/4053)
* **cloudformation:** propagate nested stack failure status reason and cover changeset rollbacks ([#3921](https://github.com/floci-io/floci/issues/3921)) ([a5254de](https://github.com/floci-io/floci/commit/a5254defb62df6d6babd1836fa9d8ea79cb56c62))
* **cloudformation:** propagate nested stack failures to parent ([#3609](https://github.com/floci-io/floci/issues/3609)) ([700d403](https://github.com/floci-io/floci/commit/700d403fe9895d904e008dd22835e29457930665))
* **cloudformation:** provision Cognito user pool groups ([#3695](https://github.com/floci-io/floci/issues/3695)) ([d9a4db0](https://github.com/floci-io/floci/commit/d9a4db0290c2b608fd5878fc1bf701c90a7310b2))
* **cloudformation:** publish EC2 Instance State via Fn::GetAtt ([#4203](https://github.com/floci-io/floci/issues/4203)) ([024c2cb](https://github.com/floci-io/floci/commit/024c2cbe270256e30eaa755cc3074db9de9d2360))
* **cloudformation:** publish EC2 SecurityGroup Id and Instance VpcId for Fn::GetAtt ([#4155](https://github.com/floci-io/floci/issues/4155)) ([e60cf84](https://github.com/floci-io/floci/commit/e60cf84922a271eaab94561015b9048abf7f4864))
* **cloudformation:** publish RuleName and the RDS group ARNs the current registry schemas declare ([#4135](https://github.com/floci-io/floci/issues/4135)) ([a0e3b6b](https://github.com/floci-io/floci/commit/a0e3b6b674c14a00f4859c03f629ec4f59cb98b7))
* **cloudformation:** read a TemplateURL on the S3 service host as path-style ([#4248](https://github.com/floci-io/floci/issues/4248)) ([239f560](https://github.com/floci-io/floci/commit/239f560d97938b49551b9c306818d0d71ee01e00))
* **cloudformation:** reconcile a named secret in place on UpdateStack ([#4299](https://github.com/floci-io/floci/issues/4299)) ([a777879](https://github.com/floci-io/floci/commit/a7778795186537e481a66444a40348e3eb099926)), closes [#2134](https://github.com/floci-io/floci/issues/2134)
* **cloudformation:** reconcile and replace IAM leaf resources on update and delete ([#3933](https://github.com/floci-io/floci/issues/3933)) ([3a36b8c](https://github.com/floci-io/floci/commit/3a36b8c85c9c865ae2f15f30d09a028698e18067)), closes [#3913](https://github.com/floci-io/floci/issues/3913)
* **cloudformation:** reconcile EC2 security group rules and tags on stack update ([#3863](https://github.com/floci-io/floci/issues/3863)) ([00d1037](https://github.com/floci-io/floci/commit/00d1037635c1cce454081086e9d001e99a644878))
* **cloudformation:** reconcile or replace EC2 instances on stack update ([#3884](https://github.com/floci-io/floci/issues/3884)) ([21beccc](https://github.com/floci-io/floci/commit/21beccceb1828d3ef258159b7069c63a83b64574)), closes [#3810](https://github.com/floci-io/floci/issues/3810)
* **cloudformation:** reject a non-numeric AuthorizerResultTtlInSeconds ([#4055](https://github.com/floci-io/floci/issues/4055)) ([eb247a5](https://github.com/floci-io/floci/commit/eb247a50aa4cca3a17666c511fedab19558a3c8f)), closes [#4021](https://github.com/floci-io/floci/issues/4021)
* **cloudformation:** reject more than one endpoint type on a RestApi update ([#4728](https://github.com/floci-io/floci/issues/4728)) ([9c3593f](https://github.com/floci-io/floci/commit/9c3593f4d101496de7f09feb1c8d16a51201d7ae))
* **cloudformation:** reject non-integer target group ports and health check counts ([#4970](https://github.com/floci-io/floci/issues/4970)) ([a95f4ce](https://github.com/floci-io/floci/commit/a95f4cee3de64f3a356a75e00aebc698e0187023))
* **cloudformation:** remove the login profile when deleting an IAM user ([#3975](https://github.com/floci-io/floci/issues/3975)) ([8af15a7](https://github.com/floci-io/floci/commit/8af15a71c41161d9f939df81593eea20b125a8ea))
* **cloudformation:** replace IAM InstanceProfile on a createOnly change ([#4133](https://github.com/floci-io/floci/issues/4133)) ([03a2d96](https://github.com/floci-io/floci/commit/03a2d969f2e8b862ea26623120c2d1614ed2c123))
* **cloudformation:** resolve a stack id only to the stack carrying it ([#4973](https://github.com/floci-io/floci/issues/4973)) ([8e98c08](https://github.com/floci-io/floci/commit/8e98c087fdf4bbde006cae13d9e55be321b88d09))
* **cloudformation:** resolve change sets by ARN without stack name ([#4885](https://github.com/floci-io/floci/issues/4885)) ([ba944df](https://github.com/floci-io/floci/commit/ba944df9224244889423c2ca365a3d3daf55873b))
* **cloudformation:** resolve dynamic references after Fn::Join ([#3610](https://github.com/floci-io/floci/issues/3610)) ([e5bee4a](https://github.com/floci-io/floci/commit/e5bee4ac22bfa26d76c63724563f13586b67aee4))
* **cloudformation:** resolve intrinsics in IAM policy documents before storing them ([#3739](https://github.com/floci-io/floci/issues/3739)) ([5730947](https://github.com/floci-io/floci/commit/573094720dbd2b8ae3ac7300fb612f0a05a42fe8))
* **cloudformation:** resolve SecretTargetAttachment targets in the stack region ([#3740](https://github.com/floci-io/floci/issues/3740)) ([cf235cf](https://github.com/floci-io/floci/commit/cf235cfb8182e6587c1e5458728062a60f319c0f))
* **cloudformation:** roll back in-place Cognito user pool and client updates ([#5006](https://github.com/floci-io/floci/issues/5006)) ([7ffe43f](https://github.com/floci-io/floci/commit/7ffe43f48f88f3c29e3b86f2bb56739b234fca4a))
* **cloudformation:** skip unchanged resources during updates ([#4442](https://github.com/floci-io/floci/issues/4442)) ([60985b9](https://github.com/floci-io/floci/commit/60985b9a80d604ee842679e82f7ee3f4a7cde320))
* **cloudformation:** tolerate an already-gone EC2 instance or security group on stack delete ([#3842](https://github.com/floci-io/floci/issues/3842)) ([6e03483](https://github.com/floci-io/floci/commit/6e034837ada2ad423ceddaecd5bb01f4c090b59a))
* **cloudformation:** tolerate an already-gone REST API on delete ([#4047](https://github.com/floci-io/floci/issues/4047)) ([3976f2b](https://github.com/floci-io/floci/commit/3976f2bd05208e743fc55ffd41aad95625fef9a3)), closes [#3885](https://github.com/floci-io/floci/issues/3885)
* **cloudformation:** update nested stacks in place ([#3859](https://github.com/floci-io/floci/issues/3859)) ([fbc0d4d](https://github.com/floci-io/floci/commit/fbc0d4d3f2b2c45569f2e63784e8d9ecc5b7563a))
* **cloudformation:** validate required fields on AWS::IAM::Policy ([#4050](https://github.com/floci-io/floci/issues/4050)) ([186a538](https://github.com/floci-io/floci/commit/186a5380d55d658e3fc472f29f2af58df91bc812)), closes [#3971](https://github.com/floci-io/floci/issues/3971)
* **cloudfront:** dedupe CacheBehavior XML parsing ([#3705](https://github.com/floci-io/floci/issues/3705)) ([3641a07](https://github.com/floci-io/floci/commit/3641a074dc708606990b8c3e5fb4690cc0e813bc)), closes [#3652](https://github.com/floci-io/floci/issues/3652)
* **cloudfront:** preserve policy configurations ([#4009](https://github.com/floci-io/floci/issues/4009)) ([eb18b4a](https://github.com/floci-io/floci/commit/eb18b4ab1fcd7f9b819c03eddf087a4490ffd134))
* **cloudhsm:** add issuer key identifiers to hardware chain ([#4707](https://github.com/floci-io/floci/issues/4707)) ([a5dd3c2](https://github.com/floci-io/floci/commit/a5dd3c2f2e595c0d773b9fbc80d15874957953f2))
* **cloudmap:** answer typed DNS records and honor routing policy ([#4534](https://github.com/floci-io/floci/issues/4534)) ([c7492ce](https://github.com/floci-io/floci/commit/c7492ce0f42e19f634b8ceeef715b86768014ff3))
* **cloudwatch:** honor Unit filter in JSON GetMetricStatistics ([#3932](https://github.com/floci-io/floci/issues/3932)) ([8ccc89d](https://github.com/floci-io/floci/commit/8ccc89df41232012b6e5bd6a29b09cca672c5aee))
* **cloudwatchlogs:** add logGroupArn to DescribeLogGroups ([#3868](https://github.com/floci-io/floci/issues/3868)) ([0108b96](https://github.com/floci-io/floci/commit/0108b9653ab05568c9cbafc2552a2797a69a64be))
* **cloudwatchlogs:** journal log events instead of rewriting the store under persistent mode ([#4187](https://github.com/floci-io/floci/issues/4187)) ([a0cb86c](https://github.com/floci-io/floci/commit/a0cb86cc133f7dec681002b01894e14d2668b45c)), closes [#2500](https://github.com/floci-io/floci/issues/2500)
* **cloudwatchlogs:** persist event batches once ([#3767](https://github.com/floci-io/floci/issues/3767)) ([bb67a44](https://github.com/floci-io/floci/commit/bb67a443ce8fe828b6232811f7c0e1cede80827b))
* **cloudwatchlogs:** return creationTime in DescribeLogGroups and DescribeLogStreams ([#4137](https://github.com/floci-io/floci/issues/4137)) ([cde8f48](https://github.com/floci-io/floci/commit/cde8f48084a5008a13f66d2c39c16e071d1e4148)), closes [#4084](https://github.com/floci-io/floci/issues/4084)
* **cloudwatch:** mint the regionless dashboard ARN AWS uses ([#5135](https://github.com/floci-io/floci/issues/5135)) ([c812908](https://github.com/floci-io/floci/commit/c81290823bed505058ccb3a1bcc41ae07f3fce2e))
* **cloudwatch:** raise ResourceNotFoundException when a tag operation names a resource that does not exist ([#4783](https://github.com/floci-io/floci/issues/4783)) ([0c8d184](https://github.com/floci-io/floci/commit/0c8d1848541392ff91991121d96586db564cb3f8))
* **cloudwatch:** retain metric-math alarm query definitions ([#4594](https://github.com/floci-io/floci/issues/4594)) ([1d646c6](https://github.com/floci-io/floci/commit/1d646c6fea70a8d4bfeea4d0ca6d8fc390ea6170))
* **cloudwatch:** return DatapointsToAlarm from the JSON DescribeAlarms response ([#3660](https://github.com/floci-io/floci/issues/3660)) ([a180c14](https://github.com/floci-io/floci/commit/a180c140a7f014e669b7779350bb7ae624ac9234))
* **cloudwatch:** return storedBytes on DescribeLogGroups ([#4202](https://github.com/floci-io/floci/issues/4202)) ([babb43a](https://github.com/floci-io/floci/commit/babb43ac3d883568590bf77d0f85036f3831a5f5))
* **codeartifact:** close the remaining register-vs-reset gap in PerKeyContainerPool ([#4447](https://github.com/floci-io/floci/issues/4447)) ([3da68ff](https://github.com/floci-io/floci/commit/3da68ff50506098e48455afc4a68958147a58842)), closes [#4411](https://github.com/floci-io/floci/issues/4411) [#4411](https://github.com/floci-io/floci/issues/4411)
* **codeartifact:** enforce domains-per-account and repositories-per-domain quotas ([#3949](https://github.com/floci-io/floci/issues/3949)) ([15ed62f](https://github.com/floci-io/floci/commit/15ed62f8cbf1e511dd9b7ed62a53af15d8e02ac8))
* **codeartifact:** extend idempotent asset republish to Published versions ([#4708](https://github.com/floci-io/floci/issues/4708)) ([48214e0](https://github.com/floci-io/floci/commit/48214e04e09d35a889607dc8fd42848776d580ab)), closes [#4619](https://github.com/floci-io/floci/issues/4619)
* **codeartifact:** harden the pypi upload preflight's URI building and index match ([#5029](https://github.com/floci-io/floci/issues/5029)) ([8776c5f](https://github.com/floci-io/floci/commit/8776c5fc3ac5825d3d672ccbd6ba5e58442f0b31)), closes [#5019](https://github.com/floci-io/floci/issues/5019)
* **codeartifact:** log unexpected I/O errors in existingFileMatches ([#4769](https://github.com/floci-io/floci/issues/4769)) ([4f2f494](https://github.com/floci-io/floci/commit/4f2f494442cdd205cda272dd7e4378d3cfad8b94)), closes [#4708](https://github.com/floci-io/floci/issues/4708)
* **codeartifact:** populate resourceId/resourceType on error responses ([#3977](https://github.com/floci-io/floci/issues/3977)) ([2697868](https://github.com/floci-io/floci/commit/2697868e865ce3dfa9f65b5fe90af04c6e3273cd))
* **codeartifact:** stop npm data plane test from missing a fast response body ([#4430](https://github.com/floci-io/floci/issues/4430)) ([8f5ba2b](https://github.com/floci-io/floci/commit/8f5ba2b2a85f793f65b073d2d182acffca92fdeb)), closes [#4369](https://github.com/floci-io/floci/issues/4369) [#4422](https://github.com/floci-io/floci/issues/4422)
* **codeartifact:** stop sidecar containers on state reset and nuke ([#4411](https://github.com/floci-io/floci/issues/4411)) ([61e7f07](https://github.com/floci-io/floci/commit/61e7f07fb650baf7da35b61d8823744e0b24629c))
* **codeartifact:** treat identical-content asset republish as idempotent ([#4619](https://github.com/floci-io/floci/issues/4619)) ([0232d5d](https://github.com/floci-io/floci/commit/0232d5d22457aaae3318adf3e6f9d0e0092ebb4e))
* **codeartifact:** treat identical-content maven redeploy as idempotent ([#4837](https://github.com/floci-io/floci/issues/4837)) ([cd89be4](https://github.com/floci-io/floci/commit/cd89be4a80a775b79678fb9175454dc64bcae4c7))
* **codebuild:** keep only the tail of phase output for failure messages ([#4690](https://github.com/floci-io/floci/issues/4690)) ([70efa35](https://github.com/floci-io/floci/commit/70efa35fe321a514e97a70615489bcc352058d65))
* **codepipeline:** fall back when the source poll interval is not positive ([#4361](https://github.com/floci-io/floci/issues/4361)) ([5913812](https://github.com/floci-io/floci/commit/5913812b53f729ad66069aa4d5c997154e227dbb))
* **codepipeline:** handle legacy pipelines without versions ([#3677](https://github.com/floci-io/floci/issues/3677)) ([374b80e](https://github.com/floci-io/floci/commit/374b80eb658445c10a93c2e26cb7307e2a642ed1))
* **codepipeline:** preserve external actions while stopping ([#3726](https://github.com/floci-io/floci/issues/3726)) ([b3d46d5](https://github.com/floci-io/floci/commit/b3d46d50247992e1694ad88c746ccb2d824e4957))
* **codepipeline:** release per-pipeline locks after use ([#3712](https://github.com/floci-io/floci/issues/3712)) ([e5f9baa](https://github.com/floci-io/floci/commit/e5f9baa12d36b40adee0bee66cc402c61f9707ed))
* **codepipeline:** resolve effective source revisions ([#3514](https://github.com/floci-io/floci/issues/3514)) ([02ad6aa](https://github.com/floci-io/floci/commit/02ad6aa768219675ff5a912011af6fd11c2ea400))
* **codepipeline:** retry failed stages in place ([#3513](https://github.com/floci-io/floci/issues/3513)) ([196d158](https://github.com/floci-io/floci/commit/196d1586daf0cfab11c5b23d9126228c64811b00))
* **codepipeline:** wait for custom jobs while stopping ([#3678](https://github.com/floci-io/floci/issues/3678)) ([c317fa5](https://github.com/floci-io/floci/commit/c317fa52d2c882b78af8b1c1eb54da25ddd8e40d))
* **cognito:** accept USER_SRP_AUTH in AdminInitiateAuth ([#3973](https://github.com/floci-io/floci/issues/3973)) ([2d56d85](https://github.com/floci-io/floci/commit/2d56d85e9eb889902f29a1c2dde4aa346a0a3088))
* **cognito:** align pre-authentication trigger events and errors ([#3861](https://github.com/floci-io/floci/issues/3861)) ([172bfb3](https://github.com/floci-io/floci/commit/172bfb32b0a801023aacc2022eb1eb29d1e4cded))
* **cognito:** default ExplicitAuthFlows to refresh, SRP and custom auth ([#4081](https://github.com/floci-io/floci/issues/4081)) ([06007de](https://github.com/floci-io/floci/commit/06007deea8b04134f0a5a4c6be4cc14dbbdc12c6))
* **cognito:** expire auth challenge sessions ([#4417](https://github.com/floci-io/floci/issues/4417)) ([8b9f441](https://github.com/floci-io/floci/commit/8b9f441bb49607c6085593d35ddc705b09b6e089))
* **cognito:** fail authentication when token triggers fail ([#4727](https://github.com/floci-io/floci/issues/4727)) ([45b0077](https://github.com/floci-io/floci/commit/45b00779b7a3ada38ed46e1ca0322ffb20bc11ad))
* **cognito:** fire PreTokenGeneration when the token endpoint redeems a code ([#4438](https://github.com/floci-io/floci/issues/4438)) ([b4d8483](https://github.com/floci-io/floci/commit/b4d8483348c0d509549a19fa4445c26768f4cec5))
* **cognito:** hide unknown users in USER_AUTH ([#4478](https://github.com/floci-io/floci/issues/4478)) ([9c93e6a](https://github.com/floci-io/floci/commit/9c93e6ab7b528f6b326e46f035bb11dd05d53da1))
* **cognito:** honour admin_only account recovery ([#4762](https://github.com/floci-io/floci/issues/4762)) ([a0be062](https://github.com/floci-io/floci/commit/a0be062f9f3e298bcddf90547adc28bf697a0aa8))
* **cognito:** keep tag operations and DescribeUserPoolDomain in the pool's region ([#5133](https://github.com/floci-io/floci/issues/5133)) ([899211e](https://github.com/floci-io/floci/commit/899211e498223f6e52692fab603af5121eb8f8f9))
* **cognito:** omit AvailableChallenges from RespondToAuthChallenge responses ([#4025](https://github.com/floci-io/floci/issues/4025)) ([db2e0ab](https://github.com/floci-io/floci/commit/db2e0ab8d731f65f37acc6e7bbd79755ef3cc3c1)), closes [#4003](https://github.com/floci-io/floci/issues/4003)
* **cognito:** persist app client AuthSessionValidity ([#4481](https://github.com/floci-io/floci/issues/4481)) ([c0cb49f](https://github.com/floci-io/floci/commit/c0cb49facc739b6012fe1d50e096dfa552622ee0))
* **cognito:** refuse DeleteUserPool while deletion protection is active ([#3961](https://github.com/floci-io/floci/issues/3961)) ([1e84858](https://github.com/floci-io/floci/commit/1e8485830c68c24128a4f8867e91bd2c77b489c2)), closes [#3948](https://github.com/floci-io/floci/issues/3948)
* **cognito:** reject missing SRP challenge session ([#4578](https://github.com/floci-io/floci/issues/4578)) ([fbbbf24](https://github.com/floci-io/floci/commit/fbbbf244af1d01c2a7432813d7550526ca26bf40))
* **cognito:** reject unrecognized AuthFlow instead of issuing tokens ([#3923](https://github.com/floci-io/floci/issues/3923)) ([61f67cc](https://github.com/floci-io/floci/commit/61f67cc8346611902c737576cf3702ab8bea3adb))
* **cognito:** scope OAuth tokens to the requested scopes ([#4771](https://github.com/floci-io/floci/issues/4771)) ([f1d718c](https://github.com/floci-io/floci/commit/f1d718cae272b92d946ba839efc062693b80ce59))
* **cognito:** stop defaulting unset password requirements to enabled ([#4250](https://github.com/floci-io/floci/issues/4250)) ([4e42f47](https://github.com/floci-io/floci/commit/4e42f477400a2ab72d82b6129db775a0f9195475))
* **cognito:** validate PasswordPolicy MinimumLength and remove default of 8 ([#4359](https://github.com/floci-io/floci/issues/4359)) ([47ea463](https://github.com/floci-io/floci/commit/47ea46314653a81164e3116012671e4c6eb1f64c)), closes [#4256](https://github.com/floci-io/floci/issues/4256)
* **compat:** read VPC ID from OpenTofu state ([#3831](https://github.com/floci-io/floci/issues/3831)) ([b782530](https://github.com/floci-io/floci/commit/b782530cd26df30fad9cae685cf41d0da712d78e))
* **config:** enforce safe default network binding ([#3684](https://github.com/floci-io/floci/issues/3684)) ([1831f10](https://github.com/floci-io/floci/commit/1831f1010593611bfd24bcb1de6e5ad207363930))
* **core:** build and recognise AWS hostnames in every partition ([#4451](https://github.com/floci-io/floci/issues/4451)) ([2cccc73](https://github.com/floci-io/floci/commit/2cccc73499f009b5930a825aff5931a914abbbc3)), closes [#4444](https://github.com/floci-io/floci/issues/4444) [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** compare ARN partitions with the resource's region, not the literal aws ([#4791](https://github.com/floci-io/floci/issues/4791)) ([d72923a](https://github.com/floci-io/floci/commit/d72923ab33d5de368ea191a1517fa0c72683a00a)), closes [#4272](https://github.com/floci-io/floci/issues/4272) [#4790](https://github.com/floci-io/floci/issues/4790) [#4790](https://github.com/floci-io/floci/issues/4790) [RdsJdbcCompatTest#createDbInstanceAndConnectWithPassword](https://github.com/RdsJdbcCompatTest/issues/createDbInstanceAndConnectWithPassword)
* **core:** let RequestScopes run background work in a given region ([#5054](https://github.com/floci-io/floci/issues/5054)) ([971dc01](https://github.com/floci-io/floci/commit/971dc01f349d015b71399846e8981e3a27834fad))
* **core:** mint every ARN in the request's partition ([#4444](https://github.com/floci-io/floci/issues/4444)) ([0e8f965](https://github.com/floci-io/floci/commit/0e8f965cb6fa82bcd86f8178de48971882a227a5)), closes [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** mint every regionless ARN in its partition and gate blank-region Arn.of calls ([#4787](https://github.com/floci-io/floci/issues/4787)) ([27ddf0b](https://github.com/floci-io/floci/commit/27ddf0bb0000925f38cd71aef8ddcb4f60019d06)), closes [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** name the exception class in a message-less Query catch-all ([#3728](https://github.com/floci-io/floci/issues/3728)) ([2b09160](https://github.com/floci-io/floci/commit/2b091608afa804cabf3532e723f2f78fc9308b40)), closes [#3356](https://github.com/floci-io/floci/issues/3356) [#3356](https://github.com/floci-io/floci/issues/3356)
* **core:** read ARNs and Step Functions integration ids in every partition ([#4358](https://github.com/floci-io/floci/issues/4358)) ([eb2872f](https://github.com/floci-io/floci/commit/eb2872f578e13a6de4422836ffdbfd72fbf0958f)), closes [#4272](https://github.com/floci-io/floci/issues/4272) [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** refuse a SigV4 scope region that no AWS partition publishes ([#4393](https://github.com/floci-io/floci/issues/4393)) ([6fcfc04](https://github.com/floci-io/floci/commit/6fcfc0450ad7123b3bfbb2dec1551ae3c116bbde))
* **core:** return UnknownOperationException when X-Amz-Target is missing ([#3925](https://github.com/floci-io/floci/issues/3925)) ([ca98384](https://github.com/floci-io/floci/commit/ca98384b4ae285266d76b655865dad3e704a4bf2))
* **core:** serve HTTP/1.0 requests that omit the Host header ([#4174](https://github.com/floci-io/floci/issues/4174)) ([f084243](https://github.com/floci-io/floci/commit/f084243fc08a48fefc057160cb820bf636b03a71))
* **core:** service principals are universal in every partition; accept the legacy forms ([#4633](https://github.com/floci-io/floci/issues/4633)) ([43ed79d](https://github.com/floci-io/floci/commit/43ed79d15bde34d94ecb61085596defb6bd065c3)), closes [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** stop accepting SigV4 scopes no SDK signs with ([#5005](https://github.com/floci-io/floci/issues/5005)) ([0740adf](https://github.com/floci-io/floci/commit/0740adf9aeda89c8a0695eccc7bc73185899277d))
* **core:** stop MultipartFormParser.ParsedForm using Optional as a record field ([#5011](https://github.com/floci-io/floci/issues/5011)) ([a22de62](https://github.com/floci-io/floci/commit/a22de628e680942da1686838473b3d4f00d6e3b8))
* **core:** use the deployment region where Floci fell back to us-east-1 ([#4974](https://github.com/floci-io/floci/issues/4974)) ([0bae2f0](https://github.com/floci-io/floci/commit/0bae2f0e35ddedc99192aeac0f859bfc901ab160))
* create Firehose buckets and backfill EKS OIDC issuers in the resource's region ([#5099](https://github.com/floci-io/floci/issues/5099)) ([4d95855](https://github.com/floci-io/floci/commit/4d9585583ddf04369d64f00bcf345ff03d39d413))
* distinguish a failed verification API call from an unsigned commit ([#3840](https://github.com/floci-io/floci/issues/3840)) ([c261103](https://github.com/floci-io/floci/commit/c2611038a4392cd7f2d17ac48d1c9d3117f4f724)), closes [#3812](https://github.com/floci-io/floci/issues/3812)
* **docker:** follow adopted sidecar containers from now instead of replaying their log history ([#3612](https://github.com/floci-io/floci/issues/3612)) ([ebb79ed](https://github.com/floci-io/floci/commit/ebb79ed3c200e83f2f33dc06b3997ce96677c0ec))
* **docker:** keep host network mode for containers that publish ports ([#4192](https://github.com/floci-io/floci/issues/4192)) ([a574a6d](https://github.com/floci-io/floci/commit/a574a6d01f47aecdf7505214bec842989c1f17c4)), closes [#2798](https://github.com/floci-io/floci/issues/2798) [#4175](https://github.com/floci-io/floci/issues/4175)
* **docker:** make the Docker client pool size configurable, default 1024 ([#4276](https://github.com/floci-io/floci/issues/4276)) ([76f8c09](https://github.com/floci-io/floci/commit/76f8c0934134cafe089f2ac464114ffb35f0dbc4)), closes [#2219](https://github.com/floci-io/floci/issues/2219) [#2224](https://github.com/floci-io/floci/issues/2224)
* **docker:** move the image bases to UBI 9.8 ([#4782](https://github.com/floci-io/floci/issues/4782)) ([d541878](https://github.com/floci-io/floci/commit/d5418789d2a252ba2d26cc932c4f784321fe103a))
* **docker:** pass the resolved TLS config to the Docker HTTP client ([#4638](https://github.com/floci-io/floci/issues/4638)) ([728e000](https://github.com/floci-io/floci/commit/728e000187ef4ff71a8d85fc8984d92324246f58)), closes [#4608](https://github.com/floci-io/floci/issues/4608)
* **docker:** re-own the configured persistent path, not only /app/data ([#4525](https://github.com/floci-io/floci/issues/4525)) ([7e3ff3c](https://github.com/floci-io/floci/commit/7e3ff3c5ee4bee6b04c3f405476a2156e9aaf2e2))
* **docker:** retry transient daemon I/O at the transport seam and split streaming pools ([#4614](https://github.com/floci-io/floci/issues/4614)) ([1531537](https://github.com/floci-io/floci/commit/153153755962bc0aa600d203eee575aff096f044))
* **docker:** stop the bundled AWS CLI fetching URL-valued parameters ([#3426](https://github.com/floci-io/floci/issues/3426)) ([bd005ac](https://github.com/floci-io/floci/commit/bd005ac9c75cc80933f333e26e9245c6a42f8d5f))
* **docs:** prevent stale service action counts ([#5018](https://github.com/floci-io/floci/issues/5018)) ([4d980a3](https://github.com/floci-io/floci/commit/4d980a361fa2e658965c9b69e69da0d562c4754b))
* **dynamodb:** add missing ConsumedCapacity for PartiQL's ExecuteStatement and BatchExecuteStatement ([#4165](https://github.com/floci-io/floci/issues/4165)) ([65b2b13](https://github.com/floci-io/floci/commit/65b2b13f5c3f8f3255243321640ac38932098f1d))
* **dynamodb:** add missing ConsumedCapacity to transaction responses ([#4151](https://github.com/floci-io/floci/issues/4151)) ([5d9986a](https://github.com/floci-io/floci/commit/5d9986aa6cf4648e92ffe51f06e8c6c40085ab3f))
* **dynamodb:** apply the ProjectionExpression of a TransactGetItems Get ([#4061](https://github.com/floci-io/floci/issues/4061)) ([138f3c2](https://github.com/floci-io/floci/commit/138f3c265080f20e148c65939d1de503b0867202))
* **dynamodb:** cancel TransactWriteItems on a key that does not match the schema ([#3674](https://github.com/floci-io/floci/issues/3674)) ([487cacb](https://github.com/floci-io/floci/commit/487cacb3bc6c024d55f60d4b7c64331330f3c632))
* **dynamodb:** enforce the 400KB item limit on every update surface ([#3991](https://github.com/floci-io/floci/issues/3991)) ([3958be1](https://github.com/floci-io/floci/commit/3958be1d0ead23b1adcc2f2b6711df235dad6191))
* **dynamodb:** escape composite key segments ([#3804](https://github.com/floci-io/floci/issues/3804)) ([5340e88](https://github.com/floci-io/floci/commit/5340e88605f372906ca080a50c311bd6dfe802f0))
* **dynamodb:** filter an unkeyed PartiQL index read on the index view ([#4319](https://github.com/floci-io/floci/issues/4319)) ([9454cee](https://github.com/floci-io/floci/commit/9454ceed21d35fce577d14337ed2687afa059a3d))
* **dynamodb:** honor MICROSECOND ApproximateCreationDateTimePrecision for Kinesis destinations and streams false enablement ([#3874](https://github.com/floci-io/floci/issues/3874)) ([5d23a70](https://github.com/floci-io/floci/commit/5d23a70cc0187d3754b04516f88f2f44cd846da0))
* **dynamodb:** match AWS error messages for item calls and projections ([#4315](https://github.com/floci-io/floci/issues/4315)) ([8f606c3](https://github.com/floci-io/floci/commit/8f606c3587d8eeb6151a2ed42b66b8c2cb963644)), closes [#alias](https://github.com/floci-io/floci/issues/alias)
* **dynamodb:** match the AWS shape of the Kinesis destination responses ([#4917](https://github.com/floci-io/floci/issues/4917)) ([5de9b0d](https://github.com/floci-io/floci/commit/5de9b0d6c1ea740c3fda828688e753dd51756aa1))
* **dynamodb:** recompute UpdateTable AttributeDefinitions ([#4046](https://github.com/floci-io/floci/issues/4046)) ([60fd65b](https://github.com/floci-io/floci/commit/60fd65b5b63cc22c8d8e188d62c067ef3a1e8203))
* **dynamodb:** reject a request member of the wrong JSON type ([#4636](https://github.com/floci-io/floci/issues/4636)) ([1465251](https://github.com/floci-io/floci/commit/1465251e0cbe5d5caffc4523796fa3ef985c56fe))
* **dynamodb:** reject an unknown BillingMode ([#4554](https://github.com/floci-io/floci/issues/4554)) ([b8b5fcd](https://github.com/floci-io/floci/commit/b8b5fcd4766bacfe54fb826be9a146ed12c766f8))
* **dynamodb:** reject undefined expression attribute placeholders ([#4398](https://github.com/floci-io/floci/issues/4398)) ([5ec18c5](https://github.com/floci-io/floci/commit/5ec18c507ce1f75843d2ab0d8592ea55f9f19703)), closes [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#missing](https://github.com/floci-io/floci/issues/missing) [#missing](https://github.com/floci-io/floci/issues/missing) [#2893](https://github.com/floci-io/floci/issues/2893) [#name](https://github.com/floci-io/floci/issues/name)
* **dynamodb:** report a global table's home region as a replica in DescribeTable ([#4197](https://github.com/floci-io/floci/issues/4197)) ([d96e41c](https://github.com/floci-io/floci/commit/d96e41cf2f810e2c5033688053d74bde2f33596a))
* **dynamodb:** report a missing GSI on UpdateTable the way AWS does ([#4564](https://github.com/floci-io/floci/issues/4564)) ([e7e49f9](https://github.com/floci-io/floci/commit/e7e49f9125ebb7e99d0a5a860845a7d0aa874f7c))
* **dynamodb:** route stream consumers through one account-scoped reader ([#4394](https://github.com/floci-io/floci/issues/4394)) ([2df0521](https://github.com/floci-io/floci/commit/2df052181d84d930f420507e6043ea6e34223b1e))
* **dynamodb:** scope streams and sequence counters by account ([#4116](https://github.com/floci-io/floci/issues/4116)) ([d53ea39](https://github.com/floci-io/floci/commit/d53ea39be9174d1752551e802d95490d604ac73e))
* **dynamodb:** size numbers by base-100 digit pairs ([#4530](https://github.com/floci-io/floci/issues/4530)) ([c9427b5](https://github.com/floci-io/floci/commit/c9427b5832960da9280c695695c7f48ffbd1c85c))
* **dynamodb:** size() of a Binary counts its bytes, not its base64 text ([#5058](https://github.com/floci-io/floci/issues/5058)) ([db2a67f](https://github.com/floci-io/floci/commit/db2a67f12250c102165af90579bae15398dfd81b))
* **dynamodb:** treat resolved projection aliases as literal names, not list indices ([#3633](https://github.com/floci-io/floci/issues/3633)) ([c707415](https://github.com/floci-io/floci/commit/c707415be78fdfc5b9e4c055450720e0a6e37017))
* **dynamodb:** validate GSI and LSI index names like AWS ([#4601](https://github.com/floci-io/floci/issues/4601)) ([dad5648](https://github.com/floci-io/floci/commit/dad5648b7b96f8638661c45d4914ab0e832eb546))
* **dynamodb:** validate transaction condition expressions ([#3691](https://github.com/floci-io/floci/issues/3691)) ([934d0b8](https://github.com/floci-io/floci/commit/934d0b829fb966837955fac5a2b7c14436d6cb84))
* **ec2:** add t2.nano, t2.small, t3.nano and t3a.nano to the instance type catalog ([#4788](https://github.com/floci-io/floci/issues/4788)) ([3a56aad](https://github.com/floci-io/floci/commit/3a56aad67057fe6bcc7142b0bca2cc67aa6714d4))
* **ec2:** an interface VPC endpoint reports its network interfaces, and they resolve ([#4598](https://github.com/floci-io/floci/issues/4598)) ([6b7d176](https://github.com/floci-io/floci/commit/6b7d17698cefa38ca6c7c9b6906f8c47b27eb156)), closes [#21](https://github.com/floci-io/floci/issues/21)
* **ec2:** apply filters to transit gateway route table lookups ([#3820](https://github.com/floci-io/floci/issues/3820)) ([d15b388](https://github.com/floci-io/floci/commit/d15b388aca73b92f2c35badf65c80c313fe8b52c))
* **ec2:** attach Docker-hosted Floci to VPC networks ([#3862](https://github.com/floci-io/floci/issues/3862)) ([c3ec381](https://github.com/floci-io/floci/commit/c3ec3819ae3315a0be0904cd8fecef20ccabe3d9))
* **ec2:** decode CloudFormation launch template user data ([#4711](https://github.com/floci-io/floci/issues/4711)) ([3df7fb1](https://github.com/floci-io/floci/commit/3df7fb17ee5f8162dabc3e19169ffd754905354e))
* **ec2:** delete VPC default security group, route table and network ACL with the VPC ([#3878](https://github.com/floci-io/floci/issues/3878)) ([75fee00](https://github.com/floci-io/floci/commit/75fee00adcb24d932de19ac6e053ca4191292d6c))
* **ec2:** deliver flow log records in the format the flow log declares ([#4429](https://github.com/floci-io/floci/issues/4429)) ([4b15ca8](https://github.com/floci-io/floci/commit/4b15ca89508c36f648a97ba8e93c8035e80077d4))
* **ec2:** honor dry run for replace route ([#4300](https://github.com/floci-io/floci/issues/4300)) ([55f9ff5](https://github.com/floci-io/floci/commit/55f9ff5a8bbcc0488e6a28f174bb28af6cf8fb2e))
* **ec2:** honor RunInstances dry run before provisioning ([#3599](https://github.com/floci-io/floci/issues/3599)) ([46b66ff](https://github.com/floci-io/floci/commit/46b66ffa40efd5a4e84998944bd2b3e543aa21c0))
* **ec2:** instances under security group enforcement no longer terminate at launch ([#4510](https://github.com/floci-io/floci/issues/4510)) ([4faa2b1](https://github.com/floci-io/floci/commit/4faa2b1354d48aa4220a947cd45e92171b0860e4))
* **ec2:** issue instance-profile role credentials through IMDS ([#3742](https://github.com/floci-io/floci/issues/3742)) ([d4a9691](https://github.com/floci-io/floci/commit/d4a96913df277240452e3e40f2228ccbc2b896a7))
* **ec2:** plan a VPC's CIDR against another Region's network for the same VPC id ([#5134](https://github.com/floci-io/floci/issues/5134)) ([22ff933](https://github.com/floci-io/floci/commit/22ff93365e0844b01cba0aa0799b863d8afa8d80))
* **ec2:** reject a DescribeVpcs filter name the service does not serve ([#4366](https://github.com/floci-io/floci/issues/4366)) ([fde0688](https://github.com/floci-io/floci/commit/fde0688ef361d438ad1a5d9c7aeafe4000bd12d1))
* **ec2:** reject key pair requests without KeyName ([#3727](https://github.com/floci-io/floci/issues/3727)) ([996a680](https://github.com/floci-io/floci/commit/996a680cdc609ffc1117e9629894137b9a747186)), closes [#3307](https://github.com/floci-io/floci/issues/3307) [#3356](https://github.com/floci-io/floci/issues/3356)
* **ec2:** release a capture when a whole batch of instances is terminated ([#4127](https://github.com/floci-io/floci/issues/4127)) ([aba5f4e](https://github.com/floci-io/floci/commit/aba5f4e919f3f67fd5a40d17da2631fa4277be32))
* **ec2:** remove tags on the default resources deleted with the VPC ([#3917](https://github.com/floci-io/floci/issues/3917)) ([c5de833](https://github.com/floci-io/floci/commit/c5de8331b7d3731e63c9f8aaaea82d5b12c6914c))
* **ec2:** report a flow log's custom LogFormat ([#4386](https://github.com/floci-io/floci/issues/4386)) ([fd3696a](https://github.com/floci-io/floci/commit/fd3696a9fc0983dfca1e102333fd3f54c1a17b0c))
* **ec2:** report an unknown subnet id from DescribeSubnets as an error ([#4408](https://github.com/floci-io/floci/issues/4408)) ([49f253d](https://github.com/floci-io/floci/commit/49f253d0ecac58aca7d0215e4a6e7d5243d606ad))
* **ec2:** report instance platform details ([#4322](https://github.com/floci-io/floci/issues/4322)) ([c595792](https://github.com/floci-io/floci/commit/c595792795db9a4653c7e254baf5256f96a6a7c7))
* **ec2:** report the calling account as resource owner ([#3814](https://github.com/floci-io/floci/issues/3814)) ([7e53915](https://github.com/floci-io/floci/commit/7e539155e18161005ee45f110f0026341cd5067c)), closes [#3775](https://github.com/floci-io/floci/issues/3775)
* **ec2:** resolve instance profile names through IAM ([#3856](https://github.com/floci-io/floci/issues/3856)) ([5ec3fb6](https://github.com/floci-io/floci/commit/5ec3fb67a8675a249377b68e6abc84b52415f7af))
* **ec2:** return and filter image tags ([#3808](https://github.com/floci-io/floci/issues/3808)) ([313f91e](https://github.com/floci-io/floci/commit/313f91e06ccefe06a2d9811f4cbb98d2b2ddb016))
* **ec2:** return DependencyViolation from DeleteVpc while dependents remain ([#3916](https://github.com/floci-io/floci/issues/3916)) ([5a11e7f](https://github.com/floci-io/floci/commit/5a11e7f6fb1821405c4a6f59a3cab85144235b66))
* **ec2:** return user data from DescribeInstanceAttribute ([#3601](https://github.com/floci-io/floci/issues/3601)) ([1691012](https://github.com/floci-io/floci/commit/169101233c6c3901a169adfc293453a6241f365c))
* **ec2:** stage user data outside guest temporary mounts ([#3736](https://github.com/floci-io/floci/issues/3736)) ([03603ae](https://github.com/floci-io/floci/commit/03603aeacd77d35b4edf00f83cb0c81717405d10))
* **ec2:** store omitted tag values as empty strings ([#3880](https://github.com/floci-io/floci/issues/3880)) ([052da93](https://github.com/floci-io/floci/commit/052da935151f7105f5df037a91265fafec384a1e))
* **ec2:** use regional private DNS names ([#5033](https://github.com/floci-io/floci/issues/5033)) ([4fb52e0](https://github.com/floci-io/floci/commit/4fb52e0b0722a5e2dfd76c17c528d6f6121c0f4a))
* **ec2:** validate and expire IMDSv2 session tokens ([#4303](https://github.com/floci-io/floci/issues/4303)) ([06ec4b5](https://github.com/floci-io/floci/commit/06ec4b563a176122335a3650dfabac15617e769b))
* **ec2:** validate CreateSecurityGroup required parameters ([#3888](https://github.com/floci-io/floci/issues/3888)) ([37ac250](https://github.com/floci-io/floci/commit/37ac2505e86d4af3088c8f75212f8c984e2bfb90))
* **ec2:** validate DescribeVpcs ids at the query boundary ([#4482](https://github.com/floci-io/floci/issues/4482)) ([5ace428](https://github.com/floci-io/floci/commit/5ace4281f33dae7305c123b79ba06f1c25d6c7f1))
* **ecr:** answer GetAuthorizationToken without the backing registry ([#4635](https://github.com/floci-io/floci/issues/4635)) ([231655b](https://github.com/floci-io/floci/commit/231655b70a29475dd0f0835d3eb897b8548b404d)), closes [#4634](https://github.com/floci-io/floci/issues/4634)
* **ecr:** forward every Accept header to the backing registry ([#5069](https://github.com/floci-io/floci/issues/5069)) ([32f01ba](https://github.com/floci-io/floci/commit/32f01ba13d4ddcbf61b9a11c3ad7672ec5f36605)), closes [#4869](https://github.com/floci-io/floci/issues/4869)
* **ecr:** return a proxyEndpoint for the request's region ([#4277](https://github.com/floci-io/floci/issues/4277)) ([4de043c](https://github.com/floci-io/floci/commit/4de043cf88565a90d7cc11d8324a765a69bee75b)), closes [#4264](https://github.com/floci-io/floci/issues/4264)
* **ecr:** serve the registry data plane over TLS ([#4040](https://github.com/floci-io/floci/issues/4040)) ([7777a97](https://github.com/floci-io/floci/commit/7777a97de9e46b98238a4eb580749c4dabede1d2))
* **ecr:** support image scanning configuration updates ([#4928](https://github.com/floci-io/floci/issues/4928)) ([543f016](https://github.com/floci-io/floci/commit/543f01618f4070bde51d45a77464c70bb75516dd))
* **ecs:** a service reaches steady state, and a finished deployment stays finished ([#4694](https://github.com/floci-io/floci/issues/4694)) ([c6b8a70](https://github.com/floci-io/floci/commit/c6b8a70ea8dd125913d77eb1839b2daf02717bdb))
* **ecs:** apply volumesFrom to task containers ([#3811](https://github.com/floci-io/floci/issues/3811)) ([de54409](https://github.com/floci-io/floci/commit/de54409fc62885f50630626795f049c493e68aaf))
* **ecs:** complete failed service deployment handling ([#4874](https://github.com/floci-io/floci/issues/4874)) ([1d85e6b](https://github.com/floci-io/floci/commit/1d85e6bf6e196b829d286cc35bde82f686414219))
* **ecs:** delete a service's deployment records with the service ([#4757](https://github.com/floci-io/floci/issues/4757)) ([bd0f468](https://github.com/floci-io/floci/commit/bd0f468d3eaebff46a82c0d2a63f7811b71f42ed))
* **ecs:** end a deployment the circuit breaker detects as failed ([#4767](https://github.com/floci-io/floci/issues/4767)) ([4716ac9](https://github.com/floci-io/floci/commit/4716ac999261ec72290ce4a8bb69dd70494045e5))
* **ecs:** keep task definitions and their revisions per region ([#5078](https://github.com/floci-io/floci/issues/5078)) ([e22e24a](https://github.com/floci-io/floci/commit/e22e24a8105c12c7688c3454ed4b61ff9788f758))
* **ecs:** pull task images at launch so a moved tag reaches the next task ([#4583](https://github.com/floci-io/floci/issues/4583)) ([d73e33f](https://github.com/floci-io/floci/commit/d73e33fe4bf0f5d8ce9195f0ab463e011fb523de))
* **ecs:** reconcile persisted services at boot ([#4501](https://github.com/floci-io/floci/issues/4501)) ([52225e2](https://github.com/floci-io/floci/commit/52225e2053f60f94377ea5a138955d1145bd12cb))
* **ecs:** register reachable task addresses in Cloud Map and bound synthesised ENI addresses ([#4509](https://github.com/floci-io/floci/issues/4509)) ([014156a](https://github.com/floci-io/floci/commit/014156a546daf3620dac9ee99b08413d6ba48528))
* **ecs:** release stale task containers and registrations, and evict ones that would misroute a reused address ([#4513](https://github.com/floci-io/floci/issues/4513)) ([451a30f](https://github.com/floci-io/floci/commit/451a30f98e9bcfbb018e2de1e870fb7119b2bd50))
* **ecs:** report serviceConnectConfiguration on the service's deployment ([#3662](https://github.com/floci-io/floci/issues/3662)) ([7da4ee0](https://github.com/floci-io/floci/commit/7da4ee0b6b1ad9d5eb2bc9f1bb4422fb5f733cde))
* **ecs:** retry teardown of redeployed task containers ([#4280](https://github.com/floci-io/floci/issues/4280)) ([76cc27f](https://github.com/floci-io/floci/commit/76cc27f2f1a9f230ac6341085c5dccc637c704d1))
* **ecs:** roll a DAEMON service's tasks when its task definition changes ([#4766](https://github.com/floci-io/floci/issues/4766)) ([c43269e](https://github.com/floci-io/floci/commit/c43269e0adad6d62517559930d88571186255ab0)), closes [#4744](https://github.com/floci-io/floci/issues/4744)
* **ecs:** run ECS Exec sessions as root like the real agent ([#5074](https://github.com/floci-io/floci/issues/5074)) ([30be71c](https://github.com/floci-io/floci/commit/30be71c56ee69e17c92802458e5178ab716d2d5a)), closes [#4850](https://github.com/floci-io/floci/issues/4850)
* **ecs:** send container logs to the awslogs group and stream from the task definition ([#4808](https://github.com/floci-io/floci/issues/4808)) ([bc2592e](https://github.com/floci-io/floci/commit/bc2592e300e4c9ee91f244adb4e6a038530d4486))
* **ecs:** send container logs to the task's account ([#4833](https://github.com/floci-io/floci/issues/4833)) ([955264c](https://github.com/floci-io/floci/commit/955264cf5d1a5c2fb5febf65126bf7d9e0c1776d))
* **ecs:** use shared Docker Hub image in leftover test ([#4645](https://github.com/floci-io/floci/issues/4645)) ([8219929](https://github.com/floci-io/floci/commit/8219929344dcfcfa6237bf8500aee76cd5ceb58c))
* **eks:** accept IAM authentication tokens for the authenticator's token lifetime ([#4186](https://github.com/floci-io/floci/issues/4186)) ([7eafd2f](https://github.com/floci-io/floci/commit/7eafd2f7067eb14267f073d7dff25e5d972c72a1))
* **eks:** claim the cluster user data slot atomically ([#4190](https://github.com/floci-io/floci/issues/4190)) ([dc70f60](https://github.com/floci-io/floci/commit/dc70f60a6618cf7b3e590bebb5a9dc2fafcd63e5))
* **eks:** fail the delete when Docker cannot remove the cluster container ([#4960](https://github.com/floci-io/floci/issues/4960)) ([d5fd4d5](https://github.com/floci-io/floci/commit/d5fd4d52f181063ab9a44e78eb4928532e1a72c8))
* **eks:** isolate capacity backups from live clusters ([#4663](https://github.com/floci-io/floci/issues/4663)) ([ef08877](https://github.com/floci-io/floci/commit/ef0887783743c7ada06d8c713c5292fff328d934))
* **eks:** persist explicit version flag across restarts ([#4101](https://github.com/floci-io/floci/issues/4101)) ([b4f4b38](https://github.com/floci-io/floci/commit/b4f4b386da1996bd4b267180096a59a45e512b72))
* **eks:** populate clusterSecurityGroupId on cluster responses ([#3924](https://github.com/floci-io/floci/issues/3924)) ([51467db](https://github.com/floci-io/floci/commit/51467dbc23cc21330c03f114bfa7836121ba8e89))
* **eks:** preserve worker webhook scope in the URL path ([#3849](https://github.com/floci-io/floci/issues/3849)) ([fdec637](https://github.com/floci-io/floci/commit/fdec637c27c50290c87fb2317ae5d4968cab24f1))
* **eks:** release the API server port when a cluster is deleted or fails to start ([#4937](https://github.com/floci-io/floci/issues/4937)) ([72788df](https://github.com/floci-io/floci/commit/72788dfdb84f63c8a6a5e98635cc4c1e42ea0a77))
* **eks:** remove the k3s container on DeleteCluster when shutdown retention is on ([#4241](https://github.com/floci-io/floci/issues/4241)) ([6bf1695](https://github.com/floci-io/floci/commit/6bf1695f2ad5cd8359a55f0331f42d6c5113e6b4)), closes [#4239](https://github.com/floci-io/floci/issues/4239)
* **eks:** resolve the token webhook's access keys from any account ([#5003](https://github.com/floci-io/floci/issues/5003)) ([7822b2c](https://github.com/floci-io/floci/commit/7822b2c396b1e7df4958d46ff8e1aa0bce07bd14))
* **eks:** stop mirroring cluster audit logs to the Floci console ([#4589](https://github.com/floci-io/floci/issues/4589)) ([b2d668d](https://github.com/floci-io/floci/commit/b2d668d9ae48e9a87bde4db9c61e7fffbe3b38b3))
* **eks:** store and return encryptionConfig and logging on clusters ([#4007](https://github.com/floci-io/floci/issues/4007)) ([aede31c](https://github.com/floci-io/floci/commit/aede31c99c10b666a53516c505c081d44cf6c23b))
* **eks:** store and return node group launchTemplate, taints, remoteAccess, nodeRepairConfig and warmPoolConfig ([#4102](https://github.com/floci-io/floci/issues/4102)) ([cebdc6f](https://github.com/floci-io/floci/commit/cebdc6f2bb9e0533c7b81d25c6a5f1c77f985070))
* **eks:** validate the node group launchTemplate against EC2 on CreateNodegroup ([#4148](https://github.com/floci-io/floci/issues/4148)) ([90d8c35](https://github.com/floci-io/floci/commit/90d8c355d9fa582ee6b3802f2228aa6a4f1b4499))
* **elasticache:** create single-node redis clusters and close provisioning races ([#3634](https://github.com/floci-io/floci/issues/3634)) ([684239b](https://github.com/floci-io/floci/commit/684239b0ef71b0038ed20b79e304e3acb2b986f8))
* **elasticache:** honor top-level user passwords and let ModifyUser change auth and access string ([#4431](https://github.com/floci-io/floci/issues/4431)) ([4001556](https://github.com/floci-io/floci/commit/4001556a31724698da29bff99c744ce737505fc6))
* **elasticache:** re-provision caches on restart instead of reporting a dead endpoint as available ([#4094](https://github.com/floci-io/floci/issues/4094)) ([14d13ee](https://github.com/floci-io/floci/commit/14d13ee798b86a7fc29e69f4e4da0d8f882ff0ad))
* **elasticache:** report a ConfigurationEndpoint only for cluster-mode-enabled replication groups ([#4469](https://github.com/floci-io/floci/issues/4469)) ([5af1d40](https://github.com/floci-io/floci/commit/5af1d4048ef2483ff0c92a6250049edfe79d8653))
* **elasticache:** report a memcached cluster's node count, type, ARN and nodes ([#5000](https://github.com/floci-io/floci/issues/5000)) ([7a1f9dd](https://github.com/floci-io/floci/commit/7a1f9dd8265a1…
omatheusmesmo pushed a commit to omatheusmesmo/floci that referenced this pull request Oct 12, 2026
* fix(cloudformation): apply stack tags during updates

* test(cloudformation): cover tags-only and failed stack updates

* fix(cloudformation): distinguish empty tags from omitted tags

* fix(cloudformation): reject implicit CREATE with previous template

* test(cloudformation): validate stack tag updates with AWS SDK

* test(cloudformation): fail on SDK cleanup errors

* fix(cloudformation): allow previous template with omitted type
Signed-off-by: Matheus Oliveira <matheus.6148@gmail.com>
omatheusmesmo pushed a commit to omatheusmesmo/floci that referenced this pull request Oct 12, 2026
# [2.2.0](https://github.com/floci-io/floci/compare/2.1.0...2.2.0) (2026-10-06)

### Bug Fixes

* add Scheduler retry backoff and DLQ handling ([#3687](https://github.com/floci-io/floci/issues/3687)) ([6829892](https://github.com/floci-io/floci/commit/682989288ad30e8ca1dec4d0ebd750f0ecbd9992))
* **apigateway,appsync:** sandbox VTL rendering with SecureUberspector and execution limits ([#3542](https://github.com/floci-io/floci/issues/3542)) ([144b90e](https://github.com/floci-io/floci/commit/144b90e6fa861a5ac882e99a090d503da01945c4)), closes [#foreach](https://github.com/floci-io/floci/issues/foreach) [#set](https://github.com/floci-io/floci/issues/set) [#foreach](https://github.com/floci-io/floci/issues/foreach)
* **apigateway:** accept a region label before the built-in execute-api suffixes ([#4705](https://github.com/floci-io/floci/issues/4705)) ([5000bcd](https://github.com/floci-io/floci/commit/5000bcd041890ea14d3125a771a4efe6dc07cf32)), closes [#4701](https://github.com/floci-io/floci/issues/4701)
* **apigateway:** capture HTTP proxy greedy suffixes ([#4980](https://github.com/floci-io/floci/issues/4980)) ([12e9cbd](https://github.com/floci-io/floci/commit/12e9cbd78b53948f28cbd704af178ded3b5a25f5))
* **apigateway:** complete API Gateway API key responses ([#3817](https://github.com/floci-io/floci/issues/3817)) ([ad20699](https://github.com/floci-io/floci/commit/ad20699a6b48862880f5c44b5917da77b7c6a858))
* **apigateway:** create API keys disabled unless enabled is set ([#4731](https://github.com/floci-io/floci/issues/4731)) ([b5c4283](https://github.com/floci-io/floci/commit/b5c428319fff8f11b64b97cd41c5a932d0ac9434))
* **apigateway:** drop the SigV4 Authorization header before REST integrations ([#4567](https://github.com/floci-io/floci/issues/4567)) ([2ec5300](https://github.com/floci-io/floci/commit/2ec5300029bd1a27c2673a0af1c3cde414b84977))
* **apigateway:** format request times with an English locale ([#5093](https://github.com/floci-io/floci/issues/5093)) ([5230039](https://github.com/floci-io/floci/commit/523003972eeebe11d0c33b2da4eb0674b32b5e20))
* **apigateway:** honor import warnings and strict rollback ([#4531](https://github.com/floci-io/floci/issues/4531)) ([b9efda8](https://github.com/floci-io/floci/commit/b9efda8606f87389af7379f46cc07093cf8adb25))
* **apigateway:** import x-amazon-apigateway-any-method in the native image and roll back failed imports ([#4473](https://github.com/floci-io/floci/issues/4473)) ([a5ded3e](https://github.com/floci-io/floci/commit/a5ded3e162db31b2dcbc3872a21475cd9c4ed153))
* **apigateway:** map authorizer context in HTTP integrations ([#4992](https://github.com/floci-io/floci/issues/4992)) ([036f55b](https://github.com/floci-io/floci/commit/036f55b196a3182bfbed218c8de065a25a79389a))
* **apigateway:** mark custom-domain routed requests so S3 virtual-host does not claim them ([#4966](https://github.com/floci-io/floci/issues/4966)) ([832bd97](https://github.com/floci-io/floci/commit/832bd9796689e1b9315de8df084e0070c03d6db6))
* **apigateway:** merge OpenAPI imports in PutRestApi ([#4570](https://github.com/floci-io/floci/issues/4570)) ([cfc9a44](https://github.com/floci-io/floci/commit/cfc9a440c19432e71d4807e5ed8151d76a15a358))
* **apigateway:** preserve and update method response parameters ([#5030](https://github.com/floci-io/floci/issues/5030)) ([b988a06](https://github.com/floci-io/floci/commit/b988a061b4f89048e1c5ae2591ab06633e97ca81))
* **apigateway:** prevent JWT issuer and JWKS SSRF ([#3743](https://github.com/floci-io/floci/issues/3743)) ([ef03c59](https://github.com/floci-io/floci/commit/ef03c59864d9f84a0e574460bc6b8f2a63e8434a))
* **apigateway:** provision CloudFormation MOCK CORS responses ([#4324](https://github.com/floci-io/floci/issues/4324)) ([243797c](https://github.com/floci-io/floci/commit/243797c2c6b83fa5b4b55f6eabbfa89c37388936))
* **apigateway:** register native VTL map reflection ([#4405](https://github.com/floci-io/floci/issues/4405)) ([41d07f6](https://github.com/floci-io/floci/commit/41d07f6e3bc76e857c9de8b585164410bd9be742))
* **apigateway:** reject method request parameter names AWS refuses ([#3549](https://github.com/floci-io/floci/issues/3549)) ([ce5c5b4](https://github.com/floci-io/floci/commit/ce5c5b4cfa0284154aa28ccaddee28e5ac370c6a))
* **apigateway:** resolve AWS variables on REST import ([#4547](https://github.com/floci-io/floci/issues/4547)) ([0383ecf](https://github.com/floci-io/floci/commit/0383ecf53efe8c03a3d936ff4b644faa592def01))
* **apigateway:** return embedded resource methods ([#5109](https://github.com/floci-io/floci/issues/5109)) ([d508a4e](https://github.com/floci-io/floci/commit/d508a4e1974995d491ed0ecbc7d06330857168e6))
* **apigateway:** return integration defaults and patch timeout ([#4798](https://github.com/floci-io/floci/issues/4798)) ([27bfb54](https://github.com/floci-io/floci/commit/27bfb54c6e86085d3c7bbd793b254529b534d073))
* **apigateway:** return stored method, policy, and stage settings ([#3857](https://github.com/floci-io/floci/issues/3857)) ([004d562](https://github.com/floci-io/floci/commit/004d562f3483262c449268879d78e2da1706805a))
* **apigateway:** route REST execute-api virtual hosts ([#4553](https://github.com/floci-io/floci/issues/4553)) ([af3d387](https://github.com/floci-io/floci/commit/af3d387140b800f24c9bb84d827fb8cc467c7b33))
* **apigateway:** share REST request context and complete mappings ([#5035](https://github.com/floci-io/floci/issues/5035)) ([3f591f8](https://github.com/floci-io/floci/commit/3f591f853d35dc6201185c279d61c6cb2a0ad788))
* **apigatewayv2:** allow an idempotent override-id tag on UpdateApi ([#4602](https://github.com/floci-io/floci/issues/4602)) ([cbc4cf9](https://github.com/floci-io/floci/commit/cbc4cf9b910ca4eb71d0df84cb970ab22545e672)), closes [#3430](https://github.com/floci-io/floci/issues/3430) [#3430](https://github.com/floci-io/floci/issues/3430)
* **apigatewayv2:** block link-local and metadata targets in HTTP_PROXY integrations ([#3962](https://github.com/floci-io/floci/issues/3962)) ([5f4aea2](https://github.com/floci-io/floci/commit/5f4aea20d52c4d457a255b00da4e3c688d8021b8))
* **apigatewayv2:** cap HTTP_PROXY integration responses at the 10 MB payload quota ([#4226](https://github.com/floci-io/floci/issues/4226)) ([ea60f70](https://github.com/floci-io/floci/commit/ea60f70ad259bff07f9d11ba6bb0b43d7dffe86c))
* **apigatewayv2:** evaluate HTTP and WebSocket authorizer policies ([#5020](https://github.com/floci-io/floci/issues/5020)) ([1320995](https://github.com/floci-io/floci/commit/1320995d7007ecad2d7ef3b787f84c80eb0ed698)), closes [#5086](https://github.com/floci-io/floci/issues/5086)
* **apigatewayv2:** pin the checked address and cover WebSocket HTTP integrations ([#3978](https://github.com/floci-io/floci/issues/3978)) ([0e02d34](https://github.com/floci-io/floci/commit/0e02d34c6b0189846095ad9b962b22b006f80eda))
* **apigatewayv2:** pin websocket HTTP targets ([#4341](https://github.com/floci-io/floci/issues/4341)) ([5467506](https://github.com/floci-io/floci/commit/5467506fca8cf2fbb43f9a034efc13aadc18a70a))
* **apigatewayv2:** reject an out-of-range AuthorizerResultTtlInSeconds ([#4294](https://github.com/floci-io/floci/issues/4294)) ([bdbc7e9](https://github.com/floci-io/floci/commit/bdbc7e93d3a38d6f243cc4aa27e16a7e9b79ab41)), closes [#4072](https://github.com/floci-io/floci/issues/4072)
* **apigateway:** validate and cache REST Lambda authorizers ([#5002](https://github.com/floci-io/floci/issues/5002)) ([ae3adfe](https://github.com/floci-io/floci/commit/ae3adfe992b6c74f3729db99b0c61f44c25a787a))
* **apigateway:** verify AWS_IAM signatures against the custom-domain path ([#4092](https://github.com/floci-io/floci/issues/4092)) ([c083aad](https://github.com/floci-io/floci/commit/c083aad12b108dbe0be8374ef84bb12f03d545ec))
* **appconfig:** resolve AppConfigData identifiers by name as well as ID ([#4661](https://github.com/floci-io/floci/issues/4661)) ([90c5511](https://github.com/floci-io/floci/commit/90c55114f9f2ccfcc3b1f059f3f467ef622a453f))
* **appconfig:** return feature flags in retrieval format ([#3890](https://github.com/floci-io/floci/issues/3890)) ([1370dc0](https://github.com/floci-io/floci/commit/1370dc02fad1a761f7fa07283d4dbf1bcffa773d))
* **appsync:** bound the Lambda authorizer result cache ([#4345](https://github.com/floci-io/floci/issues/4345)) ([6ed4726](https://github.com/floci-io/floci/commit/6ed4726f52a7ff52854f66477bba6ed1db3855d1))
* **appsync:** move the GraphQL engine to a sidecar, out of the native image ([#3534](https://github.com/floci-io/floci/issues/3534)) ([918a09f](https://github.com/floci-io/floci/commit/918a09f54a508f2d5bc8925e9faa7a315fc9a7e5)), closes [#2917](https://github.com/floci-io/floci/issues/2917) [#2914](https://github.com/floci-io/floci/issues/2914) [#2916](https://github.com/floci-io/floci/issues/2916) [#3799](https://github.com/floci-io/floci/issues/3799)
* **appsync:** send VTL Lambda payload to function ([#4579](https://github.com/floci-io/floci/issues/4579)) ([11b762d](https://github.com/floci-io/floci/commit/11b762d08b68acaea1f5a428f0db0cd053e8e5ce))
* **appsync:** supply reflection config so VTL runs on native image ([#4729](https://github.com/floci-io/floci/issues/4729)) ([7654a7c](https://github.com/floci-io/floci/commit/7654a7cbec59c032c5806c0b26ac0f06e6880a0c)), closes [#return](https://github.com/floci-io/floci/issues/return) [#return](https://github.com/floci-io/floci/issues/return)
* **athena:** accept IN lists and check each table in the injected-partition filter ([#5004](https://github.com/floci-io/floci/issues/5004)) ([008ddea](https://github.com/floci-io/floci/commit/008ddea054759c909bfd6ce4b1ce145771d2520e))
* **athena:** keep terminal queries terminal ([#4112](https://github.com/floci-io/floci/issues/4112)) ([75dd057](https://github.com/floci-io/floci/commit/75dd057b5cc4e71d455195a00ebc7bd7261f8f99))
* **athena:** read Iceberg-format Glue tables via iceberg_scan ([#3738](https://github.com/floci-io/floci/issues/3738)) ([9740b32](https://github.com/floci-io/floci/commit/9740b32b51c62e5c7f9dcc0a337040643b152038)), closes [#3737](https://github.com/floci-io/floci/issues/3737)
* **autoscaling:** prevent reconciler resurrecting deleted groups ([#3818](https://github.com/floci-io/floci/issues/3818)) ([bd9700d](https://github.com/floci-io/floci/commit/bd9700db0d1ae199e564cea1f7940e499d032243))
* **autoscaling:** reconcile groups in every account ([#3824](https://github.com/floci-io/floci/issues/3824)) ([dfb294a](https://github.com/floci-io/floci/commit/dfb294a79a070cde65e06055e3363b87f554855b))
* **autoscaling:** retain membership when instance termination fails ([#4115](https://github.com/floci-io/floci/issues/4115)) ([e377148](https://github.com/floci-io/floci/commit/e377148a523680ee84ad3516b925899106c389af))
* **autoscaling:** round-trip the whole target tracking configuration ([#4369](https://github.com/floci-io/floci/issues/4369)) ([a33c4e0](https://github.com/floci-io/floci/commit/a33c4e0b002b46ad1d754193341bafaa352bcf53))
* **backup:** run scheduled job transitions in the caller's account ([#4965](https://github.com/floci-io/floci/issues/4965)) ([e25f488](https://github.com/floci-io/floci/commit/e25f488bf3066ad19dc3aef3503e6e1bda0926c1))
* **bedrock-agentcore:** expire remembered delete client tokens ([#4477](https://github.com/floci-io/floci/issues/4477)) ([fe55cf0](https://github.com/floci-io/floci/commit/fe55cf0d0680fedbf15fbb878893f183897ab2cc))
* bring the partition literals that merged past the gate back under it ([#4314](https://github.com/floci-io/floci/issues/4314)) ([e73b80d](https://github.com/floci-io/floci/commit/e73b80d5ee22aeff8c59b2b78fdd1379314a3afe)), closes [#4270](https://github.com/floci-io/floci/issues/4270) [#4221](https://github.com/floci-io/floci/issues/4221) [#4304](https://github.com/floci-io/floci/issues/4304) [pull-throu#cache](https://github.com/pull-throu/issues/cache) [#4298](https://github.com/floci-io/floci/issues/4298)
* **build:** preserve Quarkus Surefire argLine ([#3988](https://github.com/floci-io/floci/issues/3988)) ([609b146](https://github.com/floci-io/floci/commit/609b1463897dcca8f3943531e8751aa74423f19b))
* **ci:** add draft PR handling to CI workflows for compatibility and build tests ([#4292](https://github.com/floci-io/floci/issues/4292)) ([375d83c](https://github.com/floci-io/floci/commit/375d83c0f44fe301361cfd7aba9435c542e7b6a0))
* **ci:** pass VERSION to the nightly native image build ([#5165](https://github.com/floci-io/floci/issues/5165)) ([6d417e5](https://github.com/floci-io/floci/commit/6d417e522fa9c412bed125f4941d3c7c493e895d))
* **cloudformation:** answer DescribeStackEvents on a missing stack with AWS's wording ([#4301](https://github.com/floci-io/floci/issues/4301)) ([3560593](https://github.com/floci-io/floci/commit/35605937c8c20d381e89abac7f5e0d699e6e38a8)), closes [#4235](https://github.com/floci-io/floci/issues/4235)
* **cloudformation:** apply an S3 bucket's declared configuration and its policy ([#3950](https://github.com/floci-io/floci/issues/3950)) ([28ca34a](https://github.com/floci-io/floci/commit/28ca34ad6c2b10e609a656cb781000a7dced97e7)), closes [#3947](https://github.com/floci-io/floci/issues/3947)
* **cloudformation:** apply EC2 Instance UserData and IamInstanceProfile in place ([#4206](https://github.com/floci-io/floci/issues/4206)) ([6fadba8](https://github.com/floci-io/floci/commit/6fadba8d572a054d4f92f1204fa4fe8961c8a704))
* **cloudformation:** apply every SQS queue property and reset dropped ones on update ([#4972](https://github.com/floci-io/floci/issues/4972)) ([ab2c0de](https://github.com/floci-io/floci/commit/ab2c0def0ad8ef523526340365fe030f670bb9f6))
* **cloudformation:** apply IAM user tags ([#4010](https://github.com/floci-io/floci/issues/4010)) ([bd40c21](https://github.com/floci-io/floci/commit/bd40c21982fcd5240219dc5e0d8684b0e373da75)), closes [#3998](https://github.com/floci-io/floci/issues/3998)
* **cloudformation:** apply stack tags during updates ([#5031](https://github.com/floci-io/floci/issues/5031)) ([a6df1db](https://github.com/floci-io/floci/commit/a6df1dbb127e6d4c87f409374ce2c78f8c105efa))
* **cloudformation:** await stack completion after ExecuteChangeSet in integration tests ([#4078](https://github.com/floci-io/floci/issues/4078)) ([fafe547](https://github.com/floci-io/floci/commit/fafe5476cd248b1c28ea1d24f279fd1f2c2c7cc5))
* **cloudformation:** bound operation executor ([#3761](https://github.com/floci-io/floci/issues/3761)) ([91de9e4](https://github.com/floci-io/floci/commit/91de9e452e64d124c7eb58165588ca3b3e23e01d))
* **cloudformation:** claim change set atomically before execution ([#3564](https://github.com/floci-io/floci/issues/3564)) ([03d3335](https://github.com/floci-io/floci/commit/03d33350a7da40fcc85d68b1b5dd3e2286ae91c0))
* **cloudformation:** delete UPDATE_FAILED resources on DeleteStack ([#4470](https://github.com/floci-io/floci/issues/4470)) ([60d1125](https://github.com/floci-io/floci/commit/60d112542d743fe254113f6f455afe3f40d8cdd6)), closes [#4467](https://github.com/floci-io/floci/issues/4467)
* **cloudformation:** fail an EC2 instance whose LaunchTemplate cannot be resolved ([#4058](https://github.com/floci-io/floci/issues/4058)) ([e1334cb](https://github.com/floci-io/floci/commit/e1334cb51282d0b6961e88212cdbae56fc25906b)), closes [#3810](https://github.com/floci-io/floci/issues/3810)
* **cloudformation:** forward ProviderARNs on AWS::ApiGateway::Authorizer ([#4704](https://github.com/floci-io/floci/issues/4704)) ([b5f053c](https://github.com/floci-io/floci/commit/b5f053c5872ca0e1d3ad837ec5f9e4ee800a8a52))
* **cloudformation:** honor UsePreviousTemplate on updates ([#5015](https://github.com/floci-io/floci/issues/5015)) ([f9a6558](https://github.com/floci-io/floci/commit/f9a65581beec2b2b628ee7862255bbddc861d284)), closes [#4881](https://github.com/floci-io/floci/issues/4881)
* **cloudformation:** identify Lambda microVM images and network connectors by ARN ([#4971](https://github.com/floci-io/floci/issues/4971)) ([be2998f](https://github.com/floci-io/floci/commit/be2998f2a22e5749c4de96e50e1202ee0d58ddde))
* **cloudformation:** improve EC2 Instance update fidelity ([#4130](https://github.com/floci-io/floci/issues/4130)) ([c847a99](https://github.com/floci-io/floci/commit/c847a9982839bb440113817fe4aceae1856b5eb5))
* **cloudformation:** keep a generated DynamoDB table name across updates ([#3721](https://github.com/floci-io/floci/issues/3721)) ([2d44480](https://github.com/floci-io/floci/commit/2d444801fd84cae4c0376a3dabbdaf8cf8227259)), closes [#3699](https://github.com/floci-io/floci/issues/3699)
* **cloudformation:** keep AWS::ApiGateway::RestApi on stack updates ([#4512](https://github.com/floci-io/floci/issues/4512)) ([a66e2a1](https://github.com/floci-io/floci/commit/a66e2a131dfb717900bff179e4415472758d9a33))
* **cloudformation:** keep unchanged AWS::ApiGateway::Resource on update and remove it on delete ([#4511](https://github.com/floci-io/floci/issues/4511)) ([1ea5a86](https://github.com/floci-io/floci/commit/1ea5a865e3b1b21c92a59f91a5926940221c0453))
* **cloudformation:** key the Lambda hot-reload identity on the Docker host path ([#4275](https://github.com/floci-io/floci/issues/4275)) ([69217df](https://github.com/floci-io/floci/commit/69217dff2a574ea8fd0308e824b6c06ee875275a)), closes [#4080](https://github.com/floci-io/floci/issues/4080)
* **cloudformation:** make a stack's collections safe for concurrent requests ([#4199](https://github.com/floci-io/floci/issues/4199)) ([fac87a6](https://github.com/floci-io/floci/commit/fac87a6cf42b31906deb0d1c7a705671c37c572e)), closes [#3564](https://github.com/floci-io/floci/issues/3564) [#2473](https://github.com/floci-io/floci/issues/2473) [#2419](https://github.com/floci-io/floci/issues/2419)
* **cloudformation:** make EKS Nodegroup Ref the composite cluster/nodegroup id ([#4136](https://github.com/floci-io/floci/issues/4136)) ([69e3717](https://github.com/floci-io/floci/commit/69e371721b49d11eaad86c5463650ad4f7df6af2))
* **cloudformation:** pass Lambda hot-reload code through to the Lambda service ([#4093](https://github.com/floci-io/floci/issues/4093)) ([34f4f72](https://github.com/floci-io/floci/commit/34f4f72e8257532f88b6d9549e90ee7b32bf6f7d)), closes [#4053](https://github.com/floci-io/floci/issues/4053)
* **cloudformation:** propagate nested stack failure status reason and cover changeset rollbacks ([#3921](https://github.com/floci-io/floci/issues/3921)) ([a5254de](https://github.com/floci-io/floci/commit/a5254defb62df6d6babd1836fa9d8ea79cb56c62))
* **cloudformation:** propagate nested stack failures to parent ([#3609](https://github.com/floci-io/floci/issues/3609)) ([700d403](https://github.com/floci-io/floci/commit/700d403fe9895d904e008dd22835e29457930665))
* **cloudformation:** provision Cognito user pool groups ([#3695](https://github.com/floci-io/floci/issues/3695)) ([d9a4db0](https://github.com/floci-io/floci/commit/d9a4db0290c2b608fd5878fc1bf701c90a7310b2))
* **cloudformation:** publish EC2 Instance State via Fn::GetAtt ([#4203](https://github.com/floci-io/floci/issues/4203)) ([024c2cb](https://github.com/floci-io/floci/commit/024c2cbe270256e30eaa755cc3074db9de9d2360))
* **cloudformation:** publish EC2 SecurityGroup Id and Instance VpcId for Fn::GetAtt ([#4155](https://github.com/floci-io/floci/issues/4155)) ([e60cf84](https://github.com/floci-io/floci/commit/e60cf84922a271eaab94561015b9048abf7f4864))
* **cloudformation:** publish RuleName and the RDS group ARNs the current registry schemas declare ([#4135](https://github.com/floci-io/floci/issues/4135)) ([a0e3b6b](https://github.com/floci-io/floci/commit/a0e3b6b674c14a00f4859c03f629ec4f59cb98b7))
* **cloudformation:** read a TemplateURL on the S3 service host as path-style ([#4248](https://github.com/floci-io/floci/issues/4248)) ([239f560](https://github.com/floci-io/floci/commit/239f560d97938b49551b9c306818d0d71ee01e00))
* **cloudformation:** reconcile a named secret in place on UpdateStack ([#4299](https://github.com/floci-io/floci/issues/4299)) ([a777879](https://github.com/floci-io/floci/commit/a7778795186537e481a66444a40348e3eb099926)), closes [#2134](https://github.com/floci-io/floci/issues/2134)
* **cloudformation:** reconcile and replace IAM leaf resources on update and delete ([#3933](https://github.com/floci-io/floci/issues/3933)) ([3a36b8c](https://github.com/floci-io/floci/commit/3a36b8c85c9c865ae2f15f30d09a028698e18067)), closes [#3913](https://github.com/floci-io/floci/issues/3913)
* **cloudformation:** reconcile EC2 security group rules and tags on stack update ([#3863](https://github.com/floci-io/floci/issues/3863)) ([00d1037](https://github.com/floci-io/floci/commit/00d1037635c1cce454081086e9d001e99a644878))
* **cloudformation:** reconcile or replace EC2 instances on stack update ([#3884](https://github.com/floci-io/floci/issues/3884)) ([21beccc](https://github.com/floci-io/floci/commit/21beccceb1828d3ef258159b7069c63a83b64574)), closes [#3810](https://github.com/floci-io/floci/issues/3810)
* **cloudformation:** reject a non-numeric AuthorizerResultTtlInSeconds ([#4055](https://github.com/floci-io/floci/issues/4055)) ([eb247a5](https://github.com/floci-io/floci/commit/eb247a50aa4cca3a17666c511fedab19558a3c8f)), closes [#4021](https://github.com/floci-io/floci/issues/4021)
* **cloudformation:** reject more than one endpoint type on a RestApi update ([#4728](https://github.com/floci-io/floci/issues/4728)) ([9c3593f](https://github.com/floci-io/floci/commit/9c3593f4d101496de7f09feb1c8d16a51201d7ae))
* **cloudformation:** reject non-integer target group ports and health check counts ([#4970](https://github.com/floci-io/floci/issues/4970)) ([a95f4ce](https://github.com/floci-io/floci/commit/a95f4cee3de64f3a356a75e00aebc698e0187023))
* **cloudformation:** remove the login profile when deleting an IAM user ([#3975](https://github.com/floci-io/floci/issues/3975)) ([8af15a7](https://github.com/floci-io/floci/commit/8af15a71c41161d9f939df81593eea20b125a8ea))
* **cloudformation:** replace IAM InstanceProfile on a createOnly change ([#4133](https://github.com/floci-io/floci/issues/4133)) ([03a2d96](https://github.com/floci-io/floci/commit/03a2d969f2e8b862ea26623120c2d1614ed2c123))
* **cloudformation:** resolve a stack id only to the stack carrying it ([#4973](https://github.com/floci-io/floci/issues/4973)) ([8e98c08](https://github.com/floci-io/floci/commit/8e98c087fdf4bbde006cae13d9e55be321b88d09))
* **cloudformation:** resolve change sets by ARN without stack name ([#4885](https://github.com/floci-io/floci/issues/4885)) ([ba944df](https://github.com/floci-io/floci/commit/ba944df9224244889423c2ca365a3d3daf55873b))
* **cloudformation:** resolve dynamic references after Fn::Join ([#3610](https://github.com/floci-io/floci/issues/3610)) ([e5bee4a](https://github.com/floci-io/floci/commit/e5bee4ac22bfa26d76c63724563f13586b67aee4))
* **cloudformation:** resolve intrinsics in IAM policy documents before storing them ([#3739](https://github.com/floci-io/floci/issues/3739)) ([5730947](https://github.com/floci-io/floci/commit/573094720dbd2b8ae3ac7300fb612f0a05a42fe8))
* **cloudformation:** resolve SecretTargetAttachment targets in the stack region ([#3740](https://github.com/floci-io/floci/issues/3740)) ([cf235cf](https://github.com/floci-io/floci/commit/cf235cfb8182e6587c1e5458728062a60f319c0f))
* **cloudformation:** roll back in-place Cognito user pool and client updates ([#5006](https://github.com/floci-io/floci/issues/5006)) ([7ffe43f](https://github.com/floci-io/floci/commit/7ffe43f48f88f3c29e3b86f2bb56739b234fca4a))
* **cloudformation:** skip unchanged resources during updates ([#4442](https://github.com/floci-io/floci/issues/4442)) ([60985b9](https://github.com/floci-io/floci/commit/60985b9a80d604ee842679e82f7ee3f4a7cde320))
* **cloudformation:** tolerate an already-gone EC2 instance or security group on stack delete ([#3842](https://github.com/floci-io/floci/issues/3842)) ([6e03483](https://github.com/floci-io/floci/commit/6e034837ada2ad423ceddaecd5bb01f4c090b59a))
* **cloudformation:** tolerate an already-gone REST API on delete ([#4047](https://github.com/floci-io/floci/issues/4047)) ([3976f2b](https://github.com/floci-io/floci/commit/3976f2bd05208e743fc55ffd41aad95625fef9a3)), closes [#3885](https://github.com/floci-io/floci/issues/3885)
* **cloudformation:** update nested stacks in place ([#3859](https://github.com/floci-io/floci/issues/3859)) ([fbc0d4d](https://github.com/floci-io/floci/commit/fbc0d4d3f2b2c45569f2e63784e8d9ecc5b7563a))
* **cloudformation:** validate required fields on AWS::IAM::Policy ([#4050](https://github.com/floci-io/floci/issues/4050)) ([186a538](https://github.com/floci-io/floci/commit/186a5380d55d658e3fc472f29f2af58df91bc812)), closes [#3971](https://github.com/floci-io/floci/issues/3971)
* **cloudfront:** dedupe CacheBehavior XML parsing ([#3705](https://github.com/floci-io/floci/issues/3705)) ([3641a07](https://github.com/floci-io/floci/commit/3641a074dc708606990b8c3e5fb4690cc0e813bc)), closes [#3652](https://github.com/floci-io/floci/issues/3652)
* **cloudfront:** preserve policy configurations ([#4009](https://github.com/floci-io/floci/issues/4009)) ([eb18b4a](https://github.com/floci-io/floci/commit/eb18b4ab1fcd7f9b819c03eddf087a4490ffd134))
* **cloudhsm:** add issuer key identifiers to hardware chain ([#4707](https://github.com/floci-io/floci/issues/4707)) ([a5dd3c2](https://github.com/floci-io/floci/commit/a5dd3c2f2e595c0d773b9fbc80d15874957953f2))
* **cloudmap:** answer typed DNS records and honor routing policy ([#4534](https://github.com/floci-io/floci/issues/4534)) ([c7492ce](https://github.com/floci-io/floci/commit/c7492ce0f42e19f634b8ceeef715b86768014ff3))
* **cloudwatch:** honor Unit filter in JSON GetMetricStatistics ([#3932](https://github.com/floci-io/floci/issues/3932)) ([8ccc89d](https://github.com/floci-io/floci/commit/8ccc89df41232012b6e5bd6a29b09cca672c5aee))
* **cloudwatchlogs:** add logGroupArn to DescribeLogGroups ([#3868](https://github.com/floci-io/floci/issues/3868)) ([0108b96](https://github.com/floci-io/floci/commit/0108b9653ab05568c9cbafc2552a2797a69a64be))
* **cloudwatchlogs:** journal log events instead of rewriting the store under persistent mode ([#4187](https://github.com/floci-io/floci/issues/4187)) ([a0cb86c](https://github.com/floci-io/floci/commit/a0cb86cc133f7dec681002b01894e14d2668b45c)), closes [#2500](https://github.com/floci-io/floci/issues/2500)
* **cloudwatchlogs:** persist event batches once ([#3767](https://github.com/floci-io/floci/issues/3767)) ([bb67a44](https://github.com/floci-io/floci/commit/bb67a443ce8fe828b6232811f7c0e1cede80827b))
* **cloudwatchlogs:** return creationTime in DescribeLogGroups and DescribeLogStreams ([#4137](https://github.com/floci-io/floci/issues/4137)) ([cde8f48](https://github.com/floci-io/floci/commit/cde8f48084a5008a13f66d2c39c16e071d1e4148)), closes [#4084](https://github.com/floci-io/floci/issues/4084)
* **cloudwatch:** mint the regionless dashboard ARN AWS uses ([#5135](https://github.com/floci-io/floci/issues/5135)) ([c812908](https://github.com/floci-io/floci/commit/c81290823bed505058ccb3a1bcc41ae07f3fce2e))
* **cloudwatch:** raise ResourceNotFoundException when a tag operation names a resource that does not exist ([#4783](https://github.com/floci-io/floci/issues/4783)) ([0c8d184](https://github.com/floci-io/floci/commit/0c8d1848541392ff91991121d96586db564cb3f8))
* **cloudwatch:** retain metric-math alarm query definitions ([#4594](https://github.com/floci-io/floci/issues/4594)) ([1d646c6](https://github.com/floci-io/floci/commit/1d646c6fea70a8d4bfeea4d0ca6d8fc390ea6170))
* **cloudwatch:** return DatapointsToAlarm from the JSON DescribeAlarms response ([#3660](https://github.com/floci-io/floci/issues/3660)) ([a180c14](https://github.com/floci-io/floci/commit/a180c140a7f014e669b7779350bb7ae624ac9234))
* **cloudwatch:** return storedBytes on DescribeLogGroups ([#4202](https://github.com/floci-io/floci/issues/4202)) ([babb43a](https://github.com/floci-io/floci/commit/babb43ac3d883568590bf77d0f85036f3831a5f5))
* **codeartifact:** close the remaining register-vs-reset gap in PerKeyContainerPool ([#4447](https://github.com/floci-io/floci/issues/4447)) ([3da68ff](https://github.com/floci-io/floci/commit/3da68ff50506098e48455afc4a68958147a58842)), closes [#4411](https://github.com/floci-io/floci/issues/4411) [#4411](https://github.com/floci-io/floci/issues/4411)
* **codeartifact:** enforce domains-per-account and repositories-per-domain quotas ([#3949](https://github.com/floci-io/floci/issues/3949)) ([15ed62f](https://github.com/floci-io/floci/commit/15ed62f8cbf1e511dd9b7ed62a53af15d8e02ac8))
* **codeartifact:** extend idempotent asset republish to Published versions ([#4708](https://github.com/floci-io/floci/issues/4708)) ([48214e0](https://github.com/floci-io/floci/commit/48214e04e09d35a889607dc8fd42848776d580ab)), closes [#4619](https://github.com/floci-io/floci/issues/4619)
* **codeartifact:** harden the pypi upload preflight's URI building and index match ([#5029](https://github.com/floci-io/floci/issues/5029)) ([8776c5f](https://github.com/floci-io/floci/commit/8776c5fc3ac5825d3d672ccbd6ba5e58442f0b31)), closes [#5019](https://github.com/floci-io/floci/issues/5019)
* **codeartifact:** log unexpected I/O errors in existingFileMatches ([#4769](https://github.com/floci-io/floci/issues/4769)) ([4f2f494](https://github.com/floci-io/floci/commit/4f2f494442cdd205cda272dd7e4378d3cfad8b94)), closes [#4708](https://github.com/floci-io/floci/issues/4708)
* **codeartifact:** populate resourceId/resourceType on error responses ([#3977](https://github.com/floci-io/floci/issues/3977)) ([2697868](https://github.com/floci-io/floci/commit/2697868e865ce3dfa9f65b5fe90af04c6e3273cd))
* **codeartifact:** stop npm data plane test from missing a fast response body ([#4430](https://github.com/floci-io/floci/issues/4430)) ([8f5ba2b](https://github.com/floci-io/floci/commit/8f5ba2b2a85f793f65b073d2d182acffca92fdeb)), closes [#4369](https://github.com/floci-io/floci/issues/4369) [#4422](https://github.com/floci-io/floci/issues/4422)
* **codeartifact:** stop sidecar containers on state reset and nuke ([#4411](https://github.com/floci-io/floci/issues/4411)) ([61e7f07](https://github.com/floci-io/floci/commit/61e7f07fb650baf7da35b61d8823744e0b24629c))
* **codeartifact:** treat identical-content asset republish as idempotent ([#4619](https://github.com/floci-io/floci/issues/4619)) ([0232d5d](https://github.com/floci-io/floci/commit/0232d5d22457aaae3318adf3e6f9d0e0092ebb4e))
* **codeartifact:** treat identical-content maven redeploy as idempotent ([#4837](https://github.com/floci-io/floci/issues/4837)) ([cd89be4](https://github.com/floci-io/floci/commit/cd89be4a80a775b79678fb9175454dc64bcae4c7))
* **codebuild:** keep only the tail of phase output for failure messages ([#4690](https://github.com/floci-io/floci/issues/4690)) ([70efa35](https://github.com/floci-io/floci/commit/70efa35fe321a514e97a70615489bcc352058d65))
* **codepipeline:** fall back when the source poll interval is not positive ([#4361](https://github.com/floci-io/floci/issues/4361)) ([5913812](https://github.com/floci-io/floci/commit/5913812b53f729ad66069aa4d5c997154e227dbb))
* **codepipeline:** handle legacy pipelines without versions ([#3677](https://github.com/floci-io/floci/issues/3677)) ([374b80e](https://github.com/floci-io/floci/commit/374b80eb658445c10a93c2e26cb7307e2a642ed1))
* **codepipeline:** preserve external actions while stopping ([#3726](https://github.com/floci-io/floci/issues/3726)) ([b3d46d5](https://github.com/floci-io/floci/commit/b3d46d50247992e1694ad88c746ccb2d824e4957))
* **codepipeline:** release per-pipeline locks after use ([#3712](https://github.com/floci-io/floci/issues/3712)) ([e5f9baa](https://github.com/floci-io/floci/commit/e5f9baa12d36b40adee0bee66cc402c61f9707ed))
* **codepipeline:** resolve effective source revisions ([#3514](https://github.com/floci-io/floci/issues/3514)) ([02ad6aa](https://github.com/floci-io/floci/commit/02ad6aa768219675ff5a912011af6fd11c2ea400))
* **codepipeline:** retry failed stages in place ([#3513](https://github.com/floci-io/floci/issues/3513)) ([196d158](https://github.com/floci-io/floci/commit/196d1586daf0cfab11c5b23d9126228c64811b00))
* **codepipeline:** wait for custom jobs while stopping ([#3678](https://github.com/floci-io/floci/issues/3678)) ([c317fa5](https://github.com/floci-io/floci/commit/c317fa52d2c882b78af8b1c1eb54da25ddd8e40d))
* **cognito:** accept USER_SRP_AUTH in AdminInitiateAuth ([#3973](https://github.com/floci-io/floci/issues/3973)) ([2d56d85](https://github.com/floci-io/floci/commit/2d56d85e9eb889902f29a1c2dde4aa346a0a3088))
* **cognito:** align pre-authentication trigger events and errors ([#3861](https://github.com/floci-io/floci/issues/3861)) ([172bfb3](https://github.com/floci-io/floci/commit/172bfb32b0a801023aacc2022eb1eb29d1e4cded))
* **cognito:** default ExplicitAuthFlows to refresh, SRP and custom auth ([#4081](https://github.com/floci-io/floci/issues/4081)) ([06007de](https://github.com/floci-io/floci/commit/06007deea8b04134f0a5a4c6be4cc14dbbdc12c6))
* **cognito:** expire auth challenge sessions ([#4417](https://github.com/floci-io/floci/issues/4417)) ([8b9f441](https://github.com/floci-io/floci/commit/8b9f441bb49607c6085593d35ddc705b09b6e089))
* **cognito:** fail authentication when token triggers fail ([#4727](https://github.com/floci-io/floci/issues/4727)) ([45b0077](https://github.com/floci-io/floci/commit/45b00779b7a3ada38ed46e1ca0322ffb20bc11ad))
* **cognito:** fire PreTokenGeneration when the token endpoint redeems a code ([#4438](https://github.com/floci-io/floci/issues/4438)) ([b4d8483](https://github.com/floci-io/floci/commit/b4d8483348c0d509549a19fa4445c26768f4cec5))
* **cognito:** hide unknown users in USER_AUTH ([#4478](https://github.com/floci-io/floci/issues/4478)) ([9c93e6a](https://github.com/floci-io/floci/commit/9c93e6ab7b528f6b326e46f035bb11dd05d53da1))
* **cognito:** honour admin_only account recovery ([#4762](https://github.com/floci-io/floci/issues/4762)) ([a0be062](https://github.com/floci-io/floci/commit/a0be062f9f3e298bcddf90547adc28bf697a0aa8))
* **cognito:** keep tag operations and DescribeUserPoolDomain in the pool's region ([#5133](https://github.com/floci-io/floci/issues/5133)) ([899211e](https://github.com/floci-io/floci/commit/899211e498223f6e52692fab603af5121eb8f8f9))
* **cognito:** omit AvailableChallenges from RespondToAuthChallenge responses ([#4025](https://github.com/floci-io/floci/issues/4025)) ([db2e0ab](https://github.com/floci-io/floci/commit/db2e0ab8d731f65f37acc6e7bbd79755ef3cc3c1)), closes [#4003](https://github.com/floci-io/floci/issues/4003)
* **cognito:** persist app client AuthSessionValidity ([#4481](https://github.com/floci-io/floci/issues/4481)) ([c0cb49f](https://github.com/floci-io/floci/commit/c0cb49facc739b6012fe1d50e096dfa552622ee0))
* **cognito:** refuse DeleteUserPool while deletion protection is active ([#3961](https://github.com/floci-io/floci/issues/3961)) ([1e84858](https://github.com/floci-io/floci/commit/1e8485830c68c24128a4f8867e91bd2c77b489c2)), closes [#3948](https://github.com/floci-io/floci/issues/3948)
* **cognito:** reject missing SRP challenge session ([#4578](https://github.com/floci-io/floci/issues/4578)) ([fbbbf24](https://github.com/floci-io/floci/commit/fbbbf244af1d01c2a7432813d7550526ca26bf40))
* **cognito:** reject unrecognized AuthFlow instead of issuing tokens ([#3923](https://github.com/floci-io/floci/issues/3923)) ([61f67cc](https://github.com/floci-io/floci/commit/61f67cc8346611902c737576cf3702ab8bea3adb))
* **cognito:** scope OAuth tokens to the requested scopes ([#4771](https://github.com/floci-io/floci/issues/4771)) ([f1d718c](https://github.com/floci-io/floci/commit/f1d718cae272b92d946ba839efc062693b80ce59))
* **cognito:** stop defaulting unset password requirements to enabled ([#4250](https://github.com/floci-io/floci/issues/4250)) ([4e42f47](https://github.com/floci-io/floci/commit/4e42f477400a2ab72d82b6129db775a0f9195475))
* **cognito:** validate PasswordPolicy MinimumLength and remove default of 8 ([#4359](https://github.com/floci-io/floci/issues/4359)) ([47ea463](https://github.com/floci-io/floci/commit/47ea46314653a81164e3116012671e4c6eb1f64c)), closes [#4256](https://github.com/floci-io/floci/issues/4256)
* **compat:** read VPC ID from OpenTofu state ([#3831](https://github.com/floci-io/floci/issues/3831)) ([b782530](https://github.com/floci-io/floci/commit/b782530cd26df30fad9cae685cf41d0da712d78e))
* **config:** enforce safe default network binding ([#3684](https://github.com/floci-io/floci/issues/3684)) ([1831f10](https://github.com/floci-io/floci/commit/1831f1010593611bfd24bcb1de6e5ad207363930))
* **core:** build and recognise AWS hostnames in every partition ([#4451](https://github.com/floci-io/floci/issues/4451)) ([2cccc73](https://github.com/floci-io/floci/commit/2cccc73499f009b5930a825aff5931a914abbbc3)), closes [#4444](https://github.com/floci-io/floci/issues/4444) [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** compare ARN partitions with the resource's region, not the literal aws ([#4791](https://github.com/floci-io/floci/issues/4791)) ([d72923a](https://github.com/floci-io/floci/commit/d72923ab33d5de368ea191a1517fa0c72683a00a)), closes [#4272](https://github.com/floci-io/floci/issues/4272) [#4790](https://github.com/floci-io/floci/issues/4790) [#4790](https://github.com/floci-io/floci/issues/4790) [RdsJdbcCompatTest#createDbInstanceAndConnectWithPassword](https://github.com/RdsJdbcCompatTest/issues/createDbInstanceAndConnectWithPassword)
* **core:** let RequestScopes run background work in a given region ([#5054](https://github.com/floci-io/floci/issues/5054)) ([971dc01](https://github.com/floci-io/floci/commit/971dc01f349d015b71399846e8981e3a27834fad))
* **core:** mint every ARN in the request's partition ([#4444](https://github.com/floci-io/floci/issues/4444)) ([0e8f965](https://github.com/floci-io/floci/commit/0e8f965cb6fa82bcd86f8178de48971882a227a5)), closes [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** mint every regionless ARN in its partition and gate blank-region Arn.of calls ([#4787](https://github.com/floci-io/floci/issues/4787)) ([27ddf0b](https://github.com/floci-io/floci/commit/27ddf0bb0000925f38cd71aef8ddcb4f60019d06)), closes [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** name the exception class in a message-less Query catch-all ([#3728](https://github.com/floci-io/floci/issues/3728)) ([2b09160](https://github.com/floci-io/floci/commit/2b091608afa804cabf3532e723f2f78fc9308b40)), closes [#3356](https://github.com/floci-io/floci/issues/3356) [#3356](https://github.com/floci-io/floci/issues/3356)
* **core:** read ARNs and Step Functions integration ids in every partition ([#4358](https://github.com/floci-io/floci/issues/4358)) ([eb2872f](https://github.com/floci-io/floci/commit/eb2872f578e13a6de4422836ffdbfd72fbf0958f)), closes [#4272](https://github.com/floci-io/floci/issues/4272) [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** refuse a SigV4 scope region that no AWS partition publishes ([#4393](https://github.com/floci-io/floci/issues/4393)) ([6fcfc04](https://github.com/floci-io/floci/commit/6fcfc0450ad7123b3bfbb2dec1551ae3c116bbde))
* **core:** return UnknownOperationException when X-Amz-Target is missing ([#3925](https://github.com/floci-io/floci/issues/3925)) ([ca98384](https://github.com/floci-io/floci/commit/ca98384b4ae285266d76b655865dad3e704a4bf2))
* **core:** serve HTTP/1.0 requests that omit the Host header ([#4174](https://github.com/floci-io/floci/issues/4174)) ([f084243](https://github.com/floci-io/floci/commit/f084243fc08a48fefc057160cb820bf636b03a71))
* **core:** service principals are universal in every partition; accept the legacy forms ([#4633](https://github.com/floci-io/floci/issues/4633)) ([43ed79d](https://github.com/floci-io/floci/commit/43ed79d15bde34d94ecb61085596defb6bd065c3)), closes [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** stop accepting SigV4 scopes no SDK signs with ([#5005](https://github.com/floci-io/floci/issues/5005)) ([0740adf](https://github.com/floci-io/floci/commit/0740adf9aeda89c8a0695eccc7bc73185899277d))
* **core:** stop MultipartFormParser.ParsedForm using Optional as a record field ([#5011](https://github.com/floci-io/floci/issues/5011)) ([a22de62](https://github.com/floci-io/floci/commit/a22de628e680942da1686838473b3d4f00d6e3b8))
* **core:** use the deployment region where Floci fell back to us-east-1 ([#4974](https://github.com/floci-io/floci/issues/4974)) ([0bae2f0](https://github.com/floci-io/floci/commit/0bae2f0e35ddedc99192aeac0f859bfc901ab160))
* create Firehose buckets and backfill EKS OIDC issuers in the resource's region ([#5099](https://github.com/floci-io/floci/issues/5099)) ([4d95855](https://github.com/floci-io/floci/commit/4d9585583ddf04369d64f00bcf345ff03d39d413))
* distinguish a failed verification API call from an unsigned commit ([#3840](https://github.com/floci-io/floci/issues/3840)) ([c261103](https://github.com/floci-io/floci/commit/c2611038a4392cd7f2d17ac48d1c9d3117f4f724)), closes [#3812](https://github.com/floci-io/floci/issues/3812)
* **docker:** follow adopted sidecar containers from now instead of replaying their log history ([#3612](https://github.com/floci-io/floci/issues/3612)) ([ebb79ed](https://github.com/floci-io/floci/commit/ebb79ed3c200e83f2f33dc06b3997ce96677c0ec))
* **docker:** keep host network mode for containers that publish ports ([#4192](https://github.com/floci-io/floci/issues/4192)) ([a574a6d](https://github.com/floci-io/floci/commit/a574a6d01f47aecdf7505214bec842989c1f17c4)), closes [#2798](https://github.com/floci-io/floci/issues/2798) [#4175](https://github.com/floci-io/floci/issues/4175)
* **docker:** make the Docker client pool size configurable, default 1024 ([#4276](https://github.com/floci-io/floci/issues/4276)) ([76f8c09](https://github.com/floci-io/floci/commit/76f8c0934134cafe089f2ac464114ffb35f0dbc4)), closes [#2219](https://github.com/floci-io/floci/issues/2219) [#2224](https://github.com/floci-io/floci/issues/2224)
* **docker:** move the image bases to UBI 9.8 ([#4782](https://github.com/floci-io/floci/issues/4782)) ([d541878](https://github.com/floci-io/floci/commit/d5418789d2a252ba2d26cc932c4f784321fe103a))
* **docker:** pass the resolved TLS config to the Docker HTTP client ([#4638](https://github.com/floci-io/floci/issues/4638)) ([728e000](https://github.com/floci-io/floci/commit/728e000187ef4ff71a8d85fc8984d92324246f58)), closes [#4608](https://github.com/floci-io/floci/issues/4608)
* **docker:** re-own the configured persistent path, not only /app/data ([#4525](https://github.com/floci-io/floci/issues/4525)) ([7e3ff3c](https://github.com/floci-io/floci/commit/7e3ff3c5ee4bee6b04c3f405476a2156e9aaf2e2))
* **docker:** retry transient daemon I/O at the transport seam and split streaming pools ([#4614](https://github.com/floci-io/floci/issues/4614)) ([1531537](https://github.com/floci-io/floci/commit/153153755962bc0aa600d203eee575aff096f044))
* **docker:** stop the bundled AWS CLI fetching URL-valued parameters ([#3426](https://github.com/floci-io/floci/issues/3426)) ([bd005ac](https://github.com/floci-io/floci/commit/bd005ac9c75cc80933f333e26e9245c6a42f8d5f))
* **docs:** prevent stale service action counts ([#5018](https://github.com/floci-io/floci/issues/5018)) ([4d980a3](https://github.com/floci-io/floci/commit/4d980a361fa2e658965c9b69e69da0d562c4754b))
* **dynamodb:** add missing ConsumedCapacity for PartiQL's ExecuteStatement and BatchExecuteStatement ([#4165](https://github.com/floci-io/floci/issues/4165)) ([65b2b13](https://github.com/floci-io/floci/commit/65b2b13f5c3f8f3255243321640ac38932098f1d))
* **dynamodb:** add missing ConsumedCapacity to transaction responses ([#4151](https://github.com/floci-io/floci/issues/4151)) ([5d9986a](https://github.com/floci-io/floci/commit/5d9986aa6cf4648e92ffe51f06e8c6c40085ab3f))
* **dynamodb:** apply the ProjectionExpression of a TransactGetItems Get ([#4061](https://github.com/floci-io/floci/issues/4061)) ([138f3c2](https://github.com/floci-io/floci/commit/138f3c265080f20e148c65939d1de503b0867202))
* **dynamodb:** cancel TransactWriteItems on a key that does not match the schema ([#3674](https://github.com/floci-io/floci/issues/3674)) ([487cacb](https://github.com/floci-io/floci/commit/487cacb3bc6c024d55f60d4b7c64331330f3c632))
* **dynamodb:** enforce the 400KB item limit on every update surface ([#3991](https://github.com/floci-io/floci/issues/3991)) ([3958be1](https://github.com/floci-io/floci/commit/3958be1d0ead23b1adcc2f2b6711df235dad6191))
* **dynamodb:** escape composite key segments ([#3804](https://github.com/floci-io/floci/issues/3804)) ([5340e88](https://github.com/floci-io/floci/commit/5340e88605f372906ca080a50c311bd6dfe802f0))
* **dynamodb:** filter an unkeyed PartiQL index read on the index view ([#4319](https://github.com/floci-io/floci/issues/4319)) ([9454cee](https://github.com/floci-io/floci/commit/9454ceed21d35fce577d14337ed2687afa059a3d))
* **dynamodb:** honor MICROSECOND ApproximateCreationDateTimePrecision for Kinesis destinations and streams false enablement ([#3874](https://github.com/floci-io/floci/issues/3874)) ([5d23a70](https://github.com/floci-io/floci/commit/5d23a70cc0187d3754b04516f88f2f44cd846da0))
* **dynamodb:** match AWS error messages for item calls and projections ([#4315](https://github.com/floci-io/floci/issues/4315)) ([8f606c3](https://github.com/floci-io/floci/commit/8f606c3587d8eeb6151a2ed42b66b8c2cb963644)), closes [#alias](https://github.com/floci-io/floci/issues/alias)
* **dynamodb:** match the AWS shape of the Kinesis destination responses ([#4917](https://github.com/floci-io/floci/issues/4917)) ([5de9b0d](https://github.com/floci-io/floci/commit/5de9b0d6c1ea740c3fda828688e753dd51756aa1))
* **dynamodb:** recompute UpdateTable AttributeDefinitions ([#4046](https://github.com/floci-io/floci/issues/4046)) ([60fd65b](https://github.com/floci-io/floci/commit/60fd65b5b63cc22c8d8e188d62c067ef3a1e8203))
* **dynamodb:** reject a request member of the wrong JSON type ([#4636](https://github.com/floci-io/floci/issues/4636)) ([1465251](https://github.com/floci-io/floci/commit/1465251e0cbe5d5caffc4523796fa3ef985c56fe))
* **dynamodb:** reject an unknown BillingMode ([#4554](https://github.com/floci-io/floci/issues/4554)) ([b8b5fcd](https://github.com/floci-io/floci/commit/b8b5fcd4766bacfe54fb826be9a146ed12c766f8))
* **dynamodb:** reject undefined expression attribute placeholders ([#4398](https://github.com/floci-io/floci/issues/4398)) ([5ec18c5](https://github.com/floci-io/floci/commit/5ec18c507ce1f75843d2ab0d8592ea55f9f19703)), closes [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#missing](https://github.com/floci-io/floci/issues/missing) [#missing](https://github.com/floci-io/floci/issues/missing) [#2893](https://github.com/floci-io/floci/issues/2893) [#name](https://github.com/floci-io/floci/issues/name)
* **dynamodb:** report a global table's home region as a replica in DescribeTable ([#4197](https://github.com/floci-io/floci/issues/4197)) ([d96e41c](https://github.com/floci-io/floci/commit/d96e41cf2f810e2c5033688053d74bde2f33596a))
* **dynamodb:** report a missing GSI on UpdateTable the way AWS does ([#4564](https://github.com/floci-io/floci/issues/4564)) ([e7e49f9](https://github.com/floci-io/floci/commit/e7e49f9125ebb7e99d0a5a860845a7d0aa874f7c))
* **dynamodb:** route stream consumers through one account-scoped reader ([#4394](https://github.com/floci-io/floci/issues/4394)) ([2df0521](https://github.com/floci-io/floci/commit/2df052181d84d930f420507e6043ea6e34223b1e))
* **dynamodb:** scope streams and sequence counters by account ([#4116](https://github.com/floci-io/floci/issues/4116)) ([d53ea39](https://github.com/floci-io/floci/commit/d53ea39be9174d1752551e802d95490d604ac73e))
* **dynamodb:** size numbers by base-100 digit pairs ([#4530](https://github.com/floci-io/floci/issues/4530)) ([c9427b5](https://github.com/floci-io/floci/commit/c9427b5832960da9280c695695c7f48ffbd1c85c))
* **dynamodb:** size() of a Binary counts its bytes, not its base64 text ([#5058](https://github.com/floci-io/floci/issues/5058)) ([db2a67f](https://github.com/floci-io/floci/commit/db2a67f12250c102165af90579bae15398dfd81b))
* **dynamodb:** treat resolved projection aliases as literal names, not list indices ([#3633](https://github.com/floci-io/floci/issues/3633)) ([c707415](https://github.com/floci-io/floci/commit/c707415be78fdfc5b9e4c055450720e0a6e37017))
* **dynamodb:** validate GSI and LSI index names like AWS ([#4601](https://github.com/floci-io/floci/issues/4601)) ([dad5648](https://github.com/floci-io/floci/commit/dad5648b7b96f8638661c45d4914ab0e832eb546))
* **dynamodb:** validate transaction condition expressions ([#3691](https://github.com/floci-io/floci/issues/3691)) ([934d0b8](https://github.com/floci-io/floci/commit/934d0b829fb966837955fac5a2b7c14436d6cb84))
* **ec2:** add t2.nano, t2.small, t3.nano and t3a.nano to the instance type catalog ([#4788](https://github.com/floci-io/floci/issues/4788)) ([3a56aad](https://github.com/floci-io/floci/commit/3a56aad67057fe6bcc7142b0bca2cc67aa6714d4))
* **ec2:** an interface VPC endpoint reports its network interfaces, and they resolve ([#4598](https://github.com/floci-io/floci/issues/4598)) ([6b7d176](https://github.com/floci-io/floci/commit/6b7d17698cefa38ca6c7c9b6906f8c47b27eb156)), closes [#21](https://github.com/floci-io/floci/issues/21)
* **ec2:** apply filters to transit gateway route table lookups ([#3820](https://github.com/floci-io/floci/issues/3820)) ([d15b388](https://github.com/floci-io/floci/commit/d15b388aca73b92f2c35badf65c80c313fe8b52c))
* **ec2:** attach Docker-hosted Floci to VPC networks ([#3862](https://github.com/floci-io/floci/issues/3862)) ([c3ec381](https://github.com/floci-io/floci/commit/c3ec3819ae3315a0be0904cd8fecef20ccabe3d9))
* **ec2:** decode CloudFormation launch template user data ([#4711](https://github.com/floci-io/floci/issues/4711)) ([3df7fb1](https://github.com/floci-io/floci/commit/3df7fb17ee5f8162dabc3e19169ffd754905354e))
* **ec2:** delete VPC default security group, route table and network ACL with the VPC ([#3878](https://github.com/floci-io/floci/issues/3878)) ([75fee00](https://github.com/floci-io/floci/commit/75fee00adcb24d932de19ac6e053ca4191292d6c))
* **ec2:** deliver flow log records in the format the flow log declares ([#4429](https://github.com/floci-io/floci/issues/4429)) ([4b15ca8](https://github.com/floci-io/floci/commit/4b15ca89508c36f648a97ba8e93c8035e80077d4))
* **ec2:** honor dry run for replace route ([#4300](https://github.com/floci-io/floci/issues/4300)) ([55f9ff5](https://github.com/floci-io/floci/commit/55f9ff5a8bbcc0488e6a28f174bb28af6cf8fb2e))
* **ec2:** honor RunInstances dry run before provisioning ([#3599](https://github.com/floci-io/floci/issues/3599)) ([46b66ff](https://github.com/floci-io/floci/commit/46b66ffa40efd5a4e84998944bd2b3e543aa21c0))
* **ec2:** instances under security group enforcement no longer terminate at launch ([#4510](https://github.com/floci-io/floci/issues/4510)) ([4faa2b1](https://github.com/floci-io/floci/commit/4faa2b1354d48aa4220a947cd45e92171b0860e4))
* **ec2:** issue instance-profile role credentials through IMDS ([#3742](https://github.com/floci-io/floci/issues/3742)) ([d4a9691](https://github.com/floci-io/floci/commit/d4a96913df277240452e3e40f2228ccbc2b896a7))
* **ec2:** plan a VPC's CIDR against another Region's network for the same VPC id ([#5134](https://github.com/floci-io/floci/issues/5134)) ([22ff933](https://github.com/floci-io/floci/commit/22ff93365e0844b01cba0aa0799b863d8afa8d80))
* **ec2:** reject a DescribeVpcs filter name the service does not serve ([#4366](https://github.com/floci-io/floci/issues/4366)) ([fde0688](https://github.com/floci-io/floci/commit/fde0688ef361d438ad1a5d9c7aeafe4000bd12d1))
* **ec2:** reject key pair requests without KeyName ([#3727](https://github.com/floci-io/floci/issues/3727)) ([996a680](https://github.com/floci-io/floci/commit/996a680cdc609ffc1117e9629894137b9a747186)), closes [#3307](https://github.com/floci-io/floci/issues/3307) [#3356](https://github.com/floci-io/floci/issues/3356)
* **ec2:** release a capture when a whole batch of instances is terminated ([#4127](https://github.com/floci-io/floci/issues/4127)) ([aba5f4e](https://github.com/floci-io/floci/commit/aba5f4e919f3f67fd5a40d17da2631fa4277be32))
* **ec2:** remove tags on the default resources deleted with the VPC ([#3917](https://github.com/floci-io/floci/issues/3917)) ([c5de833](https://github.com/floci-io/floci/commit/c5de8331b7d3731e63c9f8aaaea82d5b12c6914c))
* **ec2:** report a flow log's custom LogFormat ([#4386](https://github.com/floci-io/floci/issues/4386)) ([fd3696a](https://github.com/floci-io/floci/commit/fd3696a9fc0983dfca1e102333fd3f54c1a17b0c))
* **ec2:** report an unknown subnet id from DescribeSubnets as an error ([#4408](https://github.com/floci-io/floci/issues/4408)) ([49f253d](https://github.com/floci-io/floci/commit/49f253d0ecac58aca7d0215e4a6e7d5243d606ad))
* **ec2:** report instance platform details ([#4322](https://github.com/floci-io/floci/issues/4322)) ([c595792](https://github.com/floci-io/floci/commit/c595792795db9a4653c7e254baf5256f96a6a7c7))
* **ec2:** report the calling account as resource owner ([#3814](https://github.com/floci-io/floci/issues/3814)) ([7e53915](https://github.com/floci-io/floci/commit/7e539155e18161005ee45f110f0026341cd5067c)), closes [#3775](https://github.com/floci-io/floci/issues/3775)
* **ec2:** resolve instance profile names through IAM ([#3856](https://github.com/floci-io/floci/issues/3856)) ([5ec3fb6](https://github.com/floci-io/floci/commit/5ec3fb67a8675a249377b68e6abc84b52415f7af))
* **ec2:** return and filter image tags ([#3808](https://github.com/floci-io/floci/issues/3808)) ([313f91e](https://github.com/floci-io/floci/commit/313f91e06ccefe06a2d9811f4cbb98d2b2ddb016))
* **ec2:** return DependencyViolation from DeleteVpc while dependents remain ([#3916](https://github.com/floci-io/floci/issues/3916)) ([5a11e7f](https://github.com/floci-io/floci/commit/5a11e7f6fb1821405c4a6f59a3cab85144235b66))
* **ec2:** return user data from DescribeInstanceAttribute ([#3601](https://github.com/floci-io/floci/issues/3601)) ([1691012](https://github.com/floci-io/floci/commit/169101233c6c3901a169adfc293453a6241f365c))
* **ec2:** stage user data outside guest temporary mounts ([#3736](https://github.com/floci-io/floci/issues/3736)) ([03603ae](https://github.com/floci-io/floci/commit/03603aeacd77d35b4edf00f83cb0c81717405d10))
* **ec2:** store omitted tag values as empty strings ([#3880](https://github.com/floci-io/floci/issues/3880)) ([052da93](https://github.com/floci-io/floci/commit/052da935151f7105f5df037a91265fafec384a1e))
* **ec2:** use regional private DNS names ([#5033](https://github.com/floci-io/floci/issues/5033)) ([4fb52e0](https://github.com/floci-io/floci/commit/4fb52e0b0722a5e2dfd76c17c528d6f6121c0f4a))
* **ec2:** validate and expire IMDSv2 session tokens ([#4303](https://github.com/floci-io/floci/issues/4303)) ([06ec4b5](https://github.com/floci-io/floci/commit/06ec4b563a176122335a3650dfabac15617e769b))
* **ec2:** validate CreateSecurityGroup required parameters ([#3888](https://github.com/floci-io/floci/issues/3888)) ([37ac250](https://github.com/floci-io/floci/commit/37ac2505e86d4af3088c8f75212f8c984e2bfb90))
* **ec2:** validate DescribeVpcs ids at the query boundary ([#4482](https://github.com/floci-io/floci/issues/4482)) ([5ace428](https://github.com/floci-io/floci/commit/5ace4281f33dae7305c123b79ba06f1c25d6c7f1))
* **ecr:** answer GetAuthorizationToken without the backing registry ([#4635](https://github.com/floci-io/floci/issues/4635)) ([231655b](https://github.com/floci-io/floci/commit/231655b70a29475dd0f0835d3eb897b8548b404d)), closes [#4634](https://github.com/floci-io/floci/issues/4634)
* **ecr:** forward every Accept header to the backing registry ([#5069](https://github.com/floci-io/floci/issues/5069)) ([32f01ba](https://github.com/floci-io/floci/commit/32f01ba13d4ddcbf61b9a11c3ad7672ec5f36605)), closes [#4869](https://github.com/floci-io/floci/issues/4869)
* **ecr:** return a proxyEndpoint for the request's region ([#4277](https://github.com/floci-io/floci/issues/4277)) ([4de043c](https://github.com/floci-io/floci/commit/4de043cf88565a90d7cc11d8324a765a69bee75b)), closes [#4264](https://github.com/floci-io/floci/issues/4264)
* **ecr:** serve the registry data plane over TLS ([#4040](https://github.com/floci-io/floci/issues/4040)) ([7777a97](https://github.com/floci-io/floci/commit/7777a97de9e46b98238a4eb580749c4dabede1d2))
* **ecr:** support image scanning configuration updates ([#4928](https://github.com/floci-io/floci/issues/4928)) ([543f016](https://github.com/floci-io/floci/commit/543f01618f4070bde51d45a77464c70bb75516dd))
* **ecs:** a service reaches steady state, and a finished deployment stays finished ([#4694](https://github.com/floci-io/floci/issues/4694)) ([c6b8a70](https://github.com/floci-io/floci/commit/c6b8a70ea8dd125913d77eb1839b2daf02717bdb))
* **ecs:** apply volumesFrom to task containers ([#3811](https://github.com/floci-io/floci/issues/3811)) ([de54409](https://github.com/floci-io/floci/commit/de54409fc62885f50630626795f049c493e68aaf))
* **ecs:** complete failed service deployment handling ([#4874](https://github.com/floci-io/floci/issues/4874)) ([1d85e6b](https://github.com/floci-io/floci/commit/1d85e6bf6e196b829d286cc35bde82f686414219))
* **ecs:** delete a service's deployment records with the service ([#4757](https://github.com/floci-io/floci/issues/4757)) ([bd0f468](https://github.com/floci-io/floci/commit/bd0f468d3eaebff46a82c0d2a63f7811b71f42ed))
* **ecs:** end a deployment the circuit breaker detects as failed ([#4767](https://github.com/floci-io/floci/issues/4767)) ([4716ac9](https://github.com/floci-io/floci/commit/4716ac999261ec72290ce4a8bb69dd70494045e5))
* **ecs:** keep task definitions and their revisions per region ([#5078](https://github.com/floci-io/floci/issues/5078)) ([e22e24a](https://github.com/floci-io/floci/commit/e22e24a8105c12c7688c3454ed4b61ff9788f758))
* **ecs:** pull task images at launch so a moved tag reaches the next task ([#4583](https://github.com/floci-io/floci/issues/4583)) ([d73e33f](https://github.com/floci-io/floci/commit/d73e33fe4bf0f5d8ce9195f0ab463e011fb523de))
* **ecs:** reconcile persisted services at boot ([#4501](https://github.com/floci-io/floci/issues/4501)) ([52225e2](https://github.com/floci-io/floci/commit/52225e2053f60f94377ea5a138955d1145bd12cb))
* **ecs:** register reachable task addresses in Cloud Map and bound synthesised ENI addresses ([#4509](https://github.com/floci-io/floci/issues/4509)) ([014156a](https://github.com/floci-io/floci/commit/014156a546daf3620dac9ee99b08413d6ba48528))
* **ecs:** release stale task containers and registrations, and evict ones that would misroute a reused address ([#4513](https://github.com/floci-io/floci/issues/4513)) ([451a30f](https://github.com/floci-io/floci/commit/451a30f98e9bcfbb018e2de1e870fb7119b2bd50))
* **ecs:** report serviceConnectConfiguration on the service's deployment ([#3662](https://github.com/floci-io/floci/issues/3662)) ([7da4ee0](https://github.com/floci-io/floci/commit/7da4ee0b6b1ad9d5eb2bc9f1bb4422fb5f733cde))
* **ecs:** retry teardown of redeployed task containers ([#4280](https://github.com/floci-io/floci/issues/4280)) ([76cc27f](https://github.com/floci-io/floci/commit/76cc27f2f1a9f230ac6341085c5dccc637c704d1))
* **ecs:** roll a DAEMON service's tasks when its task definition changes ([#4766](https://github.com/floci-io/floci/issues/4766)) ([c43269e](https://github.com/floci-io/floci/commit/c43269e0adad6d62517559930d88571186255ab0)), closes [#4744](https://github.com/floci-io/floci/issues/4744)
* **ecs:** run ECS Exec sessions as root like the real agent ([#5074](https://github.com/floci-io/floci/issues/5074)) ([30be71c](https://github.com/floci-io/floci/commit/30be71c56ee69e17c92802458e5178ab716d2d5a)), closes [#4850](https://github.com/floci-io/floci/issues/4850)
* **ecs:** send container logs to the awslogs group and stream from the task definition ([#4808](https://github.com/floci-io/floci/issues/4808)) ([bc2592e](https://github.com/floci-io/floci/commit/bc2592e300e4c9ee91f244adb4e6a038530d4486))
* **ecs:** send container logs to the task's account ([#4833](https://github.com/floci-io/floci/issues/4833)) ([955264c](https://github.com/floci-io/floci/commit/955264cf5d1a5c2fb5febf65126bf7d9e0c1776d))
* **ecs:** use shared Docker Hub image in leftover test ([#4645](https://github.com/floci-io/floci/issues/4645)) ([8219929](https://github.com/floci-io/floci/commit/8219929344dcfcfa6237bf8500aee76cd5ceb58c))
* **eks:** accept IAM authentication tokens for the authenticator's token lifetime ([#4186](https://github.com/floci-io/floci/issues/4186)) ([7eafd2f](https://github.com/floci-io/floci/commit/7eafd2f7067eb14267f073d7dff25e5d972c72a1))
* **eks:** claim the cluster user data slot atomically ([#4190](https://github.com/floci-io/floci/issues/4190)) ([dc70f60](https://github.com/floci-io/floci/commit/dc70f60a6618cf7b3e590bebb5a9dc2fafcd63e5))
* **eks:** fail the delete when Docker cannot remove the cluster container ([#4960](https://github.com/floci-io/floci/issues/4960)) ([d5fd4d5](https://github.com/floci-io/floci/commit/d5fd4d52f181063ab9a44e78eb4928532e1a72c8))
* **eks:** isolate capacity backups from live clusters ([#4663](https://github.com/floci-io/floci/issues/4663)) ([ef08877](https://github.com/floci-io/floci/commit/ef0887783743c7ada06d8c713c5292fff328d934))
* **eks:** persist explicit version flag across restarts ([#4101](https://github.com/floci-io/floci/issues/4101)) ([b4f4b38](https://github.com/floci-io/floci/commit/b4f4b386da1996bd4b267180096a59a45e512b72))
* **eks:** populate clusterSecurityGroupId on cluster responses ([#3924](https://github.com/floci-io/floci/issues/3924)) ([51467db](https://github.com/floci-io/floci/commit/51467dbc23cc21330c03f114bfa7836121ba8e89))
* **eks:** preserve worker webhook scope in the URL path ([#3849](https://github.com/floci-io/floci/issues/3849)) ([fdec637](https://github.com/floci-io/floci/commit/fdec637c27c50290c87fb2317ae5d4968cab24f1))
* **eks:** release the API server port when a cluster is deleted or fails to start ([#4937](https://github.com/floci-io/floci/issues/4937)) ([72788df](https://github.com/floci-io/floci/commit/72788dfdb84f63c8a6a5e98635cc4c1e42ea0a77))
* **eks:** remove the k3s container on DeleteCluster when shutdown retention is on ([#4241](https://github.com/floci-io/floci/issues/4241)) ([6bf1695](https://github.com/floci-io/floci/commit/6bf1695f2ad5cd8359a55f0331f42d6c5113e6b4)), closes [#4239](https://github.com/floci-io/floci/issues/4239)
* **eks:** resolve the token webhook's access keys from any account ([#5003](https://github.com/floci-io/floci/issues/5003)) ([7822b2c](https://github.com/floci-io/floci/commit/7822b2c396b1e7df4958d46ff8e1aa0bce07bd14))
* **eks:** stop mirroring cluster audit logs to the Floci console ([#4589](https://github.com/floci-io/floci/issues/4589)) ([b2d668d](https://github.com/floci-io/floci/commit/b2d668d9ae48e9a87bde4db9c61e7fffbe3b38b3))
* **eks:** store and return encryptionConfig and logging on clusters ([#4007](https://github.com/floci-io/floci/issues/4007)) ([aede31c](https://github.com/floci-io/floci/commit/aede31c99c10b666a53516c505c081d44cf6c23b))
* **eks:** store and return node group launchTemplate, taints, remoteAccess, nodeRepairConfig and warmPoolConfig ([#4102](https://github.com/floci-io/floci/issues/4102)) ([cebdc6f](https://github.com/floci-io/floci/commit/cebdc6f2bb9e0533c7b81d25c6a5f1c77f985070))
* **eks:** validate the node group launchTemplate against EC2 on CreateNodegroup ([#4148](https://github.com/floci-io/floci/issues/4148)) ([90d8c35](https://github.com/floci-io/floci/commit/90d8c355d9fa582ee6b3802f2228aa6a4f1b4499))
* **elasticache:** create single-node redis clusters and close provisioning races ([#3634](https://github.com/floci-io/floci/issues/3634)) ([684239b](https://github.com/floci-io/floci/commit/684239b0ef71b0038ed20b79e304e3acb2b986f8))
* **elasticache:** honor top-level user passwords and let ModifyUser change auth and access string ([#4431](https://github.com/floci-io/floci/issues/4431)) ([4001556](https://github.com/floci-io/floci/commit/4001556a31724698da29bff99c744ce737505fc6))
* **elasticache:** re-provision caches on restart instead of reporting a dead endpoint as available ([#4094](https://github.com/floci-io/floci/issues/4094)) ([14d13ee](https://github.com/floci-io/floci/commit/14d13ee798b86a7fc29e69f4e4da0d8f882ff0ad))
* **elasticache:** report a ConfigurationEndpoint only for cluster-mode-enabled replication groups ([#4469](https://github.com/floci-io/floci/issues/4469)) ([5af1d40](https://github.com/floci-io/floci/commit/5af1d4048ef2483ff0c92a6250049edfe79d8653))
* **elasticache:** report a memcached cluster's node count, type, ARN and nodes ([#5000](https://github.com/floci-io/floci/issues/5000)) ([7a1f9dd](https://github.com/floci-io/floci/commit/7a1f9dd8265a1…
omatheusmesmo pushed a commit to omatheusmesmo/floci that referenced this pull request Oct 12, 2026
* fix(cloudformation): apply stack tags during updates

* test(cloudformation): cover tags-only and failed stack updates

* fix(cloudformation): distinguish empty tags from omitted tags

* fix(cloudformation): reject implicit CREATE with previous template

* test(cloudformation): validate stack tag updates with AWS SDK

* test(cloudformation): fail on SDK cleanup errors

* fix(cloudformation): allow previous template with omitted type
Signed-off-by: Matheus Oliveira <matheus.6148@gmail.com>
omatheusmesmo pushed a commit to omatheusmesmo/floci that referenced this pull request Oct 12, 2026
# [2.2.0](https://github.com/floci-io/floci/compare/2.1.0...2.2.0) (2026-10-06)

### Bug Fixes

* add Scheduler retry backoff and DLQ handling ([#3687](https://github.com/floci-io/floci/issues/3687)) ([6829892](https://github.com/floci-io/floci/commit/682989288ad30e8ca1dec4d0ebd750f0ecbd9992))
* **apigateway,appsync:** sandbox VTL rendering with SecureUberspector and execution limits ([#3542](https://github.com/floci-io/floci/issues/3542)) ([144b90e](https://github.com/floci-io/floci/commit/144b90e6fa861a5ac882e99a090d503da01945c4)), closes [#foreach](https://github.com/floci-io/floci/issues/foreach) [#set](https://github.com/floci-io/floci/issues/set) [#foreach](https://github.com/floci-io/floci/issues/foreach)
* **apigateway:** accept a region label before the built-in execute-api suffixes ([#4705](https://github.com/floci-io/floci/issues/4705)) ([5000bcd](https://github.com/floci-io/floci/commit/5000bcd041890ea14d3125a771a4efe6dc07cf32)), closes [#4701](https://github.com/floci-io/floci/issues/4701)
* **apigateway:** capture HTTP proxy greedy suffixes ([#4980](https://github.com/floci-io/floci/issues/4980)) ([12e9cbd](https://github.com/floci-io/floci/commit/12e9cbd78b53948f28cbd704af178ded3b5a25f5))
* **apigateway:** complete API Gateway API key responses ([#3817](https://github.com/floci-io/floci/issues/3817)) ([ad20699](https://github.com/floci-io/floci/commit/ad20699a6b48862880f5c44b5917da77b7c6a858))
* **apigateway:** create API keys disabled unless enabled is set ([#4731](https://github.com/floci-io/floci/issues/4731)) ([b5c4283](https://github.com/floci-io/floci/commit/b5c428319fff8f11b64b97cd41c5a932d0ac9434))
* **apigateway:** drop the SigV4 Authorization header before REST integrations ([#4567](https://github.com/floci-io/floci/issues/4567)) ([2ec5300](https://github.com/floci-io/floci/commit/2ec5300029bd1a27c2673a0af1c3cde414b84977))
* **apigateway:** format request times with an English locale ([#5093](https://github.com/floci-io/floci/issues/5093)) ([5230039](https://github.com/floci-io/floci/commit/523003972eeebe11d0c33b2da4eb0674b32b5e20))
* **apigateway:** honor import warnings and strict rollback ([#4531](https://github.com/floci-io/floci/issues/4531)) ([b9efda8](https://github.com/floci-io/floci/commit/b9efda8606f87389af7379f46cc07093cf8adb25))
* **apigateway:** import x-amazon-apigateway-any-method in the native image and roll back failed imports ([#4473](https://github.com/floci-io/floci/issues/4473)) ([a5ded3e](https://github.com/floci-io/floci/commit/a5ded3e162db31b2dcbc3872a21475cd9c4ed153))
* **apigateway:** map authorizer context in HTTP integrations ([#4992](https://github.com/floci-io/floci/issues/4992)) ([036f55b](https://github.com/floci-io/floci/commit/036f55b196a3182bfbed218c8de065a25a79389a))
* **apigateway:** mark custom-domain routed requests so S3 virtual-host does not claim them ([#4966](https://github.com/floci-io/floci/issues/4966)) ([832bd97](https://github.com/floci-io/floci/commit/832bd9796689e1b9315de8df084e0070c03d6db6))
* **apigateway:** merge OpenAPI imports in PutRestApi ([#4570](https://github.com/floci-io/floci/issues/4570)) ([cfc9a44](https://github.com/floci-io/floci/commit/cfc9a440c19432e71d4807e5ed8151d76a15a358))
* **apigateway:** preserve and update method response parameters ([#5030](https://github.com/floci-io/floci/issues/5030)) ([b988a06](https://github.com/floci-io/floci/commit/b988a061b4f89048e1c5ae2591ab06633e97ca81))
* **apigateway:** prevent JWT issuer and JWKS SSRF ([#3743](https://github.com/floci-io/floci/issues/3743)) ([ef03c59](https://github.com/floci-io/floci/commit/ef03c59864d9f84a0e574460bc6b8f2a63e8434a))
* **apigateway:** provision CloudFormation MOCK CORS responses ([#4324](https://github.com/floci-io/floci/issues/4324)) ([243797c](https://github.com/floci-io/floci/commit/243797c2c6b83fa5b4b55f6eabbfa89c37388936))
* **apigateway:** register native VTL map reflection ([#4405](https://github.com/floci-io/floci/issues/4405)) ([41d07f6](https://github.com/floci-io/floci/commit/41d07f6e3bc76e857c9de8b585164410bd9be742))
* **apigateway:** reject method request parameter names AWS refuses ([#3549](https://github.com/floci-io/floci/issues/3549)) ([ce5c5b4](https://github.com/floci-io/floci/commit/ce5c5b4cfa0284154aa28ccaddee28e5ac370c6a))
* **apigateway:** resolve AWS variables on REST import ([#4547](https://github.com/floci-io/floci/issues/4547)) ([0383ecf](https://github.com/floci-io/floci/commit/0383ecf53efe8c03a3d936ff4b644faa592def01))
* **apigateway:** return embedded resource methods ([#5109](https://github.com/floci-io/floci/issues/5109)) ([d508a4e](https://github.com/floci-io/floci/commit/d508a4e1974995d491ed0ecbc7d06330857168e6))
* **apigateway:** return integration defaults and patch timeout ([#4798](https://github.com/floci-io/floci/issues/4798)) ([27bfb54](https://github.com/floci-io/floci/commit/27bfb54c6e86085d3c7bbd793b254529b534d073))
* **apigateway:** return stored method, policy, and stage settings ([#3857](https://github.com/floci-io/floci/issues/3857)) ([004d562](https://github.com/floci-io/floci/commit/004d562f3483262c449268879d78e2da1706805a))
* **apigateway:** route REST execute-api virtual hosts ([#4553](https://github.com/floci-io/floci/issues/4553)) ([af3d387](https://github.com/floci-io/floci/commit/af3d387140b800f24c9bb84d827fb8cc467c7b33))
* **apigateway:** share REST request context and complete mappings ([#5035](https://github.com/floci-io/floci/issues/5035)) ([3f591f8](https://github.com/floci-io/floci/commit/3f591f853d35dc6201185c279d61c6cb2a0ad788))
* **apigatewayv2:** allow an idempotent override-id tag on UpdateApi ([#4602](https://github.com/floci-io/floci/issues/4602)) ([cbc4cf9](https://github.com/floci-io/floci/commit/cbc4cf9b910ca4eb71d0df84cb970ab22545e672)), closes [#3430](https://github.com/floci-io/floci/issues/3430) [#3430](https://github.com/floci-io/floci/issues/3430)
* **apigatewayv2:** block link-local and metadata targets in HTTP_PROXY integrations ([#3962](https://github.com/floci-io/floci/issues/3962)) ([5f4aea2](https://github.com/floci-io/floci/commit/5f4aea20d52c4d457a255b00da4e3c688d8021b8))
* **apigatewayv2:** cap HTTP_PROXY integration responses at the 10 MB payload quota ([#4226](https://github.com/floci-io/floci/issues/4226)) ([ea60f70](https://github.com/floci-io/floci/commit/ea60f70ad259bff07f9d11ba6bb0b43d7dffe86c))
* **apigatewayv2:** evaluate HTTP and WebSocket authorizer policies ([#5020](https://github.com/floci-io/floci/issues/5020)) ([1320995](https://github.com/floci-io/floci/commit/1320995d7007ecad2d7ef3b787f84c80eb0ed698)), closes [#5086](https://github.com/floci-io/floci/issues/5086)
* **apigatewayv2:** pin the checked address and cover WebSocket HTTP integrations ([#3978](https://github.com/floci-io/floci/issues/3978)) ([0e02d34](https://github.com/floci-io/floci/commit/0e02d34c6b0189846095ad9b962b22b006f80eda))
* **apigatewayv2:** pin websocket HTTP targets ([#4341](https://github.com/floci-io/floci/issues/4341)) ([5467506](https://github.com/floci-io/floci/commit/5467506fca8cf2fbb43f9a034efc13aadc18a70a))
* **apigatewayv2:** reject an out-of-range AuthorizerResultTtlInSeconds ([#4294](https://github.com/floci-io/floci/issues/4294)) ([bdbc7e9](https://github.com/floci-io/floci/commit/bdbc7e93d3a38d6f243cc4aa27e16a7e9b79ab41)), closes [#4072](https://github.com/floci-io/floci/issues/4072)
* **apigateway:** validate and cache REST Lambda authorizers ([#5002](https://github.com/floci-io/floci/issues/5002)) ([ae3adfe](https://github.com/floci-io/floci/commit/ae3adfe992b6c74f3729db99b0c61f44c25a787a))
* **apigateway:** verify AWS_IAM signatures against the custom-domain path ([#4092](https://github.com/floci-io/floci/issues/4092)) ([c083aad](https://github.com/floci-io/floci/commit/c083aad12b108dbe0be8374ef84bb12f03d545ec))
* **appconfig:** resolve AppConfigData identifiers by name as well as ID ([#4661](https://github.com/floci-io/floci/issues/4661)) ([90c5511](https://github.com/floci-io/floci/commit/90c55114f9f2ccfcc3b1f059f3f467ef622a453f))
* **appconfig:** return feature flags in retrieval format ([#3890](https://github.com/floci-io/floci/issues/3890)) ([1370dc0](https://github.com/floci-io/floci/commit/1370dc02fad1a761f7fa07283d4dbf1bcffa773d))
* **appsync:** bound the Lambda authorizer result cache ([#4345](https://github.com/floci-io/floci/issues/4345)) ([6ed4726](https://github.com/floci-io/floci/commit/6ed4726f52a7ff52854f66477bba6ed1db3855d1))
* **appsync:** move the GraphQL engine to a sidecar, out of the native image ([#3534](https://github.com/floci-io/floci/issues/3534)) ([918a09f](https://github.com/floci-io/floci/commit/918a09f54a508f2d5bc8925e9faa7a315fc9a7e5)), closes [#2917](https://github.com/floci-io/floci/issues/2917) [#2914](https://github.com/floci-io/floci/issues/2914) [#2916](https://github.com/floci-io/floci/issues/2916) [#3799](https://github.com/floci-io/floci/issues/3799)
* **appsync:** send VTL Lambda payload to function ([#4579](https://github.com/floci-io/floci/issues/4579)) ([11b762d](https://github.com/floci-io/floci/commit/11b762d08b68acaea1f5a428f0db0cd053e8e5ce))
* **appsync:** supply reflection config so VTL runs on native image ([#4729](https://github.com/floci-io/floci/issues/4729)) ([7654a7c](https://github.com/floci-io/floci/commit/7654a7cbec59c032c5806c0b26ac0f06e6880a0c)), closes [#return](https://github.com/floci-io/floci/issues/return) [#return](https://github.com/floci-io/floci/issues/return)
* **athena:** accept IN lists and check each table in the injected-partition filter ([#5004](https://github.com/floci-io/floci/issues/5004)) ([008ddea](https://github.com/floci-io/floci/commit/008ddea054759c909bfd6ce4b1ce145771d2520e))
* **athena:** keep terminal queries terminal ([#4112](https://github.com/floci-io/floci/issues/4112)) ([75dd057](https://github.com/floci-io/floci/commit/75dd057b5cc4e71d455195a00ebc7bd7261f8f99))
* **athena:** read Iceberg-format Glue tables via iceberg_scan ([#3738](https://github.com/floci-io/floci/issues/3738)) ([9740b32](https://github.com/floci-io/floci/commit/9740b32b51c62e5c7f9dcc0a337040643b152038)), closes [#3737](https://github.com/floci-io/floci/issues/3737)
* **autoscaling:** prevent reconciler resurrecting deleted groups ([#3818](https://github.com/floci-io/floci/issues/3818)) ([bd9700d](https://github.com/floci-io/floci/commit/bd9700db0d1ae199e564cea1f7940e499d032243))
* **autoscaling:** reconcile groups in every account ([#3824](https://github.com/floci-io/floci/issues/3824)) ([dfb294a](https://github.com/floci-io/floci/commit/dfb294a79a070cde65e06055e3363b87f554855b))
* **autoscaling:** retain membership when instance termination fails ([#4115](https://github.com/floci-io/floci/issues/4115)) ([e377148](https://github.com/floci-io/floci/commit/e377148a523680ee84ad3516b925899106c389af))
* **autoscaling:** round-trip the whole target tracking configuration ([#4369](https://github.com/floci-io/floci/issues/4369)) ([a33c4e0](https://github.com/floci-io/floci/commit/a33c4e0b002b46ad1d754193341bafaa352bcf53))
* **backup:** run scheduled job transitions in the caller's account ([#4965](https://github.com/floci-io/floci/issues/4965)) ([e25f488](https://github.com/floci-io/floci/commit/e25f488bf3066ad19dc3aef3503e6e1bda0926c1))
* **bedrock-agentcore:** expire remembered delete client tokens ([#4477](https://github.com/floci-io/floci/issues/4477)) ([fe55cf0](https://github.com/floci-io/floci/commit/fe55cf0d0680fedbf15fbb878893f183897ab2cc))
* bring the partition literals that merged past the gate back under it ([#4314](https://github.com/floci-io/floci/issues/4314)) ([e73b80d](https://github.com/floci-io/floci/commit/e73b80d5ee22aeff8c59b2b78fdd1379314a3afe)), closes [#4270](https://github.com/floci-io/floci/issues/4270) [#4221](https://github.com/floci-io/floci/issues/4221) [#4304](https://github.com/floci-io/floci/issues/4304) [pull-throu#cache](https://github.com/pull-throu/issues/cache) [#4298](https://github.com/floci-io/floci/issues/4298)
* **build:** preserve Quarkus Surefire argLine ([#3988](https://github.com/floci-io/floci/issues/3988)) ([609b146](https://github.com/floci-io/floci/commit/609b1463897dcca8f3943531e8751aa74423f19b))
* **ci:** add draft PR handling to CI workflows for compatibility and build tests ([#4292](https://github.com/floci-io/floci/issues/4292)) ([375d83c](https://github.com/floci-io/floci/commit/375d83c0f44fe301361cfd7aba9435c542e7b6a0))
* **ci:** pass VERSION to the nightly native image build ([#5165](https://github.com/floci-io/floci/issues/5165)) ([6d417e5](https://github.com/floci-io/floci/commit/6d417e522fa9c412bed125f4941d3c7c493e895d))
* **cloudformation:** answer DescribeStackEvents on a missing stack with AWS's wording ([#4301](https://github.com/floci-io/floci/issues/4301)) ([3560593](https://github.com/floci-io/floci/commit/35605937c8c20d381e89abac7f5e0d699e6e38a8)), closes [#4235](https://github.com/floci-io/floci/issues/4235)
* **cloudformation:** apply an S3 bucket's declared configuration and its policy ([#3950](https://github.com/floci-io/floci/issues/3950)) ([28ca34a](https://github.com/floci-io/floci/commit/28ca34ad6c2b10e609a656cb781000a7dced97e7)), closes [#3947](https://github.com/floci-io/floci/issues/3947)
* **cloudformation:** apply EC2 Instance UserData and IamInstanceProfile in place ([#4206](https://github.com/floci-io/floci/issues/4206)) ([6fadba8](https://github.com/floci-io/floci/commit/6fadba8d572a054d4f92f1204fa4fe8961c8a704))
* **cloudformation:** apply every SQS queue property and reset dropped ones on update ([#4972](https://github.com/floci-io/floci/issues/4972)) ([ab2c0de](https://github.com/floci-io/floci/commit/ab2c0def0ad8ef523526340365fe030f670bb9f6))
* **cloudformation:** apply IAM user tags ([#4010](https://github.com/floci-io/floci/issues/4010)) ([bd40c21](https://github.com/floci-io/floci/commit/bd40c21982fcd5240219dc5e0d8684b0e373da75)), closes [#3998](https://github.com/floci-io/floci/issues/3998)
* **cloudformation:** apply stack tags during updates ([#5031](https://github.com/floci-io/floci/issues/5031)) ([a6df1db](https://github.com/floci-io/floci/commit/a6df1dbb127e6d4c87f409374ce2c78f8c105efa))
* **cloudformation:** await stack completion after ExecuteChangeSet in integration tests ([#4078](https://github.com/floci-io/floci/issues/4078)) ([fafe547](https://github.com/floci-io/floci/commit/fafe5476cd248b1c28ea1d24f279fd1f2c2c7cc5))
* **cloudformation:** bound operation executor ([#3761](https://github.com/floci-io/floci/issues/3761)) ([91de9e4](https://github.com/floci-io/floci/commit/91de9e452e64d124c7eb58165588ca3b3e23e01d))
* **cloudformation:** claim change set atomically before execution ([#3564](https://github.com/floci-io/floci/issues/3564)) ([03d3335](https://github.com/floci-io/floci/commit/03d33350a7da40fcc85d68b1b5dd3e2286ae91c0))
* **cloudformation:** delete UPDATE_FAILED resources on DeleteStack ([#4470](https://github.com/floci-io/floci/issues/4470)) ([60d1125](https://github.com/floci-io/floci/commit/60d112542d743fe254113f6f455afe3f40d8cdd6)), closes [#4467](https://github.com/floci-io/floci/issues/4467)
* **cloudformation:** fail an EC2 instance whose LaunchTemplate cannot be resolved ([#4058](https://github.com/floci-io/floci/issues/4058)) ([e1334cb](https://github.com/floci-io/floci/commit/e1334cb51282d0b6961e88212cdbae56fc25906b)), closes [#3810](https://github.com/floci-io/floci/issues/3810)
* **cloudformation:** forward ProviderARNs on AWS::ApiGateway::Authorizer ([#4704](https://github.com/floci-io/floci/issues/4704)) ([b5f053c](https://github.com/floci-io/floci/commit/b5f053c5872ca0e1d3ad837ec5f9e4ee800a8a52))
* **cloudformation:** honor UsePreviousTemplate on updates ([#5015](https://github.com/floci-io/floci/issues/5015)) ([f9a6558](https://github.com/floci-io/floci/commit/f9a65581beec2b2b628ee7862255bbddc861d284)), closes [#4881](https://github.com/floci-io/floci/issues/4881)
* **cloudformation:** identify Lambda microVM images and network connectors by ARN ([#4971](https://github.com/floci-io/floci/issues/4971)) ([be2998f](https://github.com/floci-io/floci/commit/be2998f2a22e5749c4de96e50e1202ee0d58ddde))
* **cloudformation:** improve EC2 Instance update fidelity ([#4130](https://github.com/floci-io/floci/issues/4130)) ([c847a99](https://github.com/floci-io/floci/commit/c847a9982839bb440113817fe4aceae1856b5eb5))
* **cloudformation:** keep a generated DynamoDB table name across updates ([#3721](https://github.com/floci-io/floci/issues/3721)) ([2d44480](https://github.com/floci-io/floci/commit/2d444801fd84cae4c0376a3dabbdaf8cf8227259)), closes [#3699](https://github.com/floci-io/floci/issues/3699)
* **cloudformation:** keep AWS::ApiGateway::RestApi on stack updates ([#4512](https://github.com/floci-io/floci/issues/4512)) ([a66e2a1](https://github.com/floci-io/floci/commit/a66e2a131dfb717900bff179e4415472758d9a33))
* **cloudformation:** keep unchanged AWS::ApiGateway::Resource on update and remove it on delete ([#4511](https://github.com/floci-io/floci/issues/4511)) ([1ea5a86](https://github.com/floci-io/floci/commit/1ea5a865e3b1b21c92a59f91a5926940221c0453))
* **cloudformation:** key the Lambda hot-reload identity on the Docker host path ([#4275](https://github.com/floci-io/floci/issues/4275)) ([69217df](https://github.com/floci-io/floci/commit/69217dff2a574ea8fd0308e824b6c06ee875275a)), closes [#4080](https://github.com/floci-io/floci/issues/4080)
* **cloudformation:** make a stack's collections safe for concurrent requests ([#4199](https://github.com/floci-io/floci/issues/4199)) ([fac87a6](https://github.com/floci-io/floci/commit/fac87a6cf42b31906deb0d1c7a705671c37c572e)), closes [#3564](https://github.com/floci-io/floci/issues/3564) [#2473](https://github.com/floci-io/floci/issues/2473) [#2419](https://github.com/floci-io/floci/issues/2419)
* **cloudformation:** make EKS Nodegroup Ref the composite cluster/nodegroup id ([#4136](https://github.com/floci-io/floci/issues/4136)) ([69e3717](https://github.com/floci-io/floci/commit/69e371721b49d11eaad86c5463650ad4f7df6af2))
* **cloudformation:** pass Lambda hot-reload code through to the Lambda service ([#4093](https://github.com/floci-io/floci/issues/4093)) ([34f4f72](https://github.com/floci-io/floci/commit/34f4f72e8257532f88b6d9549e90ee7b32bf6f7d)), closes [#4053](https://github.com/floci-io/floci/issues/4053)
* **cloudformation:** propagate nested stack failure status reason and cover changeset rollbacks ([#3921](https://github.com/floci-io/floci/issues/3921)) ([a5254de](https://github.com/floci-io/floci/commit/a5254defb62df6d6babd1836fa9d8ea79cb56c62))
* **cloudformation:** propagate nested stack failures to parent ([#3609](https://github.com/floci-io/floci/issues/3609)) ([700d403](https://github.com/floci-io/floci/commit/700d403fe9895d904e008dd22835e29457930665))
* **cloudformation:** provision Cognito user pool groups ([#3695](https://github.com/floci-io/floci/issues/3695)) ([d9a4db0](https://github.com/floci-io/floci/commit/d9a4db0290c2b608fd5878fc1bf701c90a7310b2))
* **cloudformation:** publish EC2 Instance State via Fn::GetAtt ([#4203](https://github.com/floci-io/floci/issues/4203)) ([024c2cb](https://github.com/floci-io/floci/commit/024c2cbe270256e30eaa755cc3074db9de9d2360))
* **cloudformation:** publish EC2 SecurityGroup Id and Instance VpcId for Fn::GetAtt ([#4155](https://github.com/floci-io/floci/issues/4155)) ([e60cf84](https://github.com/floci-io/floci/commit/e60cf84922a271eaab94561015b9048abf7f4864))
* **cloudformation:** publish RuleName and the RDS group ARNs the current registry schemas declare ([#4135](https://github.com/floci-io/floci/issues/4135)) ([a0e3b6b](https://github.com/floci-io/floci/commit/a0e3b6b674c14a00f4859c03f629ec4f59cb98b7))
* **cloudformation:** read a TemplateURL on the S3 service host as path-style ([#4248](https://github.com/floci-io/floci/issues/4248)) ([239f560](https://github.com/floci-io/floci/commit/239f560d97938b49551b9c306818d0d71ee01e00))
* **cloudformation:** reconcile a named secret in place on UpdateStack ([#4299](https://github.com/floci-io/floci/issues/4299)) ([a777879](https://github.com/floci-io/floci/commit/a7778795186537e481a66444a40348e3eb099926)), closes [#2134](https://github.com/floci-io/floci/issues/2134)
* **cloudformation:** reconcile and replace IAM leaf resources on update and delete ([#3933](https://github.com/floci-io/floci/issues/3933)) ([3a36b8c](https://github.com/floci-io/floci/commit/3a36b8c85c9c865ae2f15f30d09a028698e18067)), closes [#3913](https://github.com/floci-io/floci/issues/3913)
* **cloudformation:** reconcile EC2 security group rules and tags on stack update ([#3863](https://github.com/floci-io/floci/issues/3863)) ([00d1037](https://github.com/floci-io/floci/commit/00d1037635c1cce454081086e9d001e99a644878))
* **cloudformation:** reconcile or replace EC2 instances on stack update ([#3884](https://github.com/floci-io/floci/issues/3884)) ([21beccc](https://github.com/floci-io/floci/commit/21beccceb1828d3ef258159b7069c63a83b64574)), closes [#3810](https://github.com/floci-io/floci/issues/3810)
* **cloudformation:** reject a non-numeric AuthorizerResultTtlInSeconds ([#4055](https://github.com/floci-io/floci/issues/4055)) ([eb247a5](https://github.com/floci-io/floci/commit/eb247a50aa4cca3a17666c511fedab19558a3c8f)), closes [#4021](https://github.com/floci-io/floci/issues/4021)
* **cloudformation:** reject more than one endpoint type on a RestApi update ([#4728](https://github.com/floci-io/floci/issues/4728)) ([9c3593f](https://github.com/floci-io/floci/commit/9c3593f4d101496de7f09feb1c8d16a51201d7ae))
* **cloudformation:** reject non-integer target group ports and health check counts ([#4970](https://github.com/floci-io/floci/issues/4970)) ([a95f4ce](https://github.com/floci-io/floci/commit/a95f4cee3de64f3a356a75e00aebc698e0187023))
* **cloudformation:** remove the login profile when deleting an IAM user ([#3975](https://github.com/floci-io/floci/issues/3975)) ([8af15a7](https://github.com/floci-io/floci/commit/8af15a71c41161d9f939df81593eea20b125a8ea))
* **cloudformation:** replace IAM InstanceProfile on a createOnly change ([#4133](https://github.com/floci-io/floci/issues/4133)) ([03a2d96](https://github.com/floci-io/floci/commit/03a2d969f2e8b862ea26623120c2d1614ed2c123))
* **cloudformation:** resolve a stack id only to the stack carrying it ([#4973](https://github.com/floci-io/floci/issues/4973)) ([8e98c08](https://github.com/floci-io/floci/commit/8e98c087fdf4bbde006cae13d9e55be321b88d09))
* **cloudformation:** resolve change sets by ARN without stack name ([#4885](https://github.com/floci-io/floci/issues/4885)) ([ba944df](https://github.com/floci-io/floci/commit/ba944df9224244889423c2ca365a3d3daf55873b))
* **cloudformation:** resolve dynamic references after Fn::Join ([#3610](https://github.com/floci-io/floci/issues/3610)) ([e5bee4a](https://github.com/floci-io/floci/commit/e5bee4ac22bfa26d76c63724563f13586b67aee4))
* **cloudformation:** resolve intrinsics in IAM policy documents before storing them ([#3739](https://github.com/floci-io/floci/issues/3739)) ([5730947](https://github.com/floci-io/floci/commit/573094720dbd2b8ae3ac7300fb612f0a05a42fe8))
* **cloudformation:** resolve SecretTargetAttachment targets in the stack region ([#3740](https://github.com/floci-io/floci/issues/3740)) ([cf235cf](https://github.com/floci-io/floci/commit/cf235cfb8182e6587c1e5458728062a60f319c0f))
* **cloudformation:** roll back in-place Cognito user pool and client updates ([#5006](https://github.com/floci-io/floci/issues/5006)) ([7ffe43f](https://github.com/floci-io/floci/commit/7ffe43f48f88f3c29e3b86f2bb56739b234fca4a))
* **cloudformation:** skip unchanged resources during updates ([#4442](https://github.com/floci-io/floci/issues/4442)) ([60985b9](https://github.com/floci-io/floci/commit/60985b9a80d604ee842679e82f7ee3f4a7cde320))
* **cloudformation:** tolerate an already-gone EC2 instance or security group on stack delete ([#3842](https://github.com/floci-io/floci/issues/3842)) ([6e03483](https://github.com/floci-io/floci/commit/6e034837ada2ad423ceddaecd5bb01f4c090b59a))
* **cloudformation:** tolerate an already-gone REST API on delete ([#4047](https://github.com/floci-io/floci/issues/4047)) ([3976f2b](https://github.com/floci-io/floci/commit/3976f2bd05208e743fc55ffd41aad95625fef9a3)), closes [#3885](https://github.com/floci-io/floci/issues/3885)
* **cloudformation:** update nested stacks in place ([#3859](https://github.com/floci-io/floci/issues/3859)) ([fbc0d4d](https://github.com/floci-io/floci/commit/fbc0d4d3f2b2c45569f2e63784e8d9ecc5b7563a))
* **cloudformation:** validate required fields on AWS::IAM::Policy ([#4050](https://github.com/floci-io/floci/issues/4050)) ([186a538](https://github.com/floci-io/floci/commit/186a5380d55d658e3fc472f29f2af58df91bc812)), closes [#3971](https://github.com/floci-io/floci/issues/3971)
* **cloudfront:** dedupe CacheBehavior XML parsing ([#3705](https://github.com/floci-io/floci/issues/3705)) ([3641a07](https://github.com/floci-io/floci/commit/3641a074dc708606990b8c3e5fb4690cc0e813bc)), closes [#3652](https://github.com/floci-io/floci/issues/3652)
* **cloudfront:** preserve policy configurations ([#4009](https://github.com/floci-io/floci/issues/4009)) ([eb18b4a](https://github.com/floci-io/floci/commit/eb18b4ab1fcd7f9b819c03eddf087a4490ffd134))
* **cloudhsm:** add issuer key identifiers to hardware chain ([#4707](https://github.com/floci-io/floci/issues/4707)) ([a5dd3c2](https://github.com/floci-io/floci/commit/a5dd3c2f2e595c0d773b9fbc80d15874957953f2))
* **cloudmap:** answer typed DNS records and honor routing policy ([#4534](https://github.com/floci-io/floci/issues/4534)) ([c7492ce](https://github.com/floci-io/floci/commit/c7492ce0f42e19f634b8ceeef715b86768014ff3))
* **cloudwatch:** honor Unit filter in JSON GetMetricStatistics ([#3932](https://github.com/floci-io/floci/issues/3932)) ([8ccc89d](https://github.com/floci-io/floci/commit/8ccc89df41232012b6e5bd6a29b09cca672c5aee))
* **cloudwatchlogs:** add logGroupArn to DescribeLogGroups ([#3868](https://github.com/floci-io/floci/issues/3868)) ([0108b96](https://github.com/floci-io/floci/commit/0108b9653ab05568c9cbafc2552a2797a69a64be))
* **cloudwatchlogs:** journal log events instead of rewriting the store under persistent mode ([#4187](https://github.com/floci-io/floci/issues/4187)) ([a0cb86c](https://github.com/floci-io/floci/commit/a0cb86cc133f7dec681002b01894e14d2668b45c)), closes [#2500](https://github.com/floci-io/floci/issues/2500)
* **cloudwatchlogs:** persist event batches once ([#3767](https://github.com/floci-io/floci/issues/3767)) ([bb67a44](https://github.com/floci-io/floci/commit/bb67a443ce8fe828b6232811f7c0e1cede80827b))
* **cloudwatchlogs:** return creationTime in DescribeLogGroups and DescribeLogStreams ([#4137](https://github.com/floci-io/floci/issues/4137)) ([cde8f48](https://github.com/floci-io/floci/commit/cde8f48084a5008a13f66d2c39c16e071d1e4148)), closes [#4084](https://github.com/floci-io/floci/issues/4084)
* **cloudwatch:** mint the regionless dashboard ARN AWS uses ([#5135](https://github.com/floci-io/floci/issues/5135)) ([c812908](https://github.com/floci-io/floci/commit/c81290823bed505058ccb3a1bcc41ae07f3fce2e))
* **cloudwatch:** raise ResourceNotFoundException when a tag operation names a resource that does not exist ([#4783](https://github.com/floci-io/floci/issues/4783)) ([0c8d184](https://github.com/floci-io/floci/commit/0c8d1848541392ff91991121d96586db564cb3f8))
* **cloudwatch:** retain metric-math alarm query definitions ([#4594](https://github.com/floci-io/floci/issues/4594)) ([1d646c6](https://github.com/floci-io/floci/commit/1d646c6fea70a8d4bfeea4d0ca6d8fc390ea6170))
* **cloudwatch:** return DatapointsToAlarm from the JSON DescribeAlarms response ([#3660](https://github.com/floci-io/floci/issues/3660)) ([a180c14](https://github.com/floci-io/floci/commit/a180c140a7f014e669b7779350bb7ae624ac9234))
* **cloudwatch:** return storedBytes on DescribeLogGroups ([#4202](https://github.com/floci-io/floci/issues/4202)) ([babb43a](https://github.com/floci-io/floci/commit/babb43ac3d883568590bf77d0f85036f3831a5f5))
* **codeartifact:** close the remaining register-vs-reset gap in PerKeyContainerPool ([#4447](https://github.com/floci-io/floci/issues/4447)) ([3da68ff](https://github.com/floci-io/floci/commit/3da68ff50506098e48455afc4a68958147a58842)), closes [#4411](https://github.com/floci-io/floci/issues/4411) [#4411](https://github.com/floci-io/floci/issues/4411)
* **codeartifact:** enforce domains-per-account and repositories-per-domain quotas ([#3949](https://github.com/floci-io/floci/issues/3949)) ([15ed62f](https://github.com/floci-io/floci/commit/15ed62f8cbf1e511dd9b7ed62a53af15d8e02ac8))
* **codeartifact:** extend idempotent asset republish to Published versions ([#4708](https://github.com/floci-io/floci/issues/4708)) ([48214e0](https://github.com/floci-io/floci/commit/48214e04e09d35a889607dc8fd42848776d580ab)), closes [#4619](https://github.com/floci-io/floci/issues/4619)
* **codeartifact:** harden the pypi upload preflight's URI building and index match ([#5029](https://github.com/floci-io/floci/issues/5029)) ([8776c5f](https://github.com/floci-io/floci/commit/8776c5fc3ac5825d3d672ccbd6ba5e58442f0b31)), closes [#5019](https://github.com/floci-io/floci/issues/5019)
* **codeartifact:** log unexpected I/O errors in existingFileMatches ([#4769](https://github.com/floci-io/floci/issues/4769)) ([4f2f494](https://github.com/floci-io/floci/commit/4f2f494442cdd205cda272dd7e4378d3cfad8b94)), closes [#4708](https://github.com/floci-io/floci/issues/4708)
* **codeartifact:** populate resourceId/resourceType on error responses ([#3977](https://github.com/floci-io/floci/issues/3977)) ([2697868](https://github.com/floci-io/floci/commit/2697868e865ce3dfa9f65b5fe90af04c6e3273cd))
* **codeartifact:** stop npm data plane test from missing a fast response body ([#4430](https://github.com/floci-io/floci/issues/4430)) ([8f5ba2b](https://github.com/floci-io/floci/commit/8f5ba2b2a85f793f65b073d2d182acffca92fdeb)), closes [#4369](https://github.com/floci-io/floci/issues/4369) [#4422](https://github.com/floci-io/floci/issues/4422)
* **codeartifact:** stop sidecar containers on state reset and nuke ([#4411](https://github.com/floci-io/floci/issues/4411)) ([61e7f07](https://github.com/floci-io/floci/commit/61e7f07fb650baf7da35b61d8823744e0b24629c))
* **codeartifact:** treat identical-content asset republish as idempotent ([#4619](https://github.com/floci-io/floci/issues/4619)) ([0232d5d](https://github.com/floci-io/floci/commit/0232d5d22457aaae3318adf3e6f9d0e0092ebb4e))
* **codeartifact:** treat identical-content maven redeploy as idempotent ([#4837](https://github.com/floci-io/floci/issues/4837)) ([cd89be4](https://github.com/floci-io/floci/commit/cd89be4a80a775b79678fb9175454dc64bcae4c7))
* **codebuild:** keep only the tail of phase output for failure messages ([#4690](https://github.com/floci-io/floci/issues/4690)) ([70efa35](https://github.com/floci-io/floci/commit/70efa35fe321a514e97a70615489bcc352058d65))
* **codepipeline:** fall back when the source poll interval is not positive ([#4361](https://github.com/floci-io/floci/issues/4361)) ([5913812](https://github.com/floci-io/floci/commit/5913812b53f729ad66069aa4d5c997154e227dbb))
* **codepipeline:** handle legacy pipelines without versions ([#3677](https://github.com/floci-io/floci/issues/3677)) ([374b80e](https://github.com/floci-io/floci/commit/374b80eb658445c10a93c2e26cb7307e2a642ed1))
* **codepipeline:** preserve external actions while stopping ([#3726](https://github.com/floci-io/floci/issues/3726)) ([b3d46d5](https://github.com/floci-io/floci/commit/b3d46d50247992e1694ad88c746ccb2d824e4957))
* **codepipeline:** release per-pipeline locks after use ([#3712](https://github.com/floci-io/floci/issues/3712)) ([e5f9baa](https://github.com/floci-io/floci/commit/e5f9baa12d36b40adee0bee66cc402c61f9707ed))
* **codepipeline:** resolve effective source revisions ([#3514](https://github.com/floci-io/floci/issues/3514)) ([02ad6aa](https://github.com/floci-io/floci/commit/02ad6aa768219675ff5a912011af6fd11c2ea400))
* **codepipeline:** retry failed stages in place ([#3513](https://github.com/floci-io/floci/issues/3513)) ([196d158](https://github.com/floci-io/floci/commit/196d1586daf0cfab11c5b23d9126228c64811b00))
* **codepipeline:** wait for custom jobs while stopping ([#3678](https://github.com/floci-io/floci/issues/3678)) ([c317fa5](https://github.com/floci-io/floci/commit/c317fa52d2c882b78af8b1c1eb54da25ddd8e40d))
* **cognito:** accept USER_SRP_AUTH in AdminInitiateAuth ([#3973](https://github.com/floci-io/floci/issues/3973)) ([2d56d85](https://github.com/floci-io/floci/commit/2d56d85e9eb889902f29a1c2dde4aa346a0a3088))
* **cognito:** align pre-authentication trigger events and errors ([#3861](https://github.com/floci-io/floci/issues/3861)) ([172bfb3](https://github.com/floci-io/floci/commit/172bfb32b0a801023aacc2022eb1eb29d1e4cded))
* **cognito:** default ExplicitAuthFlows to refresh, SRP and custom auth ([#4081](https://github.com/floci-io/floci/issues/4081)) ([06007de](https://github.com/floci-io/floci/commit/06007deea8b04134f0a5a4c6be4cc14dbbdc12c6))
* **cognito:** expire auth challenge sessions ([#4417](https://github.com/floci-io/floci/issues/4417)) ([8b9f441](https://github.com/floci-io/floci/commit/8b9f441bb49607c6085593d35ddc705b09b6e089))
* **cognito:** fail authentication when token triggers fail ([#4727](https://github.com/floci-io/floci/issues/4727)) ([45b0077](https://github.com/floci-io/floci/commit/45b00779b7a3ada38ed46e1ca0322ffb20bc11ad))
* **cognito:** fire PreTokenGeneration when the token endpoint redeems a code ([#4438](https://github.com/floci-io/floci/issues/4438)) ([b4d8483](https://github.com/floci-io/floci/commit/b4d8483348c0d509549a19fa4445c26768f4cec5))
* **cognito:** hide unknown users in USER_AUTH ([#4478](https://github.com/floci-io/floci/issues/4478)) ([9c93e6a](https://github.com/floci-io/floci/commit/9c93e6ab7b528f6b326e46f035bb11dd05d53da1))
* **cognito:** honour admin_only account recovery ([#4762](https://github.com/floci-io/floci/issues/4762)) ([a0be062](https://github.com/floci-io/floci/commit/a0be062f9f3e298bcddf90547adc28bf697a0aa8))
* **cognito:** keep tag operations and DescribeUserPoolDomain in the pool's region ([#5133](https://github.com/floci-io/floci/issues/5133)) ([899211e](https://github.com/floci-io/floci/commit/899211e498223f6e52692fab603af5121eb8f8f9))
* **cognito:** omit AvailableChallenges from RespondToAuthChallenge responses ([#4025](https://github.com/floci-io/floci/issues/4025)) ([db2e0ab](https://github.com/floci-io/floci/commit/db2e0ab8d731f65f37acc6e7bbd79755ef3cc3c1)), closes [#4003](https://github.com/floci-io/floci/issues/4003)
* **cognito:** persist app client AuthSessionValidity ([#4481](https://github.com/floci-io/floci/issues/4481)) ([c0cb49f](https://github.com/floci-io/floci/commit/c0cb49facc739b6012fe1d50e096dfa552622ee0))
* **cognito:** refuse DeleteUserPool while deletion protection is active ([#3961](https://github.com/floci-io/floci/issues/3961)) ([1e84858](https://github.com/floci-io/floci/commit/1e8485830c68c24128a4f8867e91bd2c77b489c2)), closes [#3948](https://github.com/floci-io/floci/issues/3948)
* **cognito:** reject missing SRP challenge session ([#4578](https://github.com/floci-io/floci/issues/4578)) ([fbbbf24](https://github.com/floci-io/floci/commit/fbbbf244af1d01c2a7432813d7550526ca26bf40))
* **cognito:** reject unrecognized AuthFlow instead of issuing tokens ([#3923](https://github.com/floci-io/floci/issues/3923)) ([61f67cc](https://github.com/floci-io/floci/commit/61f67cc8346611902c737576cf3702ab8bea3adb))
* **cognito:** scope OAuth tokens to the requested scopes ([#4771](https://github.com/floci-io/floci/issues/4771)) ([f1d718c](https://github.com/floci-io/floci/commit/f1d718cae272b92d946ba839efc062693b80ce59))
* **cognito:** stop defaulting unset password requirements to enabled ([#4250](https://github.com/floci-io/floci/issues/4250)) ([4e42f47](https://github.com/floci-io/floci/commit/4e42f477400a2ab72d82b6129db775a0f9195475))
* **cognito:** validate PasswordPolicy MinimumLength and remove default of 8 ([#4359](https://github.com/floci-io/floci/issues/4359)) ([47ea463](https://github.com/floci-io/floci/commit/47ea46314653a81164e3116012671e4c6eb1f64c)), closes [#4256](https://github.com/floci-io/floci/issues/4256)
* **compat:** read VPC ID from OpenTofu state ([#3831](https://github.com/floci-io/floci/issues/3831)) ([b782530](https://github.com/floci-io/floci/commit/b782530cd26df30fad9cae685cf41d0da712d78e))
* **config:** enforce safe default network binding ([#3684](https://github.com/floci-io/floci/issues/3684)) ([1831f10](https://github.com/floci-io/floci/commit/1831f1010593611bfd24bcb1de6e5ad207363930))
* **core:** build and recognise AWS hostnames in every partition ([#4451](https://github.com/floci-io/floci/issues/4451)) ([2cccc73](https://github.com/floci-io/floci/commit/2cccc73499f009b5930a825aff5931a914abbbc3)), closes [#4444](https://github.com/floci-io/floci/issues/4444) [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** compare ARN partitions with the resource's region, not the literal aws ([#4791](https://github.com/floci-io/floci/issues/4791)) ([d72923a](https://github.com/floci-io/floci/commit/d72923ab33d5de368ea191a1517fa0c72683a00a)), closes [#4272](https://github.com/floci-io/floci/issues/4272) [#4790](https://github.com/floci-io/floci/issues/4790) [#4790](https://github.com/floci-io/floci/issues/4790) [RdsJdbcCompatTest#createDbInstanceAndConnectWithPassword](https://github.com/RdsJdbcCompatTest/issues/createDbInstanceAndConnectWithPassword)
* **core:** let RequestScopes run background work in a given region ([#5054](https://github.com/floci-io/floci/issues/5054)) ([971dc01](https://github.com/floci-io/floci/commit/971dc01f349d015b71399846e8981e3a27834fad))
* **core:** mint every ARN in the request's partition ([#4444](https://github.com/floci-io/floci/issues/4444)) ([0e8f965](https://github.com/floci-io/floci/commit/0e8f965cb6fa82bcd86f8178de48971882a227a5)), closes [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** mint every regionless ARN in its partition and gate blank-region Arn.of calls ([#4787](https://github.com/floci-io/floci/issues/4787)) ([27ddf0b](https://github.com/floci-io/floci/commit/27ddf0bb0000925f38cd71aef8ddcb4f60019d06)), closes [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** name the exception class in a message-less Query catch-all ([#3728](https://github.com/floci-io/floci/issues/3728)) ([2b09160](https://github.com/floci-io/floci/commit/2b091608afa804cabf3532e723f2f78fc9308b40)), closes [#3356](https://github.com/floci-io/floci/issues/3356) [#3356](https://github.com/floci-io/floci/issues/3356)
* **core:** read ARNs and Step Functions integration ids in every partition ([#4358](https://github.com/floci-io/floci/issues/4358)) ([eb2872f](https://github.com/floci-io/floci/commit/eb2872f578e13a6de4422836ffdbfd72fbf0958f)), closes [#4272](https://github.com/floci-io/floci/issues/4272) [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** refuse a SigV4 scope region that no AWS partition publishes ([#4393](https://github.com/floci-io/floci/issues/4393)) ([6fcfc04](https://github.com/floci-io/floci/commit/6fcfc0450ad7123b3bfbb2dec1551ae3c116bbde))
* **core:** return UnknownOperationException when X-Amz-Target is missing ([#3925](https://github.com/floci-io/floci/issues/3925)) ([ca98384](https://github.com/floci-io/floci/commit/ca98384b4ae285266d76b655865dad3e704a4bf2))
* **core:** serve HTTP/1.0 requests that omit the Host header ([#4174](https://github.com/floci-io/floci/issues/4174)) ([f084243](https://github.com/floci-io/floci/commit/f084243fc08a48fefc057160cb820bf636b03a71))
* **core:** service principals are universal in every partition; accept the legacy forms ([#4633](https://github.com/floci-io/floci/issues/4633)) ([43ed79d](https://github.com/floci-io/floci/commit/43ed79d15bde34d94ecb61085596defb6bd065c3)), closes [#4272](https://github.com/floci-io/floci/issues/4272)
* **core:** stop accepting SigV4 scopes no SDK signs with ([#5005](https://github.com/floci-io/floci/issues/5005)) ([0740adf](https://github.com/floci-io/floci/commit/0740adf9aeda89c8a0695eccc7bc73185899277d))
* **core:** stop MultipartFormParser.ParsedForm using Optional as a record field ([#5011](https://github.com/floci-io/floci/issues/5011)) ([a22de62](https://github.com/floci-io/floci/commit/a22de628e680942da1686838473b3d4f00d6e3b8))
* **core:** use the deployment region where Floci fell back to us-east-1 ([#4974](https://github.com/floci-io/floci/issues/4974)) ([0bae2f0](https://github.com/floci-io/floci/commit/0bae2f0e35ddedc99192aeac0f859bfc901ab160))
* create Firehose buckets and backfill EKS OIDC issuers in the resource's region ([#5099](https://github.com/floci-io/floci/issues/5099)) ([4d95855](https://github.com/floci-io/floci/commit/4d9585583ddf04369d64f00bcf345ff03d39d413))
* distinguish a failed verification API call from an unsigned commit ([#3840](https://github.com/floci-io/floci/issues/3840)) ([c261103](https://github.com/floci-io/floci/commit/c2611038a4392cd7f2d17ac48d1c9d3117f4f724)), closes [#3812](https://github.com/floci-io/floci/issues/3812)
* **docker:** follow adopted sidecar containers from now instead of replaying their log history ([#3612](https://github.com/floci-io/floci/issues/3612)) ([ebb79ed](https://github.com/floci-io/floci/commit/ebb79ed3c200e83f2f33dc06b3997ce96677c0ec))
* **docker:** keep host network mode for containers that publish ports ([#4192](https://github.com/floci-io/floci/issues/4192)) ([a574a6d](https://github.com/floci-io/floci/commit/a574a6d01f47aecdf7505214bec842989c1f17c4)), closes [#2798](https://github.com/floci-io/floci/issues/2798) [#4175](https://github.com/floci-io/floci/issues/4175)
* **docker:** make the Docker client pool size configurable, default 1024 ([#4276](https://github.com/floci-io/floci/issues/4276)) ([76f8c09](https://github.com/floci-io/floci/commit/76f8c0934134cafe089f2ac464114ffb35f0dbc4)), closes [#2219](https://github.com/floci-io/floci/issues/2219) [#2224](https://github.com/floci-io/floci/issues/2224)
* **docker:** move the image bases to UBI 9.8 ([#4782](https://github.com/floci-io/floci/issues/4782)) ([d541878](https://github.com/floci-io/floci/commit/d5418789d2a252ba2d26cc932c4f784321fe103a))
* **docker:** pass the resolved TLS config to the Docker HTTP client ([#4638](https://github.com/floci-io/floci/issues/4638)) ([728e000](https://github.com/floci-io/floci/commit/728e000187ef4ff71a8d85fc8984d92324246f58)), closes [#4608](https://github.com/floci-io/floci/issues/4608)
* **docker:** re-own the configured persistent path, not only /app/data ([#4525](https://github.com/floci-io/floci/issues/4525)) ([7e3ff3c](https://github.com/floci-io/floci/commit/7e3ff3c5ee4bee6b04c3f405476a2156e9aaf2e2))
* **docker:** retry transient daemon I/O at the transport seam and split streaming pools ([#4614](https://github.com/floci-io/floci/issues/4614)) ([1531537](https://github.com/floci-io/floci/commit/153153755962bc0aa600d203eee575aff096f044))
* **docker:** stop the bundled AWS CLI fetching URL-valued parameters ([#3426](https://github.com/floci-io/floci/issues/3426)) ([bd005ac](https://github.com/floci-io/floci/commit/bd005ac9c75cc80933f333e26e9245c6a42f8d5f))
* **docs:** prevent stale service action counts ([#5018](https://github.com/floci-io/floci/issues/5018)) ([4d980a3](https://github.com/floci-io/floci/commit/4d980a361fa2e658965c9b69e69da0d562c4754b))
* **dynamodb:** add missing ConsumedCapacity for PartiQL's ExecuteStatement and BatchExecuteStatement ([#4165](https://github.com/floci-io/floci/issues/4165)) ([65b2b13](https://github.com/floci-io/floci/commit/65b2b13f5c3f8f3255243321640ac38932098f1d))
* **dynamodb:** add missing ConsumedCapacity to transaction responses ([#4151](https://github.com/floci-io/floci/issues/4151)) ([5d9986a](https://github.com/floci-io/floci/commit/5d9986aa6cf4648e92ffe51f06e8c6c40085ab3f))
* **dynamodb:** apply the ProjectionExpression of a TransactGetItems Get ([#4061](https://github.com/floci-io/floci/issues/4061)) ([138f3c2](https://github.com/floci-io/floci/commit/138f3c265080f20e148c65939d1de503b0867202))
* **dynamodb:** cancel TransactWriteItems on a key that does not match the schema ([#3674](https://github.com/floci-io/floci/issues/3674)) ([487cacb](https://github.com/floci-io/floci/commit/487cacb3bc6c024d55f60d4b7c64331330f3c632))
* **dynamodb:** enforce the 400KB item limit on every update surface ([#3991](https://github.com/floci-io/floci/issues/3991)) ([3958be1](https://github.com/floci-io/floci/commit/3958be1d0ead23b1adcc2f2b6711df235dad6191))
* **dynamodb:** escape composite key segments ([#3804](https://github.com/floci-io/floci/issues/3804)) ([5340e88](https://github.com/floci-io/floci/commit/5340e88605f372906ca080a50c311bd6dfe802f0))
* **dynamodb:** filter an unkeyed PartiQL index read on the index view ([#4319](https://github.com/floci-io/floci/issues/4319)) ([9454cee](https://github.com/floci-io/floci/commit/9454ceed21d35fce577d14337ed2687afa059a3d))
* **dynamodb:** honor MICROSECOND ApproximateCreationDateTimePrecision for Kinesis destinations and streams false enablement ([#3874](https://github.com/floci-io/floci/issues/3874)) ([5d23a70](https://github.com/floci-io/floci/commit/5d23a70cc0187d3754b04516f88f2f44cd846da0))
* **dynamodb:** match AWS error messages for item calls and projections ([#4315](https://github.com/floci-io/floci/issues/4315)) ([8f606c3](https://github.com/floci-io/floci/commit/8f606c3587d8eeb6151a2ed42b66b8c2cb963644)), closes [#alias](https://github.com/floci-io/floci/issues/alias)
* **dynamodb:** match the AWS shape of the Kinesis destination responses ([#4917](https://github.com/floci-io/floci/issues/4917)) ([5de9b0d](https://github.com/floci-io/floci/commit/5de9b0d6c1ea740c3fda828688e753dd51756aa1))
* **dynamodb:** recompute UpdateTable AttributeDefinitions ([#4046](https://github.com/floci-io/floci/issues/4046)) ([60fd65b](https://github.com/floci-io/floci/commit/60fd65b5b63cc22c8d8e188d62c067ef3a1e8203))
* **dynamodb:** reject a request member of the wrong JSON type ([#4636](https://github.com/floci-io/floci/issues/4636)) ([1465251](https://github.com/floci-io/floci/commit/1465251e0cbe5d5caffc4523796fa3ef985c56fe))
* **dynamodb:** reject an unknown BillingMode ([#4554](https://github.com/floci-io/floci/issues/4554)) ([b8b5fcd](https://github.com/floci-io/floci/commit/b8b5fcd4766bacfe54fb826be9a146ed12c766f8))
* **dynamodb:** reject undefined expression attribute placeholders ([#4398](https://github.com/floci-io/floci/issues/4398)) ([5ec18c5](https://github.com/floci-io/floci/commit/5ec18c507ce1f75843d2ab0d8592ea55f9f19703)), closes [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#name](https://github.com/floci-io/floci/issues/name) [#missing](https://github.com/floci-io/floci/issues/missing) [#missing](https://github.com/floci-io/floci/issues/missing) [#2893](https://github.com/floci-io/floci/issues/2893) [#name](https://github.com/floci-io/floci/issues/name)
* **dynamodb:** report a global table's home region as a replica in DescribeTable ([#4197](https://github.com/floci-io/floci/issues/4197)) ([d96e41c](https://github.com/floci-io/floci/commit/d96e41cf2f810e2c5033688053d74bde2f33596a))
* **dynamodb:** report a missing GSI on UpdateTable the way AWS does ([#4564](https://github.com/floci-io/floci/issues/4564)) ([e7e49f9](https://github.com/floci-io/floci/commit/e7e49f9125ebb7e99d0a5a860845a7d0aa874f7c))
* **dynamodb:** route stream consumers through one account-scoped reader ([#4394](https://github.com/floci-io/floci/issues/4394)) ([2df0521](https://github.com/floci-io/floci/commit/2df052181d84d930f420507e6043ea6e34223b1e))
* **dynamodb:** scope streams and sequence counters by account ([#4116](https://github.com/floci-io/floci/issues/4116)) ([d53ea39](https://github.com/floci-io/floci/commit/d53ea39be9174d1752551e802d95490d604ac73e))
* **dynamodb:** size numbers by base-100 digit pairs ([#4530](https://github.com/floci-io/floci/issues/4530)) ([c9427b5](https://github.com/floci-io/floci/commit/c9427b5832960da9280c695695c7f48ffbd1c85c))
* **dynamodb:** size() of a Binary counts its bytes, not its base64 text ([#5058](https://github.com/floci-io/floci/issues/5058)) ([db2a67f](https://github.com/floci-io/floci/commit/db2a67f12250c102165af90579bae15398dfd81b))
* **dynamodb:** treat resolved projection aliases as literal names, not list indices ([#3633](https://github.com/floci-io/floci/issues/3633)) ([c707415](https://github.com/floci-io/floci/commit/c707415be78fdfc5b9e4c055450720e0a6e37017))
* **dynamodb:** validate GSI and LSI index names like AWS ([#4601](https://github.com/floci-io/floci/issues/4601)) ([dad5648](https://github.com/floci-io/floci/commit/dad5648b7b96f8638661c45d4914ab0e832eb546))
* **dynamodb:** validate transaction condition expressions ([#3691](https://github.com/floci-io/floci/issues/3691)) ([934d0b8](https://github.com/floci-io/floci/commit/934d0b829fb966837955fac5a2b7c14436d6cb84))
* **ec2:** add t2.nano, t2.small, t3.nano and t3a.nano to the instance type catalog ([#4788](https://github.com/floci-io/floci/issues/4788)) ([3a56aad](https://github.com/floci-io/floci/commit/3a56aad67057fe6bcc7142b0bca2cc67aa6714d4))
* **ec2:** an interface VPC endpoint reports its network interfaces, and they resolve ([#4598](https://github.com/floci-io/floci/issues/4598)) ([6b7d176](https://github.com/floci-io/floci/commit/6b7d17698cefa38ca6c7c9b6906f8c47b27eb156)), closes [#21](https://github.com/floci-io/floci/issues/21)
* **ec2:** apply filters to transit gateway route table lookups ([#3820](https://github.com/floci-io/floci/issues/3820)) ([d15b388](https://github.com/floci-io/floci/commit/d15b388aca73b92f2c35badf65c80c313fe8b52c))
* **ec2:** attach Docker-hosted Floci to VPC networks ([#3862](https://github.com/floci-io/floci/issues/3862)) ([c3ec381](https://github.com/floci-io/floci/commit/c3ec3819ae3315a0be0904cd8fecef20ccabe3d9))
* **ec2:** decode CloudFormation launch template user data ([#4711](https://github.com/floci-io/floci/issues/4711)) ([3df7fb1](https://github.com/floci-io/floci/commit/3df7fb17ee5f8162dabc3e19169ffd754905354e))
* **ec2:** delete VPC default security group, route table and network ACL with the VPC ([#3878](https://github.com/floci-io/floci/issues/3878)) ([75fee00](https://github.com/floci-io/floci/commit/75fee00adcb24d932de19ac6e053ca4191292d6c))
* **ec2:** deliver flow log records in the format the flow log declares ([#4429](https://github.com/floci-io/floci/issues/4429)) ([4b15ca8](https://github.com/floci-io/floci/commit/4b15ca89508c36f648a97ba8e93c8035e80077d4))
* **ec2:** honor dry run for replace route ([#4300](https://github.com/floci-io/floci/issues/4300)) ([55f9ff5](https://github.com/floci-io/floci/commit/55f9ff5a8bbcc0488e6a28f174bb28af6cf8fb2e))
* **ec2:** honor RunInstances dry run before provisioning ([#3599](https://github.com/floci-io/floci/issues/3599)) ([46b66ff](https://github.com/floci-io/floci/commit/46b66ffa40efd5a4e84998944bd2b3e543aa21c0))
* **ec2:** instances under security group enforcement no longer terminate at launch ([#4510](https://github.com/floci-io/floci/issues/4510)) ([4faa2b1](https://github.com/floci-io/floci/commit/4faa2b1354d48aa4220a947cd45e92171b0860e4))
* **ec2:** issue instance-profile role credentials through IMDS ([#3742](https://github.com/floci-io/floci/issues/3742)) ([d4a9691](https://github.com/floci-io/floci/commit/d4a96913df277240452e3e40f2228ccbc2b896a7))
* **ec2:** plan a VPC's CIDR against another Region's network for the same VPC id ([#5134](https://github.com/floci-io/floci/issues/5134)) ([22ff933](https://github.com/floci-io/floci/commit/22ff93365e0844b01cba0aa0799b863d8afa8d80))
* **ec2:** reject a DescribeVpcs filter name the service does not serve ([#4366](https://github.com/floci-io/floci/issues/4366)) ([fde0688](https://github.com/floci-io/floci/commit/fde0688ef361d438ad1a5d9c7aeafe4000bd12d1))
* **ec2:** reject key pair requests without KeyName ([#3727](https://github.com/floci-io/floci/issues/3727)) ([996a680](https://github.com/floci-io/floci/commit/996a680cdc609ffc1117e9629894137b9a747186)), closes [#3307](https://github.com/floci-io/floci/issues/3307) [#3356](https://github.com/floci-io/floci/issues/3356)
* **ec2:** release a capture when a whole batch of instances is terminated ([#4127](https://github.com/floci-io/floci/issues/4127)) ([aba5f4e](https://github.com/floci-io/floci/commit/aba5f4e919f3f67fd5a40d17da2631fa4277be32))
* **ec2:** remove tags on the default resources deleted with the VPC ([#3917](https://github.com/floci-io/floci/issues/3917)) ([c5de833](https://github.com/floci-io/floci/commit/c5de8331b7d3731e63c9f8aaaea82d5b12c6914c))
* **ec2:** report a flow log's custom LogFormat ([#4386](https://github.com/floci-io/floci/issues/4386)) ([fd3696a](https://github.com/floci-io/floci/commit/fd3696a9fc0983dfca1e102333fd3f54c1a17b0c))
* **ec2:** report an unknown subnet id from DescribeSubnets as an error ([#4408](https://github.com/floci-io/floci/issues/4408)) ([49f253d](https://github.com/floci-io/floci/commit/49f253d0ecac58aca7d0215e4a6e7d5243d606ad))
* **ec2:** report instance platform details ([#4322](https://github.com/floci-io/floci/issues/4322)) ([c595792](https://github.com/floci-io/floci/commit/c595792795db9a4653c7e254baf5256f96a6a7c7))
* **ec2:** report the calling account as resource owner ([#3814](https://github.com/floci-io/floci/issues/3814)) ([7e53915](https://github.com/floci-io/floci/commit/7e539155e18161005ee45f110f0026341cd5067c)), closes [#3775](https://github.com/floci-io/floci/issues/3775)
* **ec2:** resolve instance profile names through IAM ([#3856](https://github.com/floci-io/floci/issues/3856)) ([5ec3fb6](https://github.com/floci-io/floci/commit/5ec3fb67a8675a249377b68e6abc84b52415f7af))
* **ec2:** return and filter image tags ([#3808](https://github.com/floci-io/floci/issues/3808)) ([313f91e](https://github.com/floci-io/floci/commit/313f91e06ccefe06a2d9811f4cbb98d2b2ddb016))
* **ec2:** return DependencyViolation from DeleteVpc while dependents remain ([#3916](https://github.com/floci-io/floci/issues/3916)) ([5a11e7f](https://github.com/floci-io/floci/commit/5a11e7f6fb1821405c4a6f59a3cab85144235b66))
* **ec2:** return user data from DescribeInstanceAttribute ([#3601](https://github.com/floci-io/floci/issues/3601)) ([1691012](https://github.com/floci-io/floci/commit/169101233c6c3901a169adfc293453a6241f365c))
* **ec2:** stage user data outside guest temporary mounts ([#3736](https://github.com/floci-io/floci/issues/3736)) ([03603ae](https://github.com/floci-io/floci/commit/03603aeacd77d35b4edf00f83cb0c81717405d10))
* **ec2:** store omitted tag values as empty strings ([#3880](https://github.com/floci-io/floci/issues/3880)) ([052da93](https://github.com/floci-io/floci/commit/052da935151f7105f5df037a91265fafec384a1e))
* **ec2:** use regional private DNS names ([#5033](https://github.com/floci-io/floci/issues/5033)) ([4fb52e0](https://github.com/floci-io/floci/commit/4fb52e0b0722a5e2dfd76c17c528d6f6121c0f4a))
* **ec2:** validate and expire IMDSv2 session tokens ([#4303](https://github.com/floci-io/floci/issues/4303)) ([06ec4b5](https://github.com/floci-io/floci/commit/06ec4b563a176122335a3650dfabac15617e769b))
* **ec2:** validate CreateSecurityGroup required parameters ([#3888](https://github.com/floci-io/floci/issues/3888)) ([37ac250](https://github.com/floci-io/floci/commit/37ac2505e86d4af3088c8f75212f8c984e2bfb90))
* **ec2:** validate DescribeVpcs ids at the query boundary ([#4482](https://github.com/floci-io/floci/issues/4482)) ([5ace428](https://github.com/floci-io/floci/commit/5ace4281f33dae7305c123b79ba06f1c25d6c7f1))
* **ecr:** answer GetAuthorizationToken without the backing registry ([#4635](https://github.com/floci-io/floci/issues/4635)) ([231655b](https://github.com/floci-io/floci/commit/231655b70a29475dd0f0835d3eb897b8548b404d)), closes [#4634](https://github.com/floci-io/floci/issues/4634)
* **ecr:** forward every Accept header to the backing registry ([#5069](https://github.com/floci-io/floci/issues/5069)) ([32f01ba](https://github.com/floci-io/floci/commit/32f01ba13d4ddcbf61b9a11c3ad7672ec5f36605)), closes [#4869](https://github.com/floci-io/floci/issues/4869)
* **ecr:** return a proxyEndpoint for the request's region ([#4277](https://github.com/floci-io/floci/issues/4277)) ([4de043c](https://github.com/floci-io/floci/commit/4de043cf88565a90d7cc11d8324a765a69bee75b)), closes [#4264](https://github.com/floci-io/floci/issues/4264)
* **ecr:** serve the registry data plane over TLS ([#4040](https://github.com/floci-io/floci/issues/4040)) ([7777a97](https://github.com/floci-io/floci/commit/7777a97de9e46b98238a4eb580749c4dabede1d2))
* **ecr:** support image scanning configuration updates ([#4928](https://github.com/floci-io/floci/issues/4928)) ([543f016](https://github.com/floci-io/floci/commit/543f01618f4070bde51d45a77464c70bb75516dd))
* **ecs:** a service reaches steady state, and a finished deployment stays finished ([#4694](https://github.com/floci-io/floci/issues/4694)) ([c6b8a70](https://github.com/floci-io/floci/commit/c6b8a70ea8dd125913d77eb1839b2daf02717bdb))
* **ecs:** apply volumesFrom to task containers ([#3811](https://github.com/floci-io/floci/issues/3811)) ([de54409](https://github.com/floci-io/floci/commit/de54409fc62885f50630626795f049c493e68aaf))
* **ecs:** complete failed service deployment handling ([#4874](https://github.com/floci-io/floci/issues/4874)) ([1d85e6b](https://github.com/floci-io/floci/commit/1d85e6bf6e196b829d286cc35bde82f686414219))
* **ecs:** delete a service's deployment records with the service ([#4757](https://github.com/floci-io/floci/issues/4757)) ([bd0f468](https://github.com/floci-io/floci/commit/bd0f468d3eaebff46a82c0d2a63f7811b71f42ed))
* **ecs:** end a deployment the circuit breaker detects as failed ([#4767](https://github.com/floci-io/floci/issues/4767)) ([4716ac9](https://github.com/floci-io/floci/commit/4716ac999261ec72290ce4a8bb69dd70494045e5))
* **ecs:** keep task definitions and their revisions per region ([#5078](https://github.com/floci-io/floci/issues/5078)) ([e22e24a](https://github.com/floci-io/floci/commit/e22e24a8105c12c7688c3454ed4b61ff9788f758))
* **ecs:** pull task images at launch so a moved tag reaches the next task ([#4583](https://github.com/floci-io/floci/issues/4583)) ([d73e33f](https://github.com/floci-io/floci/commit/d73e33fe4bf0f5d8ce9195f0ab463e011fb523de))
* **ecs:** reconcile persisted services at boot ([#4501](https://github.com/floci-io/floci/issues/4501)) ([52225e2](https://github.com/floci-io/floci/commit/52225e2053f60f94377ea5a138955d1145bd12cb))
* **ecs:** register reachable task addresses in Cloud Map and bound synthesised ENI addresses ([#4509](https://github.com/floci-io/floci/issues/4509)) ([014156a](https://github.com/floci-io/floci/commit/014156a546daf3620dac9ee99b08413d6ba48528))
* **ecs:** release stale task containers and registrations, and evict ones that would misroute a reused address ([#4513](https://github.com/floci-io/floci/issues/4513)) ([451a30f](https://github.com/floci-io/floci/commit/451a30f98e9bcfbb018e2de1e870fb7119b2bd50))
* **ecs:** report serviceConnectConfiguration on the service's deployment ([#3662](https://github.com/floci-io/floci/issues/3662)) ([7da4ee0](https://github.com/floci-io/floci/commit/7da4ee0b6b1ad9d5eb2bc9f1bb4422fb5f733cde))
* **ecs:** retry teardown of redeployed task containers ([#4280](https://github.com/floci-io/floci/issues/4280)) ([76cc27f](https://github.com/floci-io/floci/commit/76cc27f2f1a9f230ac6341085c5dccc637c704d1))
* **ecs:** roll a DAEMON service's tasks when its task definition changes ([#4766](https://github.com/floci-io/floci/issues/4766)) ([c43269e](https://github.com/floci-io/floci/commit/c43269e0adad6d62517559930d88571186255ab0)), closes [#4744](https://github.com/floci-io/floci/issues/4744)
* **ecs:** run ECS Exec sessions as root like the real agent ([#5074](https://github.com/floci-io/floci/issues/5074)) ([30be71c](https://github.com/floci-io/floci/commit/30be71c56ee69e17c92802458e5178ab716d2d5a)), closes [#4850](https://github.com/floci-io/floci/issues/4850)
* **ecs:** send container logs to the awslogs group and stream from the task definition ([#4808](https://github.com/floci-io/floci/issues/4808)) ([bc2592e](https://github.com/floci-io/floci/commit/bc2592e300e4c9ee91f244adb4e6a038530d4486))
* **ecs:** send container logs to the task's account ([#4833](https://github.com/floci-io/floci/issues/4833)) ([955264c](https://github.com/floci-io/floci/commit/955264cf5d1a5c2fb5febf65126bf7d9e0c1776d))
* **ecs:** use shared Docker Hub image in leftover test ([#4645](https://github.com/floci-io/floci/issues/4645)) ([8219929](https://github.com/floci-io/floci/commit/8219929344dcfcfa6237bf8500aee76cd5ceb58c))
* **eks:** accept IAM authentication tokens for the authenticator's token lifetime ([#4186](https://github.com/floci-io/floci/issues/4186)) ([7eafd2f](https://github.com/floci-io/floci/commit/7eafd2f7067eb14267f073d7dff25e5d972c72a1))
* **eks:** claim the cluster user data slot atomically ([#4190](https://github.com/floci-io/floci/issues/4190)) ([dc70f60](https://github.com/floci-io/floci/commit/dc70f60a6618cf7b3e590bebb5a9dc2fafcd63e5))
* **eks:** fail the delete when Docker cannot remove the cluster container ([#4960](https://github.com/floci-io/floci/issues/4960)) ([d5fd4d5](https://github.com/floci-io/floci/commit/d5fd4d52f181063ab9a44e78eb4928532e1a72c8))
* **eks:** isolate capacity backups from live clusters ([#4663](https://github.com/floci-io/floci/issues/4663)) ([ef08877](https://github.com/floci-io/floci/commit/ef0887783743c7ada06d8c713c5292fff328d934))
* **eks:** persist explicit version flag across restarts ([#4101](https://github.com/floci-io/floci/issues/4101)) ([b4f4b38](https://github.com/floci-io/floci/commit/b4f4b386da1996bd4b267180096a59a45e512b72))
* **eks:** populate clusterSecurityGroupId on cluster responses ([#3924](https://github.com/floci-io/floci/issues/3924)) ([51467db](https://github.com/floci-io/floci/commit/51467dbc23cc21330c03f114bfa7836121ba8e89))
* **eks:** preserve worker webhook scope in the URL path ([#3849](https://github.com/floci-io/floci/issues/3849)) ([fdec637](https://github.com/floci-io/floci/commit/fdec637c27c50290c87fb2317ae5d4968cab24f1))
* **eks:** release the API server port when a cluster is deleted or fails to start ([#4937](https://github.com/floci-io/floci/issues/4937)) ([72788df](https://github.com/floci-io/floci/commit/72788dfdb84f63c8a6a5e98635cc4c1e42ea0a77))
* **eks:** remove the k3s container on DeleteCluster when shutdown retention is on ([#4241](https://github.com/floci-io/floci/issues/4241)) ([6bf1695](https://github.com/floci-io/floci/commit/6bf1695f2ad5cd8359a55f0331f42d6c5113e6b4)), closes [#4239](https://github.com/floci-io/floci/issues/4239)
* **eks:** resolve the token webhook's access keys from any account ([#5003](https://github.com/floci-io/floci/issues/5003)) ([7822b2c](https://github.com/floci-io/floci/commit/7822b2c396b1e7df4958d46ff8e1aa0bce07bd14))
* **eks:** stop mirroring cluster audit logs to the Floci console ([#4589](https://github.com/floci-io/floci/issues/4589)) ([b2d668d](https://github.com/floci-io/floci/commit/b2d668d9ae48e9a87bde4db9c61e7fffbe3b38b3))
* **eks:** store and return encryptionConfig and logging on clusters ([#4007](https://github.com/floci-io/floci/issues/4007)) ([aede31c](https://github.com/floci-io/floci/commit/aede31c99c10b666a53516c505c081d44cf6c23b))
* **eks:** store and return node group launchTemplate, taints, remoteAccess, nodeRepairConfig and warmPoolConfig ([#4102](https://github.com/floci-io/floci/issues/4102)) ([cebdc6f](https://github.com/floci-io/floci/commit/cebdc6f2bb9e0533c7b81d25c6a5f1c77f985070))
* **eks:** validate the node group launchTemplate against EC2 on CreateNodegroup ([#4148](https://github.com/floci-io/floci/issues/4148)) ([90d8c35](https://github.com/floci-io/floci/commit/90d8c355d9fa582ee6b3802f2228aa6a4f1b4499))
* **elasticache:** create single-node redis clusters and close provisioning races ([#3634](https://github.com/floci-io/floci/issues/3634)) ([684239b](https://github.com/floci-io/floci/commit/684239b0ef71b0038ed20b79e304e3acb2b986f8))
* **elasticache:** honor top-level user passwords and let ModifyUser change auth and access string ([#4431](https://github.com/floci-io/floci/issues/4431)) ([4001556](https://github.com/floci-io/floci/commit/4001556a31724698da29bff99c744ce737505fc6))
* **elasticache:** re-provision caches on restart instead of reporting a dead endpoint as available ([#4094](https://github.com/floci-io/floci/issues/4094)) ([14d13ee](https://github.com/floci-io/floci/commit/14d13ee798b86a7fc29e69f4e4da0d8f882ff0ad))
* **elasticache:** report a ConfigurationEndpoint only for cluster-mode-enabled replication groups ([#4469](https://github.com/floci-io/floci/issues/4469)) ([5af1d40](https://github.com/floci-io/floci/commit/5af1d4048ef2483ff0c92a6250049edfe79d8653))
* **elasticache:** report a memcached cluster's node count, type, ARN and nodes ([#5000](https://github.com/floci-io/floci/issues/5000)) ([7a1f9dd](https://github.com/floci-io/floci/commit/7a1f9dd8265a1…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working cloudformation AWS CloudFormation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] CloudFormation ignores stack tags supplied to updates

2 participants