@totoday/quinn-sdk
v0.5.0
Published
TypeScript SDK for Quinn Platform API.
Readme
@totoday/quinn-sdk
TypeScript SDK for Quinn Platform API.
Install
npm i @totoday/quinn-sdkQuick Start
import { Quinn } from "@totoday/quinn-sdk";
const quinn = new Quinn();
const org = await quinn.organizations.current();
const roles = await quinn.roles.list();
console.log(org, roles.length);Common Usage
import { Quinn } from "@totoday/quinn-sdk";
const quinn = new Quinn();
// members
const managers = await quinn.members.listManagers({ limit: 50 });
const people = await quinn.members.batchGet({
ids: ["user-id-1"],
emails: ["[email protected]"],
});
const created = await quinn.members.create({
email: "[email protected]",
firstName: "New",
lastName: "User",
sendInvite: false,
});
if (created) {
await quinn.members.updateRoles({ memberId: created.userId, roleIds: ["role-id"] });
await quinn.members.updateManager({ memberId: created.userId, managerUid: "manager-uid" });
}
// role -> level -> competencies
const roles = await quinn.roles.list();
const levels = await quinn.levels.list({ roleId: roles[0].id, limit: 100 });
const competencies = await quinn.competencies.list({
roleId: roles[0].id,
levelId: levels.items[0].id,
limit: 100,
});
// endorsements
const endorsement = await quinn.endorsements.find("<uid>", "<competencyId>");Auth and Config
new Quinn() resolves config in this order:
- constructor params (
new Quinn({ apiUrl, token, orgId })) - env vars (
QUINN_API_URL,QUINN_API_TOKEN,QUINN_ORG_ID) - config file (
~/.config/quinn/config.jsonorQUINN_CONFIG_PATH)
Default apiUrl is https://api.lunapark.com.
token and orgId are required.
Mutation Guard
By default, the SDK preserves current behavior and uses allowQuinnMutation: true.
You can explicitly block Quinn business mutations:
import { Quinn } from "@totoday/quinn-sdk";
const quinn = new Quinn({
allowQuinnMutation: false,
});You can also provide QUINN_ALLOW_QUINN_MUTATION=false through the environment.
This setting does not affect local file writes or sandbox execution. It only gates Quinn business mutations through the SDK.
For password login from scripts, use QuinnAuth:
import { QuinnAuth } from "@totoday/quinn-sdk";
const auth = new QuinnAuth();
const result = await auth.login({ email: "<email>", password: "<password>" });
console.log(result.token, result.orgId);