Changelog
0.10.0b6 (2026-MM-DD)
Bug Fixes
- Subscription parenting.
TopicSubscription,TopicQueueSubscription,QueueSubscription,DynamoSubscription, andBucketNotifySubscriptionare now parented under their owningTopic/Queue/DynamoTable/Bucket, so they nest in the resource tree and deploy output instead of sitting at the stack root. Root-stack aliases migrate existing stacks in place β no replacements. Subscription constructors also accept a keyword-onlyparent, matchingFunction.
Breaking Changes
Apicomponent (AWS API Gateway v1) is renamed toRestApi. Caution: This change will affect existing deployments. Users with a custom domain should expect the update to fail on the duplicate domain: remove the custom domain first (by settingcustom_domain=Noneand redeploy), then re-add it and deploy again. For users without a custom domain, the update should succeed without issues, but theinvoke_urlwill change on redeploy. This behavior is expected as Stelvio will remove existing API and recreate it.
β REST API Guide
API Gateway v2 (HTTP API) Support
- Stelvio now supports AWS API Gateway v2 (HTTP API) with the new
HttpApicomponent. It provides a simpler, faster, and cheaper alternative to the existingRestApicomponent.
β HTTP API Guide
Dev Mode Enhancements
Improved error handling and debugging in stlv dev: no longer silently returns None when the handler file is missing or the handler function name doesn't exist; sanitizing underscores as first character in app names.
VPC
New Vpc component for Amazon VPC networking. Creates a /16 VPC with an internet gateway and three subnet tiers β public, private, and isolated β each with one subnet and its own route table per availability zone. Optional managed NAT gateways give private subnets internet access β one per AZ (default) or a single shared gateway; optionally bring your own Elastic IPs via allocation IDs. Choose availability zones by count or by name.
β VPC Guide
Component Customization
- Customization values can now be callables that receive the resource's props and return modified props, enabling dynamic customization based on component properties. Callables give full controlβthey receive component-level values and can decide how to merge them.
- Global
customizedicts now act as defaults, not overrides. Component-level values take precedence over global dict defaults. For example, with a globalmemory=512for all functions,Function("my-fn", handler="...", memory=1024)deploys with1024. (This precedence rule applies to dicts; callable customizers receive all values and decide their own precedence.)
0.9.0b5 (2026-04-13)
Cognito User Pools & Identity Pools
New UserPool and IdentityPool components for user authentication with Amazon Cognito. Supports email/phone sign-in, app clients, social login providers, Lambda triggers, MFA, password policies, and SES email integration β with automatic IAM permission wiring via links. IdentityPool provides federated identities with authenticated and unauthenticated role management.
β Cognito Guide
CLI
- Redesign CLI output: component-grouped display with nested trees, property diffs, and data-loss replacement warnings for
diff,deploy,refresh, anddestroy. - Add
--jsonsummaries for all commands and--streamNDJSON output fordeployanddestroy. - Redesign
stlv outputsto show component URLs and user-defined exports separately. - Add
export_outputhelper (from stelvio import export_output) for user-defined stack exports. - Add
--outputsflag tostlv state listfor debugging raw Pulumi outputs per resource. - Add structured CLI exit codes. Require explicit environment in CI.
Breaking Changes
- Automatic stack exports removed. Components no longer call
pulumi.export()automatically (e.g.,function_api_arn,queue_orders_url). If you read stack outputs in scripts or CI, useexport_output()in yourstlv_app.pyto explicitly export the values you need. Component URLs (Api, AppSync, etc.) are still shown instlv outputsviaregister_outputs.
Python 3.14 Support
Stelvio now supports Python 3.14.
Default App Config
@app.config is now optional. If omitted, Stelvio uses StelvioAppConfig() with default values. Add @app.config only when you need to customize AWS settings, environments, tags, DNS, or component customizations.
β StelvioApp Guide
0.8.0b4 (2026-03-14)
AppSync
Stelvio now offers an AppSync component to manage GraphQL APIs with AWS AppSync.
β AppSync Guide
Tagging
Stelvio now supports tagging AWS resources at two levels:
- Global tags in
StelvioAppConfigapply to all AWS resources through provider default tags - Per-component tags let you override or extend tags for specific components
Precedence: component > global > auto-tags (stelvio:app, stelvio:env)
β Tagging Guide
Internals
- Components are now Pulumi
ComponentResourcenodes with proper parent-child ownership in the resource tree
Breaking Changes
customizeis now a keyword-only argument on all component constructors
0.7.2b3 (2026-02-28)
This is a bug-fix release.
Bug Fixes
- Fix Route53 DNS adapter returning incorrect record value, which broke DNS validation when using Route53 as DNS provider
- Fix FIFO queue subscribe creating invalid Lambda function names when queue name contains dots
Breaking Changes
- Email component output keys renamed: Output keys now follow the same
{type}_{name}_{field}underscore convention as all other components. If you read Pulumi outputs from the Email component, update your references (e.g.notifications-ses-identity-arnβemail_notifications_ses_identity_arn). Note: auto-exported component outputs were later removed entirely in 0.8.0b5; useexport_outputfor custom values.
0.7.1b2 (2026-02-20)
This is a bug-fix release.
DNS & Custom domain support
- Fix a bug where
stelvio.aws.acm.AcmValidatedDomainwas not properly creating the validation record inus-east-1region, which is required for Cloudfront distributions.
0.7.0b1 (2026-01-31)
Queues
Stelvio now supports a Queue component to work with SQS Queues.
β Queues Guide
SNS Topics
New Topic component for pub/sub messaging with Amazon SNS. Supports standard and FIFO topics, Lambda and SQS subscriptions, and filter policies for message routing.
β SNS Topics Guide
Email Sending
Stelvio now offers an Email component to send emails using Amazon SES.
β Email Guide
Scheduled Tasks with Cron
New Cron component for running Lambda functions on a schedule using EventBridge Rules. Supports rate expressions (rate(1 hour)) and cron expressions (cron(0 2 * * ? *)), with options for custom payloads and resource linking.
β Cron Guide
Function-to-Function Linking
Functions can now link to other functions, enabling Lambda-to-Lambda invocation. When you link a function to another, Stelvio automatically grants lambda:InvokeFunction permission and provides function_arn and function_name via the generated Resources object.
Bucket Notifications
Stelvio supports Bucket notification events. When an object in a bucket is created, modified, or deleted, you can notify a Queue, invoke a Lambda function or publish to an SNS topic.
β Buckets Guide
Pulumi Resource Customization
This version allows overriding any underlying Pulumi resource property using the customize parameter, e.g.:
bucket = Bucket("my-bucket", customize={"bucket": {"force_destroy": True}})
Full Payload Support in Dev Mode
Dev mode now supports the same payload limits as Lambda: 6 MB (sync) and 1 MB (async).
0.6.1a9 (2025-12-30)
This is a bug-fix release.
- Fix import handling for locally executed Lambda functions (dev mode)
- Fix environment variables for locally executed Lambda functions (dev mode)
0.6.0a8 (2025-12-25)
We've been busy this holiday season! Here's our Christmas release π
Dev Mode (stlv dev) π
Run your Lambda code locally while everything else stays in AWS:
stlv dev
Edit your function, hit refresh, see the result. No re-deploy, no waiting.
- Instant code changes - just save and refresh
print()and exceptions appear right in your terminal- Attach your favorite debugger
- Same API Gateway URL, same Function URLs - everything just works
β Dev Mode Guide
S3 State Sync
Stelvio now stores infrastructure state in S3, making it ready for teams:
- Shared state - Multiple developers work on the same app without file syncing
- Locking - Concurrent deployments are blocked to prevent conflicts
- Crash recovery - State saves continuously; interrupted deploys resume cleanly
- Operation history - Track deployments across your team
State is stored in S3 bucket automatically. No configuration needed.
CloudFront Router
New Router component for CloudFront-based routing with multiple origins - route different paths to API Gateway, Lambda Function URLs, or other backends.
Lambda Function URLs
Direct HTTP access to Lambda functions:
my_function = Function("my-func", handler="handler.main", url="public")
Other Improvements
- Cognito scopes - OAuth scope validation on API Gateway routes
- Simplified DynamoDB subscriptions - Cleaner
subscribe()API - AWS profile/region - Properly respects system settings
Notes
Auto-generated routing for multiple handlers in the same file has been removed. Routes now create separate Lambda functions. To share a Lambda, use an explicit Function instance.
0.5.0a7 (2025-10-31)
With this release, Stelvio gets:
- a S3StaticWebsite component for S3 static website hosting with CloudFront CDN and optional custom domain support
- support for DynamoDB streams and subscriptions.
- support for Authorizers and CORS for
Api
Static Website Hosting with S3 and CloudFront
- Added
stelvio.aws.s3.S3StaticWebsitefor managing S3 buckets for static website hosting with CloudFront CDN and optional custom domain support
DynamoDB Streams
- Added
streamproperty andsubscribemethod to theDynamoTablecomponent so you can easily enable streams and add lambda that listens to the changes in the table.
Api gateway authorizers
- Added
add_token_authorizer,add_request_authorizerandadd_cognito_authorizerso you can add different authorizers. - Added
default_authproperty to set default authorizers for all endpoints and methods - Added
authparam to theroutemethod to set authorizer on per route basis.
Api gateway CORS
- Added
CorsConfigandCorsConfigDictclasses that can be used to pass to the newcorsparam ofApiand its config classes(ApiConfigandApiConfigDict) to configure cors settings of your Api gateway.
0.4.0a6 (2025-09-05)
With this release, S3 buckets, custom domains (including Cloudflare) for ApiGateway and DynamoDB Indexes are supported.
DNS & Custom domain support
- Added
stelvio.aws.route53.Route53Dnsfor managing DNS records in AWS Route 53 - Added
stelvio.cloudflare.dns.CloudflareDnsfor managing DNS records in Cloudflare - Added
stelvio.aws.acm.AcmValidatedDomainfor managing TLS certificates for custom domains in AWS - Stelvio now automatically creates and validates TLS certificates for custom domains
S3 Bucket Support
- Added
stelvio.aws.s3.Bucketfor managing S3 buckets
DynamoDb Indexes Support
- Added support for DynamoDB local and global indexes.
Internal improvements & Fixes
- better docs
DynamoTableConfig- fix so now we can have same routes in different API Gateways
- fix to make sure generated roles and policy names with within AWS limits
- fixed flaky tests
- properly handling API Gateway account and role and correctly displaying in CLI
0.3.0a5 (2025-07-14)
π Major Release: Complete CLI Experience
This release transforms Stelvio from a library into a complete development platform with a dedicated CLI.
Stelvio CLI (stlv command)
stlv init- Initialize new projects with interactive AWS setupstlv deploy- Deploy with real-time progress displaystlv diff- Preview changes before deployingstlv destroy- Clean up resources safelystlv refresh- Sync state with actual AWS resourcesstlv version- Check your Stelvio version
Automatic Pulumi Management
- Zero-setup deployment - Pulumi installed automatically
- No more manual Pulumi configuration or project setup
Environments
- Personal environments (defaults to your username)
- Shared environments for team collaboration
- Environment-specific resource naming and isolation
Automatic Passphrase Management
- Generates and stores passphrases in AWS Parameter Store
- No more manual passphrase handling
Rich Console Output π¨
- Color-coded operations (green=create, yellow=update, red=delete)
- Real-time deployment progress with operation timing
- Resource grouping and operation summaries
- Optional
--show-unchangedflag for detailed views
New StelvioApp Architecture
- Clean decorator-based configuration with
@app.configand@app.run
Consistent Resource Naming
- All resources get
{app}-{env}-{name}naming pattern - Prevents resource collisions across different deployments
Enhanced API Gateway Support
- Fixed multiple environment deployment issues
- Handles existing CloudWatch roles correctly
π Bug Fixes & Improvements
- Better error messages and debugging information
- Improved logging system
- Enhanced confirmation prompts for destructive operations
0.2.0a4 (2025-05-14)
- Lambda Function dependencies
- Lambda Layers
- More tests for faster future progress
0.1.0a2 (2025-02-14)
- Maintenance release
- Fixed bug when route couldn't be created if it had just default config
- Added better checks so Stelvio informs you if there's route conflicts
- Added tests
0.1.0a1 (2025-01-31)
- Initial release
-
Very basic support for:
- AWS Lambda
- Dynamo DB Table
- API Gateway