Offentlig API + SDK-er + embed-widget
Fire førstepartseide SDK-er over et versjonert REST-API. Cursor-paginering, Idempotency-Key-headere, HMAC-webhook-signering, async-iterator-hjelpere, typede feil. Utvikleropplevelses-bitene som bør være der — ikke ettertanker.
De fire SDK-ene
@nexbasira/node
Serverside. Typet mot OpenAPI-skjemaet; async-iteratorer for paginerte lister; constructEvent(body, sig, secret) for webhook-verify. Null runtime-avhengigheter utover global fetch.
nexbasira (PyPI)
Serverside. Pydantic v2-modeller generert fra skjemaet. Sync- + async-klienter deler samme overflate; webhook-verify ligger på WebhookSigner.verify(body, sig, secret).
@nexbasira/react
Hooks + komponenter for operatøroverflaten. <CertivisioSessionView /> gjengir øktens brukergrensesnitt med merkevare, bevis og chat. Slipp den inn i din eksisterende React-app — ingen portal-omdirigering.
Iframe-widget
<script src=".../nb-embed.js"> + en div — integrasjonen med lavest friksjon. For driftsteam som kjører operatør-grensesnittet fra en ikke-React-stack. Merkevaren arves fra den innbyggende siden via postMessage.
Bygget på OpenAPI-spesifikasjonen
Node- + Python-SDK-ene genereres fra det samme filtrerte OpenAPI 3.1-skjemaet vi publiserer på app.nexbasira.com/api/public-schema/ — så hvis du vil hoppe over SDK-en og generere din egen typede klient i Go eller Rust, kan du det:
# Node typed client
npx openapi-typescript https://app.nexbasira.com/api/public-schema/ -o src/nb-types.ts
# Python typed models
datamodel-codegen \
--url https://app.nexbasira.com/api/public-schema/ \
--input-file-type openapi \
--output-model-type pydantic_v2.BaseModel \
--output cvp_models.py Den håndskrevne ergonomiske overflaten (typede feil, async-iteratorer, webhook-verify) legges oppå de genererte typene. Du velger ikke mellom "rask typet klient" og "god DX" — begge leveres.
REST-konvensjoner, gjort kjedelige med vilje
| Konvensjon | Hvorfor |
|---|---|
| Cursor-paginering | Stabil under samtidige skrivinger. next_cursor i responsen; send den tilbake som ?cursor=…. |
Idempotency-Key-header | Send en UUID; prøv på nytt ved timeout; serveren returnerer den opprinnelige responsen uansett. |
| HMAC-SHA256-webhooks | NB-Signature: t=…,v1=…. SDK-ene leverer en enlinjes verify; 5-min replay-vindu. |
| Versjonert URL-prefiks | /api/v1/public/. Bruddendringer flyttes til /v2/ med 12 måneders overlapp. |
| Scope-styrte legitimasjoner | Hver legitimasjon bærer eksplisitte scopes (sessions:write, evidence:read, …). Roter uten å miste en tenant. |
| Typet feilkonvolutt | Samme form på hvert endepunkt. code, detail, retry_after_seconds når relevant. |
Stabilitetsløfte
Additive endringer — nye valgfrie felt, nye endepunkter, nye webhook-hendelsestyper — leveres på plass; SDK-ene behandler ukjente felt som forover-kompatible. Bruddendringer flyttes til et nytt URL-prefiks og overlapper med forrige versjon i minst 12 måneder. Du våkner ikke til en grønn-til-rød-migrering en tirsdag morgen.
Start med hurtigstarten
Opprett en økt, lag en feltinvitasjon, verifiser en webhook — på under 5 minutter. Kopier-lim curl + Node + Python på samme side.