Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
9dff840
IS-11407: fix library-app leaks
aleixsuau Jun 4, 2026
b03b868
IS-11407: move shared ui components to folders
aleixsuau Jun 4, 2026
e3c4918
Merge pull request #224 from curityio/merge/11.3/dev/2026-06-05
pmhsfelix Jun 8, 2026
a088db7
IS-11428 Render HAAPI error notification via React portal to avoid la…
aleixsuau Jun 9, 2026
040cb0e
IS-11407: shorten doc import path
aleixsuau Jun 9, 2026
349512b
Merge pull request #217 from curityio/feature/IS-11407-haapi-react-sd…
aleixsuau Jun 9, 2026
48b2129
IS-11431 Add meaningful alt text to Logo image.
aleixsuau Jun 10, 2026
2be286c
Merge branch 'dev' into merge/11.3/dev/2026-06-10
pmhsfelix Jun 10, 2026
e9a9bd2
Merge pull request #230 from curityio/merge/11.3/dev/2026-06-10
pmhsfelix Jun 10, 2026
7419162
Merge pull request #228 from curityio/fix/dev/IS-11428-error-notifica…
aleixsuau Jun 11, 2026
db43e43
Merge pull request #229 from curityio/fix/dev/IS-11431-logo-alt-text
aleixsuau Jun 11, 2026
9303435
IS-11406 Extract haapi-react-sdk into its own npm workspace.
aleixsuau Jun 4, 2026
af070f4
Merge pull request #231 from curityio/release/11.3/IS-9816-update-pre…
pmhsfelix Jun 12, 2026
7c22310
Merge branch 'dev' into merge/11.3/dev/2026-06-12
pmhsfelix Jun 12, 2026
82de87f
Merge pull request #233 from curityio/merge/11.3/dev/2026-06-12
pmhsfelix Jun 15, 2026
e955e8f
IS-11474 Add theme_css_path stylesheet link to API-driven UI template
Jun 17, 2026
f3c927f
IS-11474 Add theme_css_path to SSP loader template
Jun 18, 2026
9732131
IS-11474 Use _cacheBustingQuery pattern for theme stylesheet links
Jun 18, 2026
0d12c80
IS-7660 Fix handling of csp for img-src
Jun 4, 2026
9a0f04a
IS-7660 Use CspUtil to combine csp directives
Jun 19, 2026
dee6a86
Merge pull request #218 from curityio/fix/dev/IS-7660-csp-img-src-dat…
slunker Jun 19, 2026
1e65973
IS-11486 Update dependencies
luisgoncalves Jun 19, 2026
77a35ac
Merge pull request #235 from curityio/feat/dev/IS-11474-add-theme_css…
urre Jun 22, 2026
6010fba
IS-11461 Add HAAPI React App to deployment script
luisgoncalves Jun 18, 2026
5477210
Merge pull request #241 from curityio/feature/IS-11486-upgrade-depend…
luisgoncalves Jun 22, 2026
e109419
IS-11474 Remove redundant curity-theme.css link from SSP loader template
Jun 23, 2026
1ed66b2
Merge pull request #243 from curityio/fix/dev/IS-11474-remove-duplica…
urre Jun 23, 2026
8820c9f
IS-11406 Add es-module-lexer to SDK workspace so nested vitest resolv…
aleixsuau Jun 24, 2026
83daf10
Merge remote-tracking branch 'origin/dev' into feature/IS-11406-extra…
aleixsuau Jun 24, 2026
f06ce99
Merge pull request #219 from curityio/feature/IS-11406-extract-haapi-…
aleixsuau Jun 24, 2026
ac85f8e
Merge pull request #240 from curityio/feature/dev/IS-11461-deploy-haa…
luisgoncalves Jun 24, 2026
53a85ee
IS-11497 Add default white text color to base button.
Jun 24, 2026
41a9db2
Merge pull request #249 from curityio/fix/dev/IS-11497-button-text-color
urre Jun 25, 2026
0914602
IS-11489 Open external links in a new browser tab
luisgoncalves Jun 26, 2026
6a2985a
Merge pull request #251 from curityio/feature/dev/IS-11489-handle-non…
luisgoncalves Jun 30, 2026
54aa2b9
IS-9960 HAAPI React App/SDK: add support for form_post response mode
luisgoncalves Jul 1, 2026
e2a21a4
IS-11218 Render BankID QR accessibility messages as collapsible sections
aleixsuau Jul 2, 2026
d15e190
IS-9960 Small improvements to "completed-step.ts" - add helper functi…
luisgoncalves Jul 2, 2026
009d348
Merge pull request #252 from curityio/feature/dev/IS-9960-haapi-react…
luisgoncalves Jul 2, 2026
d232f2f
IS-11218: refactor to locate accessibilitydata formatting in the form…
aleixsuau Jul 7, 2026
770fdbb
IS-11218 Format QR accessibility component with Prettier
aleixsuau Jul 8, 2026
2f12a3c
IS-11218: move bankid ui-specific logic to the built-in viewname ui
aleixsuau Jul 8, 2026
3c7c2b9
IS-11218 Fix doc comment punctuation.
aleixsuau Jul 8, 2026
495a462
IS-11218 Move QR accessibility view-data formatting into the BankID b…
aleixsuau Jul 9, 2026
823aca7
IS-11495 Render WebAuthn registration attachment options as selection…
aleixsuau Jul 7, 2026
d1cad6b
IS-11495: refactor webauthn in data layer
aleixsuau Jul 9, 2026
ddf11cb
IS-11495 Pass registrationAttachment as card prop; move kind enum to …
aleixsuau Jul 9, 2026
d5346bf
IS-11495 Format styles.css with Prettier.
aleixsuau Jul 9, 2026
3153009
IS-11495 Reuse CSS utilities via @extend for the WebAuthn attachment …
aleixsuau Jul 9, 2026
ad6ebe4
Opt-in MFA action: remove inline style in setup-confirm.vm
luisgoncalves Jul 9, 2026
4ea13d2
Merge pull request #258 from curityio/fix/dev/opt-in-mfa-inline-style
luisgoncalves Jul 10, 2026
669df63
Merge pull request #253 from curityio/feature/dev/IS-11218-bankid-acc…
aleixsuau Jul 13, 2026
339a3f5
IS-11495 Drop unused messages field from webauthn registration attach…
aleixsuau Jul 13, 2026
daa383d
IS-11495 Look up webauthn attachment copy by exact keys; drop message…
aleixsuau Jul 13, 2026
1d3d8e0
IS-11495: remove redundatnt comments and use CSS utilities
aleixsuau Jul 13, 2026
6024e87
IS-11495 Resolve WebAuthn/Passkeys error messages from view data.
aleixsuau Jul 14, 2026
72d84ab
IS-11495 Assert webauthn error response contract inline in tests.
aleixsuau Jul 14, 2026
3061880
Merge pull request #254 from curityio/feature/dev/IS-11495-webauthn-a…
aleixsuau Jul 14, 2026
3d4962a
IS-11561 Extract BankID polling progress bar with local countdown and…
aleixsuau Jul 14, 2026
d074579
IS-11540 HAAPI EBF: return error message for failures when opening a …
luisgoncalves Jul 8, 2026
6ce050a
IS-11540 HRA: improve external browser flow error handling
luisgoncalves Jul 8, 2026
7386c9a
IS-11540 HRA: be more explicit when not returning next step data
luisgoncalves Jul 9, 2026
1d8bb74
Merge pull request #255 from curityio/feature/dev/IS-11540-haapi-ebf-…
luisgoncalves Jul 15, 2026
03c81f6
IS-11549 API-driven UI: define page title based on client application…
luisgoncalves Jul 9, 2026
aa0ceeb
Merge pull request #257 from curityio/feature/dev/IS-11549-api-driven…
luisgoncalves Jul 15, 2026
e9c8e7c
IS-11495 Fall back to English on empty webauthn error message; cover …
aleixsuau Jul 21, 2026
69bafee
IS-11577 Enable noImplicitReturns; fix two pre-existing missing returns.
aleixsuau Jul 21, 2026
ce5b67e
Merge pull request #259 from curityio/feature/dev/IS-11495-webauthn-e…
aleixsuau Jul 21, 2026
0e40842
IS-11561 Skip the polling progress bar when the step has no max wait …
aleixsuau Jul 21, 2026
48a8108
IS-11561 Format the BankID time-left readout as m:ss to match the Vel…
aleixsuau Jul 21, 2026
3abc3b6
IS-11561 Fill the BankID progress bar with elapsed time to match the …
aleixsuau Jul 21, 2026
b3be32d
IS-11561 Show the BankID progress bar only when a QR code is present
aleixsuau Jul 21, 2026
222fc47
IS-11561 Remove the now-unused createMockBankIdAction test helper
aleixsuau Jul 21, 2026
19fdb19
IS-11561 Gate the countdown interval so it isn't created or left tick…
aleixsuau Jul 21, 2026
cfba83c
Merge pull request #260 from curityio/fix/dev/IS-11561-bankid-progres…
aleixsuau Jul 21, 2026
d49f540
Merge pull request #263 from curityio/fix/dev/IS-11577-no-implicit-re…
aleixsuau Jul 21, 2026
d7be7d2
IS-11495 Resolve WebAuthn attachment copy in the element component.
aleixsuau Jul 15, 2026
73c1996
IS-11495 Rename resolver to getAnyDeviceWebAuthnRegistrationAttachment.
aleixsuau Jul 15, 2026
7388cbd
IS-11495 Document attachment card scope; fix test description typo.
aleixsuau Jul 21, 2026
f3c006e
IS-11495 Add beforeEach default for the useHaapiStepper mock.
aleixsuau Jul 21, 2026
860eca8
Merge pull request #261 from curityio/fix/dev/IS-11495-webauthn-attac…
aleixsuau Jul 21, 2026
6e31f5a
IS-11566 Consolidate Consolidate WebAuthn registration attachment ico…
Jul 27, 2026
0663b2a
IS-11566 Use larger icon and left aligned text, also turn off flexbox…
Jul 27, 2026
86ae92c
Merge pull request #271 from curityio/feat/dev/IS-11566-consolidate-w…
urre Jul 28, 2026
08c23ff
IS-11604 Fix SSP app README deployment guide.
Jul 28, 2026
6db7484
Potential fix for pull request finding
markoweb Jul 28, 2026
c467683
Potential fix for pull request finding
markoweb Jul 28, 2026
2fbac4b
IS-6007 Add skeleton of support for the logos section in HAAPI user c…
luisgoncalves Jul 28, 2026
218d634
IS-6007 Fix wrapping of long strings like base64 images in the json p…
Jul 29, 2026
834365f
IS-6007 Add styles for .haapi-stepper-consent-logos
Jul 29, 2026
0bae563
IS-6007 Add proper markup with display of consent logos
Jul 29, 2026
3b16b1c
IS-6007 Rename page symbols config interface
luisgoncalves Jul 29, 2026
364f9b2
IS-6007 Mention new CSS class in the readme
luisgoncalves Jul 29, 2026
99f2633
Merge pull request #273 from curityio/feature/dev/IS-6007-hra-user-co…
luisgoncalves Jul 30, 2026
c3f037b
Merge pull request #272 from curityio/fix/dev/IS-11604-ssp-readme-dep…
markoweb Jul 31, 2026
eef22d4
IS-11632 Auto-follow redirect/continue action in failed polling steps.
luisgoncalves Aug 4, 2026
5818418
Merge pull request #276 from curityio/fix/11.4/IS-11632-bankid-failur…
luisgoncalves Aug 4, 2026
ce01933
Merge branch 'dev' into merge/11_4/dev/2026-08-05
Aug 5, 2026
c27f99e
Merge pull request #282 from curityio/merge/11_4/dev/2026-08-05
renatoathaydes Aug 5, 2026
4f791ad
Added UI KIT Previewer for Identity server version 11.4.0
pjoshi2023 Aug 11, 2026
67066c4
Merge pull request #286 from curityio/prep-11-4-ui-kit
pjoshi2023 Aug 11, 2026
826240d
Merge pull request #287 from curityio/version/11.4
pjoshi2023 Aug 11, 2026
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
22 changes: 18 additions & 4 deletions .github/workflows/lwa-github-ci-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ on:
push:
paths:
- 'src/haapi-react-app/**'
- 'src/haapi-react-sdk/**'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- 'src/haapi-react-app/**'
- 'src/haapi-react-sdk/**'
workflow_dispatch:

jobs:
Expand All @@ -30,16 +32,28 @@ jobs:
- name: Install Dependencies
run: npm ci

- name: Check Formatting
- name: SDK — Check Formatting
run: npm run prettier-check -w src/haapi-react-sdk

- name: SDK — Lint
run: npm run lint -w src/haapi-react-sdk

- name: SDK — Typecheck
run: npm run typecheck -w src/haapi-react-sdk

- name: SDK — Run Tests
run: npm run test -w src/haapi-react-sdk -- run

- name: App — Check Formatting
run: npm run prettier-check -w src/haapi-react-app

- name: Lint Code
- name: App — Lint
run: npm run lint -w src/haapi-react-app

- name: Build Project
- name: App — Build Project
run: npm run build:haapi-react-app

- name: Run Tests
- name: App — Run Tests
run: npm run test -w src/haapi-react-app -- run

notify-slack:
Expand Down
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,12 @@ To deploy build artifacts (assets, templates, and messages) to a production envi
```shell
npm run build
```

Or build specific projects with `npm run build:<project>` to deploy only those, e.g.:
```shell
npm run build:ssp
npm run build:haapi-react-app
```

### Deployment Options

Expand All @@ -113,6 +119,7 @@ To deploy build artifacts (assets, templates, and messages) to a production envi
This deploys:
- Identity Server assets, templates, and messages
- Self Service Portal to `templates/overrides` and `messages/overrides`
- HAAPI React App assets to the global `webroot/assets`, with its loader fragment in `templates/overrides`

**Deploy to a specific template area:**
```shell
Expand All @@ -121,6 +128,7 @@ This deploys:
This deploys:
- Identity Server assets, templates, and messages
- Self Service Portal only to the specified template area (not to overrides)
- HAAPI React App assets to the global `webroot/assets`, with its loader fragment in the specified template area

### What Gets Deployed

Expand All @@ -133,5 +141,9 @@ This deploys:
- Templates → `${IDSVR_HOME}/usr/share/templates/overrides/apps/self-service-portal` or `template-areas/{area}/apps/self-service-portal`
- Messages → `${IDSVR_HOME}/usr/share/messages/overrides/{language}/apps/self-service-portal` or `template-areas/{area}/{language}/apps/self-service-portal`

**HAAPI React App:**
- Assets → `${IDSVR_HOME}/usr/share/webroot/assets/{js,css}`, preserving content-hashed filenames so different builds can coexist
- Assets fragment → `${IDSVR_HOME}/usr/share/templates/overrides/fragments/api-driven-ui/assets.vm` or `template-areas/{area}/fragments/api-driven-ui/assets.vm`, rewritten to point at the deployed assets

## License
Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE).
69 changes: 62 additions & 7 deletions deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#
# Prerequisites:
# - Set IDSVR_HOME environment variable to your Identity Server installation directory
# - Run the build process before deploying: npm run build
# - Run the build process before deploying
#
# Usage:
# ./deploy.sh [template-area-name]
Expand Down Expand Up @@ -63,6 +63,16 @@ copy_with_feedback() {
fi
}

# Exit with an error if the given template area does not exist
assert_template_area_exists() {
local area=$1

if [ ! -d "$IDSVR_HOME/usr/share/templates/template-areas/$area" ]; then
echo -e "${RED}Error: Template area '$area' does not exist in $IDSVR_HOME/usr/share/templates/template-areas/${NC}"
exit 1
fi
}

echo "================================================"
echo "Identity Server Deployment"
echo "================================================"
Expand Down Expand Up @@ -98,16 +108,11 @@ else
if [ -n "$TEMPLATE_AREA" ]; then
# Deploy to specific template area only
echo -e "${YELLOW}Deploying Self Service Portal to template area: $TEMPLATE_AREA${NC}"
assert_template_area_exists "$TEMPLATE_AREA"

USSP_TEMPLATE_PATH="$IDSVR_HOME/usr/share/templates/template-areas/$TEMPLATE_AREA/apps/self-service-portal"
USSP_MESSAGES_BASE="$IDSVR_HOME/usr/share/messages/template-areas/$TEMPLATE_AREA"

# Check if template area exists
if [ ! -d "$IDSVR_HOME/usr/share/templates/template-areas/$TEMPLATE_AREA" ]; then
echo -e "${RED}Error: Template area '$TEMPLATE_AREA' does not exist in $IDSVR_HOME/usr/share/templates/template-areas/${NC}"
exit 1
fi

mkdir -p "$USSP_TEMPLATE_PATH"
cp src/self-service-portal/app/dist/index.html "$USSP_TEMPLATE_PATH/index.vm"
cp -r src/self-service-portal/app/dist/assets "$USSP_TEMPLATE_PATH/" 2>/dev/null || true
Expand Down Expand Up @@ -151,6 +156,56 @@ else
fi
fi

echo ""
echo "================================================"
echo "HAAPI React App Deployment"
echo "================================================"

# HAAPI React App - Check if dist exists
if [ ! -d "src/haapi-react-app/dist/assets" ]; then
echo -e "${YELLOW}⚠ HAAPI React App build not found. Skipping HAAPI React App deployment.${NC}"
echo -e "${YELLOW} Run 'npm run build:haapi-react-app' first if you want to deploy the HAAPI React App.${NC}"
else
# Locate the content-hashed entry bundles produced by Vite
HAAPI_REACT_APP_JS_FILE=$(ls src/haapi-react-app/dist/assets/index-*.js 2>/dev/null | head -n1)
HAAPI_REACT_APP_CSS_FILE=$(ls src/haapi-react-app/dist/assets/index-*.css 2>/dev/null | head -n1)

if [ -z "$HAAPI_REACT_APP_JS_FILE" ] || [ -z "$HAAPI_REACT_APP_CSS_FILE" ]; then
echo -e "${YELLOW}⚠ HAAPI React App build output is incomplete (missing JS or CSS bundle). Skipping HAAPI React App deployment.${NC}"
else

# Assets always go to the global webroot.
# Rename the "index-" prefix to "api-driven-ui-" while keeping Vite's content hash,
# so the deployed assets are recognisable and different builds still coexist.
HAAPI_REACT_APP_JS_NAME="api-driven-ui-$(basename "$HAAPI_REACT_APP_JS_FILE" | sed 's/^index-//')"
HAAPI_REACT_APP_CSS_NAME="api-driven-ui-$(basename "$HAAPI_REACT_APP_CSS_FILE" | sed 's/^index-//')"

HAAPI_WEBROOT_ASSETS="$IDSVR_HOME/usr/share/webroot/assets"
mkdir -p "$HAAPI_WEBROOT_ASSETS/js" "$HAAPI_WEBROOT_ASSETS/css"
cp "$HAAPI_REACT_APP_JS_FILE" "$HAAPI_WEBROOT_ASSETS/js/$HAAPI_REACT_APP_JS_NAME"
cp "$HAAPI_REACT_APP_CSS_FILE" "$HAAPI_WEBROOT_ASSETS/css/$HAAPI_REACT_APP_CSS_NAME"
echo -e "${GREEN}✓ HAAPI React App assets deployed to webroot/assets ($HAAPI_REACT_APP_JS_NAME, $HAAPI_REACT_APP_CSS_NAME)${NC}"

# The asset-include fragment is overridable per template location. Always (re)write it to
# point at the hashed filenames just deployed (overrides by default, template area when given).
if [ -n "$TEMPLATE_AREA" ]; then
echo -e "${YELLOW}Deploying HAAPI React App asset fragment to template area: $TEMPLATE_AREA${NC}"
assert_template_area_exists "$TEMPLATE_AREA"
HAAPI_FRAGMENT_DIR="$IDSVR_HOME/usr/share/templates/template-areas/$TEMPLATE_AREA/fragments/api-driven-ui"
else
echo -e "${YELLOW}Deploying HAAPI React App asset fragment to overrides...${NC}"
HAAPI_FRAGMENT_DIR="$IDSVR_HOME/usr/share/templates/overrides/fragments/api-driven-ui"
fi

mkdir -p "$HAAPI_FRAGMENT_DIR"
cat > "$HAAPI_FRAGMENT_DIR/assets.vm" <<EOF
<script type="module" crossorigin src="\$!_staticResourceRootPath/assets/js/$HAAPI_REACT_APP_JS_NAME\$!_cacheBustingQuery"></script>
<link rel="stylesheet" crossorigin href="\$!_staticResourceRootPath/assets/css/$HAAPI_REACT_APP_CSS_NAME\$!_cacheBustingQuery">
EOF
echo -e "${GREEN}✓ HAAPI React App asset fragment written to $HAAPI_FRAGMENT_DIR/assets.vm${NC}"
fi
fi

echo ""
echo "================================================"
echo -e "${GREEN}Deployment completed successfully!${NC}"
Expand Down
Loading
Loading