Releases
0.5.0
Compare
Sorry, something went wrong.
No results found
0.5.0 — 2026-06-02
Bug Fixes
ui: Pin dynamodb item delete action to right edge
ui: Save changes on alias editor when pricing fields used
qldb: Return HTTP 412 for ResourcePreconditionNotMetException
core: Return 403 SignatureDoesNotMatch for tampered SigV4 requests
elb: Sort Tags.member.N by numeric index for sparse inputs
secretsmanager: InvalidRequest on version/stage mismatch
cloudwatch-logs: Validate DescribeLogStreams orderBy/prefix
iam: Reject Path/Arn mutation via UpdateRole
apigateway: Validate CreateRestApi apiKeySource enum
sqs: Scope FIFO dedup window by message group when configured
ses: Validate MailFromDomain against identity domain
waf: Validate IPSet CIDR shape against IPAddressVersion
ssm: Validate PutParameter DataType and aws:ec2:image format
route53: Cap ChangeResourceRecordSets at 1000 changes / 32000 values
route53: Split public/private hosted zones with VPC requirement
ses: Persist SendEmail ReplyToAddresses and ConfigurationSetName
eventbridge: Validate Connection AuthParameters per auth type
stepfunctions: Validate roleArn shape on create/update
acm: Persist CertificateTransparencyLoggingPreference
kinesis: Paginate ListShards with NextToken cursor
firehose: Validate stream type, buffering, and compression
secretsmanager: Surface owner, region, and version timestamps
cognito: Validate PasswordPolicy MinimumLength and TempPasswordDays
cognito: Set AutoVerifiedAttributes flags on ConfirmSignUp
ecr: Validate and surface CreateRepository encryptionConfiguration
ses: Validate PutSuppressedDestination Reason allowlist
mq: Validate broker name, storage type, and LDAP metadata
eks: Require Nodegroup subnets and validate diskSize
elb: Require certificates on HTTPS/TLS listeners
rds: Persist VpcSecurityGroups on DB cluster
rds: Validate and surface DB instance Iops + StorageThroughput
ecs: Persist Service loadBalancers, deploymentConfiguration, deploymentController, networkConfiguration
ses: Persist account VDM and suppression attributes
cloudformation: Implement Fn::GetAZs intrinsic
apigateway: Persist binaryMediaTypes and validate endpointConfiguration on CreateRestApi
stepfunctions: Persist tracingConfiguration and validate encryptionConfiguration
cloudwatch-metrics: Accept PutMetricData StatisticValues as pre-aggregated mean
cloudwatch-metrics: Apply Dimensions filter on ListMetrics
cloudwatch-logs: Accept and surface logGroupClass on CreateLogGroup
cloudwatch-logs: Reject PutLogEvents entries outside 14d/2h window
eventbridge: Accept Target BatchParameters and round-trip in describe
dynamodb: Cap AttributeName at 255 bytes on CreateTable
ssm: Validate PutParameter Value against AllowedPattern regex
dynamodb: Enforce 4 MB payload cap on TransactWriteItems
secretsmanager: Support owned-by-me and primary-region ListSecrets filters
sts: Enforce SourceIdentity regex and AccessKeyId format
iam: Cap managed policy document at 6144 characters
kinesis: Cap GetRecords response at 10 MB of record bytes
acm: Gate GetCertificate on PENDING_VALIDATION and DeleteCertificate on InUseBy
dynamodb: Enforce 20-GSI cap on UpdateTable Create
secretsmanager: Default PutSecretValue empty VersionStages to AWSCURRENT
sns: Validate MessageAttribute DataType and enforce 256 KB payload cap
lambda: Validate Qualifier against $LATEST/numeric/alias grammar
kinesis: Reject malformed ExplicitHashKey instead of silent fallback
acm: Validate SAN count, dedup, and KeyAlgorithm on RequestCertificate
ecr: Reject duplicate image push with ImageAlreadyExistsException
eventbridge: Enforce per-bus rule and per-rule target caps
kms: Surface InvalidCiphertextException on malformed Decrypt input
kms: Enforce MacAlgorithm / KeySpec compatibility
kms: Enforce SigningAlgorithm / KeySpec compatibility table
sqs: Validate MessageAttribute DataType and value pairing
sns: Align PublishBatch error codes to AWS spec
secretsmanager: UpdateSecret rejects rotation parameters
sts: Evaluate ExternalId / MFA / SourceIp on AssumeRole trust policies
cognito-identity: Emit InvalidParameterException not InvalidParameter
polly,batch,datasync: Align error HTTP status to Smithy
firehose: Return HTTP 400 from every firehose error shape
ssm: Return HTTP 400 from every ssm error shape
ecs: Return HTTP 400 from every ecs error shape
ecr: Return HTTP 400 from every ecr error shape
cognito: Return 403 from NotAuthorizedException per Smithy
kinesis: Return HTTP 400 from every kinesis error shape
sqs: Return HTTP 400 from NonExistentQueue and use full Query code
dynamodb: Return HTTP 400 from ResourceInUse and *AlreadyExists
secretsmanager: Align ResourceNotFound/Exists to HTTP 400
kms: Return 409 from DisabledException
iam: Return 409 from LimitExceededException
tests: Make s3 multipart test AWS-correct and raise body cap
iam: Mark the root user as is_root in principal resolution
operator-auth: Make sign-in work and gate the admin UI
ssm: Honor Tier on PutParameter + enforce per-tier value size cap
rds: Validate DBInstanceIdentifier regex + StorageType enum
kinesis: Validate StreamName + StreamMode + ShardCount on CreateStream
eks: Require roleArn + validate cluster name on CreateCluster
ecr: Validate repository name + imageTagMutability on CreateRepository
ecs: Validate networkMode + requiresCompatibilities on RegisterTaskDefinition
ec2: Validate RunInstances MinCount / MaxCount instead of silent clamp
cloudwatch-logs: Enforce 10000-event PutLogEvents per-request cap
cloudwatch-metrics: Enforce 1000-datum PutMetricData per-request cap
secretsmanager: Reject GetSecretValue with mismatched VersionId+VersionStage
eventbridge: Validate ScheduleExpression at PutRule time
iam: Validate RoleName against AWS regex on CreateRole
lambda: Validate TracingConfig.Mode against AWS enum
kms: Enforce 4 KiB EncryptionContext size + string-value shape
sns: Require MessageGroupId + dedup on FIFO topic Publish
sqs: Reject SetQueueAttributes that flips FifoQueue after creation
dynamodb: Reject ProjectionExpression with AttributesToGet
s3: Enforce 5 MiB minimum part size on non-final multipart parts
core: Emit S3-style bare envelope for REST-XML responses
core: HMAC-sign pagination tokens with 6h expiry
ui: Tighten Models & Aliases tab visuals
ui: Re-seed gateway dialogs on every closed -> open transition
core: Report live IAM enforcement state in /_awsim/config
ui: Scrollable dialog body with slim scrollbar and flush pinned footer
ui: Bound dialog height and scroll long forms
appconfig: Stop AppConfigData clobbering the control plane
ui: Stop one large cell from stretching the table
ui: Make Select root value/open bindable
ui: Point topbar Documentation link at the docs
awsim: Suppress clippy too_many_arguments on register_services
dynamodb: Emit AWS-faithful KeyConditionExpression errors
bedrock: Retry with flattened content on text-only backends
Documentation
core: Document SigV4 verification and bearer-token auth gates
core: Document cross-service event bus pattern
core: Document AWSIM_PARTITION flag in configuration guide
iam: Document AssumeRole trust policy condition variables
theme: Custom motd-style home page
sidebar: Include every service and guide page
Document AWSIM_VERIFY_SIGV4, credentials endpoint, root protection
Document operator auth + new configuration env vars
bedrock: Refresh sample TOML + CHANGELOG for Model Gateway
Features
ui: Define gsis and lsis when creating a dynamodb table
ui: Manage gsi from the dynamodb indexes tab
ui: Show per-call tokens and cost on Activity and Models tabs
bedrock: Track per-call tokens and cost in gateway metrics
ui: Edit gateway pricing per model id and show cost in tester
bedrock: Inject pricing cost into all family translators
bedrock: Per-model token pricing overrides in usage block
efs: Enforce 24h throughput cooldown on UpdateFileSystem
efs: CreationToken idempotency rejects mismatched args
athena: Substitute ExecutionParameters into ? placeholders
athena: ClientRequestToken idempotency on StartQueryExecution
athena: Resolve WorkGroup EngineVersion with AUTO default
servicediscovery: Persist Tags on namespace and service create
servicediscovery: Add TagResource/UntagResource/ListTagsForResource by ARN
appsync: Persist GraphQL APIs, schemas, resolvers, and associations
athena: Persist workgroups, queries, and catalogs via snapshot/restore
acm: Cache RequestCertificate by IdempotencyToken and reject param mismatches
acm: Support PRIVATE certificate type via CertificateAuthorityArn
qldb: Start ledger in CREATING and settle to ACTIVE on Describe/List
memorydb: Start clusters in creating and settle to available on Describe
firehose: Start delivery streams in CREATING and settle to ACTIVE on Describe
firehose: Validate ProcessingConfiguration types and Lambda parameters
efs: Wire AccessPoint ClientToken through IdempotencyCache
efs: Add PutFileSystemPolicy with JSON validation and 20 KiB cap
efs: Reject DeleteFileSystem when access points still reference the FS
efs: Paginate Describe file systems, mount targets, and access points
efs: Reject non-ENABLED/DISABLED BackupPolicy status inputs
efs: Validate LifecyclePolicy transition enums on PutLifecycleConfiguration
efs: Validate AccessPoint PosixUser and RootDirectory CreationInfo
efs: Enforce single mount per subnet and cap SecurityGroups at five
efs: Persist AvailabilityZoneName/Id and enforce one-zone single mount
efs: Emit FileSystemProtection and add UpdateFileSystemProtection op
efs: Emit ValueInArchive and refresh SizeInBytes.Timestamp on each read
efs: Default KmsKeyId to managed alias when Encrypted and reject otherwise
efs: Validate ProvisionedThroughputInMibps against ThroughputMode and 1-1024 range
firehose: Add Splunk, Iceberg, and OpenSearch destination shapes
servicediscovery: Paginate ListNamespaces ListServices and ListInstances
qldb: Expose CapacityExceededException and RateExceededException helpers
route53: Persist hosted zones, health checks, query logs across snapshots
route53: Paginate ListResourceRecordSets with MaxItems and StartRecord cursor
acm: Persist KeyAlgorithm and honor ListCertificates Includes.keyTypes
acm: Paginate ListCertificates and filter by CertificateStatuses
memorydb: Seed parameter fixtures and add paginated DescribeParameters
qldb: Tag ledger stream and export ARNs via shared resource tag store
qldb: Add S3 export operations and validation
qldb: Add ListJournalKinesisStreamsForLedger and CancelJournalKinesisStream
qldb: Persist JournalKinesisStream records via Stream/Describe APIs
memorydb: Add DescribeEngineVersions exposing engine/family catalog
memorydb: Emit events from every cluster/user/acl/group mutating op
memorydb: Add Events store and DescribeEvents with Duration filter
memorydb: Add UpdateACL with UserNamesToAdd/Remove validation
memorydb: Add TagResource/UntagResource/ListTags keyed by ARN
memorydb: Add FailoverShard with ShardName validation
memorydb: Persist SnapshotArns/SnapshotName and seed NodeType from snapshot
memorydb: Add BatchUpdateCluster splitting processed and unprocessed
memorydb: Seed DescribeServiceUpdates with filters and pagination
memorydb: Add UpdateSubnetGroup with subnet replacement validation
memorydb: Reject duplicate subnet/parameter groups and empty SubnetIds
qldb: Return ResourceNotFoundException for tag ops on missing ledger
firehose: Require matching VersionId and DestinationId on UpdateDestination
memorydb: Add CopySnapshot in-memory clone path
memorydb: Add DeleteSubnetGroup and DeleteParameterGroup with in-use guards
memorydb: Add ResetParameterGroup with AllParameters/ParameterNames validation
memorydb: Paginate DescribeClusters DescribeUsers and DescribeACLs
memorydb: Paginate DescribeSnapshots and filter by Source/ClusterName
memorydb: Elide Shards in DescribeClusters when ShowShardDetails is false
firehose: Persist delivery stream state via snapshot and restore
memorydb: Accept window and retention updates in UpdateCluster
memorydb: Lock AutoMinorVersionUpgrade default and emit empty PendingUpdates
memorydb: Add Valkey engine versions and validate engine/version coupling
memorydb: Add Engine field with redis and valkey validation
memorydb: Normalise User AccessString whitespace on create and update
memorydb: Populate User.UserGroupCount/ACLNames and ACL.PendingChanges
qldb: Paginate ListLedgers via MaxResults and NextToken
firehose: Validate MSKSourceConfiguration and accept DatabaseAsSource filter
firehose: Validate KinesisStreamSourceConfiguration ARNs
firehose: Parse and echo Kinesis/MSK/Database source configurations
memorydb: Synthesise Shards and Nodes topology in cluster responses
memorydb: Freeze cluster topology in Snapshot.ClusterConfiguration
memorydb: Derive SnsTopicStatus from SnsTopicArn presence
memorydb: Validate User AuthenticationMode and track PasswordCount
memorydb: Derive EnginePatchVersion from engine version table
memorydb: Add NetworkType and IpDiscovery fields with validation
memorydb: Validate MaintenanceWindow and SnapshotWindow format
memorydb: Persist DataTiering and require db.r6gd node type
memorydb: Validate NumShards and NumReplicasPerShard bounds
qldb: Enforce 5-ledger per-region quota on CreateLedger
qldb: Persist EncryptionDescription fields on Ledger model
qldb: Emit full EncryptionDescription on Ledger responses
qldb: Implement UpdateLedgerPermissionsMode
qldb: Validate PermissionsMode enum on CreateLedger
firehose: Validate KeyARN on StartDeliveryStreamEncryption
firehose: Paginate ListTagsForDeliveryStream with HasMoreTags
app-autoscaling: Validate filters on DescribeScalingActivities
app-autoscaling: DescribeScalingPolicies accepts names and ARNs
app-autoscaling: Validate CustomizedMetricSpecification shape
app-autoscaling: Validate StepScalingPolicyConfiguration
app-autoscaling: Validate TargetTrackingScalingPolicyConfiguration
app-autoscaling: Validate RoleARN shape on RegisterScalableTarget
app-autoscaling: Per-namespace ResourceId shape validation
app-autoscaling: Validate ScalableDimension per ServiceNamespace
app-autoscaling: Validate ServiceNamespace against allowlist
identitystore: Validate Primary uniqueness and Type allowlist
appconfig: Make AppConfig.* deployment strategies immutable
appconfig: Cap Monitors at 5 and validate AlarmArn shape
appconfig: Prune hosted versions to 100 per profile
servicediscovery: Per-type Namespace Properties with SOA TTL
servicediscovery: CreatorRequestId idempotency on Create paths
servicediscovery: Implement GetInstancesHealthStatus pagination
servicediscovery: Honor MaxResults and filters on DiscoverInstances
servicediscovery: Filter ListOperations by 5 dimensions
servicediscovery: Implement UpdateService for mutable fields
servicediscovery: Implement UpdateInstanceCustomHealthStatus
servicediscovery: Raise ResourceInUseException on non-empty delete
servicediscovery: Validate RegisterInstance AWS_* attributes
sso-admin: Validate PermissionSet SessionDuration range
sso-admin: Validate PermissionSet Name regex and length
servicediscovery: Validate Vpc on CreatePrivateDnsNamespace
servicediscovery: Per-service InstancesRevision counter
glacier: Honor path accountId dash and reject mismatches
route53: Return full ISO geo catalog from ListGeoLocations
cognito: Parse UserAttributes sparse member.N/numeric keys
cognito: Apply tag middleware to identity pool Tag/Untag
rgt: Partial-success per-ARN map on TagResources/UntagResources
rgt: Switch GetResources to marker-based cursor stable across mutations
rgt: Enforce TagsPerPage and ResourcesPerPage bounds strictly
rgt: Case-sensitive ResourceTypeFilters and 256-value TagFilter cap
scheduler: Validate and persist StartDate / EndDate bounds
scheduler: Validate Target RetryPolicy and DeadLetterConfig shape
scheduler: Validate and persist customer-managed KmsKeyArn
scheduler: Paginate ListSchedules and ListScheduleGroups via core helper
scheduler: Enforce schedule and group name regex on create
scheduler: Validate at(...) one-shot expressions and ActionAfterCompletion
scheduler: Validate FlexibleTimeWindow Mode and MaximumWindowInMinutes
scheduler: Validate and persist ScheduleExpressionTimezone with UTC fallback
scheduler: Validate target ARN shape and universal aws-sdk dispatch
scheduler: Honor ClientToken on CreateSchedule via idempotency cache
identitystore: Attach ResourceType and ResourceId to not-found errors
identitystore: Paginate ListUsers/ListGroups with tenant-scoped HMAC token
identitystore: Implement IsMemberInGroups with per-group existence check
identitystore: Validate IdentityStoreId, UserName, and DisplayName shape
lambda: Detect self-invoke chains under RecursiveLoop=Terminate
cloudwatch-logs: Route AssociateKmsKey by log-group vs query-result scope
mq: Paginate ListBrokers / ListConfigurations / ListUsers via core helper
mq: Stage UpdateBroker into pending mirror and apply on reboot
mq: Surface LogsSummary and ActionsRequired on DescribeBroker
mq: Honor CreatorRequestId for CreateBroker idempotency
mq: Version configurations with engine-validated revisions
mq: Persist encryption / logs / maintenance / replication on broker create
lambda: Enforce reserved concurrency with 429 TooManyRequestsException
rds: Model aurora global clusters with primary/secondary members
rds: Register and lifecycle custom DB engine versions
rds: Wire activity stream lifecycle and aurora-mysql backtrack window
rds: Track read replica relationships and dispatch CreateDBInstanceReadReplica
ssm: Emit synthetic findings from patch scan and describe ops
rds: Persist maintenance window and stage pending modified values
ssm: Validate maintenance window targets and resolve to instance set
secretsmanager: Dispatch 4-step rotation state machine via Lambda
core: Per-account-region idempotency cache wrapper
ecr: Parse and evaluate lifecycle policy DSL
ecr: Implement OCI Distribution referrers endpoint
ecr: Validate pull-through cache upstream registries
ecr: HMAC-sign authorization tokens and enforce on registry
ecr: Wire registry and repository policies into authz engine
ecs: Wire serviceRegistries into Cloud Map RegisterInstance
ecs: Validate container secrets[] via SecretsManager and SSM
ecs: Validate repositoryCredentials against SecretsManager
ecs: Allocate ENI attachment for awsvpc tasks
ecs: Validate task and execution role ARNs against IAM
cloudformation: Enforce stack policies on UpdateStack diffs
cloudformation: Parse and surface OnFailure / DisableRollback
cloudformation: Publish stack events to NotificationARNs
cloudformation: Parse lifecycle policies and honor DeletionPolicy
cloudformation: Compute ChangeSet Replacement and Scope
cloudformation: Propagate stack tags onto resource events
cloudformation: Validate parameter constraints and honor NoEcho
cloudwatch-logs: Validate MetricFilter transformations
resourcegroupstagging: Validate tags via shared middleware
sns: Deterministic SignatureVersion=1 HTTP envelope builder
eks: Managed addons with configurationValues and resolveConflicts
sns: Validate KmsMasterKeyId against KMS keys and aliases
dynamodb: Configurable grace window before TTL eviction
eventbridge: Track ManagedBy on rules and offer cleanup helper
eventbridge: Validate target RoleArn against IAM
cloudwatch-logs: Validate SubscriptionFilter RoleArn and Distribution
cloudwatch-logs: Enforce LogGroup deletion-protection and KmsKeyId
cloudwatch-logs: Enforce sequenceToken on PutLogEvents
eventbridge: Target retry decision routes to DLQ when caps exceeded
eventbridge: Enforce bus resource policy on cross-account PutEvents
ses: Enforce cross-account SourceArn via identity policy lookup
sts: Thread session tags into trust policy conditions
iam: Track Virtual MFA device lifecycle Unassigned to Active
ecs: Apply propagateTags and ECS-managed tags on RunTask
sqs: Token-bucket rate limiter for message-move tasks
iam: Record AccessKey LastUsedDate on every authenticated request
sts: Persist and surface AssumeRole session tags + transitive keys
cloudwatch-metrics: PutMetricData returns UnprocessedMetricData per datum
dynamodb: ConsumedCapacity emits Table block under INDEXES mode
sns: PublishBatch applies FIFO dedup per entry
kinesis: Cap on-demand streams at 50 with LimitExceededException
elb: Per-region CanonicalHostedZoneId and internal- DNS prefix
elb: Validate tag input on CreateLoadBalancer and CreateTargetGroup
elb: Validate forward weights and pick targets by per-call counter
kms: Evaluate grant EncryptionContextEquals and Subset constraints
ses: Add v1 DKIM verification status state machine
ses: Add SendBulkTemplatedEmail with per-destination data merge
ses: Enforce configuration set sending switch across send paths
ses: Add SendRawEmail with RFC 2822 header parsing
ses: Add SendTemplatedEmail handler honoring Cc/Bcc/ReplyTo
ses: Persist ConfigurationSetName and EmailTags on sent email rows
sfn: Thread States context object through Map and Parallel scopes
sfn: Expand States intrinsics with array, hash, and predicate ops
sfn: Raise States.Timeout on Tasks and route through Retry/Catch
sfn: .async task suffix returns immediate acknowledgement
sfn: Apply Map ItemSelector to each iteration payload
apigateway: GetExport emits Swagger 2.0 and OpenAPI 3.0 documents
apigateway: Persist responseModels and resolve by status + content type
apigateway: Validate request bodies against Model JSON Schemas
apigateway: Persist requestModels with Content-Type resolution
apigateway: Canary settings with deterministic traffic split
apigateway: Honor contentHandling on integration responses
apigateway: Gzip responses past minimumCompressionSize
apigateway: Synthesize CORS preflight response from API config
apigateway: Honor authorizer identityValidationExpression
apigateway: Interpolate stage variables into integration URIs
ssm: Persist SessionManager log fields and Reason
ssm: Persist SSM document attachments and Requires
ssm: Parse and persist ParameterPolicies on Advanced tier
ssm: Validate path, paginate, and skip prefix siblings
ssm: Raise InvalidKeyId when SecureString decrypt would fail
ssm: Persist SecureString KeyId and filter by it
ses: GetEmailIdentity returns full attribute set
ses: Persist DKIM signing attributes for EASY_DKIM and BYODKIM
ses: Render Content.Templated via stored email templates
ses: Honor ListManagementOptions topic opt-out on SendEmail
ses: Persist and surface configuration set VDM options
ses: Enforce configuration set TLS policy on SendEmail
rds: Persist MonitoringInterval, MonitoringRoleArn, and log exports
rds: Honor CopyTagsToSnapshot and propagate KmsKeyId
ecr: Validate UploadLayerPart partFirstByte/partLastByte
ecr: Emit synthetic CVE finding for ENHANCED scanning
elb: Parse + validate ALB redirect/fixed/auth actions
ecr: Validate registry + repository policy JSON shape
ec2: SG rules persist UserIdGroupPairs references
secretsmanager: Validate RotationRules ScheduleExpression
sqs: Validate MaxNumberOfMessagesPerSecond on move task
ecs: Persist task-definition volumes verbatim
rds: Mark first cluster member as writer, rest readers
iam: Validate trust policy Principal shape
sns: Validate PublishBatch entry Id shape
sfn: Coerce strings to numbers in Choice Numeric* operators
route53: Validate routing policy fields + SetIdentifier
elb: Validate health-check protocol + Matcher.GrpcCode
iam: Clean up credential report CSV columns
sns: Validate RedrivePolicy at Subscribe + SetAttributes
bedrock: Validate InvokeModel Content-Type/Accept headers
cloudfront: Validate CreateInvalidation paths + 3000 cap
eventbridge: Validate StartReplay archive + destination
elb: Enforce NLB/GWLB protocol allowlist + GENEVE port
cw-metrics: Filter GetMetricStatistics by Dimensions
ec2: Surface EnaSupport + SriovNetSupport on instances
eks: Surface synthetic ASG name in nodegroup resources
sqs: Cache ReceiveRequestAttemptId for FIFO retry
ssm: Honor full ParameterFilters key set on DescribeParameters
cfn: Validate Capabilities against IAM + Transform
cfn: Reject unknown resource type at template parse
ecs: Persist placementConstraints + placementStrategy
eks: Validate cluster logging types allowlist
kinesis: Real SplitShard closes parent + adds children
firehose: Real Encrypted flag + batch per-entry errors
waf: Validate AssociateWebACL ResourceArn service
route53: GetChange walks PENDING to INSYNC
cognito: Validate Policies.SignInPolicy on CreateUserPool
elb: Implement DescribeLoadBalancerPolicies catalog
mq: Mask passwords + add Pending user mirror
ssm: LabelParameterVersion validates + moves labels
ec2: Honor DryRun on mutating operations
sts: Real DecodeAuthorizationMessage codec
kms: Enforce 5-minute grant token expiry
acm: Mark imported certs INELIGIBLE for renewal
sfn: Enforce 5-minute EXPRESS workflow timeout cap
firehose: Paginate ListDeliveryStreams with Limit + filter
dynamodb: Strict type validation for ExpressionAttributeValues
secretsmanager: Accept AddReplicaRegions on CreateSecret
cw-metrics: Persist + enforce StorageResolution
cfn: Enforce stack termination protection on delete
eks: Validate and persist nodegroup launchTemplate
eks: Persist nodegroup labels/taints/remoteAccess
sesv2: Persist ReputationOptions + LastFreshStart
eventbridge: Persist target DeadLetterConfig + RetryPolicy
ecs: Validate Fargate cpu/memory pair allowlist
ecr: Detect + persist manifest media type on PutImage
rds: Persist and validate LicenseModel per engine
kinesis: Paginate DescribeStream by Limit + start shard
sqs: Propagate AWSTraceHeader system attribute
lambda: Persist and validate ScalingConfig.MaximumConcurrency
eks: Persist encryptionConfig and add AssociateEncryptionConfig
ec2: Persist RunInstances UserData and surface via DescribeInstanceAttribute
lambda: Persist RecursiveLoop via Get/PutFunctionRecursionConfig
dynamodb: Enforce GSI / LSI per-table caps on CreateTable
dynamodb: Reject TransactWriteItems with duplicate keys
dynamodb: Opaque, expiring stream shard iterators
core: Verify SigV4 signatures on presigned URLs
s3: Honor CopyObject TaggingDirective and accept ChecksumCrc64Nvme
s3: Paginate ListParts with PartNumberMarker / MaxParts
s3: Persist + echo server-side-encryption headers
sqs: Enforce inflight cap, atomic batch validation, FIFO delay rule
kms: Rate-limit RotateKeyOnDemand and cap grants per key
s3: Enforce x-amz-expected-bucket-owner on object operations
core: Add lookup_or_insert convenience to IdempotencyCache
cloudtrail: Subscribe to the cross-service event bus
tags: Enforce AWS-spec tag limits across 25 services
core: JSON-shape-aware tag validation helpers
core: Bound WorkerPool concurrency and add TestDriver
ui: Surface IAM identity and AccessDenied errors gracefully
sns: Wire topic policies into the AuthzEngine
iam: Reject trust policies without an AssumeRole action
sts: Apply AssumeRole session policies on the request path
gateway: Verify SigV4 signatures cryptographically when enabled
operator-auth: Sign UI requests as the operator's IAM principal
iam: Protect the root user from IAM mutations
ui: IAM user console password management
operator-auth: Reveal existing access key secrets
ui: Inline validation on ECR / EKS / RDS create forms
ui: Expose SSM parameter Tier selector in the editor
ui: First-run /setup page so bootstrap stops requiring curl
cloudformation: Implement Fn::Base64 intrinsic
ui: Admin sign-in page + topbar principal + sign-out control
core: AWSIM_REQUIRE_SIGNED_REQUESTS gate on the gateway
awsim: First-run bootstrap flow on AWSIM_REQUIRE_OPERATOR_AUTH
awsim: Throttle operator login at 5 failures per minute per username
awsim: Operator login API on /_awsim/auth + optional admin gate
core: Consolidate TOTP into awsim_core::totp + verify IAM MFA codes
iam: Store login-profile passwords as bcrypt + enforce policy
core: Arn::expect_owned_by helper for cross-tenant isolation
core: HMAC-signed bearer-token mint/verify with TTL
core: Rehydrate hook so restore can re-arm timers and pollers
core: TTL-bounded idempotency cache for ClientToken flows
core: Publish a canonical ApiCall event for every dispatched request
core: Add check_pass_role helper for iam:PassRole flows
core: Generic lifecycle state-machine helper with fast-mode env
core: Shared tag validation helper (50/128/256 + aws: prefix + dedupe)
core: Isolate panicking/slow ticks + add a shared worker pool
core: Support non-default AWS partitions (aws-cn, aws-us-gov, ...)
ui: Retire Settings Bedrock editor + slim Bedrock proxy tab
ui: Inline test-prompt panel per chat mapping
awsim: /_awsim/gateway/test-prompt for inline Converse tests
ui: Activity tab + per-mapping activity chips
awsim: Wire metrics + recent registries + admin endpoints
bedrock: Runtime records per-attempt metrics + ring entries
bedrock: In-process metrics + recent-invocations ring
ui: Per-target override editors in alias dialog
bedrock: Per-target request overrides on alias targets
ui: Health tab + status pills on Backends
awsim: Wire health poller + /_awsim/gateway/health endpoints
bedrock: Auto-fallback across alias targets on retriable errors
bedrock: Backend health registry + Down-skip in alias resolver
ui: Models & Aliases tab with multi-target editor
bedrock: Alias groups with First strategy
ui: Provider-aware Backends tab with Add/Edit wizard
bedrock: Add provider metadata field to BackendSpec
ui: Credentials CRUD on Model Gateway page
bedrock: Reusable [credentials] table referenced by backends
ui: Point Bedrock proxy chip and Settings to Model Gateway
ui: Scaffold Model Gateway page with provider catalog browser
bedrock: Bundle LLM provider catalog + /_awsim/gateway/catalog
cognito: Filter ID-token claims by client ReadAttributes
cognito: Enforce app-client Read/WriteAttributes at runtime
ui: Per-client attribute read/write permissions
cognito: App-client ReadAttributes/WriteAttributes
ui: Filter + count parity for Cognito groups and clients
ui: Collapse Cognito user-row actions into a menu
ui: In-UI Cognito sign-in flow with token inspection
ui: Add Cognito admin auth API client operations
ui: Organizations account + OU creation (Phase 3)
ui: Organizations SCP creation (Phase 3)
ui: KMS alias create + delete (completes KMS CRUD)
ui: KMS key create + schedule-deletion (Phase 3)
ui: Secrets Manager CRUD (Phase 3)
ui: StepFunctions start -> watch-it-run loop
ui: Sidebar service-maturity marker (closes Phase 1 gap)
ui: EventBridge send-event routing preview
eventbridge: Implement TestEventPattern
ui: SNS publish fan-out visibility + history
ui: SQS send history + send -> messages bridge
ui: Lambda invoke history + jump to full logs
ui: IAM simulator decision trace - the 'why'
iam: Return the decision reason + statement id from Simulate*
iam-policy: Expose a decision reason for the simulator
ui: Smooth scroll + prefers-reduced-motion guard
ui: Finish the visual pass - page header, datagrid, cards
ui: Refine topbar + sidebar chrome
ui: Push the dark theme bolder
ui: Elevate dark theme tokens + typography
ui: Add page-level list gating to ResourceConsole
ui: Add optional loadingContent snippet to ResourceConsole
ui: Palette quick-actions open the create dialog, not just navigate
ui: Add LoadingState/ErrorState and wire ErrorState into DataTable
ui: Add DetailPage + DetailNavItem route-detail scaffold
ui: Add ResourceConsole master/detail shell
ui: Add shared Select primitive
ui: Add shared ConfirmDialog primitive
bedrock: Forward tool use and documents through the translator
bedrock: Forward image attachments to backend via OpenAI image_url parts
Performance
iam-policy: Cache parsed policy documents by content hash
dynamodb: Periodic WAL TRUNCATE checkpoint to bound bulk-write memory
ui: Drop full-viewport backdrop-blur from overlays
ui: Cap request-log table at 150 rows
ui: Batch SSE events in dashboard-state
ui: Throttle billing history persistence
awsim: Gzip/brotli the embedded UI assets
ui: Self-host Geist instead of render-blocking Google Fonts
Refactor
ui: Consistent empty + skeleton states in Cognito sections
ui: Standardize Cognito detail routes onto DetailPage
ui: Replace CLI escape-hatch empty states with CTAs / honest copy
ui: Migrate sqs/sns/appsync/ecr/apigateway/route53 onto ResourceConsole
ui: Migrate lambda/stepfunctions/appconfig/pinpoint/opensearch/cloudformation onto ResourceConsole
ui: Native select -> shared Select in appconfig/servicediscovery/pinpoint/autoscaling + scheduler/playground/settings/seed
ui: Native select -> shared Select in elb/rds/route53/acm/efs/ssm/mq/transfer/qldb
ui: Native select -> shared Select in cognito/sns/ses/bedrock/polly/identitystore
ui: Native select -> shared Select in lambda/apigateway/iam/appsync/stepfunctions
ui: Native select -> shared Select in dynamodb/ec2/kinesis/kms/glue/memorydb/cloudtrail
ui: Convert waf scope to shared Select (sweep reference)
ui: Replace apologetic escape-hatch copy with confident framing
ui: Move /_awsim/requests admin calls behind src/lib/api
ui: Move IAM detail routes onto DetailPage
ui: Move S3 page onto ResourceConsole
ui: Move DynamoDB page onto ResourceConsole
ui: Replace window.confirm with ConfirmDialog in mq/pinpoint/pipes/qldb/servicediscovery/stepfunctions/transfer
ui: Replace window.confirm with ConfirmDialog in eks/glacier/iam/identitystore/lambda/memorydb
ui: Replace window.confirm with ConfirmDialog in bedrock/cloudtrail/logs/datasync/dynamodb/ec2/ecs/efs
ui: Replace window.confirm with ConfirmDialog in apigateway/appconfig/autoscaling/backup/batch
ui: Replace native window.confirm with ConfirmDialog in opensearch/chaos
ui: Replace native window.confirm with ConfirmDialog in IAM detail pages
ui: Replace native window.confirm with ConfirmDialog in lambda/stepfunctions/cloudformation
ui: Consolidate per-service confirm dialogs onto shared primitive
Tests
memorydb: Lock snapshot/restore round-trip across all resource fields
firehose: Lock ExtendedS3 destination field round-trip through update
firehose: Lock tag middleware on Tag/Untag delivery stream
identitystore: Lock UUIDv4 shape for User and Group ids
route53: Lock tag middleware on ChangeTagsForResource
rgt: Cover tag key/value charset rejection on TagResources
scheduler: Cover tag middleware (reserved prefix and 50-tag cap)
mq: Cover snapshot round-trip for pending and revisions
conformance: Pin tag-validation cap, length, prefix and dup rules
conformance: Extend snapshot round-trip to more services
conformance: Pin ARN region and account propagation
conformance: Expand account+region isolation coverage
sqs: Cover legacy AWS Query protocol end to end
iam: Cover permissions boundary cap via AuthzEngine
rds: Cover cross-region CopyDBSnapshot SourceRegion + KmsKeyId
cloudwatch-logs: Anchor persistence test timestamps to now
conformance: Assert account/region isolation across services
conformance: Snapshot+restore round-trip across SQS / IAM / DynamoDB
conformance: Pin SSO-Admin error factories to Smithy
conformance: Pin CloudTrail TrailNotFoundException to Smithy
conformance: Pin Organizations error factories to Smithy
conformance: Pin EKS error factories to Smithy
conformance: Pin STS InvalidAuthorizationMessage to Smithy
conformance: Pin S3 error factories to Smithy
conformance: Pin SNS error factories to Smithy
conformance: Pin Lambda error factories to Smithy
conformance: Pin per-service error factories to Smithy spec
Revert
Drop hand-written CHANGELOG entry
You can’t perform that action at this time.