Kalo te dokumentacioni
Python

Çelësat API

`keys.list`, `list_all`, `iterate`, `get`, `create`, `update`, `delete`, `rotate` dhe `revoke`, si edhe lexuesit e regjistrit të kërkesave dhe të aktivitetit.

Çdo metodë

keys.py
from pathlib import Path from openemail import openemail key = openemail.keys.create({    'name': 'Billing sender',    'scopes': ['emails:send'],    'domainAllowlist': ['billing.acme.com'],    'expiresInMinutes': 60 * 24 * 90,}) secret = Path('.openemail-billing-key')secret.touch(mode=0o600)secret.write_text(key['token']) openemail.keys.update(key['id'], {'enabled': False}) rotated = openemail.keys.rotate(key['id'])secret.write_text(rotated['token']) openemail.keys.revoke(key['id'], {'reason': 'Replaced'})openemail.keys.delete(key['id'])

create dhe rotate janë të vetmet thirrje që kthejnë një sekret, në token, një herë. Çdo lexim kthen maskedKey në vend të tij. update e fik dhe e ndez një çelës me enabled, alternativa e kthyeshme e revoke, ndërsa delete heq vetëm një çelës që është revokuar. Leximi kërkon keys:read dhe çdo ndryshim keys:manage.

Klienti nuk riprovon kurrë create ose rotate. Një riprovim pas një përgjigjeje të humbur do të krijonte një çelës të dytë, ose do të zhvlerësonte sekretin që ktheu përpjekja e parë. update dhe revoke riprovohen si leximet, sepse përsëritja e tyre e lë çelësin të njëjtë, ndërsa delete jo.

Kurrë më i gjerë se thirrësi

Një çelës nuk krijon e nuk arrin kurrë një çelës më të gjerë se vetja: scope-t, roli, skadimi, modaliteti dhe fusha e dërgimit duhet të qëndrojnë të gjitha brenda çelësit që thërret, përndryshe thirrja refuzohet me 403 beyond_caller_authority. Një çelës i ngushtuar në disa domene ose adresa sheh vetëm çelësat brenda fushës së vet të dërgimit. rotate mbi çelësin që thërret funksionon edhe me keys:write, si me.rotate().

Verifikimi shtesë nuk mund të zbatohet në një thirrje të bërë me çelës, ndaj keys:manage është një kredencial që krijon kredenciale. Jepjani vetëm një automatizimi që lëshon çelësa, jepini atij çelësi një rol, një fushë dërgimi dhe një skadim, dhe ndiqni list_workspace_activity, ku gjithçka që bën regjistrohet në emër të tij.

Regjistri i kërkesave dhe aktiviteti

key_logs.py
from datetime import datetime, timedelta, timezone from openemail import openemail failures = openemail.keys.list_requests(    '4c1b257a66287fd113bd89d0',    failed_only=True,    since=datetime.now(timezone.utc) - timedelta(days=1),)for request in failures['items']:    print(request['status'], request['method'], request['path']) for change in openemail.keys.iterate_workspace_activity():    actor = change['actor']    print(change['keyName'], change['type'], actor['label'] if actor else None)

list_requests dhe list_activity lexojnë një çelës, list_workspace_requests dhe list_workspace_activity lexojnë çdo çelës ose ata që emërton key_ids, dhe secila ka një list_all_… dhe një iterate_… pranë. Marrin since dhe until, dhe lexuesit e kërkesave marrin edhe failed_only.

since dhe until marrin një datetime ose një varg ISO 8601. Një datetime dërgohet në UTC, dhe një naiv lexohet fillimisht si ora vendore.

Referencë