Ir a la documentación
SDK

Claves de API

`keys.list`, `listAll`, `iterate`, `get`, `create`, `update`, `delete`, `rotate` y `revoke`, y los lectores del registro de solicitudes y de la actividad.

Todos los 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 y rotate son las únicas llamadas que devuelven un secreto, en token, una vez. Cada lectura devuelve maskedKey en su lugar. update desactiva y activa una clave con enabled, la alternativa reversible a revoke, y delete solo quita una clave que ya se revocó. Leer necesita keys:read y cada cambio keys:manage.

Nunca más amplia que quien llama

Una clave nunca crea ni alcanza una clave más amplia que ella misma: ámbitos, rol, caducidad, modo y ámbito de envío tienen que quedar dentro de la clave que llama, o la llamada se rechaza con 403 beyond_caller_authority. Una clave acotada a algunos dominios o direcciones solo ve las claves dentro de su propio ámbito de envío. rotate sobre la clave que llama también funciona con keys:write, como me.rotate().

La verificación adicional no puede aplicarse a una llamada hecha con una clave, así que keys:manage es una credencial que crea credenciales. Dala solo a una automatización que emite claves, dale a esa clave un rol, un ámbito de envío y una caducidad, y vigila listWorkspaceActivity, donde todo lo que hace queda registrado a su nombre.

Registro de solicitudes y actividad

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 y listActivity leen una clave, listWorkspaceRequests y listWorkspaceActivity leen todas las claves o las que nombra keyIds, y cada una tiene un listAll… y un iterate… al lado. Aceptan since y until, y los lectores de solicitudes aceptan además failedOnly.