پرش به مستندات
SDK

کلیدهای API

`keys.list`، `listAll`، `iterate`، `get`، `create`، `update`، `delete`، `rotate` و `revoke`، به‌همراه خواننده‌های گزارش درخواست‌ها و فعالیت.

همهٔ متدها

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 و rotate تنها فراخوانی‌هایی‌اند که رمزی را، در token، یک بار برمی‌گردانند. هر خواندنی به‌جای آن maskedKey برمی‌گرداند. update کلید را با enabled خاموش و روشن می‌کند، که جایگزین برگشت‌پذیر revoke است، و delete فقط کلیدی را برمی‌دارد که باطل شده باشد. خواندن به keys:read و هر تغییر به keys:manage نیاز دارد.

هرگز گسترده‌تر از فراخوان

یک کلید هرگز کلیدی گسترده‌تر از خودش نمی‌سازد و به آن نمی‌رسد: اسکوپ‌ها، نقش، انقضا، حالت و دامنهٔ ارسال باید همه درون کلید فراخوان بمانند، وگرنه فراخوانی با 403 beyond_caller_authority رد می‌شود. کلیدی که به برخی دامنه‌ها یا نشانی‌ها محدود شده فقط کلیدهای درون دامنهٔ ارسال خودش را می‌بیند. rotate روی خود کلید فراخوان با keys:write هم کار می‌کند، مانند me.rotate().

تأیید دوباره را نمی‌توان روی فراخوانی‌ای که با کلید انجام می‌شود اعمال کرد، پس keys:manage اعتباری است که اعتبار می‌سازد. آن را فقط به خودکارسازی‌ای بدهید که کلید صادر می‌کند، به آن کلید نقش، دامنهٔ ارسال و انقضا بدهید و listWorkspaceActivity را زیر نظر بگیرید؛ هر کاری که می‌کند آنجا به نام خودش ثبت می‌شود.

گزارش درخواست‌ها و فعالیت

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 و listActivity یک کلید را می‌خوانند، listWorkspaceRequests و listWorkspaceActivity همهٔ کلیدها یا آن‌هایی را که keyIds نام می‌برد، و کنار هرکدام یک listAll… و یک iterate… هست. since و until را می‌پذیرند و خواننده‌های درخواست‌ها failedOnly را هم می‌پذیرند.