@layers/amba-node
v4.3.0
Published
amba SDK for Node.js server apps — full 34-module surface for backend integration with amba.
Keywords
Readme
@layers/amba-node
Amba is the agent-native backend-as-a-service for mobile and web apps. This package is the Node.js SDK — the server-side companion to @layers/amba-web, with the full 34-module Amba surface and idiomatic Node ergonomics (Connect-style middleware, per-user asUser(...) scoping for bulk operations).
Install
npm install @layers/amba-nodeConfigure + first call
import { AmbaClient } from "@layers/amba-node";
const amba = await AmbaClient.configure({
projectId: process.env.AMBA_PROJECT_ID!,
clientKey: process.env.AMBA_CLIENT_KEY!,
// Required for amba.asUser(...), which user-scoped calls go through.
serverKey: process.env.AMBA_SERVER_KEY,
});
// verifiedUserId comes from your authenticated application context or a
// verified webhook payload.
await amba.asUser(verifiedUserId).events.track("webhook_received", { source: "stripe" });The shared amba client carries no user, so user-scoped calls such as events.track go through amba.asUser(userId).
Per-user scoped calls
// Attribute the event to a specific user without minting a session.
await amba.asUser(userId).events.track("checkout_completed", { amount: 99 });Express middleware
import express from "express";
import { AmbaClient } from "@layers/amba-node";
const amba = await AmbaClient.configure({
projectId: process.env.AMBA_PROJECT_ID!,
clientKey: process.env.AMBA_CLIENT_KEY!,
serverKey: process.env.AMBA_SERVER_KEY,
});
const app = express();
app.use(amba.middleware());
app.post("/orders", async (req, res) => {
// res.locals.userId is set by your own auth middleware from a verified session.
await req.amba.asUser(res.locals.userId).events.track("order_placed");
res.sendStatus(204);
});Docs
Full reference: https://docs.amba.dev/sdk/node.
License
MIT
