github floci-io/floci 2.4.0

3 hours ago

2.4.0 (2026-10-31)

Features

  • apigatewayv2: route VPC link integrations to Cloud Map service instances (#6753) (4fffb5a)
  • autoscaling: describe suspended process reasons (#5941) (7ce4b6b)
  • autoscaling: implement DescribeTags (#5750) (05153b3)
  • autoscaling: support EnterStandby and ExitStandby (#6955) (ead5d4a)
  • backup: add CreateLogicallyAirGappedBackupVault (#6015) (65e35ad), closes #4986
  • cloudformation: apply AssociatedRoles on RDS clusters and instances (#5656) (ad1b225), closes #5638
  • cloudformation: expose RegionalEndpoints of a web function endpoint to Fn::GetAtt (#6907) (c4ae11c)
  • cloudformation: provision AWS::EC2::PrefixList (#6481) (6acd906), closes aws/aws-cdk#35360
  • cloudformation: provision AWS::WAFv2::IPSet (#5950) (a57c209)
  • cloudformation: provision Redshift event subscriptions (#6664) (d3c4732)
  • cloudformation: provision SES email identities (#4812) (7f8383d)
  • cloudformation: provision SES receipt rules (#7040) (f48c3a9)
  • cloudformation: support AWS::Route53::RecordSetGroup (#6676) (f3f8b42)
  • cloudformation: support four AWS::AppConfig resource types (#6791) (fee688b)
  • cloudformation: support Redshift snapshot restores (#6395) (4c70d6b)
  • cloudformation: support S3 Vectors resources (#5853) (5774e7d)
  • cloudformation: support SAM's optional AutoPublishAlias version properties (#5823) (f22c2a4)
  • cloudformation: support WAFv2 logging configuration (#6194) (a8e49fb)
  • cloudfront: model AWS managed cache policies (#6698) (c538fb5), closes #6691
  • cloudfront: serve execute-api custom origins of this Floci in-process (#6754) (5487888)
  • cloudfront: sign requests to a Lambda Web Function origin under OAC (#6037) (8bff1ba)
  • cloudwatch: record alarm history and serve DescribeAlarmHistory (#6670) (989f714)
  • cloudwatch: support composite alarm lifecycle (#6408) (922e36a)
  • codeartifact: add CopyPackageVersions for the generic format (#5854) (faf344a)
  • codeartifact: add DeletePackageVersions for every format (#6559) (5c7c843)
  • codeartifact: add ListPackages for every format (#6622) (454d7b6), closes RepositorySidecarManager#listPackages
  • codeartifact: add ListPackageVersionAssets for every format (#5962) (6027872)
  • codeartifact: add ListPackageVersions for every format (#6204) (9e66185)
  • codeartifact: add NuGet/BaGetter sidecar for the nuget format (#5790) (3db18d5)
  • codeartifact: add UpdatePackageVersionsStatus and DisposePackageVersions (#6435) (3053b35)
  • codeartifact: bridge CopyPackageVersions to every sidecar format (#5888) (5dcddc9)
  • codeartifact: bridge DescribePackageVersion to Maven/npm/pypi sidecars (#5715) (1ba977a)
  • codeartifact: resolve Maven version ranges and dynamic versions through an external connection (#6961) (00ab75b)
  • codeartifact: retain Maven packages from a public external connection (#6889) (a03e88b)
  • cognito: hand email codes to the CustomEmailSender trigger (#6031) (47f570a)
  • cognito: support Google identity provider federation (#5868) (e38dba5)
  • cognito: support SMS and email MFA challenges (#5104) (d0e0af5), closes #5182
  • core: have the JVMs in Lambda, ECS, Batch and Flink containers trust Floci's CA (#6945) (743bede)
  • core: keep a host native binary's state in the user data directory (#5769) (0a5809a), closes #5767
  • core: make the image pull timeout configurable (#6521) (b66ee9e)
  • core: make the init hook directory configurable (#5801) (050f93e), closes #5767
  • core: namespace a host native binary's child containers by port (#5800) (cb378af), closes #5767
  • core: relay container callbacks to a loopback Floci on a Linux host (#5774) (a2d02ef), closes #5767
  • core: report at startup which services an unreachable Docker affects (#5773) (4c32fae), closes #5767
  • core: translate LocalStack variables in Java instead of the entrypoint (#5851) (9dcb1b6), closes #5767
  • deliver Redshift audit logs to CloudWatch Logs (#6432) (b15bc70)
  • dsql: add Aurora DSQL's control plane and AWS::DSQL::Cluster (#6048) (95bf6df), closes #6014
  • dsql: map IAM roles to database roles with AWS IAM GRANT (#6143) (6e5b3c6)
  • dsql: serve each cluster's database on the DSQL endpoint (#6102) (f2b62fb)
  • dsql: speak DSQL's dialect and keep its transaction limits (#6185) (42fd858), closes #6102
  • dynamodb: add on-demand backups (#6052) (9b59b89)
  • dynamodb: add point-in-time recovery restores (#6110) (1dce18e)
  • dynamodb: export tables in the ION format (#6429) (ed21e67)
  • dynamodb: export the changes of a period as an incremental export (#6480) (3dc5d35)
  • dynamodb: journal per-table items one record per item in wal mode (#6310) (4c49f23), closes #6293
  • dynamodb: opt-in per-table item files, split into shards (#6303) (7635345), closes #6293
  • dynamodb: read PartiQL's FROM-first form of UPDATE (#6648) (d42b83c)
  • dynamodb: restore backups across regions (#6349) (05d4786)
  • dynamodb: support IS with a PartiQL type name (#6930) (e37a415)
  • dynamodb: write export files and descriptions as AWS does (#6400) (023cb83)
  • ec2: associate instances with capacity reservations (#6336) (d05399f)
  • ec2: configure additional AWS-managed prefix lists (#6401) (3073807)
  • ec2: list SUSE and Red Hat family images in the image catalog (#6193) (8d73535)
  • ec2: page and filter DescribeTags as AWS does (#6109) (e5591dd)
  • ec2: support DHCP options lifecycle (#6428) (4a95c1b)
  • ec2: support egress-only internet gateways (#5822) (708dc32)
  • ecr: PutImage and the layer API (#5784) (c6551a4), closes #5735
  • ecr: registry policy, replication and scanning configuration (#5817) (1f96bf4), closes #5803
  • ecr: repository creation templates (#5955) (d10db3c), closes #5804
  • ecr: support account settings (#6855) (e24bc36)
  • ecr: support pull time update exclusions (#6856) (8270cc7)
  • ecs: publish Container Insights task counts (#6054) (1b15299)
  • ecs: stop service tasks off the reconciler thread so slow graceful stops don't serialize unrelated services (#6619) (#6972) (d3543ac)
  • eks: advertise a configurable endpoint host (#6331) (1476b0e)
  • eks: associate access policies with access entries (#6427) (7453011)
  • eks: vendor AWS's add-on version catalog for every supported Kubernetes version (#6735) (07f2d62)
  • elbv2: terminate HTTPS with ACM and IAM certificates (#5959) (0da0c80)
  • emr-serverless: retry a failed job run as its retry policy allows (#6894) (66a5c05)
  • emr-serverless: run a job run in its application's custom image (#6975) (931b2d2)
  • emr-serverless: run Spark job runs in a container (#6469) (edbcac3), closes #6046
  • emr-serverless: send Spark driver output to CloudWatch Logs (#6703) (5c9eb3e)
  • emr-serverless: start, get, list and cancel job runs (#6202) (1f1e5db), closes #6046
  • emr-serverless: tag job runs and report their attempts (#6297) (63d577a), closes #6202 #6046
  • emr,emr-serverless: write Spark driver logs to S3 (#6620) (0a47ddd)
  • emr: add an optional timed lifecycle for clusters and steps (#6441) (55b060b), closes #6046
  • emr: have the JVMs in EMR containers trust Floci's CA (#6926) (c9bc1e7)
  • emr: ListReleaseLabels, DescribeReleaseLabel and ListSupportedInstanceTypes (#5748) (7dc514b), closes #5734
  • emr: publish aws.emr cluster and step events to EventBridge (#6403) (1174922), closes #6046
  • emr: run a cluster's bootstrap actions in the docker runner mode (#6878) (591d5f5), closes hashicorp/terraform-provider-aws#4378
  • emr: run command-runner.jar commands and script-runner.jar scripts (#6747) (897667f)
  • emr: run Spark steps in containers in a docker runner mode (#6578) (4b33002)
  • firehose: accept a Redshift destination on create, update and describe (#6004) (4842558)
  • firehose: deliver staged Redshift batches with single-attempt COPY (#6006) (fd37e10)
  • firehose: retry failed Redshift COPY loads every five minutes (#6111) (99ef369)
  • glue: data quality rulesets (#7035) (6db78b8), closes #6830
  • guardduty: support publishing destinations (#6016) (fb39096), closes #4983
  • iam: answer GetHumanReadableSummary for a delegation request (#6298) (27338a6)
  • iam: authorize the account password policy's self-service flag (#5717) (b58d181), closes #5639
  • iam: check lambda:PassNetworkConnector from a table generated from the Service Reference (#6699) (b0cd704)
  • iam: dispatch GetMFADevice, AcquireRole and GetRoleTemplateVersion (#6453) (32663a2), closes #6402
  • iam: dispatch UpdateRoleDescription, the description half of UpdateRole (#6029) (94b09ff)
  • iam: generate, claim and answer delegation requests (#5797) (66fce77), closes #5879
  • iam: publish delegation request notifications to the partner's topic (#6199) (8427c0b)
  • iam: read a Query list's constraints from the model (#6625) (0ec28ae), closes #6478 #6402
  • iam: read every modelled operation's constraints from the model (#6965) (98a3d2a)
  • iam: read the managed-policy family's constraints from the model (#6580) (bb48983), closes #6402 #6402 #6402
  • iam: release and exchange the delegation token (#5914) (494a672), closes #5879
  • iot: add RegisterCertificateWithoutCA and the V2 principal lists (#5772) (e3e06a1)
  • iot: publish connection lifecycle events (#5277) (87aa6f3), closes #5275
  • iot: route shadow events through topic rules (#5260) (534571b), closes floci-io/floci#5256
  • iot: search fleet things by connectivity status (#6025) (34d904f), closes #4912
  • kms: add GenerateDataKeyPair and GenerateDataKeyPairWithoutPlaintext (#6359) (5116b3c)
  • lambda: add init-timeout-seconds so a cold runtime gets its own init budget (#6442) (4d35617)
  • lambda: add provisioned concurrency configuration APIs (#6317) (6bc598f)
  • lambda: initialize provisioned concurrency environments (#6320) (238d16e)
  • lambda: list provisioned concurrency configurations (#6758) (b6d9e4c)
  • lambda: make reactive S3 sync toggleable and optionally async (#6548) (89be5c1)
  • lambda: retarget provisioned alias allocations (#6335) (7c8daff)
  • lambda: version network connectors as AWS does (#6595) (3438a00)
  • lambdaweb: accept code up to 512 MiB and refuse more as AWS does (#6218) (2720f84)
  • lambdaweb: check the code bucket versioning and policy as AWS does (#6479) (cd2dac7)
  • lambdaweb: check the egress network connector as AWS does (#6647) (ec13eda)
  • lambdaweb: check the execution role as AWS does (#6347) (7e6439c)
  • lambdaweb: CloudFormation types for Lambda Web Functions (#5722) (0492fc9), closes #5699
  • lambdaweb: delete the oldest unused revisions past 50 as AWS does (#6518) (29eae43)
  • lambdaweb: enforce IamAuth on Web Function endpoints (#5855) (5eb4eec)
  • lambdaweb: fail a revision whose code is not a zip (#6141) (62972c9)
  • lambdaweb: keep the code a revision was created from (#6113) (bf82846)
  • lambdaweb: Lambda Web Functions control plane (#5706) (6f78083), closes #5699
  • lambdaweb: publish the Web Function metrics (#5976) (6e5b156)
  • lambdaweb: refuse a long request head as AWS does (#6083) (5aaa372)
  • lambdaweb: reject resource policies whose principal does not exist (#6769) (701b04c)
  • lambdaweb: scale environments per endpoint and apply maxEnvironments and rateLimit (#5785) (832f100), closes #5699
  • lambdaweb: send what a Web Function writes to its log groups as AWS does (#5919) (8067ecf)
  • lambdaweb: serve each region of a PerRegion endpoint in that region (#6423) (72bbc80)
  • lambdaweb: serve endpoint domains from a Node.js environment per revision (#5760) (6e01216), closes #5699
  • lambdaweb: serve the Lambda metadata endpoint (#6391) (54b3db7)
  • lambdaweb: serve the MultiRegion global domain in the default region (#6460) (acb9fd2)
  • lambdaweb: set the WebFunctionAuthType condition keys on endpoint routes (#6893) (385ffcf)
  • lambdaweb: verify SigV4a on IamAuth endpoints (#6956) (433989b)
  • lambdaweb: write the platform events of Web Function environments (#5936) (301ac79)
  • msk: apply SCRAM credentials in redpanda cluster (#6353) (6914401)
  • msk: scheduled reconcile for SCRAM secret changes (#6384) (bc18cbb)
  • msk: support SCRAM secret associations (#6221) (756e722), closes #6229
  • ram: support GetResourceShareAssociations (#6558) (6b21aeb)
  • rds-data: opt into retryable database resume errors (#5703) (fb6adc0)
  • rds: add the snapshot export task API (#5787) (772ec8d)
  • rds: automated backups, kept after a delete and restored from (#6996) (e29b1d8), closes #6828
  • rds: DB proxy endpoints (#6062) (1108bc7), closes #5805
  • rds: DescribeCertificates, ModifyCertificates and an instance's CA certificate (#6106) (ec21cf3), closes #5806
  • rds: DescribeDBLogFiles and DownloadDBLogFilePortion (#5741) (4353e42), closes #5733
  • rds: EnableHttpEndpoint, DisableHttpEndpoint and HttpEndpointEnabled (#5736) (9cd9002), closes #5732
  • redshift-data: implement ListSessions (#6892) (da8e227)
  • redshift-data: support client token idempotency (#6343) (38c641e)
  • redshift-data: support session reuse (#6396) (3488747)
  • redshift-serverless: accept customDomainName in GetCredentials (#5856) (1cb8b0f)
  • redshift-serverless: add custom domain association actions (#5766) (7cab804)
  • redshift-serverless: add endpoint access actions (#5742) (c67a5af)
  • redshift-serverless: add release track, managed workgroup and reservation reads (#5691) (d3fce14)
  • redshift-serverless: add resource policy actions for snapshots (#5730) (a68e6bc)
  • redshift-serverless: add scheduled action actions (#5852) (fa2a49e)
  • redshift-serverless: add snapshot copy configuration actions (#5798) (2a012cf)
  • redshift-serverless: copy snapshots into the configured destination region (#7024) (9b69b3d)
  • redshift-serverless: execute scheduled actions on cron and at schedules (#6851) (e820414)
  • redshift-serverless: expire snapshots after their retention period (#6966) (80edd85)
  • redshift-serverless: manage namespace admin credentials (#6491) (0a13e42)
  • redshift-serverless: validate requests against the AWS model constraints (#5641) (77384dc)
  • redshift: add event history and DescribeEvents (#6663) (e9e2b38)
  • redshift: add event subscriptions with SNS delivery (#6705) (3d30bbc)
  • redshift: add ResetClusterParameterGroup (#6230) (d2f2625)
  • redshift: complete Glue external table lifecycle (#5866) (c33823b)
  • redshift: create final snapshots before deleting clusters (#6346) (1b8548a)
  • redshift: execute automated snapshot schedules (#6536) (f184cce)
  • redshift: publish CloudWatch cluster metrics (#6740) (5bd4bd4)
  • redshift: rotate managed master passwords (#6505) (ce0933b)
  • redshift: send zero-ETL integration events to EventBridge (#6822) (c0d1767)
  • redshift: support default IAM roles for COPY and UNLOAD (#6304) (7e51e69)
  • redshift: support pausing and resuming provisioned clusters (#6911) (1a87139)
  • resourcegroups: support EC2 capacity reservation pools (#6011) (be2cb67)
  • route53resolver: add TagResource, UntagResource and ListTagsForResource (#6035) (2f6f3a8)
  • route53resolver: implement ListResolverEndpointIpAddresses (#5731) (a37c275)
  • s3: apply lifecycle expiration rules (#5158) (cbd2f61), closes #5137
  • s3: verify SigV4A (AWS4-ECDSA-P256-SHA256) request signatures (#6092) (6355474), closes #5210
  • secretsmanager: publish secret write events through CloudTrail (#6623) (57c4a20)
  • securityhub: standards subscriptions (#6979) (0a3efd6)
  • servicequotas: configure applied EC2 vCPU quota (#5926) (1a80884)
  • ses: add SES v2 GetEmailAddressInsights (#6573) (7f5f1b5)
  • ses: add SES v2 ListRecommendations (#6817) (4dbe373)
  • ses: add the v2 reputation entity operations (#6407) (5a9f9cb)
  • ses: validate v2 tracking configuration overrides (#5871) (043daa5)
  • sfn: encode HTTP Task object bodies as form data (#6010) (f8ab55f)
  • sqs: opt-in AWS QueueUrl form via endpoint strategy (#5517) (691499d)
  • sqs: publish AWS/SQS queue metrics to CloudWatch (#6280) (ba35302), closes #6275
  • ssm: add PutResourcePolicy, GetResourcePolicies and DeleteResourcePolicy for parameters (#6833) (045c65e)
  • ssm: expose ECS AL2023 AMI subparameters (#6591) (220d814)
  • ssm: expose ECS optimized AL2023 AMI parameters (#6583) (51ce672)
  • ssm: match parameter path label filters (#6560) (bcae24f)
  • ssm: publish parameter change events (#5262) (8931783)
  • stepfunctions: add the elasticmapreduce optimized integrations (#6261) (94c4572), closes raster-foundry/raster-foundry#352 hashicorp/terraform-provider-aws#1355 hashicorp/terraform-provider-aws#9400 hashicorp/terraform-provider-aws#31375 #6046
  • stepfunctions: add the emr-serverless optimized integrations (#6386) (15de90c), closes #6046
  • stepfunctions: emit execution status change events to EventBridge (#5567) (fc5e1ae)
  • stepfunctions: invoke regional API Gateway tasks with IAM (#6043) (a899318)
  • sts: dispatch AssumeRoot and authorize centralized root access (#6251) (c094ce3)
  • sts: dispatch GetAccessKeyInfo, the account an access key id belongs to (#6121) (4eea017)
  • sts: read a Query request's declared constraints from the model (#6891) (c9c1c09), closes #6402 #6580 #6625
  • sts: read every modelled operation's constraints from the model (#6925) (3426965), closes #6811
  • sts: vend a signed web identity token for the calling identity (#6517) (4c55ec6), closes #6402 #6478
  • support managed credentials in Redshift restore (#6515) (2a5f734)
  • support parameters in Redshift Data API batches (#6475) (36e244f)
  • ui: serve the Console Contract v2 manifest and pass its URL to the console (#6711) (258994c)

Performance Improvements

  • codeartifact: parallelize per-version metadata fetches in ListPackageVersions (#6262) (581cd62)
  • docker: decode completed log frames with JDK fast paths (#6525) (57889bb)
  • dynamodb: query only the requested partition (#6668) (86d9115), closes #6667
  • dynamodb: retain the live item map in memory mode instead of copying the table (#6915) (5f89a70), closes #1292
  • dynamodb: stop copying the change history on each write to a table with point-in-time recovery (#6824) (8ad8901)
  • keep long polls, Invoke and function URL calls off the shared workers (#6576) (4ab43ee)
  • lambda: avoid code-copy helper shutdown delay (#5646) (f08a443)
  • lambda: stream S3 code to disk instead of holding it in memory (#6126) (83647aa)
  • logs: evict past the ceiling and retention without scanning the store (#5167) (c229311)
  • stepfunctions: wake nested waits on execution status changes (#6513) (fe928d6)

Bug Fixes

  • account: implement DeleteAlternateContact (#5560) (9174147)
  • acm: reject mismatched certificate private keys (#5987) (84dfb77)
  • allow Cognito custom authentication without CreateAuthChallenge (#6410) (6256805), closes #6345
  • apigateway: answer 401 when a Cognito authorizer refuses the scopes (#6636) (e9c3766)
  • apigateway: answer an HTTP API proxy result without a Content-Type as text/plain (#6201) (34f592f)
  • apigateway: authorize management calls against the path ARN they name (#6825) (981b885)
  • apigateway: default a REST custom domain to EDGE when no endpoint type is given (#6885) (0436644)
  • apigateway: forward the request body on DELETE (#6868) (b3d9f2f)
  • apigateway: map Cognito list claims in REST integrations (#6348) (2cda011)
  • apigateway: map Lambda context in HTTP proxy requests (#6818) (9eabfaf)
  • apigateway: patch a usage plan's throttle, quota and stage throttles (#6418) (74cab79)
  • apigateway: preserve API ownership across integration invocations (#6001) (4b3681e)
  • apigateway: refuse a long-term access key sent with a session token (#5875) (4f4db89), closes #5858
  • apigateway: retain V2 integration and authorizer credentials (#6795) (02852f0)
  • apigateway: return a usage plan's API stages, throttle and quota (#6360) (bab7af3)
  • apigateway: route greedy resources below a path parameter (#6690) (7ca109b), closes #6686
  • apigateway: send x-amzn-ErrorType on REST gateway responses (#6687) (3f294c3)
  • apigateway: support integration connection patches (#6645) (4d0dfe9)
  • apigateway: tag REST API VPC links (#6165) (110f58a)
  • apigateway: take the usage plan lock on delete (#6546) (3389621)
  • apigatewayv2: answer an HTTP API's Lambda proxy body it cannot read with 500 (#6012) (28799ed)
  • apigatewayv2: answer the Lambda proxy results an HTTP API cannot read with 500 (#5985) (49d2d74), closes #5153 #5935
  • apigatewayv2: apply an HTTP API's CORS configuration to its actual responses (#5935) (dd832b4)
  • apigatewayv2: include authorizer identity sources (#6694) (825564a)
  • apigatewayv2: select the most specific HTTP API route (#6999) (4aaa5cc)
  • apigatewayv2: trust Floci's own CA when fetching a JWT issuer's keys (#5933) (a90482f)
  • apigateway: validate imported models in their deployment context (#5645) (5a72b4f)
  • appconfig: keep environment monitors and report deployment sources (#6665) (b280a77)
  • appconfig: list deployments with the settings they started with (#6759) (c2482e2)
  • appconfig: reject ambiguous configuration names (#6783) (5c20d54)
  • appconfig: return no content for cached configurations (#6777) (f4ace9e)
  • appconfig: serialize tag writes with deletes and write copies (#6912) (23d815f)
  • application-autoscaling: paginate describe operations (#6398) (2a1d3f3)
  • appsync: answer a failed AWS_IAM request with AppSync's errors (#5901) (0dd4434)
  • appsync: refuse a long-term access key sent with a session token (#5880) (ffb3d84)
  • aps: honor workspace idempotency tokens (#6552) (2bab3b5)
  • athena: paginate data catalog summaries (#6679) (13289b0)
  • athena: paginate ListWorkGroups (#6519) (57257e1)
  • athena: paginate query execution listings (#6816) (119b7e9)
  • autoscaling: apply group capacity reservation preferences (#6378) (ceaad92)
  • autoscaling: honor launch configuration metadata options (#5964) (e75b158), closes #5671
  • autoscaling: match DescribeTags input validation (#5894) (4e47507)
  • autoscaling: name the group and capitalize health in DescribeAutoScalingInstances (#6940) (b73f643)
  • autoscaling: skip groups deleted mid-iteration and lock instance updates (#5751) (f045d7d)
  • autoscaling: tag member instances with aws:autoscaling:groupName (#6471) (c517e4e)
  • backup: paginate backup plan listings (#6714) (ecb39dd)
  • backup: paginate ListBackupVaults (#6541) (13d0452)
  • backup: persist and manage backup plan tags (#6796) (a636de2)
  • backup: publish BACKUP_JOB_COMPLETED to the vault's SNS topic (#5623) (c236414)
  • backup: resume unfinished jobs after restart (#5721) (6d96849)
  • backup: return HTTP 400 for ResourceNotFoundException (#5794) (a7df271)
  • batch: paginate multi-node job listings (#6512) (ddb94d6)
  • bcm-data-exports: paginate exports and executions (#6604) (9359229)
  • bedrock-agentcore: check tag ARNs against the request account (#6802) (ad2089e), closes #6008
  • bedrock-agentcore: delete a memory's events when the memory is deleted (#6554) (a79cc4d)
  • bedrock-runtime: return errors when upstream error bodies stall (#5527) (4204ee2)
  • bedrock: list guardrails in the tagging api and route its writes (#6646) (c4ad788)
  • bedrock: resolve the KMS key before updating a guardrail (#5710) (ac83817), closes #2501 #5654
  • bedrock: validate guardrail ARNs for tag actions (#6342) (589a6a9)
  • build: build the amd64 native binary on Ubuntu 24.04 so it runs on x86-64-v2 CPUs (#6644) (84442d8)
  • build: keep build-time Jackson cache locks out of the native image heap (#5065) (a522c5a), closes #5062
  • build: let the Windows native build keep its JNI libraries (#5843) (a70b9b8), closes #5767
  • ci: retain Docker fixture sockets and bound result uploads (#5877) (720f95b)
  • cloudformation: append AutoPublishCodeSha256 to a SAM function's Description (#6364) (9c6d6a0)
  • cloudformation: carry EC2 MetadataOptions from templates and instances (#6050) (d09b321)
  • cloudformation: check S3 ownership rules against the resource schema (#5834) (9099cec), closes #5712 #5712
  • cloudformation: clean up, roll back and delete AWS::EC2::VPC like the other EC2 types (#5503) (fa682b2)
  • cloudformation: copy a SAM function's VersionDescription to its version (#6770) (a6cf29e)
  • cloudformation: create inline SNS subscriptions (#6443) (7d4caf2)
  • cloudformation: delete dependents first on update rollback (#5943) (d273d4f)
  • cloudformation: delete the HTTP API whose Body import fails on create (#6982) (ec3bd31)
  • cloudformation: delete the REST API whose Body import fails on create (#6472) (93f1904)
  • cloudformation: drop undeclared OpenAPI authorizer schemes (#6632) (f32db4f)
  • cloudformation: enforce SAM REST authorization defaults (#6021) (0517a7a)
  • cloudformation: evaluate conditions with intrinsics, require parameter values (#5737) (ad8fba7)
  • cloudformation: forward Firehose processing and logging configuration (#6277) (deeb3b3)
  • cloudformation: keep a rule target's dead-letter queue, retry policy, role and ECS parameters (#5958) (d60c973), closes #5923
  • cloudformation: keep Route 53 routing policies and provision health checks (#6191) (5beb8d4)
  • cloudformation: move a kept load balancer onto the template's subnets (#5881) (94288da)
  • cloudformation: order leftover deletes by what their attributes reference (#5998) (b955aa0)
  • cloudformation: pass a function's LoggingConfig to Lambda (#5902) (63af5cd)
  • cloudformation: pass IntegrationMethod and RequestParameters for AWS::ApiGatewayV2::Integration (#6415) (d5fc643), closes #6135
  • cloudformation: preserve nested dynamic reference opt-out (#6574) (b553202)
  • cloudformation: preserve numeric GetAtt attributes (#6564) (d903074)
  • cloudformation: provision a usage plan's throttle, quota and stage throttles (#6419) (e09c0b6)
  • cloudformation: publish content-hashed versions for SAM AutoPublishAlias (#5744) (3cb1643), closes #1987
  • cloudformation: read an ECS task definition's properties as the ECS handler does (#6018) (fcb4196)
  • cloudformation: read ECS awsvpc subnets and security groups as lists (#6180) (0934391)
  • cloudformation: read network ACL entry PortRange and RuleNumber with resolveOptionalInt (#6724) (0c44312)
  • cloudformation: refuse a Lambda function property that is not an object (#5912) (30d2bf0), closes #5902
  • cloudformation: refuse a list property that a parameter or an intrinsic makes a string (#5949) (1f4a468)
  • cloudformation: refuse a template body that does not parse (#6179) (a6433d5)
  • cloudformation: refuse a template that holds a null value (#6071) (5fa6762)
  • cloudformation: refuse an update that has nothing to change (#5849) (197ccb5)
  • cloudformation: refuse every Lambda property of the wrong type (#5923) (8db1597)
  • cloudformation: register an ECS task definition's containers with their LinuxParameters (#6027) (e38ec02), closes #6018
  • cloudformation: relocate SAM schemes without auth defaults (#6656) (0759759)
  • cloudformation: replace AWS::S3::Bucket when BucketName changes (#5762) (8298779), closes #5678
  • cloudformation: replace SAM OpenAPI security schemes (#6638) (9b36aa6)
  • cloudformation: report a failed resource in the stack's rollback reason the way AWS does (#5904) (c68cc76)
  • cloudformation: report and continue a failed REST API update rollback (#6568) (e1726e8)
  • cloudformation: resolve Fn::GetStackOutput as CloudFormation does (#5848) (e12b878)
  • cloudformation: resolve SAM AutoPublishAlias references (#7048) (5f327da)
  • cloudformation: restore SSM parameters on failed updates (#5752) (945f5d3)
  • cloudformation: roll back without a transient stack FAILED status (#5878) (115a919)
  • cloudformation: scope SAM REST auth defaults to each operation (#6358) (2705818)
  • cloudformation: start one deletion per stack and refuse change sets on a stack being deleted (#5835) (1f6261f)
  • cloudformation: treat an AWS::NoValue property as omitted before provisioning (#6726) (0d74eb5)
  • cloudformation: validate prefix list entries before update diffing (#6725) (d58ce5c)
  • cloudfront: carry origin connection settings through CloudFormation (#5992) (9a7c62b)
  • cloudfront: hold an ACM certificate in use while a distribution serves it (#6946) (de24406)
  • cloudfront: honor origin connection timeouts and attempts, answer 504 (#5802) (5306e0e)
  • cloudfront: honor the origin completion and keep-alive timeouts (#6198) (8d25cd9)
  • cloudfront: retain distribution tags by ARN (#6797) (582dba6)
  • cloudfront: return modeled UpdateFunction ETtag header (#6801) (7332c69)
  • cloudfront: return the decoded function code from GetFunction (#6798) (955a935), closes #6749
  • cloudfront: serve a Lambda Web Function endpoint origin from Floci itself (#6022) (7fb6497)
  • cloudfront: serve custom origins that name Floci itself in-process (#6951) (43a01e2)
  • cloudmap: create the Route 53 hosted zone behind a DNS namespace (#7042) (f41f794)
  • cloudmap: keep an empty HealthCheckCustomConfig and report FailureThreshold 1 (#6792) (db86fc7), closes #6751
  • cloudmap: paginate namespace service and operation lists (#6629) (a1ebc10)
  • cloudtrail: isolate account buffers and partition matching (#6689) (9303ec2)
  • cloudtrail: keep a trail's KMS key and CloudWatch Logs delivery (#6989) (5ad2f64)
  • cloudwatch: accept the CloudWatchVersion20130116 JSON target (#6586) (bc75edb)
  • cloudwatch: evaluate composite alarms with CloudWatch's reasons and refusals (#6987) (6acadc3)
  • cloudwatch: filter DescribeAlarms by state, action, children and parents (#6862) (7b9f747)
  • cloudwatch: match FilterLogEvents with the filter pattern syntax (#5903) (9647561)
  • cloudwatch: preserve metric alarm state on definition updates (#6464) (f49376f)
  • cloudwatch: publish SNS actions on alarm state transitions (#5918) (f5811c3)
  • cloudwatch: reject PutMetricData datums without a MetricName (#6072) (b8d87df)
  • cloudwatch: report StateTransitionedTimestamp and AWS's StateValue enum order (#6719) (64069f9)
  • cloudwatch: return empty CompositeAlarms and LogAlarms from DescribeAlarms (#6363) (42f5019), closes #6362
  • cloudwatch: store datums sent in PutMetricData EntityMetricData (#6070) (03f5730), closes #6066
  • cloudwatch: validate manual state reason lengths (#6470) (75d7923)
  • codeartifact: block Archived version downloads on native per-format routes (#6782) (74a313a), closes CodeArtifactService#requireContainerBackedVersionDownloadable
  • codeartifact: bracket the sidecar container id resolution race in listPackageVersions (#6388) (cc1ce89)
  • codeartifact: close two gaps left by #6435's status overrides (#6506) (413bb88)
  • codeartifact: normalize NuGet versions before synthesizing a revision (#5970) (7032840)
  • codeartifact: pypi can have more than one asset per version in ListPackageVersionAssets (#6259) (49ed87c), closes #5962
  • codeartifact: release the sidecar concurrency permit when a pypiserver container is torn down (#6337) (a815434), closes #6262
  • codeartifact: retry Verdaccio configuration uploads (#5982) (241806a)
  • codebuild: honor build list sort order (#6125) (d2ee9f4)
  • codebuild: honor project listing sort options (#6120) (03836d5)
  • codebuild: paginate ListBuilds and ListBuildsForProject (#6707) (fc5598c)
  • codebuild: paginate ListProjects responses (#6163) (cc08eab)
  • codebuild: paginate ListReportGroups responses (#6524) (28d934f)
  • codebuild: retry source archive uploads (#6060) (cbdeb0c)
  • codedeploy: honor ListApplications continuation tokens (#6678) (95960f8)
  • codepipeline: guard worker polling intervals (#6274) (f6d6746)
  • codepipeline: stop superseded workers at stage boundaries (#5723) (7412469)
  • cognito: fire the CustomMessage trigger for UpdateUserAttributes and GetUserAttributeVerificationCode (#6205) (2c54151)
  • cognito: forward SignUp ValidationData and ClientMetadata to the pre-signup trigger (#5825) (9705b25)
  • cognito: give an email sign-in code eight digits (#5873) (9ea977c)
  • cognito: keep attribute updates after sender failures (#6493) (da9f7e9)
  • cognito: keep the sign-in's auth_time across managed login sessions and refresh (#5157) (d1a2708)
  • cognito: match custom message trigger event fields (#6445) (381ad1f)
  • cognito: omit absent authentication message metadata (#6440) (c5ab54d)
  • cognito: omit absent clientMetadata in custom message events (#6195) (e38980b)
  • cognito: pass ClientMetadata to the CustomMessage trigger for ResendCode and ForgotPassword (#6108) (538a81d)
  • cognito: refuse a reused TOTP code for SOFTWARE_TOKEN_MFA (#6808) (0ee1d10), closes #6804
  • cognito: return USER_ID_FOR_SRP in the SOFTWARE_TOKEN_MFA challenge (#6086) (645c97c), closes #6074
  • cognito: run signup triggers outside user locks (#5783) (4776bfb)
  • cognito: validate email attributes before storing users (#5460) (3ad8c25)
  • cognito: verify admin contact attribute updates (#6474) (b90b671)
  • cognito: verify SRP proofs in custom authentication (#6794) (da517ac)
  • config: a started configuration recorder keeps recording across a restart (#6938) (a5254bd)
  • config: answer ResourceNotFoundException for tags on a missing resource (#6047) (88b0522)
  • config: drop a conformance pack's tags when the pack is deleted (#5779) (f7240b8)
  • config: scope recorder and rule timing state by account (#5719) (fdfc741)
  • config: store PutConfigRule tags and drop them on DeleteConfigRule (#6080) (0ebcf84)
  • core: bind the DB proxies and EC2 port forwards with a 4096 backlog (#6744) (1356cbb)
  • core: give launched containers the port Floci listens on (#5754) (8362d08)
  • core: keep JSON requests in their selected region (#5697) (1d1479f)
  • core: let a native host path follow a configured persistent path (#5777) (f897dfc)
  • core: name the real pagination parameter in invalid-token errors (#5776) (0264c1b), closes #5574
  • core: pass the presigned credential of a Query POST to its handler (#6073) (32b64e5)
  • core: read an ARN's resource after its fifth colon, not its last (#5939) (fc1488d)
  • core: reject colons in region names (#5705) (ae3ff34)
  • core: repeat a request ID a controller set in every request ID header (#6914) (d2a5a82)
  • core: report the build version when FLOCI_VERSION is unset (#5768) (db8c441), closes #5767
  • core: route a Query action by its service's botocore model (#5879) (30d8d3f)
  • core: treat a request no protocol claims as the call its route runs (#6200) (2f57441)
  • count Unicode code points in Smithy length validation (#6456) (452633f)
  • dms: accept explicit default subnet group on CreateReplicationInstance (#5820) (20b7a36)
  • dms: list the default replication subnet group (#5771) (23e1b3a)
  • docker: adopt a surviving container on the network it was created on (#5811) (dfeb05a)
  • docker: bound concurrent container teardown (#5860) (ae285fc)
  • docker: fail a port-publishing container whose network does not exist (#5726) (84e5bed)
  • docker: fail an image pull that times out instead of using what the tag names (#5786) (7ecd225)
  • docker: let the daemon pick dynamic host ports (#5928) (8972b21)
  • docker: preserve explicitly configured DNS resolvers (#5727) (f1e00ef)
  • docker: retry core and EKS archive uploads (#5916) (d951fd5)
  • docker: run boto3 on Python 3.12 in the compat image (#5649) (9e6be8f)
  • docker: share one deadline across container teardown (#6077) (4fa1110)
  • dsql: enforce IAM and the cluster's policy on the control plane (#6328) (3944d6e)
  • dsql: evaluate the cluster's resource-based policy on connect (#6319) (f60cf12)
  • dsql: refuse a connection that sends no TLS server name (#6282) (d20084a)
  • dsql: refuse a startup packet or client message outside DSQL's limits (#6258) (564ae35)
  • dsql: run each transaction age check on a thread of its own (#6216) (2ef7ef0)
  • dsql: take TLS started with no SSLRequest, as DSQL does (#6296) (1f25fd8)
  • dynamodb: authorize PartiQL statements by operation (#6168) (5419b3c)
  • dynamodb: bill a vector attribute at four bytes per dimension (#6688) (3867b5f)
  • dynamodb: bill each BatchGetItem key like a GetItem (#6708) (0cc4984)
  • dynamodb: check and round PartiQL number literals as DynamoDB does (#6991) (21adc54)
  • dynamodb: check backup ARNs as AWS does (#6291) (9790b5f)
  • dynamodb: check the Scan segment pairing after the Select checks (#5857) (5b12c62)
  • dynamodb: compare numeric key attributes by value in UpdateItem (#5837) (ad57ac8)
  • dynamodb: enforce the aggregate batch write limit (#6633) (6ff4700)
  • dynamodb: enforce the default Select for IAM (#6702) (52c9c51)
  • dynamodb: evaluate legacy Expected under the item lock (#6278) (f94e058), closes #6276
  • dynamodb: export the table as of ExportTime (#6132) (da66550)
  • dynamodb: lift the PartiQL overlap refusal when a branch tests a key outside a range (#6602) (8b57546)
  • dynamodb: match AWS for unprojected GSI attributes in Query, Scan and PartiQL (#5911) (61102a7)
  • dynamodb: measure item size and UpdateItem statements like DynamoDB (#5934) (3b7782e), closes #4339
  • dynamodb: read PartiQL number literals as DynamoDB does (#6567) (17191a9)
  • dynamodb: refuse a PartiQL statement that is missing, empty or over 8192 characters (#6978) (5cfb16a)
  • dynamodb: refuse a PartiQL table alias as DynamoDB does (#7014) (6e2b51a)
  • dynamodb: refuse PartiQL requests whose members break their constraints (#6985) (c8143b9)
  • dynamodb: report a missing PartiQL term, path or table name as DynamoDB does (#6957) (aecabcb)
  • dynamodb: report an empty or mistyped ExclusiveStartKey value the way AWS does (#5861) (e21d25a)
  • dynamodb: return set members in DynamoDB's order (#6520) (2a5f52e)
  • dynamodb: return the item that a PartiQL write's failed condition saw with ALL_OLD (#6910) (772b444)
  • dynamodb: save each batch item inside its own item lock (#6314) (4f45541)
  • dynamodb: show table creation times to the millisecond (#6325) (80e5df9)
  • dynamodb: support legacy table discovery and batch cleanup (#5986) (0a37ea8)
  • dynamodb: trim number zeros in items written by UpdateItem (#6994) (cc76085)
  • dynamodb: wait for unfinished writes in full exports and point-in-time restores (#6781) (3649b18)
  • ec2: add opt-in Standard On-Demand vCPU admission (#6058) (6892011)
  • ec2: align Rocky 9 runtime with advertised release (#6377) (d2f06bd)
  • ec2: allow mixed DHCP DNS servers (#6941) (dfad9d6)
  • ec2: AND repeated filter names on every Describe action (#6170) (7c202a8)
  • ec2: apply TagSpecification on key pair, network ACL and image creates (#6551) (0634184)
  • ec2: apply the AWS public address rules and displace earlier Elastic IPs (#5963) (456ae15), closes #5671
  • ec2: create the EBS volumes a launch's block device mappings describe (#6734) (65df465)
  • ec2: create the key type and format CreateKeyPair asks for (#6112) (ff813c6), closes #6093 #6093
  • ec2: CreateNetworkInterface honours the PrivateIpAddresses entry marked Primary (#7031) (2a4f573)
  • ec2: derive subnet and EFS zone ids from the zone name (#5580) (#6923) (d7911da), closes #5486
  • ec2: detach Floci before deleting VPC networks (#5869) (5a4413d)
  • ec2: disable Nagle on both socat sockets of a published port forward (#6572) (f1816db), closes #6176
  • ec2: give RunInstances the private address it asks for (#6099) (50e515f), closes #5830
  • ec2: honor capacity-reservations-only launches (#6354) (81d399a)
  • ec2: honor default subnet filters (#6772) (1a5decb)
  • ec2: honor DHCP options dry runs and restore default set (#6448) (4244e64)
  • ec2: honor DryRun when creating VPCs, subnets and security groups (#6823) (d7763ff)
  • ec2: honor IncludePublicKey when describing key pairs (#6055) (9f9c16a)
  • ec2: ignore NoDevice block device mappings at launch (#5739) (5544a11)
  • ec2: ignore ports when revoking an all-traffic rule (#6895) (d68876e)
  • ec2: keep Ipv6CidrBlock and IcmpTypeCode on network ACL entries (#6680) (9e14ffe)
  • ec2: keep key pair names unique under concurrent requests (#6635) (986117a)
  • ec2: keep tags in the region of the resource they label (#5973) (1eb402d)
  • ec2: keep the KMS key a volume is created with (#6756) (a83fa9c)
  • ec2: keep the tags CreateFlowLogs is given (#6890) (8ececd8)
  • ec2: launch instances into capacity reservation groups (#6404) (60ef203)
  • ec2: let a systemd guest's init start sshd (#6882) (0e87e6f)
  • ec2: list i386 alongside x86_64 for t2 instance types (#5815) (feafbfe)
  • ec2: list requested launch template versions (#6329) (bc760f7)
  • ec2: model scheduled capacity reservations (#6764) (b5033e9)
  • ec2: normalize subnet IPv6 CIDRs and expose zone network borders (#6387) (5b24703)
  • ec2: pin Rocky 10 runtime to advertised release (#6379) (f7c9d9a)
  • ec2: preserve elastic IP pool and border group (#5821) (5fc58a9)
  • ec2: preserve IAM instance profile identity (#5671) (0be4581)
  • ec2: prevent deleting the local VPC route and return InvalidRoute.NotFound for missing routes (#5603) (340e727)
  • ec2: protect subnets and VPCs that load balancers use (#5663) (e520166)
  • ec2: read RunInstances security groups from the primary interface spec (#6964) (8dbcf6b)
  • ec2: record EbsOptimized from RunInstances (#6875) (3f36c4e)
  • ec2: refuse an explicit CreateNetworkInterface address that is already in use (#6908) (146ba44)
  • ec2: refuse key pairs AWS refuses and describe their type, create time and filters (#6093) (fbf3bff), closes PKCS#1 #6055
  • ec2: reject invalid IPv4 managed prefix list entries (#6566) (bffffed)
  • ec2: reject tag writes on missing, malformed or absent resources (#5996) (73da37b)
  • ec2: remove a VPC's network after a restart too (#6874) (ddae4fd), closes #5869
  • ec2: repeat the primary interface association on its primary private address in DescribeInstances (#6928) (bfa13df)
  • ec2: report image creation provenance and its three filters (#6059) (9f99c7c), closes #5663
  • ec2: report missing network interface security groups (#6582) (42314fc)
  • ec2: report targeted reservation capacity exhaustion (#6344) (5182449)
  • ec2: require IMDSv2 tokens when HttpTokens is required (#5966) (7504d71), closes #5964
  • ec2: resolve a NAT gateway's network interface and mark its Elastic IP associated (#5622) (1e42342), closes #5503
  • ec2: restore and stop the instances of every account (#5103) (8eddae4)
  • ec2: retain firewall identity during container teardown (#6492) (73fc6fd)
  • ec2: return the network interface association in DescribeInstances (#6872) (d726533)
  • ec2: revoke security group rules by SecurityGroupRuleId (#6192) (5ed0eca)
  • ec2: seed the default network before marking the scope seeded (#6637) (79e47cd)
  • ec2: skip addresses stored resources hold when the VPC network allocates (#6284) (d3c2dbb), closes #6283
  • ec2: write Amazon-provided VPC IPv6 blocks in canonical form (#6692) (c6927cc)
  • ecr: delete only the named tag in BatchDeleteImage (#6597) (9ce1b17)
  • ecr: explain unavailable registry responses (#6752) (c37e0aa)
  • ecr: give every data plane exchange its own registry connection (#5883) (de94e3c), closes #5573
  • ecr: never start the registry container while ECR is disabled (#6281) (a29df66)
  • ecr: paginate image listings (#6544) (b29c8f8)
  • ecr: pull rewritten ECS and Lambda images from localhost (#5882) (553411b)
  • ecr: return per-repository scanning batch failures (#6569) (671e4bf)
  • ecr: validate scanning batch repository names (#6587) (ad92d5f)
  • ecs: add opt-in dynamic awsvpc host ports (#6509) (c910de5)
  • ecs: apply EFS access point PosixUser and CreationInfo to task volumes (#5606) (b4c012f), closes #5480
  • ecs: bound FireLens socket volume paths (#6787) (2d3fb0c)

...and 310 more in this section.


GitHub caps a release description at 125000 characters, so this list is shortened. Every change is in CHANGELOG.md.

Don't miss a new floci release

NewReleases is sending notifications on new releases.