Skip to content

Outbound Apps: SDK is missing the management methods to upload/store user & tenant tokens and API keys (they exist in the REST API) #748

Description

@tarracharan-glitch

Hi Descope team — following on from #743 / #746, another spot where the REST
management API is ahead of the Node SDK.

The Outbound Apps REST API has endpoints to upload/store a credential into
the token vault, but management.outboundApplication doesn't wrap any of them.
Confirmed working endpoint (used to store a user's static API key server-side,
no Flow widget):

POST /v1/mgmt/outbound/app/user/apikey/upload
Authorization: Bearer <projectId>:<managementKey>
Body: { appId, userId, apiKey, tenantId? }

The REST reference also lists the sibling upload operations:

  • Upload user API key / Upload tenant API key
  • Upload user OAuth token / Upload tenant OAuth token
  • Batch upload user OAuth tokens / Batch upload tenant OAuth tokens

But the SDK's management.outboundApplication only exposes:

createApplication, createApplicationByTemplate, updateApplication,
deleteApplication, loadApplication, loadAllApplications,
fetchToken, fetchTokenByScopes, fetchTenantToken, fetchTenantTokenByScopes,
deleteUserTokens, deleteTokenById

— i.e. app-CRUD + fetch + delete, but no upload/store method. So the whole
write-a-credential surface is unreachable through the SDK.

Use case

We register apikey-type Outbound Apps programmatically and want to store a
user's API key from our backend (the user pastes it in our UI). The upload
endpoint is exactly right for this, but with no SDK method we have to hand-roll
a raw fetch to /v1/mgmt/outbound/app/user/apikey/upload with the management
bearer — bypassing the typed client we use for every other outbound op.

Proposed

Add the corresponding methods, e.g.:

management.outboundApplication.uploadUserApiKey({ appId, userId, apiKey, tenantId? })
management.outboundApplication.uploadTenantApiKey({ appId, tenantId, apiKey })
management.outboundApplication.uploadUserToken({ appId, userId, ... })
management.outboundApplication.uploadTenantToken({ appId, tenantId, ... })
// + the batch variants

Environment

  • Absent in @descope/node-sdk@2.8.0 (latest published) and on main.
  • Also absent in python-sdk (main) — neither SDK wraps the upload endpoints.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions