Skip to content

onboard keycloak auth provider plugin as dynamic - #3258

Open
JessicaJHee wants to merge 1 commit into
redhat-developer:mainfrom
JessicaJHee:onboard-auth-providers-keycloak
Open

onboard keycloak auth provider plugin as dynamic#3258
JessicaJHee wants to merge 1 commit into
redhat-developer:mainfrom
JessicaJHee:onboard-auth-providers-keycloak

Conversation

@JessicaJHee

@JessicaJHee JessicaJHee commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

Fixes RHIDP-16098

Onboard auth backend provider modules as supported plugins (on BS 1.52.0). These were originally statically installed in RHDH core here, but for 2.1 we are decoupling them and provide ability to install them dynamically.

  • @backstage-community/plugin-auth-backend-module-keycloak-provider

Changes

  • Adds package metadata, rhdh-supported-packages.txt entries, and default.packages.yaml (not OOTB enabled)
  • The dynamic auth plugin is disabled for now while the static installation is to be removed from core

Collateral changes

  • Updates keycloak source.json to 1.52.0
  • keycloak catalog metadata to 3.21.0

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 12, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 6:50 PM UTC · Completed 6:56 PM UTC

Commit: 8f7937f · View workflow run →

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review — Onboard Keycloak Auth Provider Plugin

Verdict: Approve

Summary

This PR onboards @backstage-community/plugin-auth-backend-module-keycloak-provider as a supported dynamic plugin and bumps the keycloak workspace to Backstage 1.52.0. The change is well-structured and follows the repo's established onboarding patterns.

Changes verified

File Assessment
workspaces/keycloak/metadata/backstage-community-plugin-auth-backend-module-keycloak-provider.yaml ✅ New Package entity with correct kind, role: backend-plugin-module, support: generally-available, and appropriate appConfigExamples
workspaces/keycloak/plugins-list.yaml ✅ New plugin path added
workspaces/keycloak/source.json ✅ Bumped to cc95112... / BS 1.52.0
workspaces/keycloak/metadata/backstage-community-plugin-catalog-backend-module-keycloak.yaml ✅ Catalog module version bumped 3.19.2 → 3.21.0, BS 1.49.4 → 1.52.0
default.packages.yaml ✅ Added under disabled: in alphabetical order with generally-available support
rhdh-supported-packages.txt ✅ Added keycloak/plugins/auth-backend-module-keycloak in correct position
workspaces/keycloak/coverage-anchors/... ✅ Empty anchor file created
workspaces/keycloak/e2e-tests/tests/config/dynamic-plugins.yaml ✅ Empty plugins list prevents auth provider from being auto-loaded during E2E (well-commented rationale)
workspaces/keycloak/e2e-tests/tests/specs/catalog-users.spec.ts ✅ References the new dynamic-plugins.yaml config and adds dismissQuickstartIfVisible() call

Observations (low severity)

  1. partOf self-reference — The new metadata sets partOf: [backstage-community-plugin-auth-backend-module-keycloak-provider], which references the entity's own name. Other packages in this repo use a logical group name (e.g., keycloak-catalog-integration, jenkins, adoption-insights). Consider using a shared logical group (e.g., keycloak-auth or linking to an existing keycloak group) to enable meaningful entity grouping.

  2. Missing trailing newline in plugins-list.yaml — The file continues to lack a trailing newline (pre-existing). Minor style nit.

Scope & coherence

  • Targets main branch, adding a new plugin to an existing workspace — consistent with the repo's branching strategy.
  • The disabled placement in default.packages.yaml ensures the auth provider is not enabled out-of-the-box, which is correct while the provider is still statically installed in RHDH core.
  • The E2E test approach (explicit empty dynamic-plugins.yaml) is the right mechanism to prevent metadata auto-generation from conflicting with the existing keycloak OIDC auth path used by e2e-test-utils.
  • No catalog entity (kind: Plugin) is needed for backend modules — consistent with other auth-backend-module packages in the repo.
  • The ENABLE_AUTH_PROVIDER_MODULE_OVERRIDE mentioned in the PR body is not set in this repo; it's likely a deployment-level configuration in RHDH core, which is expected for this overlay repository.
Previous run

Review

Verdict: approve

This PR correctly onboards @backstage-community/plugin-auth-backend-module-keycloak-provider as a supported dynamic plugin in the keycloak workspace. All changes are well-structured and consistent with established repo patterns.

Verified

  • Version accuracy: Upstream commit cc95112 ("Version Packages #9725") confirmed — auth module is 0.4.0, catalog module is 3.21.0, matching the metadata files.
  • Backstage version alignment: source.json, both metadata files, and OCI artifact tags all consistently use 1.52.0.
  • default.packages.yaml: New entry is correctly placed in the disabled section (alphabetical order) with generally-available support, matching the PR description's intent for non-OOTB delivery.
  • plugins-list.yaml: Path plugins/auth-backend-module-keycloak matches the upstream directory structure at backstage/community-plugins.
  • rhdh-supported-packages.txt: Entry format (keycloak/plugins/auth-backend-module-keycloak) follows the <workspace>/<plugin-path> convention.
  • Coverage anchor: Empty file created, following existing convention.
  • value_file.yaml: The extraEnvVars block correctly replicates chart defaults (BACKEND_SECRET, POSTGRESQL_ADMIN_PASSWORD, NODE_ENV) per the RHDHPLAN-869 list-merge constraint, matching the proven pattern from the extensions workspace.
  • ENABLE_AUTH_PROVIDER_MODULE_OVERRIDE: Properly documented with TODO referencing RHIDP-11651 in both value_file.yaml and smoke-tests/test.env. This temporary workaround is necessary while auth providers are still statically installed in RHDH core.
  • appConfigExamples: Uses environment variable placeholders (${KEYCLOAK_CLIENT_ID}, etc.) rather than hardcoded values. The emailMatchingUserEntityProfileEmail resolver is appropriate for mapping Keycloak users to Backstage user entities.
  • Smoke test env: Adds the same env vars used in the metadata's appConfigExamples with dummy values — consistent with existing smoke test patterns.
  • No security concerns: No credentials, secrets, or sensitive data in the diff. All auth configuration uses env var substitution.

Notes

  • partOf self-reference: The new metadata's partOf is ["backstage-community-plugin-auth-backend-module-keycloak-provider"] (its own name), while the sibling catalog module uses ["keycloak-catalog-integration"]. Self-referential partOf is an established pattern in this repo (used by ~8 other packages) for standalone packages without a corresponding Plugin entity. This is acceptable and can be updated when a Plugin entity is created.
  • No Plugin entity yet: The new Package is not referenced in any catalog-entities/extensions/plugins/*.yaml Plugin entity. This means the auth provider won't appear in the Extensions UI until a Plugin entity is created. This appears intentional as a separate follow-up.
  • Catalog module version bump (3.19.2 → 3.21.0): Minor version bump; no major version boundary crossed. Both old and new versions are within the same major version, so no breaking API risk.
  • Backstage version bump (1.49.x → 1.52.0): Significant minor version jump in source.json, but the workspace was already behind and this aligns it with the target BS version for the auth module onboarding.
Previous run (2)

Review — approve

Onboard keycloak auth provider plugin as a dynamic plugin for RHDH 2.1

This PR correctly onboards @backstage-community/plugin-auth-backend-module-keycloak-provider as a dynamically installable plugin, as part of decoupling auth providers from static RHDH core installation. It also updates the keycloak workspace from Backstage 1.49.3 to 1.52.0 and bumps the existing catalog plugin (@backstage-community/plugin-catalog-backend-module-keycloak) from 3.19.2 to 3.21.0.

Correctness

Version consistency — verified. All version references align:

  • source.jsonrepo-backstage-version: "1.52.0"
  • New auth provider metadata → supportedVersions: 1.52.0, OCI tag bs_1.52.0__0.4.0
  • Updated catalog plugin metadata → supportedVersions: 1.52.0, OCI tag bs_1.52.0__3.21.0
  • versions.json (main branch) → backstage: "1.52.0"

Workspace artifacts — complete. All expected onboarding files are present:

  • Package metadata (metadata/*.yaml) ✔
  • plugins-list.yaml entry ✔
  • rhdh-supported-packages.txt entry ✔
  • default.packages.yaml entry (correctly placed in disabled section, alphabetically ordered) ✔
  • Coverage anchor file ✔
  • Smoke test env (test.env) with required env vars ✔
  • E2E test config (value_file.yaml) with required env vars ✔

ENABLE_AUTH_PROVIDER_MODULE_OVERRIDE — appropriate. Set in both e2e and smoke test configurations to prevent conflict between RHDH's static authProvidersModule and the new dynamic provider. Both locations include clear TODO comments referencing RHIDP-11651 for future cleanup. This is a necessary transitional measure.

Package metadata structure — valid. The new metadata file follows the established kind: Package pattern with correct apiVersion, role: backend-plugin-module, support: generally-available, and appConfigExamples providing a working Keycloak auth provider configuration template.

Security

No credentials or secrets exposed. The smoke-tests/test.env contains only dummy placeholder values. The appConfigExamples correctly use ${...} environment variable substitution placeholders for sensitive values (KEYCLOAK_CLIENT_ID, KEYCLOAK_CLIENT_SECRET, etc.).

Observations

partOf self-reference (low): The new metadata has partOf: [backstage-community-plugin-auth-backend-module-keycloak-provider], which references its own entity name. Other packages in the repo reference meaningful Plugin entity group names (e.g., keycloak-catalog-integration, jenkins, redhat-argocd). No corresponding kind: Plugin entity exists yet in catalog-entities/extensions/plugins/, so this link won't resolve in the Extensions UI. This is likely a follow-up task — the auth provider will still build and load correctly as a dynamic plugin without a Plugin catalog entry.

Previous run (3)

Review

Verdict: approve

Clean, well-structured onboarding of @backstage-community/plugin-auth-backend-module-keycloak-provider as a dynamic plugin in the keycloak workspace. All seven changed files follow established repository conventions.

What was verified

  • New Package metadata (backstage-community-plugin-auth-backend-module-keycloak-provider.yaml): Correct apiVersion, kind: Package, namespace: rhdh, role: backend-plugin-module, support: generally-available. OCI artifact tag bs_1.52.0__0.4.0 matches the declared version and supportedVersions.
  • plugins-list.yaml: New entry plugins/auth-backend-module-keycloak: added correctly as a YAML map key.
  • Coverage anchor: Empty file created at the expected path, matching the backstage-community.plugin-auth-backend-module-keycloak-provider naming convention.
  • rhdh-supported-packages.txt: Entry keycloak/plugins/auth-backend-module-keycloak added in correct alphabetical position within the keycloak group.
  • default.packages.yaml: Added to disabled section with support: "generally-available", alphabetically before the existing catalog-backend-module-keycloak entry. Consistent with PR description ("not OOTB enabled").
  • Collateral — source.json: Repo ref updated from 1efa63e to cc95112, Backstage version updated from 1.49.31.52.0. This is required since the keycloak auth provider plugin is part of the upstream community-plugins keycloak workspace at the newer ref.
  • Collateral — catalog module metadata: Existing backstage-community-plugin-catalog-backend-module-keycloak.yaml updated from version 3.19.2 / BS 1.49.4 → 3.21.0 / BS 1.52.0, consistent with the source.json update.
  • appConfigExamples: Auth provider config structure is valid — uses standard Backstage auth provider format with clientId, clientSecret, baseUrl, realm, and emailMatchingUserEntityProfileEmail sign-in resolver.
  • No security concerns: No secrets, credentials, or sensitive data in the diff. Environment variable placeholders (${KEYCLOAK_*}) are used correctly.
  • No injection patterns detected in PR body or commit messages.

Observations (non-blocking)

  • partOf self-reference: The new Package entity's partOf field references itself (backstage-community-plugin-auth-backend-module-keycloak-provider) rather than a kind: Plugin entity in catalog-entities/extensions/plugins/. The existing keycloak catalog module references keycloak-catalog-integration (a Plugin entity that exists). Without a corresponding Plugin entity, the auth provider package won't be discoverable in the RHDH Extensions UI. This is likely intentional for a follow-up — the PR body scopes this to package metadata, support entries, and default.packages.yaml.
  • Source location annotation specificity: The new file uses a plugin-specific path (plugins/auth-backend-module-keycloak) in the backstage.io/source-location annotation, while the existing catalog module uses the broader workspace path (workspaces/keycloak). Both are valid; the new file's approach is arguably more precise.

Labels: PR onboards a new plugin package to the keycloak workspace

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge feature labels Aug 12, 2026
@JessicaJHee

Copy link
Copy Markdown
Member Author

/publish

@github-actions

Copy link
Copy Markdown
Contributor

Publish workflow has completed with success.

Publishing process

✅ Finished successfully.

✅ Published container images:

  • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-auth-backend-module-keycloak-provider:pr_3258__0.4.0
  • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-catalog-backend-module-keycloak:pr_3258__3.21.0

Backstage Compatibility Check

✅ All workspaces are compatible with the target Backstage version (1.52.0).

No action required.

Metadata Validation

✅ All metadata files validated successfully.

Running e2e tests
/test e2e-ocp-helm

@github-actions

Copy link
Copy Markdown
Contributor


Smoke tests workflow failed.

⚠️ Smoke tests failed. Check the workflow logs for details.

These plugins failed to load:
(log-errors)

Error logs from container
�[2m2026-08-12T19:26:33.767Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization started: 'app', 'auth', 'catalog', 'dynamic-plugins-info', 'events', 'healthcheck', 'licensed-users-info', 'permission', 'proxy', 'scaffolder', 'scalprum', 'search', 'translations', 'user-settings' �[36mtype�[39m="initialization"
�[2m2026-08-12T19:26:33.869Z�[22m �[34msearch�[39m �[33mwarn�[39m Postgres search engine is not supported, skipping registration of search-backend-module-pg 
�[2m2026-08-12T19:26:33.870Z�[22m �[34mbackstage�[39m �[31merror�[39m Module auth-providers in Plugin 'auth' threw an error during startup, waiting for 12 other plugins to finish before shutting down the process. No auth provider found for keycloak �[36mtype�[39m="initialization" �[36mstack�[39m="Error: No auth provider found for keycloak\n    at getAuthProviderFactory (/opt/app-root/src/packages/backend/dist/modules/authProvidersModule.cjs.js:200:13)\n    at /opt/app-root/src/packages/backend/dist/modules/authProvidersModule.cjs.js:231:27\n    at Array.forEach (<anonymous>)\n    at Object.init [as func] (/opt/app-root/src/packages/backend/dist/modules/authProvidersModule.cjs.js:227:65)\n    at /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:325:41\n    at async processNode (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/lib/DependencyGraph.cjs.js:181:22)\n    at async Promise.all (index 1)\n    at async processMoreNodes (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/lib/DependencyGraph.cjs.js:176:7)\n    at async DependencyGraph.parallelTopologicalTraversal (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/lib/DependencyGraph.cjs.js:195:5)\n    at async /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:316:13\n    at async Promise.all (index 8)\n    at async #doStart (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:291:5)\n    at async BackendInitializer.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:237:12)\n    at async BackstageBackend.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackstageBackend.cjs.js:23:12)"
�[2m2026-08-12T19:26:33.885Z�[22m �[34mlicensed-users-info�[39m �[33mwarn�[39m The plugin-licensed-users-info-backend was disabled because it does not support the SQLite in-memory database configuration. 
�[2m2026-08-12T19:26:33.892Z�[22m �[34mevents�[39m �[32minfo�[39m Database is not PostgreSQL, using memory store 
�[2m2026-08-12T19:26:35.429Z�[22m �[34mapp�[39m �[32minfo�[39m Storing 0 updated assets and 373 new assets 
�[2m2026-08-12T19:26:35.607Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization complete, newly initialized: 'catalog', 'app' �[36mtype�[39m="initialization"
�[2m2026-08-12T19:26:35.608Z�[22m �[34mbackstage�[39m �[31merror�[39m Unhandled rejection Backend startup failed due to the following errors:
  Module 'auth-providers' for plugin 'auth' startup failed; caused by Error: No auth provider found for keycloak �[36mtype�[39m="unhandledRejection" �[36mcause�[39m=undefined �[36mname�[39m="BackendStartupError" �[36mstack�[39m="BackendStartupError: Backend startup failed due to the following errors:\n  Module 'auth-providers' for plugin 'auth' startup failed; caused by Error: No auth provider found for keycloak\n    at #doStart (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:359:13)\n    at async BackendInitializer.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:237:12)\n    at async BackstageBackend.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackstageBackend.cjs.js:23:12)"
�[2m2026-08-12T19:26:43.437Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-08-12T19:26:43.437Z] "GET /health HTTP/1.1" 200 1951 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-08-12T19:26:43.437Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=200 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=1951

@rhdh-test-bot

Copy link
Copy Markdown

❌ Failed E2E Tests - keycloak

Platform: ocp 4.20 | RHDH Version: 1.11 | Duration: 10m 0s
Passed: 1 | Failed: 1 | Flaky: 0 | Skipped: 0
Playwright Report | Build Log | Logs | Artifacts

@github-actions github-actions Bot added mandatory-workspace PR affects a workspace with required plugins for releases workspace-update PR modifies files in an existing workspace labels Aug 12, 2026
@JessicaJHee
JessicaJHee force-pushed the onboard-auth-providers-keycloak branch from 8f7937f to 7911c96 Compare August 12, 2026 20:37
@JessicaJHee

Copy link
Copy Markdown
Member Author

/smoketest

@github-actions

Copy link
Copy Markdown
Contributor

Smoke tests workflow passed. All plugins loaded successfully.

@JessicaJHee

Copy link
Copy Markdown
Member Author

/publish

@github-actions

Copy link
Copy Markdown
Contributor

Publish workflow has completed with success.

Publishing process

✅ Finished successfully.

✅ Published container images:

  • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-auth-backend-module-keycloak-provider:pr_3258__0.4.0
  • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-catalog-backend-module-keycloak:pr_3258__3.21.0

Backstage Compatibility Check

✅ All workspaces are compatible with the target Backstage version (1.52.0).

No action required.

Metadata Validation

✅ All metadata files validated successfully.

Running e2e tests
/test e2e-ocp-helm

@github-actions

Copy link
Copy Markdown
Contributor

Smoke tests workflow passed. All plugins loaded successfully.

@JessicaJHee

Copy link
Copy Markdown
Member Author

/test e2e-ocp-helm

@rhdh-test-bot

Copy link
Copy Markdown

❌ Failed E2E Tests - keycloak

Platform: ocp 4.20 | RHDH Version: 1.11 | Duration: 10m 0s
Passed: 1 | Failed: 1 | Flaky: 0 | Skipped: 0
Playwright Report | Build Log | Logs | Artifacts

@JessicaJHee
JessicaJHee force-pushed the onboard-auth-providers-keycloak branch from 7911c96 to d7c83c0 Compare August 13, 2026 15:01
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 13, 2026

Copy link
Copy Markdown

🤖 Review · ❌ Terminated · Started 3:02 PM UTC · Ended 3:10 PM UTC

Commit: d7c83c0 · View workflow run →

@JessicaJHee

Copy link
Copy Markdown
Member Author

/test e2e-ocp-helm

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot removed the ready-for-merge All reviewers approved — ready to merge label Aug 13, 2026
@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Aug 13, 2026
@fullsend-ai-review

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 3:02 PM UTC · Completed 3:10 PM UTC

Commit: d7c83c0 · View workflow run →

@rhdh-test-bot

Copy link
Copy Markdown

❌ Failed E2E Tests - keycloak

Platform: ocp 4.20 | RHDH Version: 1.11 | Duration: 10m 8s
Passed: 0 | Failed: 2 | Flaky: 0 | Skipped: 0
Playwright Report | Build Log | Logs | Artifacts

@JessicaJHee
JessicaJHee force-pushed the onboard-auth-providers-keycloak branch from d7c83c0 to 7567dc1 Compare August 13, 2026 16:07
@JessicaJHee

Copy link
Copy Markdown
Member Author

/test e2e-ocp-helm

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 13, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 4:08 PM UTC · Completed 4:14 PM UTC

Commit: 7567dc1 · View workflow run →

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge and removed ready-for-merge All reviewers approved — ready to merge labels Aug 13, 2026
@rhdh-test-bot

Copy link
Copy Markdown

❌ Failed E2E Tests - keycloak

Platform: ocp 4.20 | RHDH Version: 1.11 | Duration: 4m 10s
Passed: 1 | Failed: 1 | Flaky: 0 | Skipped: 0
Playwright Report | Build Log | Logs | Artifacts

Signed-off-by: Jessica He <jhe@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@JessicaJHee
JessicaJHee force-pushed the onboard-auth-providers-keycloak branch from 7567dc1 to 38b7df2 Compare August 14, 2026 13:36
@sonarqubecloud

Copy link
Copy Markdown

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 14, 2026

Copy link
Copy Markdown

🤖 Review · ❌ Terminated · Started 1:38 PM UTC · Ended 1:43 PM UTC

Commit: 38b7df2 · View workflow run →

@JessicaJHee

Copy link
Copy Markdown
Member Author

/test e2e-ocp-helm

lifecycle: active
partOf:
- backstage-community-plugin-auth-backend-module-keycloak-provider
appConfigExamples:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[low] conventions

partOf references the entity own name (backstage-community-plugin-auth-backend-module-keycloak-provider) rather than a logical group. Other packages use short group names (e.g. keycloak-catalog-integration, jenkins, adoption-insights).

Suggested fix: Use a logical group name such as keycloak-auth or align with the existing keycloak-catalog-integration group.

@@ -1 +1,2 @@
plugins/auth-backend-module-keycloak:
plugins/catalog-backend-module-keycloak: No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[low] style

File lacks a trailing newline (pre-existing issue, not introduced by this PR).

Suggested fix: Add a trailing newline to the file.

@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge and removed ready-for-merge All reviewers approved — ready to merge labels Aug 14, 2026
@fullsend-ai-review

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:38 PM UTC · Completed 1:43 PM UTC

Commit: 38b7df2 · View workflow run →

@rhdh-test-bot

Copy link
Copy Markdown

✅ Passed E2E Tests - keycloak

Platform: ocp 4.20 | RHDH Version: 1.11 | Duration: 3m 48s
Passed: 2 | Failed: 0 | Flaky: 0 | Skipped: 0
Playwright Report | Build Log | Logs | Artifacts

@Zaperex Zaperex left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/publish

@JessicaJHee

Copy link
Copy Markdown
Member Author

/publish

@github-actions

Copy link
Copy Markdown
Contributor

Publish workflow has completed with success.

Publishing process

✅ Finished successfully.

✅ Published container images:

  • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-auth-backend-module-keycloak-provider:pr_3258__0.4.0
  • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-catalog-backend-module-keycloak:pr_3258__3.21.0

Backstage Compatibility Check

✅ All workspaces are compatible with the target Backstage version (1.52.0).

No action required.

Metadata Validation

✅ All metadata files validated successfully.

Running e2e tests
/test e2e-ocp-helm

@github-actions

Copy link
Copy Markdown
Contributor


Smoke tests workflow failed.

⚠️ Smoke tests failed. Check the workflow logs for details.

These plugins failed to load:
(log-errors)

Error logs from container
�[2m2026-08-14T20:03:07.363Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization started: 'app', 'auth', 'catalog', 'dynamic-plugins-info', 'events', 'healthcheck', 'licensed-users-info', 'permission', 'proxy', 'scaffolder', 'scalprum', 'search', 'translations', 'user-settings' �[36mtype�[39m="initialization"
�[2m2026-08-14T20:03:07.461Z�[22m �[34msearch�[39m �[33mwarn�[39m Postgres search engine is not supported, skipping registration of search-backend-module-pg 
�[2m2026-08-14T20:03:07.462Z�[22m �[34mbackstage�[39m �[31merror�[39m Module auth-providers in Plugin 'auth' threw an error during startup, waiting for 12 other plugins to finish before shutting down the process. No auth provider found for keycloak �[36mtype�[39m="initialization" �[36mstack�[39m="Error: No auth provider found for keycloak\n    at getAuthProviderFactory (/opt/app-root/src/packages/backend/dist/modules/authProvidersModule.cjs.js:200:13)\n    at /opt/app-root/src/packages/backend/dist/modules/authProvidersModule.cjs.js:231:27\n    at Array.forEach (<anonymous>)\n    at Object.init [as func] (/opt/app-root/src/packages/backend/dist/modules/authProvidersModule.cjs.js:227:65)\n    at /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:325:41\n    at async processNode (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/lib/DependencyGraph.cjs.js:181:22)\n    at async Promise.all (index 1)\n    at async processMoreNodes (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/lib/DependencyGraph.cjs.js:176:7)\n    at async DependencyGraph.parallelTopologicalTraversal (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/lib/DependencyGraph.cjs.js:195:5)\n    at async /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:316:13\n    at async Promise.all (index 8)\n    at async #doStart (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:291:5)\n    at async BackendInitializer.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:237:12)\n    at async BackstageBackend.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackstageBackend.cjs.js:23:12)"
�[2m2026-08-14T20:03:07.477Z�[22m �[34mlicensed-users-info�[39m �[33mwarn�[39m The plugin-licensed-users-info-backend was disabled because it does not support the SQLite in-memory database configuration. 
�[2m2026-08-14T20:03:07.484Z�[22m �[34mevents�[39m �[32minfo�[39m Database is not PostgreSQL, using memory store 
�[2m2026-08-14T20:03:09.097Z�[22m �[34mapp�[39m �[32minfo�[39m Storing 0 updated assets and 373 new assets 
�[2m2026-08-14T20:03:09.282Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization complete, newly initialized: 'scaffolder', 'catalog', 'app' �[36mtype�[39m="initialization"
�[2m2026-08-14T20:03:09.283Z�[22m �[34mbackstage�[39m �[31merror�[39m Unhandled rejection Backend startup failed due to the following errors:
  Module 'auth-providers' for plugin 'auth' startup failed; caused by Error: No auth provider found for keycloak �[36mtype�[39m="unhandledRejection" �[36mcause�[39m=undefined �[36mname�[39m="BackendStartupError" �[36mstack�[39m="BackendStartupError: Backend startup failed due to the following errors:\n  Module 'auth-providers' for plugin 'auth' startup failed; caused by Error: No auth provider found for keycloak\n    at #doStart (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:359:13)\n    at async BackendInitializer.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:237:12)\n    at async BackstageBackend.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackstageBackend.cjs.js:23:12)"
�[2m2026-08-14T20:03:09.285Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-08-14T20:03:09.285Z] "GET /health HTTP/1.1" 200 1951 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-08-14T20:03:09.285Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=200 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=1951

@rhdh-test-bot

Copy link
Copy Markdown

✅ Passed E2E Tests - keycloak

Platform: ocp 4.20 | RHDH Version: 1.11 | Duration: 3m 46s
Passed: 2 | Failed: 0 | Flaky: 0 | Skipped: 0
Playwright Report | Build Log | Logs | Artifacts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature lgtm mandatory-workspace PR affects a workspace with required plugins for releases ready-for-merge All reviewers approved — ready to merge workspace-update PR modifies files in an existing workspace

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants