کلیدهای API
`keys.list`، `listAll`، `iterate`، `get`، `create`، `update`، `delete`، `rotate` و `revoke`، بههمراه خوانندههای گزارش درخواستها و فعالیت.
همهٔ متدها
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 را زیر نظر بگیرید؛ هر کاری که میکند آنجا به نام خودش ثبت میشود.
گزارش درخواستها و فعالیت
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 را هم میپذیرند.