What's Changed
[1.3.23] — 2026-05-01
Added
- Amazon OpenSearch Service — management plane on
/2021-01-01/*: CreateDomain, DescribeDomain(s), DeleteDomain, ListDomainNames (withEngineTypefilter), UpdateDomainConfig, DescribeDomainConfig (Options/Statuswrapping), DescribeDomainChangeProgress, ListVersions, GetCompatibleVersions, AddTags/ListTags/RemoveTags. Account-scoped state. Default data plane is a stub endpoint; setOPENSEARCH_DATAPLANE=1to spawn one realopensearchproject/opensearchcontainer perCreateDomain(same pattern as ElastiCache/RDS). AddOPENSEARCH_DASHBOARDS=1for an optional per-domainopensearch-dashboardssidecar —DescribeDomain.DashboardEndpointis populated.DeleteDomaintears down spawned containers. Terraformaws_opensearch_domaincompatible. Requested by @marcin-nowak-scl. - EventBridge scheduled rule auto-fire —
rate(N minute|hour|day)rules now fire automatically. A daemon thread (eb-scheduler) ticks every 10 s; the per-rule countdown anchors toCreationTimeso the first fire lands one full interval afterPutRule. Scheduled event payload matches AWS exactly (source: aws.events,detail-type: Scheduled Event,detail: {}, ISO 8601time). Multi-tenant — iterates the rules store directly.cron()expressions are stored but not yet auto-fired (one-timeINFOlog surfaces the gap). Contributed by @hiddengearz. - AWS Organizations — DescribeOrganization, ListRoots, ListAccounts, DescribeAccount, ListOrganizationalUnitsForParent / ListAccountsForParent, CreateOrganizationalUnit / DescribeOrganizationalUnit / DeleteOrganizationalUnit. Single-master-account org auto-initialised on first call; nested OUs carry the new
Pathfield (2026-03 AWS additive change). - AWS Account service — GetAccountInformation, GetContactInformation, ListRegions, GetRegionOptStatus. Returns the new
AccountState: ACTIVEfield (2026-04 AWS additive change). Older boto3 SDKs strip the field; newer ones see it. - AWS Batch — control-plane stub: ComputeEnvironments, JobQueues, JobDefinitions (auto-revisioning), SubmitJob (auto-
SUCCEEDED), DescribeJobs, ListJobs. Account-scoped. - WAF Classic + Regional (v1) — minimal stub so legacy clients (Terraform, old CFN) get clean empty-state responses instead of 405.
List*returns empty arrays,GetChangeToken/GetChangeTokenStatusreturn valid responses,Get*for unknown resources returnsWAFNonexistentItemException. For full WebACL state usewafv2. - EC2 DescribeRegions — returns 31 commercial regions with correct
OptInStatus(opt-in-not-requiredfor legacy us-/eu-/ap-* regions,opted-infor newer ones). SupportsRegionNamesfilter andAllRegionstoggle. - Lambda
FileSystemConfigsaccepts S3 ARNs — the 2026-04 AWS S3-mount addition. Server stores and round-trips whatever ARN format the SDK sends (EFS access points, S3 buckets, future shapes). - EventBridge
LogConfig— additive 2026-03 field onCreateEventBus/UpdateEventBus; persisted, returned onDescribeEventBus. - API Gateway v1
securityPolicyaccepts the new TLS-1.3 enum — allow-listsSecurityPolicy-TLS13-1-2-FIPS-PFS-PQ-2025-09(2026-03 addition) and any future opaque values; default remainsTLS_1_2.
Fixed
- S3
PostObjectaccepts unquotedContent-Dispositionfield names — .NET'sMultipartFormDataContentemitsname=foofor ASCII-clean values per RFC 2183; the parser previously only matched the quoted formname="foo"and droppedkey/success_action_status, causing browser-form uploads from .NET clients to 400. Reported by @mattburton. - EventBridge target dispatch
timefield is ISO 8601 — was a Unix epoch float, AWS specifies a string like2026-05-01T18:08:16Z. BothPutEvents-driven and scheduled-rule-driven dispatches now use the canonical format.
Performance
- Idle RAM% — Dockerfile now sets
PYTHONOPTIMIZE=2andMALLOC_ARENA_MAX=2. Verified zero correctness impact (noassertor__doc__introspection in ministack source); throughput unchanged.