{"repo":"milkstrawai/athar","free":true,"listed":false,"github":"https://github.com/milkstrawai/athar","clone":"git clone https://github.com/milkstrawai/athar.git","description":"Database-level deletion auditing for Rails applications without soft delete.","language":"Ruby","stars":50,"topics":["active-record","audit","auditing","deletion","postgresql","rails","ruby","ruby-on-rails","soft-delete","triggers"],"license":"MIT","category":"databases-storage","readme_excerpt":"Athar = 3.2\" = 7.2\" = 13\" Database-level deletion auditing for Rails applications without soft delete. Athar (Arabic: أَثَر, \"trace\"; pronounced A-thar ) records physical database deletions in Rails applications. Instead of leaving deleted rows in their original tables behind a deleted at filter, Athar lets the row be removed and writes a separate audit row to athar deletions using PostgreSQL triggers. Athar answers one question: What was deleted, when was it deleted, and who or what caused the deletion? It does not turn deleted rows into queryable models, and it does not provide full record version history. Table of Contents - The Problem - The Solution - Requirements - Installation - Upgrading - Quick Start - Usage - Configuration - How It Works - Operational Notes - Dashboard - Troubleshooting - Development - Contributing - License The Problem Soft delete keeps deleted rows in the original table. That usually means default scope filters, relaxed unique indexes, conditional foreign-key behavior, and query bugs when deleted rows accidentally leak into normal application reads. It also changes what \"delete\" means. The application says a row is gone, but the database still has it. Over time, teams end up designing around the soft-delete column instead of using the database's normal integrity model. The Solution Athar keeps deletion semantics simple: rows are physically deleted from their original tables, and PostgreSQL triggers write audit records into separate tables. This gi","default_branch":null,"files":null,"tree":[],"storefront":"/r/milkstrawai","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/milkstrawai/athar/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}