Skip to content
Merged
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
108 changes: 107 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,113 @@ updates:
github-actions:
patterns: ["*"]

- package-ecosystem: npm
directories:
- /frameworks/reactjs/oidc-client-ts
- /frameworks/reactjs/oidc-spa
- /frameworks/reactjs/oidc-spa-starter
- /frameworks/vue
- /frameworks/nuxt/keycloak-js
- /frameworks/nuxt/oidc-client-ts
- /frameworks/sveltekit
- /frameworks/angular
- /frameworks/spring-boot-keycloak/angularclient
- /tools/e2e-smoke
schedule:
interval: monthly
cooldown:
default-days: 7
groups:
minor-and-patch:
update-types: [minor, patch]
ignore:
- dependency-name: typescript
update-types: [version-update:semver-major]
- dependency-name: "@types/node"
update-types: [version-update:semver-major]

- package-ecosystem: npm
directory: /frameworks/nextjs
schedule:
interval: monthly
cooldown:
default-days: 7
groups:
minor-and-patch:
update-types: [minor, patch]
ignore:
- dependency-name: typescript
update-types: [version-update:semver-major]
- dependency-name: "@types/node"
update-types: [version-update:semver-major]
- dependency-name: eslint
update-types: [version-update:semver-major]

- package-ecosystem: npm
directory: /frameworks/remix
schedule:
interval: monthly
cooldown:
default-days: 7
groups:
minor-and-patch:
update-types: [minor, patch]
ignore:
- dependency-name: typescript
update-types: [version-update:semver-major]
- dependency-name: "@types/node"
update-types: [version-update:semver-major]
- dependency-name: react-router
update-types: [version-update:semver-major]
- dependency-name: "@react-router/*"
update-types: [version-update:semver-major]

- package-ecosystem: npm
directory: /multitenant
schedule:
interval: monthly
cooldown:
default-days: 7
groups:
minor-and-patch:
update-types: [minor, patch]
ignore:
- dependency-name: typescript
update-types: [version-update:semver-major]
- dependency-name: "@types/node"
update-types: [version-update:semver-major]
- dependency-name: eslint
update-types: [version-update:semver-major]
- dependency-name: "@eslint/js"
update-types: [version-update:semver-major]
- dependency-name: vitest
update-types: [version-update:semver-major]

- package-ecosystem: pip
directory: /frameworks/django
schedule:
interval: monthly
groups:
minor-and-patch:
update-types: [minor, patch]
ignore:
- dependency-name: django
update-types: [version-update:semver-major]

- package-ecosystem: gradle
directories:
- /frameworks/spring-boot-keycloak
- /saml2/idp-initiated
schedule:
interval: monthly
groups:
minor-and-patch:
update-types: [minor, patch]

- package-ecosystem: docker-compose
directory: /keycloak
directories:
- /keycloak
- /frameworks/spring-boot-keycloak
- /saml2/idp-initiated
schedule:
interval: monthly
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,25 @@ This is a repo for code examples showing how to integrate Keycloak with various

[Demo Apps](./multitenant/README.md) to be used as a starting point for a multi-tenant setup with [Phase Two Organizations](https://phasetwo.io/docs/organizations/). Uses `nx` to manage the apps and `oidc-spa`. Tutorial: [Implement Multi-Tenancy Applications with Keycloak Organizations](https://phasetwo.io/blog/multi-tenancy-with-keycloak-organizations).

## Build status

| Example | Status |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| React (oidc-client-ts) | [![React (oidc-client-ts)](https://github.com/p2-inc/examples/actions/workflows/react-oidc.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/react-oidc.yml) |
| React (oidc-spa) | [![React (oidc-spa)](https://github.com/p2-inc/examples/actions/workflows/react-oidcspa.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/react-oidcspa.yml) |
| React (oidc-spa tutorial starter) | [![React (oidc-spa tutorial starter)](https://github.com/p2-inc/examples/actions/workflows/react-oidcspa-starter.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/react-oidcspa-starter.yml) |
| Next.js (NextAuth.js) | [![Next.js (NextAuth.js)](https://github.com/p2-inc/examples/actions/workflows/nextjs.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/nextjs.yml) |
| React Router v7, formerly Remix (remix-auth) | [![React Router v7, formerly Remix (remix-auth)](https://github.com/p2-inc/examples/actions/workflows/remix.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/remix.yml) |
| Vue (oidc-client-ts) | [![Vue (oidc-client-ts)](https://github.com/p2-inc/examples/actions/workflows/vue.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/vue.yml) |
| Nuxt (keycloak-js) | [![Nuxt (keycloak-js)](https://github.com/p2-inc/examples/actions/workflows/nuxt-keycloakjs.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/nuxt-keycloakjs.yml) |
| Nuxt (oidc-client-ts) | [![Nuxt (oidc-client-ts)](https://github.com/p2-inc/examples/actions/workflows/nuxt-oidc.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/nuxt-oidc.yml) |
| SvelteKit (Auth.js) | [![SvelteKit (Auth.js)](https://github.com/p2-inc/examples/actions/workflows/sveltekit.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/sveltekit.yml) |
| Angular (angular-oauth2-oidc) | [![Angular (angular-oauth2-oidc)](https://github.com/p2-inc/examples/actions/workflows/angular.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/angular.yml) |
| Django (mozilla-django-oidc) | [![Django (mozilla-django-oidc)](https://github.com/p2-inc/examples/actions/workflows/django.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/django.yml) |
| Spring Boot + Angular | [![Spring Boot + Angular](https://github.com/p2-inc/examples/actions/workflows/spring-boot-keycloak.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/spring-boot-keycloak.yml) |
| SAML IdP-initiated SSO (Spring Boot) | [![SAML IdP-initiated SSO (Spring Boot)](https://github.com/p2-inc/examples/actions/workflows/saml2-idp-initiated.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/saml2-idp-initiated.yml) |
| Multi-tenant (Nx) | [![Multi-tenant (Nx)](https://github.com/p2-inc/examples/actions/workflows/multitenant.yml/badge.svg)](https://github.com/p2-inc/examples/actions/workflows/multitenant.yml) |

## Running an example

Each example's README has its exact steps. They all need:
Expand Down
2 changes: 1 addition & 1 deletion keycloak/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Every client allows its local redirect URIs, `+` as web origin (CORS for the red

Confidential clients use the secret `<client-id>-local-dev-secret` (for example `nextjs-local-dev-secret`). **These secrets, and the demo passwords, exist only for this local container.** Never reuse them anywhere else.

The Spring Boot and SAML examples keep their own Keycloak setup (`frameworks/spring-boot-keycloak/docker-compose.yml` on port 8888, `saml2/idp-initiated`), because their tutorials use different realms.
The Spring Boot and SAML examples keep their own Keycloak setup, because their tutorials use different realms. [`frameworks/spring-boot-keycloak/docker-compose.yml`](../frameworks/spring-boot-keycloak/docker-compose.yml) runs on port 8888, next to this one. [`saml2/idp-initiated/docker-compose.yml`](../saml2/idp-initiated/docker-compose.yml) runs on port 8080 without the `/auth` path, like the SAML tutorial, so stop this Keycloak before you start that one.

## Organizations (for `/multitenant`)

Expand Down