Log inTalk to us
Charger management

Audit log

Available: signed-in dashboard routes. The audit log is the stored record of who changed what in a team or project. It is append-only and holds identifiers, roles and labels, never a secret, a token, an email address or card data.

GET /v1/audit
GET /v1/tenants/{tenant_id}/audit
GET /v1/teams/{team_id}/audit

Who can read it

RouteAllowed
/v1/teams/{team_id}/auditThe team's owners and admins (members:manage): member and invite changes and every entry of the team's projects
/v1/tenants/{tenant_id}/auditThe project's owners, admins and developers (keys:manage): project entries
/v1/auditEverything the caller may read through the two rules above, across teams; team_id and tenant_id narrow it
Any of themIvora staff read every entry

Operators, viewers and billing members are refused with 403. API keys and app tokens are refused too: the log is read by a signed-in person.

What is recorded

ActionWhen
team.member.added, team.member.updated, team.member.removedA member joins, changes role or project limit, or leaves or is removed
team.invite.created, team.invite.accepted, team.invite.declined, team.invite.revokedAn invite changes state (the address is not stored)
project.created, project.renamedA project is created or renamed
project.api_key.created, project.api_key.revokedA project API key is created (label and scopes) or revoked
metadata.updatedAn object's metadata changed: target is <object>:<id> (such as station:1042), detail the keys set with their values cut to 100 characters and the keys deleted
migration.rollback_requested, migration.rollback_applied_socket_open, migration.rollback_applied, migration.rollback_failed, migration.rollback_superseded, migration.rollback_expiredA pilot charger rollback was asked for (station, name, reason and source), and each later status: the charger proxy's result, the connection to Ivora closing, a later forward flip, or 24 hours without a result (system:migration)
migration.proxy_routes_changedThe charger proxy reported a charger on another route than before, or stopped reporting it
network_import.dry_run, network_import.applied, network_import.revertedA network import was dry-run (source and counts), applied (status) or reverted. With an API key, detail names the key (key_id, key_kind) and who made it (key_created_by)
ocpi.payment_terminal.enabled, ocpi.payment_terminal.disabledThe project chose or stopped an OCPI payment-terminal partner: target is the partner ID. While chosen, that partner may start charging at the project's ready EVSEs and charges drivers' cards for the sessions' charge records
station.decommissioned, station.recommissionedA station is decommissioned (name, reason and source: tenant or ivora) or recommissioned, by the project or by Ivora staff

An entry has id, at, actor (user:{id}), action, team_id, tenant_id (null for team-level entries), target and detail.

Filters and paging

action takes an exact action or a family (team.member). actor matches the actor exactly. since (inclusive) and until (exclusive) are ISO 8601 timestamps with an offset. Results are newest first, up to limit (1 to 100, default 50); pass next_cursor as cursor for the next, older page. It is null on the last page.

An entry is written beside the change it describes; if storing it fails, the change still succeeds.

Entries are kept for at least 1 year and then deleted. No entry can be changed, and none can be deleted before then.