| Package | Starting point | Boundary |
|---|---|---|
| TypeScript | packages/sdk-typescript | Use keyed mutation helpers; inspect lastResponse.requestId and lastResponse.rateLimit for support and backoff. |
| Python | packages/sdk-python | Uses a bounded 10-second request timeout and preserves safe request/rate-limit metadata. |
| Go | packages/sdk-go | Uses a bounded 10-second HTTP client and exposes LastResponse metadata with explicit output decoding. |
| CLI | packages/cli | Safe health/readiness inspection plus explicitly confirmed scoped app registration and webhook test mutations. |
| Node sample | examples/node-server-quickstart | Server-only bearer forwarding with bounded response and timeout handling. |
TypeScript
import { LucionIdentityClient } from "@lucion/identity";
const client = new LucionIdentityClient({ token: process.env.LUCION_TOKEN });
const profile = await client.me();
await client.updateMe({ timezone: "America/New_York" }, "profile-update-2026-09-05");
const approvals = await client.organizationApprovals("org_YOUR_ORGANIZATION_ID", { limit: 25 });
await client.createOrganizationApproval("org_YOUR_ORGANIZATION_ID", { action: "billing.change", resource_type: "plan" }, "approval-create-2026-09-05");
console.log(client.lastResponse.requestId);Organization SDK contract
- Named helpers cover every organization mutation route, including settings, members, invitations, groups, roles, policies, applications, domains, delegated administrators, federation connections, and approvals.
- Every mutation requires an explicit 16–128 character Idempotency-Key; the clients reject malformed keys before sending.
- Tenant and resource identifiers are encoded as path segments. Cursors are opaque and must be passed back unchanged.