Hello!
Came here to announce Carbonite, a data auditing library for Ecto/PostgreSQL.
In essence, Carbonite wraps an elaborate audit trigger function in some Elixir code to make it readily available in Elixir applications. A little bit of extra API allows convenient access to the audit logs. Its distinctive property, however, is its use of the database transaction as a natural “bracket” around tracked data changes. This bracket is enforced by an association between the change records and a central transactions
table, where the foreign key is Postgres’ internal transaction id. The transactions
table carries additional operation metadata (like the current user id).
It’s easier to see for yourself: Github, Docs
Carbonite is still very much work-in-progress. We’re currently collecting our first experiences with it, and are still changing the API around as we go. Still, any early feedback and thoughts are appreciated!
Let me know what you think!
Best,
malte