inklok-sdk-node
v0.1.14
Published
Node.js SDK for Inklok public API
Readme
inklok-sdk-node
Node.js SDK for Inklok/OpaqueInk public API. Thin wrapper around the public endpoints; no business logic. Used as a middle-man by opaqueink Next.js instead of calling the API directly.
Install
npm install inklok-sdk-nodeUsage
import { InklokClient } from "inklok-sdk-node";
const client = new InklokClient({
baseUrl: "https://xxx.execute-api.us-east-2.amazonaws.com/prod",
});
const metadata = await client.listOrkMetadataV1({
orgId: "org-123",
accessToken: "jwt-token",
});
const members = await client.listOrgMembersV1({
orgId: "org-123",
accessToken: "jwt-token",
});
const myOrgs = await client.listMeOrgs({ accessToken: "jwt-token" });Contract tests
E2E contract tests run against a dev API. Use npm run test:contract for the RBAC matrix; to run a single role: INKLOK_RBAC_ROLE=orgAdmin npm run test:contract. See tests/contract/README.md for required env and examples.
Request/response shapes come from the OpenAPI spec (see api-spec dependency). Types are generated with openapi-typescript; see src/types.d.ts (generated).
Development
To build from source: copy .npmrc.example to .npmrc and configure GitHub Packages auth (see that file), then:
npm install
npm run buildTypes are regenerated from the spec on build; run npm run codegen to regenerate only src/types.d.ts.
CI/CD
On merge to main, GitHub Actions publishes to npm. Add an NPM_TOKEN secret (classic token, "Automation" type, from npmjs.com/settings). If the api-spec dependency is private, add GH_PACKAGES_TOKEN (PAT with read:packages) and wire the workflow to use it for GitHub Packages.
