prismatik-hub-sdk
v0.1.1
Published
Official TypeScript SDK to integrate TechAssistia (and any on-prem app) with the Prismatik Hub: license validation, AI keys distribution, webhooks, payments, telemetry.
Maintainers
Readme
prismatik-hub-sdk
TypeScript SDK pour intégrer une instance on-prem (TechAssistia Solution ou app tierce) au Prismatik Hub : validation de licences, distribution de clés AI, webhooks signés HMAC, proxy paiement KKiaPay, télémétrie.
Installation
npm install prismatik-hub-sdkDémarrage rapide
import { PrismatikHub } from "prismatik-hub-sdk";
const hub = new PrismatikHub({
apiKey: process.env.PRISMATIK_API_KEY!, // ph_live_xxxxx
// hubUrl est optionnel — par défaut: https://www.techassistia.com
});
// Au premier boot : activer la licence sur cette instance
const activation = await hub.license.activate(
process.env.LICENSE_KEY!, // ph_lic_xxxxx
fingerprint, // ex: machine-id stable
);
if (!activation.success) throw new Error(activation.reason);
// À chaque démarrage / périodiquement : valider
const v = await hub.license.validate(fingerprint);
if (!v.valid) throw new Error("License invalid: " + v.reason);
// Vérifier une feature avant un appel
if (await hub.license.checkFeature("itsm")) {
// ... module ITSM activé
}
// Vérifier une limite
const check = await hub.license.checkLimit("users", currentUserCount);
if (!check.allowed) {
return res.status(403).json({ error: "Limite utilisateurs atteinte" });
}Modules disponibles
| Module | Méthodes |
|---|---|
| license | activate, validate, checkFeature, checkLimit, getServiceLevel |
| ai | getProviderKeys, reportUsage, getQuota |
| webhooks | register, list, delete, verifySignature |
| payments | initiate, verify |
| relay | send, poll, acknowledge |
| telemetry | report, heartbeat |
Authentification
Le SDK envoie le header Authorization: Bearer ph_live_<key> sur tous les appels. Génère ta clé API depuis le portail Prismatik Hub (/api-keys).
Configuration
new PrismatikHub({
apiKey: "ph_live_...",
hubUrl: "https://www.techassistia.com", // défaut, à override uniquement pour staging/test
timeout: 30_000, // ms, défaut 30s
retries: 2, // défaut 2 (exponentiel: 1s, 2s)
});Gestion des erreurs
import { PrismatikHub, PrismatikError } from "prismatik-hub-sdk";
try {
await hub.license.validate();
} catch (err) {
if (err instanceof PrismatikError) {
console.error(`Hub error ${err.status}: ${err.message}`);
}
}Vérification de signature webhook
const ok = hub.webhooks.verifySignature(
rawBody, // body en string brut
req.headers["x-prismatik-signature"]!, // "t=...,v1=..."
webhookSecret, // celui retourné lors de register()
);Licence
UNLICENSED — usage interne TechAssistia / partenaires Prismatik.
