Descope Flows with SDKs
You can use the Descope management SDKs for common flow management operations like list/search, delete, import, and export. The management SDK requires a management key, which can be generated here.
Backend SDK
Install SDK
npm i --save @descope/node-sdkImport and initialize SDK
import DescopeClient from '@descope/node-sdk';
try{
// baseUrl="<URL>" // When initializing the Descope client, you can also configure the baseUrl ex: https://auth.company.com - this is useful when you utilize a custom domain within your Descope project.
const descopeClient = DescopeClient({ projectId: '__ProjectID__' });
} catch (error) {
// handle the error
console.log("failed to initialize: " + error)
}
List Flows
Note
You can also use our List/Search Flows API to list or search Flows in your project.
This operation lists flows in the project. Optionally filter by flow IDs, or send an empty request body to list all flows.
// Args:
// None
const resp = await descopeClient.management.flow.list()
if (!resp.ok) {
console.log("Failed to list flows.")
console.log("Status Code: " + resp.code)
console.log("Error Code: " + resp.error.errorCode)
console.log("Error Description: " + resp.error.errorDescription)
console.log("Error Message: " + resp.error.errorMessage)
}
else {
console.log("Successfully listed flows.")
console.log(resp.data)
}Delete Flows
This operation deletes one or more flows by ID. This action is irreversible.
// Args:
// flowIds (List[str]): The flow IDs to delete.
const flowIds = ["flow-1", "flow-2"];
const resp = await descopeClient.management.flow.delete(flowIds)
if (!resp.ok) {
console.log("Failed to delete flows.")
console.log("Status Code: " + resp.code)
console.log("Error Code: " + resp.error.errorCode)
console.log("Error Description: " + resp.error.errorDescription)
console.log("Error Message: " + resp.error.errorMessage)
}
else {
console.log("Successfully deleted flows.")
}Export Flow
Note
You can also use our Export Flow API to export a Flow.
This operation exports a flow (and its screens) by flow ID.
// Args:
// flowId (str): The flow ID to export.
const flowId = "sign-up-or-in";
const resp = await descopeClient.management.flow.export(flowId)
if (!resp.ok) {
console.log("Failed to export flow.")
console.log("Status Code: " + resp.code)
console.log("Error Code: " + resp.error.errorCode)
console.log("Error Description: " + resp.error.errorDescription)
console.log("Error Message: " + resp.error.errorMessage)
}
else {
console.log("Successfully exported flow.")
console.log(resp.data)
}Import Flow
Note
You can also use our Import Flow API to import a Flow.
This operation imports a flow. This overrides the existing flow for the given ID.
// Args:
// flowId (str): The flow ID to import as.
// flow (object): The flow definition to import.
// screens (list): Optional screens to import with the flow.
const flowId = "sign-up-or-in";
const flow = {
name: "Sign Up or In",
description: "Sign up or in flow",
disabled: false,
};
const screens = [];
const resp = await descopeClient.management.flow.import(flowId, flow, screens)
if (!resp.ok) {
console.log("Failed to import flow.")
console.log("Status Code: " + resp.code)
console.log("Error Code: " + resp.error.errorCode)
console.log("Error Description: " + resp.error.errorDescription)
console.log("Error Message: " + resp.error.errorMessage)
}
else {
console.log("Successfully imported flow.")
console.log(resp.data)
} Was this helpful?