Belgelere geç
Ruby

API anahtarları

`keys.list`, `list_all`, `iterate`, `get`, `create`, `update`, `delete`, `rotate` ve `revoke`, ayrıca istek günlüğü ve etkinlik okuyucuları.

Her yöntem

keys.rb
key = client.keys.create(  name: "Billing sender",  scopes: ["emails:send"],  domainAllowlist: ["billing.acme.com"],  expiresInMinutes: 60 * 24 * 90) File.write(".openemail-billing-key", key[:token]) client.keys.update(key[:id], enabled: false) rotated = client.keys.rotate(key[:id])File.write(".openemail-billing-key", rotated[:token]) client.keys.revoke(key[:id], reason: "Replaced")client.keys.delete(key[:id])

create ve rotate, token içinde bir kez gizli değer döndüren tek çağrılardır. Her okuma bunun yerine maskedKey döndürür. update bir anahtarı enabled ile kapatıp açar; bu, revoke işleminin geri alınabilir alternatifidir. delete ise yalnızca iptal edilmiş bir anahtarı kaldırır: diğer her anahtar 409 not_revoked verir. Okuma keys:read, her değişiklik ise keys:manage gerektirir.

Gem create ya da rotate çağrısını asla yeniden denemez. Kaybolan bir yanıttan sonraki yeniden deneme ikinci bir anahtar üretir ya da ilk denemenin döndürdüğü gizli değeri geçersiz kılardı. update ve revoke bir ağ hatasından sonra yeniden denenir, çünkü tekrarlanmaları aynı anahtarı bırakır; delete ise yeniden denenmez.

Asla çağırandan geniş değil

Bir anahtar asla kendisinden daha geniş bir anahtar oluşturmaz ya da ona ulaşmaz. Kapsamlar, rol, son kullanma tarihi, mod ve gönderim kapsamı çağıran anahtarın sınırları içinde olmalıdır; aksi hâlde çağrı beyond_caller_authority kodlu bir OpenEmail::PermissionError fırlatır ve param ekseni belirtir. Bazı alan adlarına ya da adreslere daraltılmış bir anahtar yalnızca kendi gönderim kapsamı içindeki anahtarları görür. Çağıran anahtar üzerindeki rotate, client.me.rotate gibi keys:write ile de çalışır.

Ek doğrulama bir anahtarla yapılan çağrıya uygulanamaz, bu yüzden keys:manage kimlik bilgisi üreten bir kimlik bilgisidir. Onu yalnızca anahtar üreten bir otomasyona verin, o anahtara bir rol, bir gönderim kapsamı ve bir son kullanma tarihi verin ve yaptığı her şeyin onun adına kaydedildiği list_workspace_activity alanını izleyin.

İstek günlüğü ve etkinlik

key_logs.rb
failures = client.keys.list_requests(  "4c1b257a66287fd113bd89d0",  failed_only: true,  since: Time.now - (24 * 60 * 60))puts failures.items.size client.keys.iterate_workspace_activity do |change|  puts [change[:keyName], change[:type], change.dig(:actor, :label)].join(" ")end

list_requests ve list_activity tek bir anahtarı, list_workspace_requests ve list_workspace_activity ise her anahtarı ya da key_ids: içinde belirtilenleri okur. Her birinin yanında list_all_requests ve iterate_requests gibi bir list_all_ ve bir iterate_ ikizi vardır. since: ve until: değerlerini bir Time, bir DateTime ya da bir ISO 8601 dizesi olarak alırlar; istek okuyucuları ayrıca failed_only: alır.

until Ruby'de ayrılmış bir sözcüktür, ancak until: yazıldığı gibi bir anahtar kelime argümanı olarak çalışır. since: değerinden sonra olmalıdır; aksi hâlde çağrı invalid_parameter kodlu bir OpenEmail::InvalidRequestError fırlatır.