Skip to content

The Management Client SDK does not provide enough type safety #1295

@KurtMar

Description

@KurtMar

Checklist

  • I have looked into the Readme, Examples, and FAQ and have not found a suitable solution or answer.
  • I have looked into the API documentation and have not found a suitable solution or answer.
  • I have searched the issues and have not found a suitable solution or answer.
  • I have searched the Auth0 Community forums and have not found a suitable solution or answer.
  • I agree to the terms within the Auth0 Code of Conduct.

Description

When upgrading existing code to the latest SDK (5.x) version there were multiple occasions where I was referencing incorrect fields, but the typescript compiler did not complain because the return types have very broad type definitions:

/** Accepts any additional properties */
[key: string]: any;

One example:

/** Accepts any additional properties */
[key: string]: any;

The correct definitions should be tight enough that when there are changes to the API, the developer will know from the typescript compiler alone that their code is referencing properties which do not exist.

Reproduction

  1. Create a query e.g.
// EXAMPLE 1
const { data } = await auth0Client.users.list()
const val = data[0].invalidPropertyThatDoesNotComplain

// EXAMPLE 2
const exportJobInfo = await auth0Client.jobs.usersExports.create({
  connection_id: process.env.AUTH_CONNECTION_ID,
  format: 'json'
})
const exportJobId = exportJobInfo.invalidPropertyThatDoesNotComplain.id
  1. Observe as the typescript compiler does not indicate that the fields are not valid

Additional context

No response

node-auth0 version

5.3.0

Node.js version

v22.22.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis points to a verified bug in the code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions