Saltar para a documentação
SDK

Chaves de API

`keys.list`, `listAll`, `iterate`, `get`, `create`, `update`, `delete`, `rotate` e `revoke`, e os leitores do registo de pedidos e da atividade.

Todos os métodos

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 e rotate são as únicas chamadas que devolvem um segredo, em token, uma vez. Cada leitura devolve maskedKey em vez disso. update desativa e ativa uma chave com enabled, a alternativa reversível a revoke, e delete só remove uma chave já revogada. Ler precisa de keys:read e cada alteração de keys:manage.

Nunca mais ampla do que quem chama

Uma chave nunca cria nem alcança uma chave mais ampla do que ela própria: âmbitos, função, expiração, modo e âmbito de envio têm todos de ficar dentro da chave que chama, ou a chamada é recusada com 403 beyond_caller_authority. Uma chave restrita a alguns domínios ou endereços só vê as chaves dentro do seu próprio âmbito de envio. rotate sobre a chave que chama também funciona com keys:write, como me.rotate().

A verificação adicional não se pode aplicar a uma chamada feita com uma chave, por isso keys:manage é uma credencial que cria credenciais. Dê-a apenas a uma automação que emite chaves, dê a essa chave uma função, um âmbito de envio e uma expiração, e acompanhe listWorkspaceActivity, onde tudo o que ela faz fica registado em seu nome.

Registo de pedidos e atividade

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 e listActivity leem uma chave, listWorkspaceRequests e listWorkspaceActivity leem todas as chaves ou as que keyIds nomeia, e cada uma tem um listAll… e um iterate… ao lado. Aceitam since e until, e os leitores de pedidos aceitam também failedOnly.