Skip to content

Release history

2026-08-29

  • name a default caller for a simulation (#1107)
  • chain a Role from an assumed-role session (#1111)
  • patch the clients a static factory builds (#1110)
  • ship the usage docs in the package (#1106)

2026-08-28

  • name every missing sim Lambda SDK package (#1101)
  • authorize the ssm dynamic reference read (#1103)
  • refuse IAM statement values of the wrong type (#1102)
  • resolve dynamic references as the caller (#1100)
  • serialise the delivery failure message (#1097)
  • ship the Oxlint config in the package root (#1098)

2026-08-28

  • choose the principal a deployment runs as (#1075)
  • derive aws:RequestedRegion in sim IAM (#1074)
  • evaluate negated IAM condition operators (#1073)
  • hash and encode binary in sim Athena (#1088)
  • model schedule groups in sim Scheduler (#1083)
  • report IAM statements left unevaluated (#1081)
  • advance simulated time by a bare number (#1080)
  • give every sim ECS container its Region (#1087)
  • supply aws:SourceArn assuming a service role (#1086)
  • deps-dev: bump the npm-patch-and-minor group across 1 directory with 31 updates (#1079)

2026-08-27

  • deny an action with a service control policy (#1065)
  • deploy an organization from CloudFormation (#1067)
  • inherit a service control policy from an OU (#1066)

2026-08-27

  • shim url_decode and url_encode for Athena (#1055)
  • keep partition pruning past an unrelated NOT (#1056)
  • read a scheme-less URL in the url_extract functions (#1063)
  • read the inline regex flags a Trino pattern carries (#1057)
  • refuse a WAFv2 description AWS refuses (#1062)

2026-08-27

  • apply OpenX JSON SerDe column mappings (#1047)
  • decompress an object before reading it (#1049)
  • deps-dev: bump the npm-patch-and-minor group across 1 directory with 33 updates (#1048)

2026-08-27

  • let a record win over an API custom domain (#1043)
  • serve .pdf files from a mounted Bucket (#1042)

2026-08-27

  • deploy an HTTP API domain from a template (#1038)
  • evaluate Athena partition projection (#1018)
  • filter Glue partitions with an Expression (#1030)
  • flatten an Athena array with UNNEST (#1026)
  • fold Glue and Athena catalog names to lower case (#1032)
  • measure Athena bytes scanned from S3 (#1019)
  • read registered partitions for an Athena query (#1031)
  • register partitions in the Glue catalog (#1029)
  • resolve Athena tables in the Glue catalog (#1015)
  • run Athena queries with SQLite (#1025)
  • serve an HTTP API on a custom domain (#1037)
  • shim more Trino functions in the engine (#1028)
  • keep the viewer’s query string encoding (#1027)
  • refuse a suffix path naming its Hive keys (#1009)
  • say when a Distribution repeats an Origin (#1017)
  • serve .csv files from a mounted Bucket (#1036)
  • stop publishing maps that resolve nowhere (#1011)
  • deps-dev: bump the npm-patch-and-minor group across 1 directory with 35 updates (#1010)

2026-08-25

  • deploy an Athena WorkGroup and NamedQuery (#1000)
  • run an Athena query and enforce the bytes scanned cutoff (#1001)
  • simulate the Glue Data Catalog (#997)

2026-08-25

  • refuse a delivery source over an absent distribution (#995)
  • resolve a pseudo parameter beside a Ref in Fn::Sub (#998)
  • deps-dev: bump the npm-patch-and-minor group across 1 directory with 29 updates (#990)

2026-08-24

  • expire an Object against a lifecycle rule (#987)
  • read back a Bucket’s lifecycle rules (#985)
  • measure a clock advance from a frozen instant (#988)
  • refuse a lifecycle rule that does nothing (#986)

2026-08-24

  • apply a managed response headers policy (#975)
  • set up CloudWatch Logs delivery (#981)
  • deploy without an absent headers policy (#977)
  • send CORS preflight headers to a preflight (#978)
  • deps: bump the npm-patch-and-minor group across 1 directory with 29 updates (#972)

2026-08-23

  • answer a read with the Object’s content type (#970)

2026-08-23

  • call a simulated service from a Task state (#959)
  • deploy Lambda@Edge from a template (#962)
  • retry and catch a failing task (#958)
  • run a Map state over its items (#964)
  • run Lambda@Edge at the origin events (#966)
  • run the branches of a Parallel state (#963)
  • state machine tags and file definitions (#956)
  • read a cross-Region EdgeFunction ARN (#965)
  • skip viewer-response on an Origin error (#960)

2026-08-22

  • run Lambda@Edge at the viewer events (#947)
  • throttle a REST API stage and method (#955)
  • throttle an HTTP API stage and route (#950)
  • resolve a dynamic reference built by Fn::Join (#954)
  • run a Lambda with the AWS runtime variables (#953)

2026-08-22

  • deliver Firehose records into an S3 bucket (#934)
  • deploy AWS::KinesisFirehose::DeliveryStream (#937)
  • deploy AWS::StepFunctions::StateMachine (#935)
  • feed a delivery stream from a Kinesis stream (#938)
  • invoke a Lambda function from a Task state (#939)
  • run a simulated Step Functions state machine (#930)
  • run Choice and Wait states (#936)
  • send an Origin’s custom headers to the Origin (#948)

2026-08-22

  • answer Bedrock invocations from declared responses (#916)
  • deploy AWS::Kinesis::Stream from a template (#928)
  • deploy Personalize CloudFormation Resources (#906)
  • read Amazon States Language data flow (#924)
  • recommend from declared campaign results (#904)
  • record Personalize events through a tracker (#905)
  • simulate Kinesis data streams (#917)
  • simulate Personalize domain recommenders (#915)
  • stream Bedrock responses through ConverseStream (#923)
  • trigger a Lambda from a Kinesis stream (#925)
  • refuse a logical statement joining one (#914)
  • swap the CFF 50ms load budget for a watchdog (#927)

2026-08-21

  • attach an SES configuration set to a send (#896)
  • enumerate a deployed Stack’s Resources (#895)
  • export a public type for deploy bindings (#893)
  • follow a Terraform each.value reference (#891)
  • log simulated SES email to the console (#892)

2026-08-21

  • deploy a Terraform plan into simulated AWS (#873)
  • hold an SES account-level suppression list (#886)
  • hold SES identity DKIM and MAIL FROM state (#884)
  • map twelve more Terraform types into sim AWS (#889)
  • print dev messages to the serve console (#880)
  • send Cognito emails through simulated SES (#885)
  • simulate SES configuration sets (#888)
  • supply values a Terraform plan drops (#876)
  • say what Cognito refuses in the CFN record (#887)

2026-08-21

  • return a public deployed Stack type (#870)

2026-08-21

  • sign in with a passkey by an email alias (#861)

2026-08-21

  • deploy Lambda destinations from a template (#854)
  • retry async invokes to a destination or DLQ (#851)
  • serve S3 CopyObject over the REST endpoint (#839)
  • route a presigned URL by its query credential (#850)
  • serve S3 keys holding reserved characters (#846)
  • deps-dev: bump the npm-patch-and-minor group across 1 directory with 26 updates (#857)

2026-08-20

  • change a simulated Lambda function’s settings (#837)
  • copy an Object between simulated S3 Buckets (#831)
  • evaluate a WAF RateBasedStatement (#828)
  • replace a simulated Lambda function’s code (#835)
  • simulate GetTokensFromRefreshToken (#842)
  • advance the clock without one timer per task (#840)

2026-08-20

  • walk a simulated S3 Bucket as a folder tree (#826)
  • skip a web ACL rule Yulin cannot evaluate (#825)

2026-08-20

  • approximate AWS managed rule groups in WAF (#818)
  • authorize a REST API method with a REQUEST authorizer (#799)
  • authorize a REST API method with IAM (#800)
  • block requests at a distribution web ACL (#816)
  • cache a REST API authorizer’s decision (#805)
  • create simulated API Gateway REST APIs (#785)
  • deploy REST APIs from CloudFormation (#789)
  • deploy SAM REST APIs and Api events (#795)
  • deploy WAFv2 resources in CloudFormation (#820)
  • evaluate rules on simulated WAFv2 web ACLs (#814)
  • gate a REST API method with a user pool (#801)
  • gate a REST API method with an authorizer (#798)
  • import a REST API from an OpenAPI document (#796)
  • import an authorizer from a security scheme (#806)
  • put a web ACL in front of a REST API stage (#817)
  • put a web ACL in front of a user pool (#819)
  • route a REST API request to its Lambda integration (#787)
  • sign a returning browser in from a session (#808)
  • style the sim Cognito managed login pages (#788)
  • notice a save a watch never reported (#794)
  • tighten simulated WAFv2 rule validation (#815)
  • deps-dev: bump the npm-patch-and-minor group across 1 directory with 22 updates (#803)
  • deps: bump aws-actions/setup-sam in the github-actions group (#802)

2026-08-19

  • accept a YAML TemplateBody (#768)
  • deliver to a Lambda version or alias (#772)
  • deploy a YAML CloudFormation template (#754)
  • deploy Lambda versions and aliases (#775)
  • expand a SAM Serverless Function (#755)
  • expand SAM HttpApi events (#769)
  • expand SAM queue, stream, topic and bucket events (#774)
  • expand SAM schedule and event rule events (#773)
  • expand SAM simple tables and HTTP APIs (#771)
  • grant a Lambda permission on a qualifier (#770)
  • localise Location headers when serving (#767)
  • publish Lambda versions and aliases (#764)
  • route an HTTP API to a Lambda alias (#776)
  • keep repeated Set-Cookie headers (#766)

2026-08-19

  • attach a CFN Policy to a simulated User (#731)
  • create sim IAM Users from CloudFormation (#728)
  • delete a sim IAM User (#730)
  • export cloudFrontViewerResponseEventFactory (#739)
  • read earlier Stacks in a cdk.out transform (#743)
  • record bound Lambda handler output (#741)
  • refuse oversized CloudFront Function code (#742)
  • register a sim ACM cert at a chosen ARN (#740)
  • register a sim Cognito pool by chosen id (#744)
  • resolve ssm-secure dynamic references (#732)
  • attach a CFN Managed Policy to its Roles (#727)
  • read a Range on a simulated S3 GetObject (#729)

2026-08-19

  • deploy every Stack in a cdk.out assembly (#711)
  • read a stack Output as a string (#704)
  • read SSM parameter value types (#720)
  • refuse a missing template file (#709)
  • resolve Fn::ImportValue between Stacks (#710)
  • resolve Secrets Manager dynamic references (#719)
  • resolve SSM dynamic references (#712)
  • serve IAM and ELBv2 over the Query protocol (#714)
  • serve SNS and CloudFormation over the Query protocol (#698)
  • serve sts assume-role over an endpoint (#713)
  • serve the REST-JSON protocol for Lambda (#715)
  • upload a simulated S3 Object in parts (#701)
  • deps-dev: bump the npm-patch-and-minor group across 1 directory with 23 updates (#716)

2026-08-18

  • answer sts get-caller-identity from the simulation (#680)
  • describe a simulated S3 Object or Bucket without reading it (#682)
  • find a Stack Resource by CDK construct ID (#693)
  • index faces into a Rekognition collection (#692)
  • serve the general AWS APIs on one endpoint (#675)
  • serve the S3 REST API on an endpoint URL (#676)
  • simulate Rekognition face collections (#683)
  • record when a simulated S3 Bucket was created (#681)
  • serve simulated CloudWatch over a port (#690)
  • split the simulated S3 facade (#689)

2026-08-18

  • answer a sim Lambda’s outbound HTTP (#667)
  • reset a forgotten password in sim Cognito (#666)
  • serve managed login pages for a password reset (#669)
  • serve the Cognito JWKS to a sim Lambda (#670)
  • deps-dev: bump the npm-patch-and-minor group across 1 directory with 25 updates (#661)

2026-08-18

  • fan out an SNS message to a phone number (#653)
  • publish an SMS to a phone number (#649)
  • serve the managed login pages (#657)
  • sign a local user in at authorize (#655)
  • refuse an unsigned POST to a Function URL (#654)

2026-08-17

  • deploy CloudWatch alarms from a template (#630)
  • deploy SES identities and templates from a template (#641)
  • evaluate CloudWatch alarms and notify an SNS topic (#629)
  • make test factories for AWS event shapes (#631)
  • record and query custom CloudWatch metrics (#628)
  • render simulated SES email templates (#637)
  • send email through simulated SES (#635)
  • sign users in by email or phone number (#643)
  • reach simulated AWS from a bundled SDK (#642)
  • deps-dev: bump execa from 9.6.1 to 10.0.0 (#640)
  • deps: bump the npm-patch-and-minor group across 1 directory with 23 updates (#639)

2026-08-16

  • accept any account recovery mechanism on a pool (#625)

2026-08-16

  • accept MfaConfiguration on a user pool (#602)
  • challenge a sign-in for a second factor (#618)
  • create AWS::Logs::LogGroup from a template (#617)
  • deliver log events to Lambda by subscription filter (#619)
  • hold custom attributes on a user pool (#613)
  • record Lambda handler output in its log group (#616)
  • register a second factor for a user (#611)
  • simulate CloudWatch Logs groups and events (#612)

2026-08-15

  • require lambda:InvokeFunction for OAC origin (#599)

2026-08-15

  • give sandboxed Lambda code standard streams (#596)

2026-08-15

  • consume an SQS queue from an ECS service (#587)
  • deploy a sim ECS service from CloudFormation (#590)
  • deploy sim ECS from CloudFormation (#586)
  • deploy sim ELBv2 from CloudFormation (#591)
  • keep tasks running with sim ECS services (#583)
  • match ALB listener rules on host and path (#582)
  • resolve load balancer names in Route53 (#584)
  • resolve simulated ECS container secrets (#581)
  • route ALB requests to Lambda targets (#577)
  • run a simulated ECS task (#578)
  • run ECS tasks from rules and schedules (#580)
  • serve an ECS service through a target group (#593)
  • sign a Function URL Origin with origin access control (#592)
  • simulate ECR repositories holding images (#576)
  • terminate HTTPS on a sim ALB listener (#585)

2026-08-14

  • bind a Lambda handler by image repository (#571)
  • register sim ECS task definitions (#573)
  • simulate ELBv2 load balancers and listeners (#574)
  • simulate KMS signing keys and Route53 DNSSEC (#572)
  • skip container image Lambda functions (#569)

2026-08-14

  • simulate Cognito domains and federation (#548)

2026-08-14

  • create and manage simulated EventBridge Scheduler schedules (#542)
  • create simulated EventBridge event buses (#536)
  • deploy simulated EventBridge and Scheduler resources from a template (#546)
  • fire scheduled simulated EventBridge rules on the clock (#541)
  • fire simulated Scheduler schedules through their execution role (#545)
  • match simulated EventBridge events with rules (#537)
  • send simulated EventBridge events to rule targets (#540)
  • refuse a rule target that names no function (#543)
  • deps-dev: bump eslint-plugin-unicorn from 71.1.0 to 72.0.0 (#539)
  • deps-dev: bump the npm-patch-and-minor group across 1 directory with 20 updates (#538)

2026-08-13

  • create a key value store from CloudFormation (#528)
  • read a key value store from a CloudFront Function (#526)
  • refuse a CloudFront list that miscounts its Items (#529)

2026-08-13

  • add CloudFront key value stores (#524)
  • allow the cloudfront module import in JS2 (#523)

2026-08-13

  • deps: bump the npm-patch-and-minor group across 1 directory with 24 updates (#516)

2026-08-12

2026-08-11

2026-08-08

2026-08-07

2026-08-07

2026-08-06

  • serve extra file extensions from a mount (#465)

2026-08-06

  • let the reloading event out before closing (#448)
  • resolve repo root inside a worktree (#453)
  • settle a burst of writes during a build (#449)
  • add custom claims from a Cognito trigger (#461)
  • close a simulated environment in one call (#458)
  • export template type and Account ID ctor (#442)
  • export the watch runtime for held paths (#441)
  • record simulated Cognito pool messages (#463)
  • register a Hosted Zone with a chosen ID (#447)
  • reload the browser for a mounted directory (#446)
  • reload the browser for a watched template (#459)
  • run Cognito Lambda triggers on sign-in (#450)
  • run the Cognito sign-up Lambda triggers (#462)
  • sign up to a simulated Cognito user pool (#443)
  • skip an unmodelled Route53 record type (#456)
  • store MX, SRV, CAA and PTR Route53 records (#444)
  • transform a template file as it is read (#445)
  • update a simulated Cognito app client (#455)
  • update a simulated Cognito user pool (#457)

Documenting Yulin v1.20.16