Zur Dokumentation springen
SDK

API-Schlüssel

`keys.list`, `listAll`, `iterate`, `get`, `create`, `update`, `delete`, `rotate` und `revoke` sowie die Leser für Anfrageprotokoll und Aktivität.

Alle Methoden

keys.ts
const key = await openemail.keys.create({  name: 'Billing sender',  scopes: ['emails:send'],  domainAllowlist: ['billing.acme.com'],  expiresInMinutes: 60 * 24 * 90,}) await store(key.token) await openemail.keys.update(key.id, { enabled: false })const rotated = await openemail.keys.rotate(key.id)await openemail.keys.revoke(key.id, { reason: 'Replaced' })await openemail.keys.delete(key.id)

create und rotate sind die einzigen Aufrufe, die ein Secret zurückgeben, in token, einmal. Jeder Lesezugriff liefert stattdessen maskedKey. update schaltet einen Schlüssel mit enabled aus und ein, die umkehrbare Alternative zu revoke, und delete entfernt nur einen widerrufenen Schlüssel. Lesen braucht keys:read und jede Änderung keys:manage.

Nie weiter als der Aufrufer

Ein Schlüssel erzeugt oder erreicht nie einen Schlüssel, der weiter reicht als er selbst: Scopes, Rolle, Ablauf, Modus und Sendebereich müssen alle innerhalb des aufrufenden Schlüssels liegen, sonst wird der Aufruf mit 403 beyond_caller_authority abgewiesen. Ein auf bestimmte Domains oder Adressen eingegrenzter Schlüssel sieht nur die Schlüssel innerhalb seines eigenen Sendebereichs. rotate auf dem aufrufenden Schlüssel geht auch mit keys:write, wie me.rotate().

Die erneute Bestätigung kann bei einem Aufruf mit einem Schlüssel nicht greifen, also ist keys:manage ein Zugang, der Zugänge erzeugt. Geben Sie ihn nur einer Automatisierung, die Schlüssel ausstellt, geben Sie diesem Schlüssel eine Rolle, einen Sendebereich und einen Ablauf, und beobachten Sie listWorkspaceActivity, wo alles, was er tut, auf ihn verbucht wird.

Anfrageprotokoll und Aktivität

key-logs.ts
const failures = await openemail.keys.listRequests('4c1b257a66287fd113bd89d0', {  failedOnly: true,  since: new Date(Date.now() - 24 * 60 * 60 * 1000),}) for await (const change of openemail.keys.iterateWorkspaceActivity()) {  console.log(change.keyName, change.type, change.actor?.label)}

listRequests und listActivity lesen einen Schlüssel, listWorkspaceRequests und listWorkspaceActivity jeden Schlüssel oder die, die keyIds nennt, und jede hat ein listAll… und ein iterate… daneben. Sie nehmen since und until, und die Anfrage-Leser nehmen zusätzlich failedOnly.