Releases: asgardeo/thunder
Thunder v0.16.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
What's Changed
⚠️ Breaking Changes
- Improve flow definitions and execution API request/responses by @ThaminduDilshan in #920
- Define a generic START node for all flows by @ThaminduDilshan in #922
- Add dedicated start/end nodes and remove inferred executors by @ThaminduDilshan in #929
- Integrate role permission with resource definition by @senthalan in #944
- Remove legacy flow mgt and migrate default flow definitions by @ThaminduDilshan in #961
- Change Immutable resource directory by @rajithacharith in #970
- Introduce an executor
modeto allow two path execution by @ThaminduDilshan in #984
🚀 Features
- Implement login flow builder UI by @DonOmalVindula in #918
- Add the new flow management implementation by @ThaminduDilshan in #934
- Add initial i18n framework by @ThumulaPerera in #940
✨ Improvements
- Add meta to flow definitions and introduce verbose flag by @ThaminduDilshan in #926
- Refactor immutable resources code by @rajithacharith in #928
- Allow basic auth executor to be used with any attribute by @ThaminduDilshan in #943
- Add layout information to the flow definition by @ThaminduDilshan in #946
- Introduce immutable handle to the flow management service by @ThaminduDilshan in #956
- Address Windows PowerShell Compatibility issues by @warnakulasuriya-fds-e23 in #951
- Introduce token issuance observability and refactor authentication events by @sahandilshan in #947
- Add immutable config support for OU by @rajithacharith in #953
- Use
componentmetadata fromFlowsAPI in Thunder Gate by @brionmario in #966 - Composite store support for OU by @rajithacharith in #960
- Reading deployment secrets from environment variables and file objects by @hwupathum in #937
- Add immutable resource support to flow graphs by @rajithacharith in #975
- Allow provisioning executor to perform group and role assignment by @senthalan in #979
- UX improvements to flow-builder UI by @DonOmalVindula in #978
- Update flow UI definitions by @DonOmalVindula in #988
- Add default prefix to bootstrap flow definitions by @ThaminduDilshan in #994
- Fix issues in flow export function by @rajithacharith in #991
- Improvements to Flow Builder UI by @DonOmalVindula in #995
- Integrate Branding API in Gate by @brionmario in #990
- Update validation notification styling by @DonOmalVindula in #1001
- Update notification-senders options by @thiva-k in #1000
- Add autolayout for flows without positioning data by @DonOmalVindula in #1002
- Add comprehensive guide for observability with analytics dashboard by @sahandilshan in #999
- Add support for showing React SDK integration guides by @brionmario in #1004
- Add glob-pattern-based public path matching by @ThumulaPerera in #981
- Improve layout of the flow builder by @DonOmalVindula in #1006
- Update default flow input types by @ThaminduDilshan in #1010
🐛 Bug Fixes
- Update branding resolve API CORS by @thiva-k in #993
- Fix vanilla sample application by @ThaminduDilshan in #1005
- Fix system token generation in readme to match flow execution changes by @darshanasbg in #1017
- Remove auth_flow_graph_id for the Client Credential App by @darshanasbg in #1018
Full Changelog: v0.15.0...v0.16.0
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download the 0.16.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.16.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.16.0-macos-arm64.zip macOS x64 (Intel) thunder-0.16.0-macos-x64.zip Linux x64 thunder-0.16.0-linux-x64.zip Linux ARM64 thunder-0.16.0-linux-arm64.zip Windows x64 thunder-0.16.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.16.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.16.0-<os>-<arch>/
-
Setup the product
You need to setup the server with the initial configurations and data before starting the server for the first time.
If you are using a Linux or macOS machine:
./setup.sh
If you are using a Windows machine:
.\setup.ps1
Note the id of the sample app indicated with the log line
[INFO] Sample App ID: <id>. You'll need it for the sample app configuration. -
Start the product
If you are using a Linux or macOS machine:
./start.sh
If you are using a Windows machine:
.\start.ps1
The product will start on
https://localhost:8090.
Option 2: Run with Docker Compose
Follow these steps to run WSO2 Thunder using Docker Compose.
-
Download the Docker Compose file
Download the
docker-compose.ymlfile using the following command:curl -o docker-compose.yml https://raw.githubusercontent.com/asgardeo/thunder/v0.16.0/install/quick-start/docker-compose.yml
-
Start Thunder
Run the following command in the directory where you downloaded the
docker-compose.ymlfile:docker compose up
This will automatically:
- Initialize the database
- Run the setup process
- Start the Thunder server
Note the id of the sample app indicated with the log line
[INFO] Sample App ID: <id>in the setup logs. You'll need it for the sample app configuration.The product will start on
https://localhost:8090.
Try Out the Product
Try out the Developer Console
Follow these steps to access the Developer Console:
-
Open your browser and navigate to https://localhost:8090/develop.
-
Log in using the admin credentials created during the initial data setup (
admin/admin).
Try Out with the Sample App
Thunder provides two sample applications to help you get started quickly:
- React Vanilla Sample — Sample React application demonstrating direct API integration without external SDKs. Supports Native Flow API or Standard OAuth/OIDC.
- React SDK Sample — Sample React application demonstrating SDK-based integration using
@asgardeo/reactfor OAuth 2.0/OIDC authentication.
React Vanilla Sample
-
Download the sample
OS Architecture Download Link macOS ARM64 (Apple Silicon) [sample-app-react-vanilla-0.16.0-macos-arm64.zip](https://github.com/asgardeo/thunder/rele...
Thunder v0.15.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
What's Changed
✨ Improvements
- Move AuthenticationContext from context to security by @senthalan in #912
- Buffer encode HTTP responses before sending headers by @JeethJJ in #921
- Add
application_templateto application api by @thiva-k in #924 - Remove OAuth jargon from Application Onboarding by @brionmario in #914
- Add dynamic token issuer resolution by @thiva-k in #917
- Derive permission for Resources and Actions by @senthalan in #909
- Add refresh token expiry time config by @thiva-k in #916
- Add fsGroup and runAsGroup support by @ayeshajay in #933
🐛 Bug Fixes
- Fix db type issue and add Query method to Tx by @ThaminduDilshan in #936
Full Changelog: v0.14.0...v0.15.0
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download the 0.15.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.15.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.15.0-macos-arm64.zip macOS x64 (Intel) thunder-0.15.0-macos-x64.zip Linux x64 thunder-0.15.0-linux-x64.zip Linux ARM64 thunder-0.15.0-linux-arm64.zip Windows x64 thunder-0.15.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.15.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.15.0-<os>-<arch>/
-
Setup the product
You need to setup the server with the initial configurations and data before starting the server for the first time.
If you are using a Linux or macOS machine:
./setup.sh
If you are using a Windows machine:
.\setup.ps1
Note the id of the sample app indicated with the log line
[INFO] Sample App ID: <id>. You'll need it for the sample app configuration. -
Start the product
If you are using a Linux or macOS machine:
./start.sh
If you are using a Windows machine:
.\start.ps1
The product will start on
https://localhost:8090.
Option 2: Run with Docker Compose
Follow these steps to run WSO2 Thunder using Docker Compose.
-
Download the Docker Compose file
Download the
docker-compose.ymlfile using the following command:curl -o docker-compose.yml https://raw.githubusercontent.com/asgardeo/thunder/v0.15.0/install/quick-start/docker-compose.yml
-
Start Thunder
Run the following command in the directory where you downloaded the
docker-compose.ymlfile:docker compose up
This will automatically:
- Initialize the database
- Run the setup process
- Start the Thunder server
Note the id of the sample app indicated with the log line
[INFO] Sample App ID: <id>in the setup logs. You'll need it for the sample app configuration.The product will start on
https://localhost:8090.
Try Out the Product
Try out the Developer Console
Follow these steps to access the Developer Console:
-
Open your browser and navigate to https://localhost:8090/develop.
-
Log in using the admin credentials created during the initial data setup (
admin/admin).
Try Out with the Sample App
Thunder provides two sample applications to help you get started quickly:
- React Vanilla Sample — Sample React application demonstrating direct API integration without external SDKs. Supports Native Flow API or Standard OAuth/OIDC.
- React SDK Sample — Sample React application demonstrating SDK-based integration using
@asgardeo/reactfor OAuth 2.0/OIDC authentication.
React Vanilla Sample
-
Download the sample
OS Architecture Download Link macOS ARM64 (Apple Silicon) sample-app-react-vanilla-0.15.0-macos-arm64.zip macOS x64 (Intel) sample-app-react-vanilla-0.15.0-macos-x64.zip Linux x64 sample-app-react-vanilla-0.15.0-linux-x64.zip Linux ARM64 sample-app-react-vanilla-0.15.0-linux-arm64.zip Windows x64 sample-app-react-vanilla-0.15.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-react-vanilla-0.15.0-<os>-<arch>.zip cd sample-app-react-vanilla-0.15.0-<os>-<arch>/
-
Configure the sample
Open
app/runtime.jsonand set theapplicationIDto the sample app ID generated during "Setup the product":{ "applicationID": "{your-application-id}" } -
Start the sample
./start.sh
Open your browser and navigate to https://localhost:3000 to access the sample app.
📖 Refer to the
README.mdinside the extracted sample app for detailed configuration options including OAuth redirect-based login.
React SDK Sample
-
Download the sample
OS Architecture Download Link macOS ARM64 (Apple Silicon) sample-app-react-sdk-0.15.0-macos-arm64.zip macOS x64 (Intel) sample-app-react-sdk-0.15.0-macos-x64.zip Linux x64 sample-app-react-sdk-0.15.0-linux-x64.zip Linux ARM64 sample-app-react-sdk-0.15.0-linux-arm64.zip Windows x64 sample-app-react-sdk-0.15.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-react-sdk-0.15.0-<os>-<arch>.zip cd sample-app-react-sdk-0.15.0-<os>-<arch>/
-
Start the sample
./start.sh
Open your browser and navigate to https://localhost:3000 to access the sample app.
📖 Refer to the
README.mdinside the extracted sample app for detailed configuration and troubleshooting.
Self Register and Login (React Vanilla Sample)
The React Vanilla sample supports user self-registration and login:
-
Open https://localhost:3000 and click "Sign up" to register a new user.
-
After registration, use the same credentials to "Sign In".
-
Upon successful login, you'll see the home page with your access token.
Try Out Client Credentials Flow
To try out the Client Credentials flow, you first need to obtain a token to access the System APIs of Thunder. Follow these steps:
Replace `<applicatio...
Thunder v0.14.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
What's Changed
⚠️ Breaking Changes
- Add multi deployment support for data layer by @ThumulaPerera in #836
- Improvement to the observability package by @sahandilshan in #717
- Remove support for scripts in bootstrap/custom by @senthalan in #809
- Update public url and add support to override app configs using helm by @ayeshajay in #874
- Add PKCE validation for public clients by @thiva-k in #863
- Add support for indexed user attributes by @ThumulaPerera in #892
- Improve IDP property/ error handling in auth services by @ThaminduDilshan in #902
- Support password hashing with customizable params by @hwupathum in #785
🚀 Features
- Add Resource API definition and Implementation by @senthalan in #666
✨ Improvements
- Add WriteSuccessResponse/WriteErrorResponse helpers by @JeethJJ in #845
- Support reading port from deployment.yaml in build script by @rajithacharith in #835
- Add persistence layer for Sqlite databases by @ayeshajay in #880
- Add http server support for helm chart by @ayeshajay in #883
- Bump react, @wso2/oxygen-ui and @asgardeo/react versions to latest by @DonOmalVindula in #885
- Remove depricated nginx annotations by @ayeshajay in #888
- Add branding resolve implementation by @thiva-k in #881
- Update ingress and bootstrap configurations by @ayeshajay in #889
- Support immutable configuraitons for Identity Providers by @rajithacharith in #803
- Add authorization request store by @thiva-k in #873
- Uses spans and traces properly with OpenTelemetry by @sahandilshan in #877
- Bump SDKs by @thiva-k in #895
- Add config for auth code expiry time by @thiva-k in #899
- Improve IDP property validations/ handling default properties by @ThaminduDilshan in #900
- Add immutable config support for notification senders and user schemas by @rajithacharith in #884
- Comprehensive cleanup to use WriteSuccessResponse and WriteErrorResponse by @JeethJJ in #878
New Contributors
Full Changelog: v0.13.0...v0.14.0
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download the 0.14.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.14.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.14.0-macos-arm64.zip macOS x64 (Intel) thunder-0.14.0-macos-x64.zip Linux x64 thunder-0.14.0-linux-x64.zip Linux ARM64 thunder-0.14.0-linux-arm64.zip Windows x64 thunder-0.14.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.14.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.14.0-<os>-<arch>/
-
Setup the product
You need to setup the server with the initial configurations and data before starting the server for the first time.
If you are using a Linux or macOS machine:
./setup.sh
If you are using a Windows machine:
.\setup.ps1
Note the id of the sample app indicated with the log line
[INFO] Sample App ID: <id>. You'll need it for the sample app configuration. -
Start the product
If you are using a Linux or macOS machine:
./start.sh
If you are using a Windows machine:
.\start.ps1
The product will start on
https://localhost:8090.
Option 2: Run with Docker Compose
Follow these steps to run WSO2 Thunder using Docker Compose.
-
Download the Docker Compose file
Download the
docker-compose.ymlfile using the following command:curl -o docker-compose.yml https://raw.githubusercontent.com/asgardeo/thunder/v0.14.0/install/quick-start/docker-compose.yml
-
Start Thunder
Run the following command in the directory where you downloaded the
docker-compose.ymlfile:docker compose up
This will automatically:
- Initialize the database
- Run the setup process
- Start the Thunder server
Note the id of the sample app indicated with the log line
[INFO] Sample App ID: <id>in the setup logs. You'll need it for the sample app configuration.The product will start on
https://localhost:8090.
Try Out the Product
Try out the Developer Console
Follow these steps to access the Developer Console:
-
Open your browser and navigate to https://localhost:8090/develop.
-
Log in using the admin credentials created during the initial data setup (
admin/admin).
Try Out with the Sample App
Thunder provides two sample applications to help you get started quickly:
- React Vanilla Sample — Sample React application demonstrating direct API integration without external SDKs. Supports Native Flow API or Standard OAuth/OIDC.
- React SDK Sample — Sample React application demonstrating SDK-based integration using
@asgardeo/reactfor OAuth 2.0/OIDC authentication.
React Vanilla Sample
-
Download the sample
OS Architecture Download Link macOS ARM64 (Apple Silicon) sample-app-react-vanilla-0.14.0-macos-arm64.zip macOS x64 (Intel) sample-app-react-vanilla-0.14.0-macos-x64.zip Linux x64 sample-app-react-vanilla-0.14.0-linux-x64.zip Linux ARM64 sample-app-react-vanilla-0.14.0-linux-arm64.zip Windows x64 sample-app-react-vanilla-0.14.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-react-vanilla-0.14.0-<os>-<arch>.zip cd sample-app-react-vanilla-0.14.0-<os>-<arch>/
-
Configure the sample
Open
app/runtime.jsonand set theapplicationIDto the sample app ID generated during "Setup the product":{ "applicationID": "{your-application-id}" } -
Start the sample
./start.sh
Open your browser and navigate to https://localhost:3000 to access the sample app.
📖 Refer to the
README.mdinside the extracted sample app for detailed configuration options including OAuth redirect-based login.
React SDK Sample
-
Download the sample
OS Architecture Download Link macOS ARM64 (Apple Silicon) [sample-app-react-sdk-0.14.0-macos-arm64.zip](https://github.com/asgardeo/th...
Thunder v0.13.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
What's Changed
⚠️ Breaking Changes
- Introduce datasource for user data by @warnakulasuriya-fds-e23 in #677
- Improvements to the authorization code flow by @ThaminduDilshan in #781
🚀 Features
- Add support to exchange auth assertions to access tokens by @thiva-k in #718
- Add support for basic conditional node execution by @ThaminduDilshan in #849
- Introduce user self service API by @darshanasbg in #826
✨ Improvements
- Move the immutable resources configs to default.json by @rajithacharith in #796
- Refactor idp/ cert packages by @ThaminduDilshan in #798
- Improve application onboarding flow in Develop app by @thiva-k in #808
- Allow provisioning email address for federated users by @ThaminduDilshan in #823
- Add React SDK based application to samples by @DonOmalVindula in #824
- [Develop] Enable username/password login by default by @ThaminduDilshan in #825
- Add OAuth settings to application onboarding by @thiva-k in #830
- Bump @asgardeo/react version to 0.6.8 by @thiva-k in #831
- Improve global styling + bump oxygen-ui version by @jeradrutnam in #829
- Add support for user provisioning in external IDP OAuth/OIDC authentication flows by @thiva-k in #837
- Remove intermediate error message during the social login redirect by @jeradrutnam in #840
- Remove array and object type property tests from CreateUserTypePage by @DonOmalVindula in #842
- Remove sign-up link from sign-in page if self-registration is disabled by @jeradrutnam in #843
- Fix divider rendering in gate app by @thiva-k in #850
- Improve existing user validations for the federated auth executors by @ThaminduDilshan in #853
- Bump @asgardeo/react to version 0.6.10 by @DonOmalVindula in #858
- Add react-sdk sample to release pipeline by @DonOmalVindula in #828
- Add common config to indicate gate app path by @darshanasbg in #839
- Bump @asgardeo/react to version 0.6.11 by @thiva-k in #860
- Improve client configs in bootstrap scripts by @thiva-k in #864
- Add proper display names to org creation page by updating to @asgardeo/react to version 0.6.12 by @thiva-k in #867
- Remove ou description from the ou executor default inputs by @ThaminduDilshan in #866
🐛 Bug Fixes
- Fix Error while decrypting IDP properties by @warnakulasuriya-fds-e23 in #723
- Change Issuer as Refresh Token audience by @Thumimku in #819
- Fix SQLite Database Locking Issues Under Concurrent Load by @rajithacharith in #846
- Template http_only server config in helm charts by @mevan-karu in #855
- Fix Develop app menu overflow by @thiva-k in #856
New Contributors
- @warnakulasuriya-fds-e23 made their first contribution in #723
- @Thumimku made their first contribution in #819
- @mevan-karu made their first contribution in #855
Full Changelog: v0.12.0...v0.13.0
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download the 0.13.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.13.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.13.0-macos-arm64.zip macOS x64 (Intel) thunder-0.13.0-macos-x64.zip Linux x64 thunder-0.13.0-linux-x64.zip Linux ARM64 thunder-0.13.0-linux-arm64.zip Windows x64 thunder-0.13.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.13.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.13.0-<os>-<arch>/
-
Setup the product
You need to setup the server with the initial configurations and data before starting the server for the first time.
If you are using a Linux or macOS machine:
./setup.sh
If you are using a Windows machine:
.\setup.ps1
Note the id of the sample app indicated with the log line
[INFO] Sample App ID: <id>. You'll need it for the sample app configuration. -
Start the product
If you are using a Linux or macOS machine:
./start.sh
If you are using a Windows machine:
.\start.ps1
The product will start on
https://localhost:8090.
Option 2: Run with Docker
Follow these steps to run WSO2 Thunder using Docker.
-
Pull the Docker image
docker pull ghcr.io/asgardeo/thunder:0.13.0
-
Setup the product
You need to setup the server with the initial configurations and data before starting the server for the first time.
docker run -it --rm \ ghcr.io/asgardeo/thunder:0.13.0 \ ./setup.shNote the id of the sample app indicated with the log line
[INFO] Sample App ID: <id>. You'll need it for the sample app configuration.[!NOTE]
This will shut down the container after the setup is complete. You need to start the container again using the command in step 3. If you are using sqlite as the database, then you need to mount a volume to persist the database file and share it between the setup and server run containers. -
Run the container
docker run --rm \ -p 8090:8090 \ ghcr.io/asgardeo/thunder:0.13.0
Optionally if you want to modify the server configurations, you can mount a custom
deployment.yamlfile. Create adeployment.yamlfile in your working directory similar to the deployment.yaml, and mount it as below:docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ ghcr.io/asgardeo/thunder:0.13.0Optionally if you want to use custom configurations or certificates, you can mount them as follows:
docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ -v $(pwd)/certs/server.cert:/opt/thunder/repository/resources/security/server.cert \ -v $(pwd)/certs/server.key:/opt/thunder/repository/resources/security/server.key \ ghcr.io/asgardeo/thunder:0.13.0
Try Out the Product
Try out the Developer Console
Follow these steps to access the Developer Console:
-
Open your browser and navigate to https://localhost:8090/develop.
-
Log in using the admin credentials created during the initial data setup (
admin/admin).
Try Out with the Sample App
Thunder provides two sample applications to help you get started quickly:
- React Vanilla Sample — Sample React application demonstrating direct API integration without exte...
Thunder v0.12.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
What's Changed
⚠️ Breaking Changes
- Use
idpIdin flow graphs instead ofidpNameby @ThaminduDilshan in #646 - [Refactoring 1] Improve flow engine and executors by @ThaminduDilshan in #685
- Securing Thunder APIs by @senthalan in #708
- Improve application token resolve logic by @thiva-k in #751
- Improve the Thunder bootstrap experience by @senthalan in #744
- Improve user schema to indicate which ou these users are getting created and whether they support self registration by @darshanasbg in #756
- Change
Gateapp base path (/signin->/gate) & AddSignUpsupport by @brionmario in #762 - Add user type resolver to dynamically resolve userType and ouId in registration flows by @ThaminduDilshan in #759
- Enforce validation of the ou id of the users by @darshanasbg in #774
🚀 Features
- Add http request executor by @ThaminduDilshan in #743
- Introduce branding support for applications by @thiva-k in #737
- Introduce Application Onboarding & Listing by @brionmario in #752
- Add OIDC userinfo endpoint support by @thiva-k in #711
✨ Improvements
- UX improvements to the user creation flow by @DonOmalVindula in #661
- Refactor authentication services to use di pattern by @ThaminduDilshan in #673
- Improvements to the observability configs by @sahandilshan in #667
- Add i18n UI package to handle translations in apps by @DonOmalVindula in #663
- Refactor message notification package by @ThaminduDilshan in #688
- Add collapsible sidebar for thunder-develop app by @DonOmalVindula in #691
- Refactor OAuth and introduce token service by @thiva-k in #671
- Improve apps visual appearance by @jeradrutnam in #668
- Add OpenChoreo deployment artifacts by @ayeshajay in #707
- [Refactoring 2] Improve flow services and executors by @ThaminduDilshan in #724
- Refactor crypto package and add sign verify methods by @hwupathum in #676
- Automate thunder helm chart release by @ayeshajay in #720
- Add OAuth client authentication middleware by @thiva-k in #706
- Refactor API hooks in thunder-develop app to use Asgardeo's HTTP client by @DonOmalVindula in #730
- Allow storing flexible node properties by @ThaminduDilshan in #736
- Add applicationld in the gate app redirection by @senthalan in #740
- Update sidepanel styling and icons with test coverage improvements by @DonOmalVindula in #741
- Add allowed user types to application by @thiva-k in #738
- Add ou details to the auth assertion by @ThaminduDilshan in #746
- Remove local ui packages and point to oxygen-ui by @jeradrutnam in #734
- Expose
logo_urlfrom Application Listing API by @brionmario in #742 - Update healthcheck path for security check by @senthalan in #755
- Add immutable config export support for applications by @rajithacharith in #719
- Improvement to start and setup scripts by @senthalan in #757
- Introduce service method to get user schema by name by @darshanasbg in #761
- Enforce OU validation in the user schema by @darshanasbg in #763
- Add error path as public by @senthalan in #765
- Enhance
Gateapp'sSignUpcomponent to supportSELECTinputs by @brionmario in #767 - Improve user-schema UIs to include OU ID & allowSelfRegistration details by @darshanasbg in #769
- Handle make run to setup thunder properly and fix middleware execution order by @senthalan in #770
- Add userType and ou details to the oauth tokens by @ThaminduDilshan in #773
- Disable application view button by @senthalan in #775
- Refactor db provider to have dedicated db client methods by @darshanasbg in #778
- Improve user type UIs to indicate OU name instead of OU ID by @darshanasbg in #779
- Improve docs to include token header in the system API calls by @senthalan in #782
- Improve apps UI styling by @jeradrutnam in #788
- Improve ou handle validation to restrict forward slash by @darshanasbg in #791
- FIx some UI sizing issues by @jeradrutnam in #792
🐛 Bug Fixes
- Fix incorrect
passwordfield type in Gate App by @brionmario in #727 - Fix setup scripts to include ou in user schema creation by @darshanasbg in #766
- Fix redirect based login in the sample app by @ThaminduDilshan in #771
- Fix create user ui to include correct ou by @darshanasbg in #776
- Improve setup process to create resources required to the Quickstart guide by @darshanasbg in #777
New Contributors
- @KaveeshaPiumini made their first contribution in #632
Full Changelog: v0.11.0...v0.12.0
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download the 0.12.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.12.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.12.0-macos-arm64.zip macOS x64 (Intel) thunder-0.12.0-macos-x64.zip Linux x64 thunder-0.12.0-linux-x64.zip Linux ARM64 thunder-0.12.0-linux-arm64.zip Windows x64 thunder-0.12.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.12.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.12.0-<os>-<arch>/
-
Setup the product
You need to setup the server with the initial configurations and data before starting the server for the first time.
If you are using a Linux or macOS machine:
./setup.sh
If you are using a Windows machine:
.\setup.ps1
Note the id of the sample app indicated with the log line
[INFO] Sample App ID: <id>. You'll need it for the sample app configuration. -
Start the product
If you are using a Linux or macOS machine:
./start.sh
If you are using a Windows machine:
.\start.ps1
The product will start on
https://localhost:8090.
Option 2: Run with Docker
Follow these steps to run WSO2 Thunde...
Thunder v0.11.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
What's Changed
⚠️ Breaking Changes
- Update token endpoint auth method by @thiva-k in #560
- Initiate login flow from oauth before redirecting to gate by @senthalan in #624
- Make user schema validation mandatory by @darshanasbg in #637
🚀 Features
- Onboard React based
Gate&Developsecured with@asgardeo/reactSDK by @brionmario in #584 - Implement user managment UI in thunder-develop application by @DonOmalVindula in #597
- Add support for generating auth assurance levels by @ThaminduDilshan in #565
- Introduce DCR support by @thiva-k in #571
- Modify auth executors to generate and add auth assurance by @ThaminduDilshan in #580
- Add OAuth/OIDC discovery endpoints by @thiva-k in #613
- Add immutable configuration support for Applications by @rajithacharith in #587
- Add ou creation executor and improve the provisioning flow by @ThaminduDilshan in #633
- Role management implementation by @senthalan in #555
- Add token exchange support by @thiva-k in #634
- Add initial observability component by @sahandilshan in #589
✨ Improvements
- Refactor DI pattern of oauth package by @senthalan in #520
- Refactor crypto and hash packages by @hwupathum in #568
- Role API definition by @senthalan in #552
- Add OAuth resource indicator support by @thiva-k in #604
- Refactor cert configuration initialization by @thiva-k in #598
- Add user type and ou to the flow assertion by @ThaminduDilshan in #621
- Refactor system cert service usage by @rajithacharith in #623
- Remove application service provider by @rajithacharith in #627
- RBAC support for flow engine and auth code flow by @senthalan in #641
- Improve UI theming by onboarding oxygen-ui dependency by @jeradrutnam in #647
🐛 Bug Fixes
- Fix PostgreSQL query issues by @ThaminduDilshan in #551
- Update default container image tag by @ayeshajay in #563
- Add certificate for JWT in HTTP mode by @thiva-k in #588
- Fix google login with flow execution by @ThaminduDilshan in #594
- Fix limit param validation in user schema listing by @darshanasbg in #636
- Update user api spec to reflect latest changes by @darshanasbg in #645
New Contributors
- @iff-sal made their first contribution in #506
- @ayeshajay made their first contribution in #563
Full Changelog: v0.10.0...v0.11.0
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download the 0.11.0 release of WSO2 Thunder and run it locally.
- Download the distribution from the 0.11.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | thunder-0.11.0-macos-arm64.zip |
| macOS | x64 (Intel) | thunder-0.11.0-macos-x64.zip |
| Linux | x64 | thunder-0.11.0-linux-x64.zip |
| Linux | ARM64 | thunder-0.11.0-linux-arm64.zip |
| Windows | x64 | thunder-0.11.0-win-x64.zip |
-
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.11.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.11.0-<os>-<arch>/
-
Start the product
Start the product using the following command:
If you are using a Linux or macOS machine:
bash start.sh --setup
If you are using a Windows machine:
.\start.ps1 --setup
Option 2: Run with Docker
Follow these steps to run WSO2 Thunder using Docker.
-
Pull the Docker image
docker pull ghcr.io/asgardeo/thunder:0.11.0
-
Run the container
docker run --rm \ -p 8090:8090 \ ghcr.io/asgardeo/thunder:0.11.0
Optionally if you want to modify the server configurations, you can mount a custom
deployment.yamlfile. Create adeployment.yamlfile in your working directory similar to the deployment.yaml, and mount it as below:docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ ghcr.io/asgardeo/thunder:0.11.0Optionally if you want to use custom configurations or certificates, you can mount them as follows:
docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ -v $(pwd)/certs/server.cert:/opt/thunder/repository/resources/security/server.cert \ -v $(pwd)/certs/server.key:/opt/thunder/repository/resources/security/server.key \ ghcr.io/asgardeo/thunder:0.11.0
Try Out the Product
Try out the Developer Console
To get started quickly, you can set up initial data including an admin user and the Develop application using the --setup flag when starting Thunder:
Linux/macOS:
bash start.sh --setupWindows (PowerShell):
.\start.ps1 --setupThis will:
- Create a user schema
- Create an admin user with credentials:
admin/admin - Create the Develop application for accessing the admin console
You can also run the setup script manually at any time:
Linux/macOS:
bash scripts/setup_initial_data.shWindows (PowerShell):
.\scripts\setup_initial_data.ps1After the setup is complete, follow these steps to access the Developer Console:
-
Open your browser and navigate to https://localhost:8090/develop.
-
Log in using the admin credentials created during the initial data setup (
admin/admin).
Try Out with the Sample App
To quickly get started with Thunder, you can use the sample app provided with the product. This guide demonstrates how to download and run the sample app, self register a user and try out login to the sample app.
Download and Run the Sample App
- Download the sample app from the 0.11.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | sample-app-0.11.0-macos-arm64.zip |
| macOS | x64 (Intel) | sample-app-0.11.0-macos-x64.zip |
| Linux | x64 | sample-app-0.11.0-linux-x64.zip |
| Linux | ARM64 | sample-app-0.11.0-linux-arm64.zip |
| Windows | x64 | sample-app-0.11.0-win-x64.zip |
-
Unzip and navigate to the sample app directory
unzip sample-app-0.11.0-<os>-<arch>.zip cd sample-app-0.11.0-<os>-<arch>/
3....
Thunder v0.10.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
🔀 What's Changed
⚠️ Breaking Changes
- Remove users/authenticate API #515 by @ThaminduDilshan
🚀 Features
- Add user credentials authenticate API and service/ Refactoring #480 by @ThaminduDilshan
- Introduce initial ID token support #521 by @thiva-k
- Embed Gate app to Thunder #540 by @brionmario
✨ Improvements
- Use correct error when retrieving flowContext #465 by @rajithacharith
- Change CORS to middleware pattern #464 by @senthalan
- Refactor encrypted property handling #466 by @thiva-k
- Handle server graceful shutdown #471 by @ThaminduDilshan
- Initial refactor for dependency injection #474 by @senthalan
- Improve pagination links in user list endpoint #489 by @darshanasbg
- Refactoring user error constants #490 by @darshanasbg
- Refactor DI pattern of userschema package #483 by @senthalan
- Refactor DI pattern of ou package #485 by @senthalan
- Refactor DI pattern of group package #486 by @senthalan
- Reuse credential authn service in basic auth executor #495 by @ThaminduDilshan
- Refactor DI pattern of user package #487 by @senthalan
- Add assertion generation to the authn service and APIs #499 by @ThaminduDilshan
- Add validation for public clients #492 by @thiva-k
- Refactor flowexec and flowmgt service to use DI #498 by @rajithacharith
- Refactor deployment structure #491 by @drsamitha
- Refactor application service to use DI #519 by @rajithacharith
- Refactor cert service to use DI #525 by @rajithacharith
- Add support to list groups from user api #488 by @darshanasbg
- Add support to retrieve user groups in OAuth tokens #542 by @ThaminduDilshan
🐛 Bug Fixes
- Add default timeouts to notification sender clients #467 by @ThaminduDilshan
- Remove escape character from the logs #530 by @sahandilshan
- Fix id token storage for apps #545 by @ThaminduDilshan
New Contributors
- @malinthaprasan made their first contribution in #454
- @drsamitha made their first contribution in #491
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download the 0.10.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.10.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.10.0-macos-arm64.zip macOS x64 (Intel) thunder-0.10.0-macos-x64.zip Linux x64 thunder-0.10.0-linux-x64.zip Linux ARM64 thunder-0.10.0-linux-arm64.zip Windows x64 thunder-0.10.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.10.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.10.0-<os>-<arch>/
-
Start the product
Start the product using the following command:
If you are using a Linux or macOS machine:
bash start.sh
If you are using a Windows machine:
.\start.ps1
Option 2: Run with Docker
Follow these steps to run WSO2 Thunder using Docker.
-
Pull the Docker image
docker pull ghcr.io/asgardeo/thunder:0.10.0
-
Run the container
docker run --rm \ -p 8090:8090 \ -p 9090:9090 \ ghcr.io/asgardeo/thunder:0.10.0
Optionally if you want to modify the server configurations, you can mount a custom
deployment.yamlfile. Create adeployment.yamlfile in your working directory similar to the deployment.yaml, and mount it as below:docker run --rm \ -p 8090:8090 \ -p 8090:9090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ ghcr.io/asgardeo/thunder:0.10.0Optionally if you want to use custom configurations or certificates, you can mount them as follows:
docker run --rm \ -p 8090:8090 \ -p 8090:9090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ -v $(pwd)/certs/server.cert:/opt/thunder/repository/resources/security/server.cert \ -v $(pwd)/certs/server.key:/opt/thunder/repository/resources/security/server.key \ ghcr.io/asgardeo/thunder:0.10.0
Try Out the Product
Try Out with the Sample App
To quickly get started with Thunder, you can use the sample app provided with the product. This guide demonstrates how to download and run the sample app, self register a user and try out login to the sample app.
Download and Run the Sample App
-
Download the sample app from the 0.10.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) sample-app-0.10.0-macos-arm64.zip macOS x64 (Intel) sample-app-0.10.0-macos-x64.zip Linux x64 sample-app-0.10.0-linux-x64.zip Linux ARM64 sample-app-0.10.0-linux-arm64.zip Windows x64 sample-app-0.10.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-0.10.0-<os>-<arch>.zip cd sample-app-0.10.0-<os>-<arch>/
-
Create required application for sample app in Thunder
Before using the sample app, you need to create an application in Thunder:
curl -kL -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost:8090/applications \ -d '{ "name": "Sample App", "description": "Sample application for testing", "url": "https://localhost:3000", "logo_url": "https://localhost:3000/logo.png", "auth_flow_graph_id": "auth_flow_config_basic", "registration_flow_graph_id": "registration_flow_config_basic", "is_registration_flow_enabled": true, "user_attributes": ["given_name","family_name","email","groups"], "inbound_auth_config": [{ "type": "oauth2", "config": { "client_id": "sample_app_client", "client_secret": "sample_app_secret", "redirect_uris": ["https://localhost:3000"], "grant_types": ["authorization_code", "client_credentials"], "response_types": ["code"], "token_endpoint_auth_methods": ["client_secret_basic", "client_secret_post"], "pkce_required": false, "public_client": false, "token": { "issuer": "thunder", "access_token": { "validity_period": 3600, "user_attributes": ["given_name","family_name","email","groups"] }, "id_token": { "validity_period": 3600, "user_attributes": ["given_name","family_name","email","groups"], "scope_claims": { "profile": ["name","given_name","family_name","picture"], "email": ["email","email_verified"], "phone": ["phone_number","phone_number_verified"], "group": ["groups"] } } } } }] }'
Note the
idfrom the response - you'll need it for the sample app configuration. -
Configure the sample app
Open the
runtime.jsonfile in the thunder-sample-app---/app directory and update the configurations:applicationID: Use the application ID from step 3flowEndpoint: The root endpoint for the flow execution API (...
Thunder v0.9.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
🔀 What's Changed
🚀 Features
- Add OTP send and verify API endpoints #416 by @ThaminduDilshan
- Introduce IDP type and add property validations #434 by @ThaminduDilshan
- Add federated IDP authentication API and service implementation #446 by @ThaminduDilshan
- Add SMS OTP authentication API and service implementation #450 by @ThaminduDilshan
- Introduce PKCE support #436 by @thiva-k
✨ Improvements
- Modify sms auth executor to reuse OTP service #417 by @ThaminduDilshan
- Add encryption to secret properties in identity providers and notification senders #420 by @thiva-k
- Add OAuth and Github auth core services #425 by @ThaminduDilshan
- Add OIDC and Google auth core services #428 by @ThaminduDilshan
- Refactor the IDP package/ service #433 by @ThaminduDilshan
- Refactor hashing logic to use new util methods #350 by @hwupathum
- Improve secret properties handling #447 by @thiva-k
- Add methods to verify jwt tokens without passing public key #451 by @ThaminduDilshan
- Improve OAuth app client ID and secret generation to align with OAuth 2.1 specifications with type-safe API #407 by @copilot
🐛 Bug Fixes
- Fix issue with encrypted properties in new auth services #430 by @ThaminduDilshan
- Update hash usage #437 by @thiva-k
- Add jwt verify methods and fix usages #440 by @ThaminduDilshan
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download the 0.9.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.9.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.9.0-macos-arm64.zip macOS x64 (Intel) thunder-0.9.0-macos-x64.zip Linux x64 thunder-0.9.0-linux-x64.zip Linux ARM64 thunder-0.9.0-linux-arm64.zip Windows x64 thunder-0.9.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.9.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.9.0-<os>-<arch>/
-
Start the product
Start the product using the following command:
If you are using a Linux or macOS machine:
bash start.sh
If you are using a Windows machine:
.\start.ps1
Option 2: Run with Docker
Follow these steps to run WSO2 Thunder using Docker.
-
Pull the Docker image
docker pull ghcr.io/asgardeo/thunder:0.9.0
-
Run the container
docker run --rm \ -p 8090:8090 \ ghcr.io/asgardeo/thunder:0.9.0
Optionally if you want to modify the server configurations, you can mount a custom
deployment.yamlfile. Create adeployment.yamlfile in your working directory similar to the deployment.yaml, and mount it as below:docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ ghcr.io/asgardeo/thunder:0.9.0Optionally if you want to use custom configurations or certificates, you can mount them as follows:
docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ -v $(pwd)/certs/server.cert:/opt/thunder/repository/resources/security/server.cert \ -v $(pwd)/certs/server.key:/opt/thunder/repository/resources/security/server.key \ ghcr.io/asgardeo/thunder:0.9.0
Try Out the Product
Try Out with the Sample App
To quickly get started with Thunder, you can use the sample app provided with the product. This guide demonstrates how to download and run the sample app, self register a user and try out login to the sample app.
Download and Run the Sample App
-
Download the sample app from the 0.9.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) sample-app-0.9.0-macos-arm64.zip macOS x64 (Intel) sample-app-0.9.0-macos-x64.zip Linux x64 sample-app-0.9.0-linux-x64.zip Linux ARM64 sample-app-0.9.0-linux-arm64.zip Windows x64 sample-app-0.9.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-0.9.0-<os>-<arch>.zip cd sample-app-0.9.0-<os>-<arch>/
-
Create required application for sample app in Thunder
Before using the sample app, you need to create an application in Thunder:
curl -kL -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost:8090/applications \ -d '{ "name": "Sample App", "description": "Sample application for testing", "url": "https://localhost:3000", "logo_url": "https://localhost:3000/logo.png", "auth_flow_graph_id": "auth_flow_config_basic", "registration_flow_graph_id": "registration_flow_config_basic", "is_registration_flow_enabled": true, "inbound_auth_config": [{ "type": "oauth2", "config": { "client_id": "sample_app_client", "client_secret": "sample_app_secret", "redirect_uris": ["https://localhost:3000"], "grant_types": ["authorization_code", "client_credentials"], "response_types": ["code"], "token_endpoint_auth_methods": ["client_secret_basic", "client_secret_post"], "pkce_required": true } }] }'
Note the
idfrom the response - you'll need it for the sample app configuration. -
Configure the sample app
Open the
runtime.jsonfile in the thunder-sample-app-0.9.0--/app directory and update the configurations:applicationID: Use the application ID from step 3flowEndpoint: The root endpoint for the flow execution API (default:https://localhost:8090/flow)
-
Start the sample app
sh start.sh
Open your browser and navigate to https://localhost:3000 to see the sample app in action.
Self Register a User
To self register a user in the sample app, follow these steps:
-
Open the sample app in your browser at https://localhost:3000 and click on the "Sign up" button.
-
Provide a username and password for the new user and click on the "Create Account" button.
-
Fill in the additional user attributes such as first name, last name and email address. Click "Continue" to complete the registration.
-
After successful registration, you will be automatically logged in to the sample application.
Login to the Sample App
To log in to the sample app, follow these steps:
-
Open the sample app in your browser at https://localhost:3000.
-
Enter username and password you used during the self registration process and click on the "Sign In" button.
-
If the login is successful, you will be redirected to the home page of the sample app with the access token.
Try Out Client Credentials Flow
The Client Credentials flow is used to obtain an access token for machine-to-machine communication. This flow does not require user interaction and is typically used for server-to-server communication.
To try out the Client Credentials flow, follow these steps:
...
Thunder v0.8.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
🔀 What's Changed
🚀 Features
- Add support to define required attributes in user-schema #390 by @darshanasbg
✨ Improvements
- Remove Local IdP requirement #383 by @thiva-k
- Add PowerShell start scripts for the server and samples. #384 by @JKAUSHALYA
- Refactor IDP API and Service Layer #389 by @ThaminduDilshan
- Update Thunder's Go version to 1.25 #392 by @thiva-k
- Fix redundant file reads on tls config and cert kid handling #394 by @ThaminduDilshan
- Centralizing DB Client creation and closing & Introduce database connection pooling #395 by @thiva-k
- Replace Windows batch scripts with PowerShell equivalents and update README instructions #398 by @JKAUSHALYA
- Parameterize readOnlyRootFilesystem and update readme #399 by @Lakshan-Banneheke
- Refactor dbprovider to reduce code duplication #400 by @darshanasbg
- Restructure schema compilation & user validation #403 by @darshanasbg
- Refactor the message notification sender #404 by @ThaminduDilshan
- Improve user schema error responses #405 by @darshanasbg
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download the 0.8.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.8.0 release
Download
thunder-0.8.0-<os>-<arch>.zipfrom the 0.8.0 release for your operating system and architecture.For example, if you are using a MacOS machine with a Apple Silicon (ARM64) processor, you would download
thunder-0.8.0-macos-arm64.zip. -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.8.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.8.0-<os>-<arch>/
-
Start the product
If you are using Linux or macOS:
bash start.sh
If you are using Windows:
.\server.exe
Option 2: Run with Docker
Follow these steps to run WSO2 Thunder using Docker.
-
Pull the Docker image
docker pull ghcr.io/asgardeo/thunder:0.8.0
-
Run the container
docker run --rm \ -p 8090:8090 \ ghcr.io/asgardeo/thunder:0.8.0
Optionally if you want to modify the server configurations, you can mount a custom
deployment.yamlfile. Create adeployment.yamlfile in your working directory similar to the deployment.yaml, and mount it as below:docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ ghcr.io/asgardeo/thunder:0.8.0Optionally if you want to use custom configurations or certificates, you can mount them as follows:
docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ -v $(pwd)/certs/server.cert:/opt/thunder/repository/resources/security/server.cert \ -v $(pwd)/certs/server.key:/opt/thunder/repository/resources/security/server.key \ ghcr.io/asgardeo/thunder:0.8.0
Try Out the Product
Try Out with the Sample App
To quickly get started with Thunder, you can use the sample app provided with the product. This guide demonstrates how to download and run the sample app, self register a user and try out login to the sample app.
Download and Run the Sample App
-
Download the sample app from the 0.8.0 release
Download
sample-app-0.8.0-<os>-<arch>.zipfrom the 0.8.0 release for your operating system and architecture. -
Unzip and navigate to the sample app directory
unzip sample-app-0.8.0-<os>-<arch>.zip cd sample-app-0.8.0-<os>-<arch>/
-
Create required application for sample app in Thunder
Before using the sample app, you need to create an application in Thunder:
curl -kL -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost:8090/applications \ -d '{ "name": "Sample App", "description": "Sample application for testing", "url": "https://localhost:3000", "logo_url": "https://localhost:3000/logo.png", "auth_flow_graph_id": "auth_flow_config_basic", "registration_flow_graph_id": "registration_flow_config_basic", "is_registration_flow_enabled": true, "inbound_auth_config": [{ "type": "oauth2", "config": { "client_id": "sample_app_client", "client_secret": "sample_app_secret", "redirect_uris": ["https://localhost:3000"], "grant_types": ["authorization_code", "client_credentials"], "response_types": ["code"], "token_endpoint_auth_methods": ["client_secret_basic", "client_secret_post"] } }] }'
Note the
idfrom the response - you'll need it for the sample app configuration. -
Configure the sample app
Open the
runtime.jsonfile in the thunder-sample-app-0.8.0--/app directory and update the configurations:applicationID: Use the application ID from step 3flowEndpoint: The root endpoint for the flow execution API (default:https://localhost:8090/flow)
-
Start the sample app
If you are using Linux or macOS:
sh start.sh
If you are using Windows:
.\server.exe
Open your browser and navigate to https://localhost:3000 to see the sample app in action.
Self Register a User
To self register a user in the sample app, follow these steps:
-
Open the sample app in your browser at https://localhost:3000 and click on the "Sign up" button.
-
Provide a username and password for the new user and click on the "Create Account" button.
-
Fill in the additional user attributes such as first name, last name and email address. Click "Continue" to complete the registration.
-
After successful registration, you will be automatically logged in to the sample application.
Login to the Sample App
To log in to the sample app, follow these steps:
-
Open the sample app in your browser at https://localhost:3000.
-
Enter username and password you used during the self registration process and click on the "Sign In" button.
-
If the login is successful, you will be redirected to the home page of the sample app with the access token.
Try Out Client Credentials Flow
The Client Credentials flow is used to obtain an access token for machine-to-machine communication. This flow does not require user interaction and is typically used for server-to-server communication.
To try out the Client Credentials flow, follow these steps:
-
Create a Client Application
Create a client application in the system to use for the Client Credentials flow. You can use the following cURL command to create a new application.
curl -kL -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost:8090/applications \ -d '{ "name": "Test Sample App", "description": "Initial testing App", "auth_flow_graph_id": "auth_flow_config_basic", "inbound_auth_config": [ { "type": "oauth2", "config": { "client_id": "<client_id>", "client_secret": "<client_secret>", "redirect_uris": [ "https://localhost:3000" ], "grant_types": [ "client_credentials" ], "token_endpoint_auth_methods": [ "client_secret_basic", "client_secret_post" ] } } ] }'
-
Obtain an Access Token
Use the following cURL command to obtain an access token using the Client Credentials flow. Make sure to replace the
<client_id>and<client_secret>with the values you used when creating the client application.curl -k -X POST https://localhost:8090/oauth2/token \ -d 'grant_type=client...
Thunder v0.7.0
WSO2 Thunder ⚡
Identity Management Suite
Thunder is a modern, open-source identity management service designed for teams building secure, customizable authentication experiences across applications, services, and AI agents. It enables developers to design and orchestrate login, registration, and recovery flows using a flexible identity flow designer.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
🔀 What's Changed
🚀 Features
- Add basic filter support for user listing (#369) by @darshanasbg
- Add user-schema API (#355) by @darshanasbg
- Improve default config handling with a default.json file (#351) by @ThaminduDilshan
- Introduce token configs to application API and services (#347) by @ThaminduDilshan
- Add OAuth 2.0 token introspection endpoint (#336) by @ThaminduDilshan
- Introduce the initial crypto service (#85) by @Osara-B
✨ Improvements
- Update Docker image to add user ID and group ID (#371) by @Lakshan-Banneheke
- Introduce user schema enforcement to the user operations (#363) by @darshanasbg
- Improve auth assertion to use application token configurations (#354) by @ThaminduDilshan
- Introduce server-level CORS configs (#356) by @thiva-k
- Improve standard grant JWT tokens to use application token configurations (#353) by @ThaminduDilshan
- Improve caching in 'allowed origins' (#357) by @darshanasbg
- Refactor the jwt service and util into system/jwt package (#348) by @ThaminduDilshan
- Improve OAuth app storing to accept a JSON column for additional configs (#344) by @ThaminduDilshan
- Improve application API to accept inbound_auth_configs seperately (#338) by @ThaminduDilshan
- Fix gate app build errors (#304) by @PasinduRavimal
- Remove userprodiver & groupprovider (#331) by @darshanasbg
- Refactor OAuth2 package with injectable code (#328) by @ThaminduDilshan
🐛 Bug Fixes
- Fix sample app's runtime.json resolution (#374) by @thiva-k
- Fix improper error response for token request (#340) by @thiva-k
⚡ Quickstart
This Quickstart guide will help you get started with WSO2 Thunder quickly. It walks you through downloading and running the product, trying out the sample app, and exploring registering a user, logging in, and using the Client Credentials flow.
Download and Run WSO2 Thunder
You can run WSO2 Thunder either by downloading the release artifact or using the official Docker image.
Option 1: Run from Release Artifact
Follow these steps to download WSO2 Thunder and run it locally.
-
Download the distribution
Download
thunder-v0.7.0-<os>-<arch>.zipfrom the this release for your operating system and architecture.For example, if you are using a MacOS machine with a Apple Silicon (ARM64) processor, you would download
thunder-v0.7.0-macos-arm64.zip. -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-v0.7.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-v0.7.0-<os>-<arch>/
-
Start the product
Start the product using the following command:
If you are using a Linux or macOS machine:
bash start.sh
If you are using a Windows machine:
start.bat
Option 2: Run with Docker
Follow these steps to run WSO2 Thunder using Docker.
-
Pull the Docker image
docker pull ghcr.io/asgardeo/thunder:0.7.0
-
Run the container
docker run --rm \ -p 8090:8090 \ ghcr.io/asgardeo/thunder:0.7.0
Optionally if you want to modify the server configurations, you can mount a custom
deployment.yamlfile. Create adeployment.yamlfile in your working directory similar to the deployment.yaml, and mount it as below:docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ ghcr.io/asgardeo/thunder:0.7.0Optionally if you want to use custom configurations or certificates, you can mount them as follows:
docker run --rm \ -p 8090:8090 \ -v $(pwd)/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml \ -v $(pwd)/certs/server.cert:/opt/thunder/repository/resources/security/server.cert \ -v $(pwd)/certs/server.key:/opt/thunder/repository/resources/security/server.key \ ghcr.io/asgardeo/thunder:0.7.0
Try Out the Product
Try Out with the Sample App
To quickly get started with Thunder, you can use the sample app provided with the product. This guide demonstrates how to download and run the sample app, self register a user and try out login to the sample app.
Download and Run the Sample App
-
Download the sample app
Download
thunder-sample-app-0.7.0-<os>-<arch>.zipfrom the this release for your operating system and architecture. -
Unzip and navigate to the sample app directory
unzip thunder-sample-app-0.7.0-<os>-<arch>.zip cd thunder-sample-app-0.7.0-<os>-<arch>/
-
Create required entities for the sample app
Before using the sample app, you need to create the required entities. Follow these steps:
a. Create a Local Identity Provider (required for basic authentication):
curl -kL -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost:8090/identity-providers \ -d '{ "name": "Local", "description": "Local Identity Provider for basic authentication" }'
b. Create an Application:
curl -kL -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost:8090/applications \ -d '{ "name": "Sample App", "description": "Sample application for testing", "url": "https://localhost:3000", "logo_url": "https://localhost:3000/logo.png", "auth_flow_graph_id": "auth_flow_config_basic", "registration_flow_graph_id": "registration_flow_config_basic", "is_registration_flow_enabled": true, "inbound_auth_config": [{ "type": "oauth2", "config": { "client_id": "sample_app_client", "client_secret": "sample_app_secret", "redirect_uris": ["https://localhost:3000"], "grant_types": ["authorization_code", "client_credentials"], "response_types": ["code"], "token_endpoint_auth_methods": ["client_secret_basic", "client_secret_post"] } }] }'
Note the
idfrom the response - you'll need it for the sample app configuration. -
Configure the sample app
Open the
runtime.jsonfile in the thunder-sample-app-0.7.0--/app directory and update the configurations:applicationID: Use the application ID from step 3bflowEndpoint: The root endpoint for the flow execution API (default:https://localhost:8090/flow)
-
Start the sample app
sh start.sh
Open your browser and navigate to https://localhost:3000 to see the sample app in action.
Self Register a User
To self register a user in the sample app, follow these steps:
-
Open the sample app in your browser at https://localhost:3000 and click on the "Sign up" button.
-
Provide a username and password for the new user and click on the "Create Account" button.
-
Fill in the additional user attributes such as first name, last name and email address. Click "Continue" to complete the...








