From 38b7df2485387f3099fe2a0bd902dd078040a544 Mon Sep 17 00:00:00 2001 From: Jessica He Date: Wed, 12 Aug 2026 14:39:49 -0400 Subject: [PATCH] onboard keycloak auth provider plugin as dynamic Signed-off-by: Jessica He Co-authored-by: Cursor --- default.packages.yaml | 2 + rhdh-supported-packages.txt | 1 + ...ugin-auth-backend-module-keycloak-provider | 0 .../tests/config/dynamic-plugins.yaml | 4 ++ .../tests/specs/catalog-users.spec.ts | 12 +++++- ...auth-backend-module-keycloak-provider.yaml | 43 +++++++++++++++++++ ...lugin-catalog-backend-module-keycloak.yaml | 6 +-- workspaces/keycloak/plugins-list.yaml | 1 + workspaces/keycloak/source.json | 2 +- 9 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 workspaces/keycloak/coverage-anchors/backstage-community.plugin-auth-backend-module-keycloak-provider create mode 100644 workspaces/keycloak/e2e-tests/tests/config/dynamic-plugins.yaml create mode 100644 workspaces/keycloak/metadata/backstage-community-plugin-auth-backend-module-keycloak-provider.yaml diff --git a/default.packages.yaml b/default.packages.yaml index 26bf164381..d97b9de30f 100644 --- a/default.packages.yaml +++ b/default.packages.yaml @@ -50,6 +50,8 @@ packages: # should only include GA (or TP with a path to GA) content here disabled: + - package: '@backstage-community/plugin-auth-backend-module-keycloak-provider' + support: "generally-available" - package: '@backstage-community/plugin-catalog-backend-module-keycloak' support: "generally-available" - package: '@backstage-community/plugin-catalog-backend-module-pingidentity' diff --git a/rhdh-supported-packages.txt b/rhdh-supported-packages.txt index 42f766b402..581376cb65 100644 --- a/rhdh-supported-packages.txt +++ b/rhdh-supported-packages.txt @@ -30,6 +30,7 @@ global-header/plugins/global-header homepage/plugins/homepage homepage/plugins/homepage-backend +keycloak/plugins/auth-backend-module-keycloak keycloak/plugins/catalog-backend-module-keycloak extensions/plugins/catalog-backend-module-extensions diff --git a/workspaces/keycloak/coverage-anchors/backstage-community.plugin-auth-backend-module-keycloak-provider b/workspaces/keycloak/coverage-anchors/backstage-community.plugin-auth-backend-module-keycloak-provider new file mode 100644 index 0000000000..e69de29bb2 diff --git a/workspaces/keycloak/e2e-tests/tests/config/dynamic-plugins.yaml b/workspaces/keycloak/e2e-tests/tests/config/dynamic-plugins.yaml new file mode 100644 index 0000000000..7f432f0a51 --- /dev/null +++ b/workspaces/keycloak/e2e-tests/tests/config/dynamic-plugins.yaml @@ -0,0 +1,4 @@ +# Auth provider metadata exists for publish, but E2E keeps the standard OIDC path +# (e2e-test-utils keycloak auth profile) until RHIDP-11651. An empty list here +# prevents metadata auto-generation from enabling the auth provider plugin. +plugins: [] diff --git a/workspaces/keycloak/e2e-tests/tests/specs/catalog-users.spec.ts b/workspaces/keycloak/e2e-tests/tests/specs/catalog-users.spec.ts index e5b2f1acce..d9ca2b048e 100644 --- a/workspaces/keycloak/e2e-tests/tests/specs/catalog-users.spec.ts +++ b/workspaces/keycloak/e2e-tests/tests/specs/catalog-users.spec.ts @@ -22,6 +22,7 @@ test.describe("Test Keycloak plugin", () => { await rhdh.configure({ auth: "keycloak", valueFile: "tests/config/value_file.yaml", + dynamicPlugins: "tests/config/dynamic-plugins.yaml", }); await rhdh.deploy(); @@ -40,8 +41,17 @@ test.describe("Test Keycloak plugin", () => { }); test.beforeEach( - async ({ page, loginHelper }: { page: Page; loginHelper: LoginHelper }) => { + async ({ + page, + loginHelper, + uiHelper, + }: { + page: Page; + loginHelper: LoginHelper; + uiHelper: UIhelper; + }) => { await loginHelper.loginAsKeycloakUser(); + await uiHelper.dismissQuickstartIfVisible(); await CatalogUsersPO.visitBaseURL(page); }, ); diff --git a/workspaces/keycloak/metadata/backstage-community-plugin-auth-backend-module-keycloak-provider.yaml b/workspaces/keycloak/metadata/backstage-community-plugin-auth-backend-module-keycloak-provider.yaml new file mode 100644 index 0000000000..371906be80 --- /dev/null +++ b/workspaces/keycloak/metadata/backstage-community-plugin-auth-backend-module-keycloak-provider.yaml @@ -0,0 +1,43 @@ +apiVersion: extensions.backstage.io/v1alpha1 +kind: Package +metadata: + name: backstage-community-plugin-auth-backend-module-keycloak-provider + namespace: rhdh + title: "Auth Backend Module Keycloak Provider" + links: + - url: https://red.ht/rhdh + title: Homepage + - url: https://github.com/backstage/community-plugins/issues + title: Bugs + - title: Source Code + url: https://github.com/backstage/community-plugins/tree/main/workspaces/keycloak/plugins/auth-backend-module-keycloak + annotations: + backstage.io/source-location: url:https://github.com/backstage/community-plugins/tree/main/workspaces/keycloak/plugins/auth-backend-module-keycloak + tags: + - authentication +spec: + packageName: "@backstage-community/plugin-auth-backend-module-keycloak-provider" + dynamicArtifact: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-auth-backend-module-keycloak-provider:bs_1.52.0__0.4.0 + version: 0.4.0 + backstage: + role: backend-plugin-module + supportedVersions: 1.52.0 + author: Red Hat + support: generally-available + lifecycle: active + partOf: + - backstage-community-plugin-auth-backend-module-keycloak-provider + appConfigExamples: + - title: Default configuration + content: + auth: + providers: + keycloak: + development: + clientId: ${KEYCLOAK_CLIENT_ID} + clientSecret: ${KEYCLOAK_CLIENT_SECRET} + baseUrl: ${KEYCLOAK_BASE_URL} + realm: ${KEYCLOAK_REALM} + signIn: + resolvers: + - resolver: emailMatchingUserEntityProfileEmail diff --git a/workspaces/keycloak/metadata/backstage-community-plugin-catalog-backend-module-keycloak.yaml b/workspaces/keycloak/metadata/backstage-community-plugin-catalog-backend-module-keycloak.yaml index 09b319f72e..bd4478e42f 100644 --- a/workspaces/keycloak/metadata/backstage-community-plugin-catalog-backend-module-keycloak.yaml +++ b/workspaces/keycloak/metadata/backstage-community-plugin-catalog-backend-module-keycloak.yaml @@ -17,11 +17,11 @@ metadata: - software-catalog spec: packageName: "@backstage-community/plugin-catalog-backend-module-keycloak" - dynamicArtifact: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-catalog-backend-module-keycloak:bs_1.49.4__3.19.2 - version: 3.19.2 + dynamicArtifact: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-catalog-backend-module-keycloak:bs_1.52.0__3.21.0 + version: 3.21.0 backstage: role: backend-plugin-module - supportedVersions: 1.49.4 + supportedVersions: 1.52.0 author: Red Hat support: generally-available lifecycle: active diff --git a/workspaces/keycloak/plugins-list.yaml b/workspaces/keycloak/plugins-list.yaml index 3832e0c01e..711d60758d 100644 --- a/workspaces/keycloak/plugins-list.yaml +++ b/workspaces/keycloak/plugins-list.yaml @@ -1 +1,2 @@ +plugins/auth-backend-module-keycloak: plugins/catalog-backend-module-keycloak: \ No newline at end of file diff --git a/workspaces/keycloak/source.json b/workspaces/keycloak/source.json index fda1be4c66..91bef6124e 100644 --- a/workspaces/keycloak/source.json +++ b/workspaces/keycloak/source.json @@ -1 +1 @@ -{"repo":"https://github.com/backstage/community-plugins","repo-ref":"1efa63e27cab90692df93c875ad29a57cf9d3aa5","repo-flat":false,"repo-backstage-version":"1.49.3"} \ No newline at end of file +{"repo":"https://github.com/backstage/community-plugins","repo-ref":"cc95112a8c4ff638a299f5f5fb818e6491f36577","repo-flat":false,"repo-backstage-version":"1.52.0"} \ No newline at end of file