Skip to content

scalekit-inc/scalekit-sdk-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Official Node.js SDK

npm version License: MIT npm downloads

Scalekit is the auth stack for AI apps - from human authentication to agent authorization. Build secure AI products faster with authentication for humans (SSO, passwordless, full-stack auth) and agents (MCP/APIs, delegated actions), all unified on one platform. This Node.js SDK enables both traditional B2B authentication and cutting-edge agentic workflows.

πŸ€– Agent-First Features

  • πŸ” Agent Identity: Agents as first-class actors with human ownership and org context
  • 🎯 MCP-Native OAuth 2.1: Purpose-built for Model Context Protocol with DCR/PKCE support
  • ⏰ Ephemeral Credentials: Time-bound, task-based authorization (minutes, not days)
  • πŸ”’ Token Vault: Per-user, per-tool token storage with rotation and progressive consent
  • πŸ‘₯ Human-in-the-Loop: Step-up authentication when risk crosses thresholds
  • πŸ“Š Immutable Audit: Track which user initiated, which agent acted, what resource was accessed

πŸ‘¨β€πŸ’Ό Human Authentication

  • πŸ” Enterprise SSO: Support for SAML and OIDC protocols
  • πŸ‘₯ SCIM Provisioning: Automated user provisioning and deprovisioning
  • πŸš€ Passwordless Authentication: Magic links, OTP, and modern auth flows
  • 🏒 Multi-tenant Architecture: Organization-level authentication policies
  • πŸ“± Social Logins: Support for popular social identity providers
  • πŸ›‘οΈ Full-Stack Auth: Complete IdP-of-record solution for B2B SaaS
  • πŸ”· TypeScript Support: Full TypeScript definitions included
πŸ“š Documentation β€’ πŸš€ SSO Quickstart β€’ πŸ’» API Reference

Pre-requisites

  1. Sign up for a Scalekit account.
  2. Get your env_url, client_id and client_secret from the Scalekit dashboard.
Note: Our NodeJS SDK currently supports NodeJS versions >=18 as it is the min LTS version that is maintained by the NodeJS ecosystem.

Installation

Install Scalekit SDK using your preferred package manager.

npm install @scalekit-sdk/node
#or
yarn add @scalekit-sdk/node
#or
pnpm add @scalekit-sdk/node

Minimum Requirements

The Scalekit Node.js SDK has been tested with and requires the following:

Component Version
Node.js 16.0.0+

Note: While Node.js 16.0.0 is the minimum requirement, we recommend using Node.js versions >=18 LTS for improved performance and long-term support.

Usage

Initialize the Scalekit client using the appropriate credentials. Refer code sample below.

import { ScalekitClient } from "@scalekit-sdk/node";

const scalekitClient = new ScalekitClient(
  process.env.SCALEKIT_ENV_URL!,
  process.env.SCALEKIT_CLIENT_ID!,
  process.env.SCALEKIT_CLIENT_SECRET!
);

// Use the sc object to interact with the Scalekit API
const authUrl = scalekitClient.getAuthorizationUrl("https://acme-corp.com/redirect-uri", {
  state: "state",
  connectionId: "connection_id",
});

Examples - SSO with Express.js

Below is a simple code sample that showcases how to implement Single Sign-on using Scalekit SDK

import express from "express";
import { ScalekitClient } from "@scalekit-sdk/node";

const app = express();

const sc = new ScalekitClient(
  process.env.SCALEKIT_ENV_URL!,
  process.env.SCALEKIT_CLIENT_ID!,
  process.env.SCALEKIT_CLIENT_SECRET!
);

const redirectUri = `${process.env.HOST}/auth/callback`;

// Get the authorization URL and redirect the user to the IdP login page
app.get("/auth/login", (req, res) => {
  const authUrl = scalekitClient.getAuthorizationUrl(
    redirectUri,
    {
      state: "state",
      connectionId: "connection_id",
    }
  );

  res.redirect(authUrl);
});

// Handle the callback from Scalekit
app.get("/auth/callback", async (req, res) => {
  const { code, error, error_description, idp_initiated_login } = req.query;
  // Handle error
  if (error) {
    return res.status(400).json({ error, error_description });
  }
  // Handle IdP initiated login
  if (idp_initiated_login) {
    // Get the claims from the IdP initiated login
    const {
      connection_id,
      organization_id,
      login_hint,
      relay_state
    } = await scalekitClient.getIdpInitiatedLoginClaims(idp_initiated_login as string);
    // Get the authorization URL and redirect the user to the IdP login page
    const url = scalekitClient.getAuthorizationUrl(
      redirectUri,
      {
        connectionId: connection_id,
        organizationId: organization_id,
        loginHint: login_hint,
        ...(relay_state && { state: relay_state }),
      }
    )

   return res.redirect(url);
  }
  const authResp = await scalekitClient.authenticateWithCode(code, redirectUri);
  res.cookie("access_token", authResp.accessToken);
  return res.json(authResp.accessToken);
});

app.listen(3000, () => {
  console.log("Server is running on port 3000");
});

πŸ“± Example Apps

Explore fully functional sample applications built with popular Node.js frameworks and the Scalekit SDK:

Framework Repository Description
Express.js scalekit-express-example Basic Express.js server implementation
Next.js scalekit-nextjs-demo Modern React/Next.js application

πŸ”— Helpful Links

πŸ“– Quickstart Guides

πŸ“š Documentation & Reference

πŸ› οΈ Additional Resources

License

This project is licensed under the MIT license. See the LICENSE file for more information.