-
Notifications
You must be signed in to change notification settings - Fork 471
Description
Expected Behavior
The @roadiehq/catalog-backend-module-okta plugin should work with the latest secure version of @okta/okta-sdk-nodejs (v7.1.1+) without runtime errors, allowing users to avoid known security vulnerabilities.
Current Behavior
The plugin crashes with a TypeError: client.listUsers is not a function when used with @okta/okta-sdk-nodejs v7.x due to breaking API changes in the Okta SDK. This forces users to downgrade to the vulnerable v6.x SDK to maintain functionality.
Runtime Error:
TypeError: client.listUsers is not a function
at OktaUserEntityProvider.run (/app/node_modules/@roadiehq/catalog-backend-module-okta/dist/providers/OktaUserEntityProvider.cjs.js:40:35)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
Security Issue:
Okta SDK v6.x contains a High Severity vulnerability:
✗ Prototype Pollution [High Severity] in njwt@1.2.0
introduced by @okta/okta-sdk-nodejs@6.6.0 > njwt@1.2.0
Snyk Security ID: SNYK-JS-NJWT-1070976
Steps to Reproduce
- Install
@roadiehq/catalog-backend-module-okta@1.2.1 - Upgrade
@okta/okta-sdk-nodejsto^7.1.1(the secure version) - Configure the Okta plugin in your Backstage backend
- Start the application
- Observe the runtime error when the plugin attempts to call
client.listUsers()
Minimal reproduction:
// package.json dependencies
{
"@roadiehq/catalog-backend-module-okta": "^1.2.1",
"@okta/okta-sdk-nodejs": "^7.1.1"
}Possible Solution
Update the plugin to support Okta SDK v7.x API changes:
API Changes Required:
client.listUsers()→client.userApi.listUsers()client.listGroups()→client.groupApi.listGroups()- Similar updates for other affected methods
Code locations that likely need updates:
dist/providers/OktaUserEntityProvider.cjs.js:40- Any other direct calls to Okta SDK methods on the client object
Dependencies:
- Update
peerDependenciesto support"@okta/okta-sdk-nodejs": "^7.1.1"
Context
This issue creates a security vs. functionality dilemma for Backstage users:
- Use v6.x SDK: Plugin works but application has High Severity vulnerability
- Use v7.x SDK: Application is secure but plugin crashes
We're trying to maintain a secure Backstage installation while using the Okta integration for user management. The current state forces us to choose between security and functionality.
Impact:
- Blocks security compliance for organizations using this plugin
- Prevents adoption of latest Okta SDK features and fixes
- Creates technical debt for teams maintaining Backstage instances
Your Environment
@roadiehq/catalog-backend-module-oktaversion: ^1.2.1@okta/okta-sdk-nodejsversion: ^7.1.1 (crashes) / ^6.6.0 (vulnerable but works)@backstage/backend-plugin-apiversion: ^1.3.1- Node.js version: 22.14.0
- Operating System: macOS 15.5