Python: Policies and audit
List, create, test, evaluate and roll back access policies, check permissions, and read or verify the audit log and access transparency with the Python SDK.
spl = 'ALLOW IF "STAFF" IN ctx.actor.roles'
print(await sovaria.policy_simulate(spl, {"actor": {"roles": ["STAFF"]}, "action": "UPDATE", "resource": "books"}))
await sovaria.policy_create("pol_staff_edit_books", "staff edit books", spl, org_id)Methods
sovaria.audit_append
Append an immutable audit entry.
await sovaria.audit_append(
*, event_type: str,
actor_id: str,
source: str,
action: str,
resource_id: str | None = None,
metadata: dict[str, Any] | None = None,
ip_address: str | None = None,
) -> dict[str, Any]Parameters
event_typestrrequiredactor_idstrrequiredsourcestrrequiredactionstrrequiredresource_idstr | NoneoptionaldefaultNonemetadatadict[str, Any] | NoneoptionaldefaultNoneip_addressstr | NoneoptionaldefaultNone
- Returns
dict[str, Any]
sovaria.audit_count
Return current audit-entry count.
await sovaria.audit_count() -> dict[str, Any]- Returns
dict[str, Any]
sovaria.audit_list
Query audit entries.
await sovaria.audit_list(
*, actor_id: str | None = None,
event_type: str | None = None,
source: str | None = None,
resource_id: str | None = None,
limit: int = 50,
offset: int = 0,
) -> list[dict[str, Any]]Parameters
actor_idstr | NoneoptionaldefaultNoneevent_typestr | NoneoptionaldefaultNonesourcestr | NoneoptionaldefaultNoneresource_idstr | NoneoptionaldefaultNonelimitintoptionaldefault50offsetintoptionaldefault0
- Returns
list[dict[str, Any]]
sovaria.audit_verify
Verify audit hash-chain integrity.
await sovaria.audit_verify() -> dict[str, Any]- Returns
dict[str, Any]
sovaria.list_access_transparency
List access transparency.
await sovaria.list_access_transparency(
*, org_id: str,
project_id: str | None = None,
event_type: str | None = None,
since: str | None = None,
limit: int | None = None,
offset: int | None = None,
) -> list[dict[str, Any]]Parameters
org_idstrrequiredproject_idstr | NoneoptionaldefaultNoneevent_typestr | NoneoptionaldefaultNonesincestr | NoneoptionaldefaultNonelimitint | NoneoptionaldefaultNoneoffsetint | NoneoptionaldefaultNone
- Returns
list[dict[str, Any]]
sovaria.policy_check
Preflight one action/resource against active Guard policies.
await sovaria.policy_check(
*, org_id: str,
project_id: str,
action: str,
resource: str,
context: dict[str, Any] | None = None,
) -> dict[str, Any]Parameters
org_idstrrequiredproject_idstrrequiredactionstrrequiredresourcestrrequiredcontextdict[str, Any] | NoneoptionaldefaultNone
- Returns
dict[str, Any]
sovaria.policy_create
Create and compile a policy.
await sovaria.policy_create(
policy_id: str,
name: str,
spl_source: str,
org_id: str,
) -> dict[str, Any]Parameters
policy_idstrrequired- Your unique id, e.g.
pol_books_read. namestrrequired- Readable name.
spl_sourcestrrequired- The rule.
org_idstrrequired- Organization id.
- Returns
dict[str, Any]
sovaria.policy_delete
Delete (deactivate) a policy.
await sovaria.policy_delete(policy_id: str) -> NoneParameters
policy_idstrrequired
- Returns
None
sovaria.policy_evaluate
Evaluate a policy against an explicit debug context.
await sovaria.policy_evaluate(
policy_id: str,
context: dict[str, Any],
) -> dict[str, Any]Parameters
policy_idstrrequiredcontextdict[str, Any]required
- Returns
dict[str, Any]
sovaria.policy_get
Get a single policy by ID.
await sovaria.policy_get(policy_id: str) -> dict[str, Any]Parameters
policy_idstrrequired
- Returns
dict[str, Any]
sovaria.policy_history
Return version history for a policy.
await sovaria.policy_history(policy_id: str) -> list[dict[str, Any]]Parameters
policy_idstrrequired
- Returns
list[dict[str, Any]]
sovaria.policy_list
List active policies visible in current tenant scope.
await sovaria.policy_list() -> list[dict[str, Any]]- Returns
list[dict[str, Any]]
sovaria.policy_preflight
Preflight against current SDK org/project scope.
await sovaria.policy_preflight(
action: str,
resource: str,
context: dict[str, Any] | None = None,
) -> dict[str, Any]Parameters
actionstrrequiredresourcestrrequiredcontextdict[str, Any] | NoneoptionaldefaultNone
- Returns
dict[str, Any]
sovaria.policy_rollback
Rollback a policy to a historical version.
await sovaria.policy_rollback(
policy_id: str,
version: int,
) -> dict[str, Any]Parameters
policy_idstrrequiredversionintrequired
- Returns
dict[str, Any]
sovaria.policy_simulate
Policy simulate.
await sovaria.policy_simulate(
spl_source: str,
context: dict[str, Any] | None = None,
) -> dict[str, Any]Parameters
spl_sourcestrrequiredcontextdict[str, Any] | NoneoptionaldefaultNone
- Returns
dict[str, Any]
sovaria.policy_templates
List server-authoritative SPL templates.
await sovaria.policy_templates() -> dict[str, Any]- Returns
dict[str, Any]
sovaria.policy_update
Recompile and update an existing policy.
await sovaria.policy_update(
policy_id: str,
spl_source: str,
name: str | None = None,
) -> dict[str, Any]Parameters
policy_idstrrequiredspl_sourcestrrequirednamestr | NoneoptionaldefaultNone
- Returns
dict[str, Any]