Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion e2e/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,11 @@ services:
thunder-setup:
condition: service_completed_successfully
ports:
- "8090:8090"
- "9090:8090"
volumes:
- thunder-db:/opt/thunder/repository/database
- ./thunder-config/deployment.yaml:/opt/thunder/repository/conf/deployment.yaml:ro
- ./thunder-config/gate-config.js:/opt/thunder/apps/gate/config.js:ro
healthcheck:
test: ["CMD", "curl", "-k", "-f", "https://localhost:8090/health/readiness"]
interval: 10s
Expand Down
2 changes: 1 addition & 1 deletion e2e/playwright-report-embedded/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,4 @@
<div id='root'></div>
</body>
</html>
<script id="playwrightReportBase64" type="application/zip">data:application/zip;base64,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</script>
<script id="playwrightReportBase64" type="application/zip">data:application/zip;base64,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</script>
2 changes: 1 addition & 1 deletion e2e/setup/is/app-registration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ export async function registerIsApp(): Promise<{clientId: string; clientSecret:
};

// Remove read-only fields that can't be sent in PUT
delete updatedConfig.state;
delete (updatedConfig as Record<string, unknown>).state;

const oidcPutResponse = await fetch(oidcUrl, {
method: 'PUT',
Expand Down
28 changes: 10 additions & 18 deletions e2e/setup/thunder/app-registration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export async function getThunderAppClientId(): Promise<{clientId: string; applic
let applicationId: string | undefined;

try {
const result = thunderSqlite("SELECT APP_ID FROM SP_APP WHERE APP_NAME='React SDK Sample'");
const result = thunderSqlite("SELECT APP_ID FROM APPLICATION WHERE APP_NAME='React SDK Sample'");

if (result) {
applicationId = result;
Expand All @@ -44,15 +44,13 @@ export async function getThunderAppClientId(): Promise<{clientId: string; applic
console.warn('[E2E] Could not retrieve Thunder application ID from database');
}

// Patch the pre-configured app's OAuth config:
// 1. Add the callback URL to redirect_uris (bootstrap only has / and /dashboard)
// 2. Fix the token issuer to match the OIDC discovery issuer (baseUrl, not baseUrl/oauth2/token)
// Patch the pre-configured app's OAuth config to add the callback URL
// to redirect_uris (bootstrap only has / and /dashboard).
const callbackUrl = `${SAMPLE_APP.url}${SAMPLE_APP.afterSignInPath}`;
const correctIssuer = THUNDER_CONFIG.baseUrl;

try {
const configJson = thunderSqlite(
`SELECT OAUTH_CONFIG_JSON FROM IDN_OAUTH_CONSUMER_APPS WHERE CONSUMER_KEY='${clientId}'`,
`SELECT OAUTH_CONFIG_JSON FROM APP_OAUTH_INBOUND_CONFIG WHERE CLIENT_ID='${clientId}'`,
);

if (configJson) {
Expand All @@ -68,25 +66,19 @@ export async function getThunderAppClientId(): Promise<{clientId: string; applic
needsUpdate = true;
}

// Fix token issuer to match OIDC discovery (required for ID token validation)
if (config.token?.issuer !== correctIssuer) {
config.token.issuer = correctIssuer;
needsUpdate = true;
}

if (needsUpdate) {
const updatedJson = JSON.stringify(config);

// Write JSON to a temp file inside the container to avoid shell escaping issues,
// then use readfile() in the SQLite UPDATE.
execSync(
`docker exec -i ${CONTAINER} sh -c 'cat > /tmp/oauth_config.json'`,
{input: updatedJson, encoding: 'utf-8'},
);
execSync(`docker exec -i ${CONTAINER} sh -c 'cat > /tmp/oauth_config.json'`, {
input: updatedJson,
encoding: 'utf-8',
});
thunderSqlite(
`UPDATE IDN_OAUTH_CONSUMER_APPS SET OAUTH_CONFIG_JSON=readfile('/tmp/oauth_config.json') WHERE CONSUMER_KEY='${clientId}'`,
`UPDATE APP_OAUTH_INBOUND_CONFIG SET OAUTH_CONFIG_JSON=readfile('/tmp/oauth_config.json') WHERE CLIENT_ID='${clientId}'`,
);
console.log(`[E2E] Thunder app OAuth config updated (redirect_uris, token issuer)`);
console.log(`[E2E] Thunder app OAuth config updated (redirect_uris)`);
}
}
} catch (err) {
Expand Down
2 changes: 1 addition & 1 deletion e2e/setup/thunder/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*/

export const THUNDER_CONFIG = {
baseUrl: process.env.THUNDER_BASE_URL ?? 'https://localhost:8090',
baseUrl: process.env.THUNDER_BASE_URL ?? 'https://localhost:9090',
healthCheckPath: '/health/readiness',
adminUsername: 'admin',
adminPassword: 'admin',
Expand Down
4 changes: 2 additions & 2 deletions e2e/thunder-bootstrap/02-sample-resources.sh
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ RESPONSE=$(thunder_api_call POST "/applications" "{
\"registration_flow_graph_id\": \"${REG_FLOW_ID}\",
\"is_registration_flow_enabled\": true,
\"user_attributes\": [\"given_name\",\"family_name\",\"email\",\"groups\",\"name\"],
\"allowed_user_types\": [\"Customer\"],
\"allowed_user_types\": [\"Customer\",\"Person\"],
\"inbound_auth_config\": [{
\"type\": \"oauth2\",
\"config\": {
Expand All @@ -201,7 +201,7 @@ RESPONSE=$(thunder_api_call POST "/applications" "{
\"pkce_required\": true,
\"public_client\": true,
\"token\": {
\"issuer\": \"${PUBLIC_URL}/oauth2/token\",
\"issuer\": \"${PUBLIC_URL}\",
\"access_token\": {
\"validity_period\": 3600,
\"user_attributes\": [\"given_name\",\"family_name\",\"email\",\"groups\",\"name\"]
Expand Down
8 changes: 7 additions & 1 deletion e2e/thunder-config/deployment.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
server:
hostname: "0.0.0.0"
public_url: "https://localhost:8090"
public_url: "https://localhost:9090"
port: 8090

gate_client:
hostname: "localhost"
port: 9090
scheme: "https"
path: "/gate"

tls:
min_version: "1.3"
cert_file: "repository/resources/security/server.cert"
Expand Down
18 changes: 18 additions & 0 deletions e2e/thunder-config/gate-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**
* Custom Gate runtime config for e2e tests.
*
* Points the Gate's API calls at the Docker Thunder container
* on port 9090 (mapped from 8090 to avoid conflicts with any
* local Thunder dev server).
*/

/* eslint-disable no-underscore-dangle */

window.__THUNDER_RUNTIME_CONFIG__ = {
client: {
base: '/gate',
},
server: {
public_url: 'https://localhost:9090',
},
};
7 changes: 7 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@
"undici": "^7.21.0"
},
"pnpm": {
"packageExtensions": {
"@analogjs/vite-plugin-angular": {
"peerDependencies": {
"typescript": ">=5.5"
}
}
},
"overrides": {
"pbkdf2": "3.1.3",
"sha.js": "2.4.12",
Expand Down
4 changes: 4 additions & 0 deletions packages/angular/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/dist
/build
/node_modules
/coverage
31 changes: 31 additions & 0 deletions packages/angular/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/**
* Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

const path = require('path');

module.exports = {
extends: ['plugin:@wso2/typescript', 'plugin:@wso2/strict', 'plugin:@wso2/internal', 'plugin:@wso2/prettier'],
parserOptions: {
project: [path.resolve(__dirname, 'tsconfig.json'), path.resolve(__dirname, 'tsconfig.eslint.json')],
},
plugins: ['@wso2'],
rules: {
'import/no-extraneous-dependencies': ['error', {devDependencies: true}],
'no-underscore-dangle': ['off'],
},
};
8 changes: 8 additions & 0 deletions packages/angular/ng-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "node_modules/ng-packagr/ng-package.schema.json",
"dest": "dist",
"allowedNonPeerDependencies": ["@asgardeo/browser", "@asgardeo/i18n", "tslib"],
"lib": {
"entryFile": "src/index.ts"
}
}
77 changes: 77 additions & 0 deletions packages/angular/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"name": "@asgardeo/angular",
"version": "0.1.0",
"description": "Angular implementation of Asgardeo JavaScript SDK.",
"keywords": [
"asgardeo",
"angular",
"spa",
"authentication",
"oidc"
],
"homepage": "https://github.com/asgardeo/javascript/tree/main/packages/angular#readme",
"bugs": {
"url": "https://github.com/asgardeo/javascript/issues"
},
"author": "WSO2",
"license": "Apache-2.0",
"type": "module",
"module": "dist/fesm2022/asgardeo-angular.mjs",
"typings": "dist/types/asgardeo-angular.d.ts",
"exports": {
"./package.json": {
"default": "./package.json"
},
".": {
"types": "./dist/types/asgardeo-angular.d.ts",
"default": "./dist/fesm2022/asgardeo-angular.mjs"
}
},
"files": [
"dist",
"README.md",
"LICENSE"
],
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/asgardeo/javascript",
"directory": "packages/angular"
},
"scripts": {
"build": "pnpm clean && ng-packagr -p ng-package.json",
"clean": "rimraf dist",
"fix:lint": "eslint . --ext .js,.ts,.cjs,.mjs",
"lint": "eslint . --ext .js,.ts,.cjs,.mjs",
"test": "vitest",
"typecheck": "tsc -p tsconfig.lib.json"
},
"devDependencies": {
"@angular/compiler": "21.1.5",
"@angular/compiler-cli": "21.1.5",
"@types/node": "22.15.3",
"@wso2/eslint-plugin": "catalog:",
"@wso2/prettier-config": "catalog:",
"eslint": "8.57.0",
"jsdom": "26.1.0",
"ng-packagr": "21.1.0",
"prettier": "2.6.2",
"rimraf": "6.1.0",
"typescript": "5.9.3",
"vitest": "3.1.3"
},
"peerDependencies": {
"@angular/common": ">=18.0.0",
"@angular/core": ">=18.0.0",
"@angular/router": ">=18.0.0",
"rxjs": ">=7.0.0"
},
"dependencies": {
"@asgardeo/browser": "workspace:*",
"@asgardeo/i18n": "workspace:*",
"tslib": "2.8.1"
},
"publishConfig": {
"access": "public"
}
}
19 changes: 19 additions & 0 deletions packages/angular/prettier.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
* Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

module.exports = require('@wso2/prettier-config');
Loading
Loading