दस्तावेज़ पर जाएँ
Ruby

API कुंजियाँ

`keys.list`, `list_all`, `iterate`, `get`, `create`, `update`, `delete`, `rotate` और `revoke`, और रिक्वेस्ट लॉग तथा गतिविधि पढ़ने वाले मेथड।

हर मेथड

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 और rotate अकेली कॉल हैं जो secret लौटाती हैं, token में, एक बार। हर read इसकी जगह maskedKey लौटाता है। update enabled से कुंजी बंद और चालू करता है, जो revoke का पलटा जा सकने वाला विकल्प है, और delete सिर्फ़ रद्द हो चुकी कुंजी हटाता है: कोई भी दूसरी कुंजी 409 not_revoked है। पढ़ने के लिए keys:read और हर बदलाव के लिए keys:manage चाहिए।

gem create या rotate पर कभी पुनः प्रयास नहीं करता। खोए जवाब के बाद पुनः प्रयास दूसरी कुंजी बना देता, या पहले प्रयास से लौटा secret अमान्य कर देता। update और revoke पर नेटवर्क विफलता के बाद पुनः प्रयास होता है, क्योंकि उन्हें दोहराने से वही कुंजी रहती है, और delete पर नहीं।

कभी कॉल करने वाले से ज़्यादा व्यापक नहीं

कोई कुंजी कभी अपने से चौड़ी कुंजी न बनाती है न उस तक पहुँचती है। scopes, भूमिका, समाप्ति, mode और send scope सभी को कॉल करने वाली कुंजी के भीतर होना चाहिए, वरना कॉल beyond_caller_authority कोड वाला OpenEmail::PermissionError raise करती है, और param उस धुरी का नाम लेता है। कुछ डोमेन या पतों तक सीमित कुंजी सिर्फ़ अपने send scope के भीतर की कुंजियाँ देखती है। कॉल करने वाली कुंजी पर rotate keys:write के साथ भी काम करता है, client.me.rotate की तरह।

दोबारा सत्यापन किसी कुंजी से की गई कॉल पर लागू नहीं हो सकता, इसलिए keys:manage ऐसा क्रेडेंशियल है जो क्रेडेंशियल बनाता है। इसे सिर्फ़ उस ऑटोमेशन को दें जो कुंजियाँ जारी करता है, उस कुंजी को एक भूमिका, send scope और समाप्ति दें, और list_workspace_activity पर नज़र रखें, जहाँ उसका किया हर काम उसके नाम दर्ज होता है।

अनुरोध लॉग और गतिविधि

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 और list_activity एक कुंजी पढ़ते हैं, और list_workspace_requests तथा list_workspace_activity हर कुंजी या वे कुंजियाँ पढ़ते हैं जिनके नाम key_ids: लेता है। हर एक के साथ एक list_all_ और एक iterate_ जुड़वाँ है, जैसे list_all_requests और iterate_requests। ये since: और until: को Time, DateTime या ISO 8601 स्ट्रिंग के रूप में लेते हैं, और रिक्वेस्ट पढ़ने वाले failed_only: भी लेते हैं।

until Ruby में आरक्षित शब्द है, पर until: जैसा लिखा है वैसे ही keyword argument के रूप में काम करता है। इसे since: से बाद का होना चाहिए, वरना कॉल invalid_parameter कोड वाला OpenEmail::InvalidRequestError raise करती है।