Releases: senthalan/thunderid
Release list
Thunder v0.18.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.
Full Changelog: v0.201.0...v0.18.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.18.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.18.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.18.0-macos-arm64.zip macOS x64 (Intel) thunder-0.18.0-macos-x64.zip Linux x64 thunder-0.18.0-linux-x64.zip Linux ARM64 thunder-0.18.0-linux-arm64.zip Windows x64 thunder-0.18.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.18.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.18.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.18.0-macos-arm64.zip macOS x64 (Intel) sample-app-react-vanilla-0.18.0-macos-x64.zip Linux x64 sample-app-react-vanilla-0.18.0-linux-x64.zip Linux ARM64 sample-app-react-vanilla-0.18.0-linux-arm64.zip Windows x64 sample-app-react-vanilla-0.18.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-react-vanilla-0.18.0-<os>-<arch>.zip cd sample-app-react-vanilla-0.18.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.18.0-macos-arm64.zip macOS x64 (Intel) sample-app-react-sdk-0.18.0-macos-x64.zip Linux x64 sample-app-react-sdk-0.18.0-linux-x64.zip Linux ARM64 sample-app-react-sdk-0.18.0-linux-arm64.zip Windows x64 sample-app-react-sdk-0.18.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-react-sdk-0.18.0-<os>-<arch>.zip cd sample-app-react-sdk-0.18.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.
Obtain System API Token
To access the system APIs of Thunder, you need a token with system permissions. Follow the steps below to obtain a system API token.
- Run the following command, replacing
<application_id>with the sample app ID generated during "Setup the product."
curl -k -X POST 'https://localhost:8090/flow/execute' \
-d '{"applicationId":"<application_id>","flowType":"AUTHENTICATION"}'- Extract the
flowIdvalue from the response.
{"flowId":"<flow_id>","flowStatus":"INCOMPLETE", ...}- Run the following command, replacing
<flow_id>with theflowIdvalue you extracted above.
curl -k -X POST 'https://localhost:8090/flow/execute' \
-d '{"flowId":"<flow_id>", "inputs":{"username":"admin","password":"admin", "requ...Thunder v0.201.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.
Full Changelog: v0.200.0...v0.201.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.201.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.201.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.201.0-macos-arm64.zip macOS x64 (Intel) thunder-0.201.0-macos-x64.zip Linux x64 thunder-0.201.0-linux-x64.zip Linux ARM64 thunder-0.201.0-linux-arm64.zip Windows x64 thunder-0.201.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.201.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.201.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.201.0-macos-arm64.zip macOS x64 (Intel) sample-app-react-vanilla-0.201.0-macos-x64.zip Linux x64 sample-app-react-vanilla-0.201.0-linux-x64.zip Linux ARM64 sample-app-react-vanilla-0.201.0-linux-arm64.zip Windows x64 sample-app-react-vanilla-0.201.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-react-vanilla-0.201.0-<os>-<arch>.zip cd sample-app-react-vanilla-0.201.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.201.0-macos-arm64.zip macOS x64 (Intel) sample-app-react-sdk-0.201.0-macos-x64.zip Linux x64 sample-app-react-sdk-0.201.0-linux-x64.zip Linux ARM64 sample-app-react-sdk-0.201.0-linux-arm64.zip Windows x64 sample-app-react-sdk-0.201.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-react-sdk-0.201.0-<os>-<arch>.zip cd sample-app-react-sdk-0.201.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.
Obtain System API Token
To access the system APIs of Thunder, you need a token with system permissions. Follow the steps below to obtain a system API token.
- Run the following command, replacing
<application_id>with the sample app ID generated during "Setup the product."
curl -k -X POST 'https://localhost:8090/flow/execute' \
-d '{"applicationId":"<application_id>","flowType":"AUTHENTICATION"}'- Extract the
flowIdvalue from the response.
{"flowId":"<flow_id>","flowStatus":"INCOMPLETE", ...}- Run the following command, replacing
<flow_id>with theflowIdvalue you extracted above.
curl -k -X POST 'https://localhost:8090/flow/execute' \
-d '{"flowId":"<flow_id>",...Thunder v0.200.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.
Full Changelog: v0.108.0...v0.200.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.200.0 release of WSO2 Thunder and run it locally.
-
Download the distribution from the 0.200.0 release
OS Architecture Download Link macOS ARM64 (Apple Silicon) thunder-0.200.0-macos-arm64.zip macOS x64 (Intel) thunder-0.200.0-macos-x64.zip Linux x64 thunder-0.200.0-linux-x64.zip Linux ARM64 thunder-0.200.0-linux-arm64.zip Windows x64 thunder-0.200.0-win-x64.zip -
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.200.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.200.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.200.0-macos-arm64.zip macOS x64 (Intel) sample-app-react-vanilla-0.200.0-macos-x64.zip Linux x64 sample-app-react-vanilla-0.200.0-linux-x64.zip Linux ARM64 sample-app-react-vanilla-0.200.0-linux-arm64.zip Windows x64 sample-app-react-vanilla-0.200.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-react-vanilla-0.200.0-<os>-<arch>.zip cd sample-app-react-vanilla-0.200.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.200.0-macos-arm64.zip macOS x64 (Intel) sample-app-react-sdk-0.200.0-macos-x64.zip Linux x64 sample-app-react-sdk-0.200.0-linux-x64.zip Linux ARM64 sample-app-react-sdk-0.200.0-linux-arm64.zip Windows x64 sample-app-react-sdk-0.200.0-win-x64.zip -
Unzip and navigate to the sample app directory
unzip sample-app-react-sdk-0.200.0-<os>-<arch>.zip cd sample-app-react-sdk-0.200.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 <application_id> with the sample app ID generated during "Setup the product."
curl -k -X POST 'https://localhost:8090/flow/execute' \
-d '{"applicationId":"<application_id>","flowType":"AUTHENTICATION", "inputs":{"username":"admin","password":"admin", "requested_permissions":"system"}}'The response will contain an assertion field.
{"flowId":"<flow_id>","flowStatus":"COMPLETE","data":{},"assertion":"<assertion>"}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 Clien...
Thunder v0.108.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.
Full Changelog: v0.107.0...v0.108.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.108.0 release of WSO2 Thunder and run it locally.
- Download the distribution from the 0.108.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | thunder-0.108.0-macos-arm64.zip |
| macOS | x64 (Intel) | thunder-0.108.0-macos-x64.zip |
| Linux | x64 | thunder-0.108.0-linux-x64.zip |
| Linux | ARM64 | thunder-0.108.0-linux-arm64.zip |
| Windows | x64 | thunder-0.108.0-win-x64.zip |
-
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.108.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.108.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.108.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.108.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.108.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.108.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.108.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
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.108.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | sample-app-0.108.0-macos-arm64.zip |
| macOS | x64 (Intel) | sample-app-0.108.0-macos-x64.zip |
| Linux | x64 | sample-app-0.108.0-linux-x64.zip |
| Linux | ARM64 | sample-app-0.108.0-linux-arm64.zip |
| Windows | x64 | sample-app-0.108.0-win-x64.zip |
-
Unzip and navigate to the sample app directory
unzip sample-app-0.108.0-<os>-<arch>.zip cd sample-app-0.108.0-<os>-<arch>/
-
Configure the sample app
Open
app/runtime.jsonand setapplicationIDto the sample app ID generated during "Setup the product."For example, if the sample app ID is
d6df2ef9-88db-4ca9-9a23-d1577b2552c1,runtime.jsonshould look like:{ "applicationID": "d6df2ef9-88db-4ca9-9a23-d1577b2552c1", "flowEndpoint": "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
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 <application_id> with the sample app ID generated during "Setup the product."
curl -k -X POST 'https://localhost:8090/flow/execute' \
-d '{"applicationId":"<application_id>","flowType":"AUTHENTICATION", "inputs":{"username":"admin","password":"admin", "requested_permissions":"system"}}'The response will contain an assertion field.
{"flowId":"<flow_id>","flowStatus":"COMPLETE","data":{},"assertion":"<assertion>"}
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 ...
Thunder v0.107.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.
Full Changelog: v0.106.0...v0.107.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.107.0 release of WSO2 Thunder and run it locally.
- Download the distribution from the 0.107.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | thunder-0.107.0-macos-arm64.zip |
| macOS | x64 (Intel) | thunder-0.107.0-macos-x64.zip |
| Linux | x64 | thunder-0.107.0-linux-x64.zip |
| Linux | ARM64 | thunder-0.107.0-linux-arm64.zip |
| Windows | x64 | thunder-0.107.0-win-x64.zip |
-
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.107.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.107.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.107.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.107.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.107.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.107.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.107.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
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.107.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | sample-app-0.107.0-macos-arm64.zip |
| macOS | x64 (Intel) | sample-app-0.107.0-macos-x64.zip |
| Linux | x64 | sample-app-0.107.0-linux-x64.zip |
| Linux | ARM64 | sample-app-0.107.0-linux-arm64.zip |
| Windows | x64 | sample-app-0.107.0-win-x64.zip |
-
Unzip and navigate to the sample app directory
unzip sample-app-0.107.0-<os>-<arch>.zip cd sample-app-0.107.0-<os>-<arch>/
-
Configure the sample app
Open
app/runtime.jsonand setapplicationIDto the sample app ID generated during "Setup the product."For example, if the sample app ID is
d6df2ef9-88db-4ca9-9a23-d1577b2552c1,runtime.jsonshould look like:{ "applicationID": "d6df2ef9-88db-4ca9-9a23-d1577b2552c1", "flowEndpoint": "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
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 <application_id> with the sample app ID generated during "Setup the product."
curl -k -X POST 'https://localhost:8090/flow/execute' \
-d '{"applicationId":"<application_id>","flowType":"AUTHENTICATION", "inputs":{"username":"admin","password":"admin", "requested_permissions":"system"}}'The response will contain an assertion field.
{"flowId":"<flow_id>","flowStatus":"COMPLETE","data":{},"assertion":"<assertion>"}
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 ...
Thunder v0.106.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.
Full Changelog: v0.105.0...v0.106.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.106.0 release of WSO2 Thunder and run it locally.
- Download the distribution from the 0.106.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | thunder-0.106.0-macos-arm64.zip |
| macOS | x64 (Intel) | thunder-0.106.0-macos-x64.zip |
| Linux | x64 | thunder-0.106.0-linux-x64.zip |
| Linux | ARM64 | thunder-0.106.0-linux-arm64.zip |
| Windows | x64 | thunder-0.106.0-win-x64.zip |
-
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.106.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.106.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
-
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.106.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.106.0 \ ./setup.sh[!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.106.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.106.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.106.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
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.106.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | sample-app-0.106.0-macos-arm64.zip |
| macOS | x64 (Intel) | sample-app-0.106.0-macos-x64.zip |
| Linux | x64 | sample-app-0.106.0-linux-x64.zip |
| Linux | ARM64 | sample-app-0.106.0-linux-arm64.zip |
| Windows | x64 | sample-app-0.106.0-win-x64.zip |
-
Unzip and navigate to the sample app directory
unzip sample-app-0.106.0-<os>-<arch>.zip cd sample-app-0.106.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", "tos_uri": "https://localhost:3000/terms", "policy_uri": "https://localhost:3000/privacy", "contacts": ["admin@example.com", "support@example.com"], "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_method": "client_secret_basic", "pkce_required": false, "public_client": false, "scopes": ["openid", "profile", "email"], "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-0.106.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.
...
Thunder v0.105.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.
Full Changelog: v0.104.0...v0.105.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.105.0 release of WSO2 Thunder and run it locally.
- Download the distribution from the 0.105.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | thunder-0.105.0-macos-arm64.zip |
| macOS | x64 (Intel) | thunder-0.105.0-macos-x64.zip |
| Linux | x64 | thunder-0.105.0-linux-x64.zip |
| Linux | ARM64 | thunder-0.105.0-linux-arm64.zip |
| Windows | x64 | thunder-0.105.0-win-x64.zip |
-
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.105.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.105.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
-
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.105.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.105.0 \ ./setup.sh[!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.105.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.105.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.105.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
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.105.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | sample-app-0.105.0-macos-arm64.zip |
| macOS | x64 (Intel) | sample-app-0.105.0-macos-x64.zip |
| Linux | x64 | sample-app-0.105.0-linux-x64.zip |
| Linux | ARM64 | sample-app-0.105.0-linux-arm64.zip |
| Windows | x64 | sample-app-0.105.0-win-x64.zip |
-
Unzip and navigate to the sample app directory
unzip sample-app-0.105.0-<os>-<arch>.zip cd sample-app-0.105.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", "tos_uri": "https://localhost:3000/terms", "policy_uri": "https://localhost:3000/privacy", "contacts": ["admin@example.com", "support@example.com"], "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_method": "client_secret_basic", "pkce_required": false, "public_client": false, "scopes": ["openid", "profile", "email"], "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-0.105.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.
...
Thunder v0.104.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.
Full Changelog: v0.103.0...v0.104.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.104.0 release of WSO2 Thunder and run it locally.
- Download the distribution from the 0.104.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | thunder-0.104.0-macos-arm64.zip |
| macOS | x64 (Intel) | thunder-0.104.0-macos-x64.zip |
| Linux | x64 | thunder-0.104.0-linux-x64.zip |
| Linux | ARM64 | thunder-0.104.0-linux-arm64.zip |
| Windows | x64 | thunder-0.104.0-win-x64.zip |
-
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.104.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.104.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
-
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.104.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.104.0 \ ./setup.sh[!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.104.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.104.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.104.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
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.104.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | sample-app-0.104.0-macos-arm64.zip |
| macOS | x64 (Intel) | sample-app-0.104.0-macos-x64.zip |
| Linux | x64 | sample-app-0.104.0-linux-x64.zip |
| Linux | ARM64 | sample-app-0.104.0-linux-arm64.zip |
| Windows | x64 | sample-app-0.104.0-win-x64.zip |
-
Unzip and navigate to the sample app directory
unzip sample-app-0.104.0-<os>-<arch>.zip cd sample-app-0.104.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", "tos_uri": "https://localhost:3000/terms", "policy_uri": "https://localhost:3000/privacy", "contacts": ["admin@example.com", "support@example.com"], "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_method": "client_secret_basic", "pkce_required": false, "public_client": false, "scopes": ["openid", "profile", "email"], "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-0.104.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.
...
Thunder v0.103.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.
Full Changelog: v0.102.0...v0.103.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.103.0 release of WSO2 Thunder and run it locally.
- Download the distribution from the 0.103.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | thunder-0.103.0-macos-arm64.zip |
| macOS | x64 (Intel) | thunder-0.103.0-macos-x64.zip |
| Linux | x64 | thunder-0.103.0-linux-x64.zip |
| Linux | ARM64 | thunder-0.103.0-linux-arm64.zip |
| Windows | x64 | thunder-0.103.0-win-x64.zip |
-
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.103.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.103.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
Tip
The --setup flag initializes the product with default configurations, including creating an admin user and the Develop application.
You can omit this flag if you have already set up the initial data.
You can also run the setup manually later using the script located at:
- Linux/macOS:
<THUNDER_HOME>/scripts/setup_initial_data.sh - Windows:
<THUNDER_HOME>\scripts\setup_initial_data.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.103.0
-
Run the container
docker run --rm \ -p 8090:8090 \ ghcr.io/asgardeo/thunder:0.103.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.103.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.103.0
-
Initialize with default data (Required for first-time setup)
To use the Developer Console and sample applications, you need to set up initial data including the default admin user. Run this command after starting the container:
docker exec -it $(docker ps -q --filter ancestor=ghcr.io/asgardeo/thunder:0.103.0) \ /opt/thunder/scripts/setup_initial_data.sh
This creates:
- Default admin user (
admin/admin) - Developer Console application
- Basic authentication and registration flows
[!NOTE]
Replace the container selection with your specific container name if running multiple Thunder containers. - Default admin user (
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
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.103.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | sample-app-0.103.0-macos-arm64.zip |
| macOS | x64 (Intel) | sample-app-0.103.0-macos-x64.zip |
| Linux | x64 | sample-app-0.103.0-linux-x64.zip |
| Linux | ARM64 | sample-app-0.103.0-linux-arm64.zip |
| Windows | x64 | sample-app-0.103.0-win-x64.zip |
-
Unzip and navigate to the sample app directory
unzip sample-app-0.103.0-<os>-<arch>.zip cd sample-app-0.103.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", "tos_uri": "https://localhost:3000/terms", "policy_uri": "https://localhost:3000/privacy", "contacts": ["admin@example.com", "support@example.com"], "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_method": "client_secret_basic", "pkce_required": false, "public_client": false, "scopes": ["openid", "profile", "email"], "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-0.103.0--/app directory and update the configurations:applicationID: Use the application ID from step 3flowEndpoint: The root endpoint for the flow execution API (d...
Thunder v0.102.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.
Full Changelog: v0.101.0...v0.102.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.102.0 release of WSO2 Thunder and run it locally.
- Download the distribution from the 0.102.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | thunder-0.102.0-macos-arm64.zip |
| macOS | x64 (Intel) | thunder-0.102.0-macos-x64.zip |
| Linux | x64 | thunder-0.102.0-linux-x64.zip |
| Linux | ARM64 | thunder-0.102.0-linux-arm64.zip |
| Windows | x64 | thunder-0.102.0-win-x64.zip |
-
Unzip the product
Unzip the downloaded file using the following command:
unzip thunder-0.102.0-<os>-<arch>.zip
Navigate to the unzipped directory:
cd thunder-0.102.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
Tip
The --setup flag initializes the product with default configurations, including creating an admin user and the Develop application.
You can omit this flag if you have already set up the initial data.
You can also run the setup manually later using the script located at:
- Linux/macOS:
<THUNDER_HOME>/scripts/setup_initial_data.sh - Windows:
<THUNDER_HOME>\scripts\setup_initial_data.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.102.0
-
Run the container
docker run --rm \ -p 8090:8090 \ ghcr.io/asgardeo/thunder:0.102.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.102.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.102.0
-
Initialize with default data (Required for first-time setup)
To use the Developer Console and sample applications, you need to set up initial data including the default admin user. Run this command after starting the container:
docker exec -it $(docker ps -q --filter ancestor=ghcr.io/asgardeo/thunder:0.102.0) \ /opt/thunder/scripts/setup_initial_data.sh
This creates:
- Default admin user (
admin/admin) - Developer Console application
- Basic authentication and registration flows
[!NOTE]
Replace the container selection with your specific container name if running multiple Thunder containers. - Default admin user (
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
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.102.0 release
| OS | Architecture | Download Link |
|---|---|---|
| macOS | ARM64 (Apple Silicon) | sample-app-0.102.0-macos-arm64.zip |
| macOS | x64 (Intel) | sample-app-0.102.0-macos-x64.zip |
| Linux | x64 | sample-app-0.102.0-linux-x64.zip |
| Linux | ARM64 | sample-app-0.102.0-linux-arm64.zip |
| Windows | x64 | sample-app-0.102.0-win-x64.zip |
-
Unzip and navigate to the sample app directory
unzip sample-app-0.102.0-<os>-<arch>.zip cd sample-app-0.102.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", "tos_uri": "https://localhost:3000/terms", "policy_uri": "https://localhost:3000/privacy", "contacts": ["admin@example.com", "support@example.com"], "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_method": "client_secret_basic", "pkce_required": false, "public_client": false, "scopes": ["openid", "profile", "email"], "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-0.102.0--/app directory and update the configurations:applicationID: Use the application ID from step 3flowEndpoint: The root endpoint for the flow execution API (d...











