āļāļąāļāļāļķāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļŠāļģāļŦāļĢāļąāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļ āļēāļĒāđāļ: āļĢāļđāļāđāļāļāļāļĢāļ°āļ§āļąāļāļīāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļĩāđāļāļąāļāđāļāļ
āļāļąāļāļāļķāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļŠāļģāļŦāļĢāļąāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļ āļēāļĒāđāļāļāļĒāđāļēāļāđāļāđāļāļāļēāļāļāļāļīāļāļąāļāļī: āļāļīāļāļāļēāļĄāļ§āđāļēāđāļāļĢāļāļģāļāļ°āđāļĢāđāļĄāļ·āđāļāđāļŦāļĢāđāđāļāļāļļāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ CRUD āđāļāđāļ diffs āļāļĒāđāļēāļāļāļĨāļāļāļ āļąāļĒ āđāļĨāļ°āđāļŠāļāļāļāļĩāļāļāļīāļāļāļĢāļĢāļĄāđāļāļāļĄāļīāļ

āļāļģāđāļĄāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļ āļēāļĒāđāļāļāđāļāļāļĄāļĩ audit logs (āđāļĨāļ°āļāļļāļāļāļĩāđāļĄāļąāļāļāļąāļ)\n\nāļāļĩāļĄāļŠāđāļ§āļāđāļŦāļāđāļāļ°āđāļāļīāđāļĄāļāļąāļāļāļķāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļŦāļĨāļąāļāļāļēāļāļĄāļĩāļāļąāļāļŦāļē āļĨāļđāļāļāđāļēāļāđāļēāļāļēāļĒāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ āļāļąāļ§āđāļĨāļāļāļēāļĢāđāļāļīāļāđāļāļĨāļĩāđāļĒāļ āļŦāļĢāļ·āļāļāļđāđāļāļĢāļ§āļāļŠāļāļāļāļēāļĄāļ§āđāļē "āđāļāļĢāļāļāļļāļĄāļąāļāļīāļāļąāļāļāļĩāđ?" āļŦāļēāļāđāļāļīāđāļāđāļĢāļīāđāļĄāļāļāļāļāļąāđāļ āļāļļāļāļāļ°āļāļĒāļēāļĒāļēāļĄāļāļĢāļ°āļāļāļāļāļāļĩāļāļāļēāļāđāļāļēāļ°āđāļŠāđāļĄāđāļāļĢāļ: timestamp āļāļēāļāļāđāļāļĄāļđāļĨ āļāđāļāļāļ§āļēāļĄāđāļ Slack āđāļĨāļ°āļāļēāļĢāđāļāļē\n\nāļŠāļģāļŦāļĢāļąāļāđāļāļāļ āļēāļĒāđāļāļŠāđāļ§āļāđāļŦāļāđ "āļāļāđāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄ" āđāļĄāđāđāļāđāļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļēāļāđāļāļāđāļāđāļāļĢāļ°āļāļāļāļīāļāļīāļ§āļīāļāļĒāļēāļĻāļēāļŠāļāļĢāđāļāļĩāđāļŠāļĄāļāļđāļĢāļāđāđāļāļ āđāļāđāļĄāļąāļāļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļēāļāļļāļāļāđāļāļāļāļāļāļāļļāļāļāļģāļāļēāļĄāđāļĨāđāļ āđ āđāļāđāđāļĢāđāļ§āđāļĨāļ°āļŠāļĄāđāļģāđāļŠāļĄāļ: āđāļāļĢāļāļģāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ, āļĢāļ°āđāļāļĩāļĒāļāđāļŦāļāđāļāđāļĢāļąāļāļāļĨ, āļāļ°āđāļĢāđāļāļĨāļĩāđāļĒāļ, āđāļĄāļ·āđāļāđāļāļīāļāļāļķāđāļ, āđāļĨāļ°āļĄāļēāļāļēāļāļāļĩāđāđāļŦāļ (UI, āļāļēāļĢāļāļģāđāļāđāļē, API, āļāļāđāļāđāļĄāļāļąāļ) āļāļ§āļēāļĄāļāļąāļāđāļāļāļāļĩāđāļāļ·āļāļŠāļīāđāļāļāļĩāđāļāļģāđāļŦāđāļāļāđāļāļ·āđāļāļāļ·āļ audit log\n\nāļāļļāļāļāļĩāđ audit logs āļĄāļąāļāļĨāđāļĄāđāļŦāļĨāļ§āđāļĄāđāđāļāđāļāļēāļāļāđāļāļĄāļđāļĨ āđāļāđāļĄāļąāļāđāļāđāļ coverage āļāļĢāļ°āļ§āļąāļāļīāļāļđāļāļĩāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāđāđāļāđāļĨāđāļ āđ āđāļāđāļāļ°āļĄāļĩāļāđāļāļāļ§āđāļēāļāļāļąāļāļāļĩāđāļĄāļ·āđāļāļāļēāļāļāļđāļāļāļģāļāđāļ§āļĒāļāļ§āļēāļĄāđāļĢāđāļ§ āļāļđāđāļāļĢāļ°āļāļģāļāļīāļāļāļąāđāļ§āđāļāļāļ·āļāļāļēāļĢāđāļāđāđāļāđāļāļāļāļĨāļļāđāļĄ āļāļēāļĢāļāļģāđāļāđāļē āļāļēāļāļāļēāļĄāļāļēāļĢāļēāļ āļāļēāļĢāļāļĢāļ°āļāļģāļāļāļāđāļāļāļĄāļīāļāļāļĩāđāļāđāļēāļĄāļŦāļāđāļēāļāļāļāļāļāļī (āđāļāđāļ āļĢāļĩāđāļāđāļāļĢāļŦāļąāļŠāļāđāļēāļāļŦāļĢāļ·āļāđāļāļĨāļĩāđāļĒāļāļāļāļāļēāļ) āđāļĨāļ°āļāļēāļĢāļĨāļ (āđāļāļĒāđāļāļāļēāļ°āļāļēāļĢāļĨāļāļāļēāļ§āļĢ)\n\nāļāļĩāļāļāļ§āļēāļĄāļĨāđāļĄāđāļŦāļĨāļ§āļāļĩāđāļāļāļāđāļāļĒāļāļ·āļāļāļēāļĢāļāļŠāļĄāļĢāļ°āļŦāļ§āđāļēāļ debug logs āļāļąāļ audit logs Debug logs āļŠāļĢāđāļēāļāļāļķāđāļāļŠāļģāļŦāļĢāļąāļāļāļąāļāļāļąāļāļāļē: āļĄāļĩāđāļŠāļĩāļĒāļāļĢāļāļāļ§āļ āđāļāđāļāđāļāļīāļāđāļāļāļāļīāļ āđāļĨāļ°āđāļĄāđāļŠāļĄāđāļģāđāļŠāļĄāļ āļŠāđāļ§āļ audit logs āļŠāļĢāđāļēāļāļāļķāđāļāđāļāļ·āđāļāļāļ§āļēāļĄāļĢāļąāļāļāļīāļāļāļāļ: āļāļīāļĨāļāđāļāļāļāļĩāđ āļāļģāļāļĩāđāļāļąāļāđāļāļ āđāļĨāļ°āļĢāļđāļāđāļāļāļāļĩāđāđāļŠāļāļĩāļĒāļĢāļāļķāđāļāļāļļāļāļŠāļēāļĄāļēāļĢāļāđāļŠāļāļāđāļŦāđāļāļāļāļĩāđāđāļĄāđāđāļāđāļ§āļīāļĻāļ§āļāļĢāļāļđāđāļāđ\n\nāļāļąāļ§āļāļĒāđāļēāļāđāļāđāļāļēāļāļāļĢāļīāļ: āļāļđāđāļāļąāļāļāļēāļĢāļāđāļēāļĒāļāļąāļāļāļāļĢāđāļāđāļāļĨāļĩāđāļĒāļāđāļāļāļāļāļāļĨāļđāļāļāđāļē āđāļĨāđāļ§āļāļāđāļāđāļĄāļāļąāļāļāļąāļāđāļāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāđāļāļīāļāļāļĩāļŦāļĨāļąāļ āļāđāļēāļāļļāļāļāļąāļāļāļķāļāđāļāđāļ§āđāļē "updated customer" āļāļļāļāļāļ°āļāļāļāđāļĄāđāđāļāđāļ§āđāļēāļāļāļāļģ āļŦāļĢāļ·āļ workflow āļāļģ āļŦāļĢāļ·āļāļāļēāļĢāļāļģāđāļāđāļēāļāļąāļāļāđāļē\n\n## āļāļīāļĨāļāđāļāļāļ audit log āļāļĩāđāļāļāļāļ§āđāļēāđāļāļĢ āļāļ°āđāļĢ āđāļĄāļ·āđāļāđāļĢ\n\nāļāļēāļĢāļāļąāļāļāļķāļ audit āļāļĩāđāļāļĩāđāļĢāļīāđāļĄāļāļēāļāđāļāđāļēāļŦāļĄāļēāļĒāļŦāļāļķāđāļāļāđāļ: āļāļāļāļ§āļĢāļāđāļēāļāļĢāļēāļĒāļāļēāļĢāđāļāļĩāļĒāļ§āđāļĨāđāļ§āđāļāđāļēāđāļāļ§āđāļēāđāļāļīāļāļāļ°āđāļĢāļāļķāđāļāđāļāļĒāđāļĄāđāļāđāļāļāđāļāļē\n\n### āđāļāļĢāđāļāđāļāļāļđāđāļāļĢāļ°āļāļģ\n\nāđāļāđāļ actor āļāļĩāđāļāļąāļāđāļāļāļŠāļģāļŦāļĢāļąāļāļāļļāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ āļāļĩāļĄāļŠāđāļ§āļāđāļŦāļāđāļŦāļĒāļļāļāļāļĩāđ "user id" āđāļāđāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļ āļēāļĒāđāļāļĄāļąāļāđāļāļĨāļĩāđāļĒāļāļāđāļāļĄāļđāļĨāļāđāļēāļāļŦāļĨāļēāļĒāļāļēāļ\n\nāļĢāļ§āļĄ actor type āđāļĨāļ°āļāļąāļ§āļĢāļ°āļāļļ actor āđāļāļ·āđāļāđāļŦāđāļāļļāļāđāļĒāļāļāļ§āļēāļĄāļāđāļēāļāļĢāļ°āļŦāļ§āđāļēāļāļāļāļąāļāļāļēāļ āļāļąāļāļāļĩāļāļĢāļīāļāļēāļĢ āļŦāļĢāļ·āļāļāļēāļĢāļāļŠāļēāļāļāļēāļāļ āļēāļĒāļāļāļāđāļāđ āļŦāļēāļāļĄāļĩāļāļĩāļĄāļŦāļĢāļ·āļ tenants āđāļŦāđāđāļāđāļ organization āļŦāļĢāļ·āļ workspace id āļāđāļ§āļĒ āđāļāļ·āđāļāđāļĄāđāđāļŦāđāđāļŦāļāļļāļāļēāļĢāļāđāļāļ°āļāļāļāļąāļ\n\n### āđāļāļīāļāļāļ°āđāļĢāļāļķāđāļāđāļĨāļ°āļāļąāļāļĢāļ°āđāļāļĩāļĒāļāđāļŦāļ\n\nāļāļąāļ action (create, update, delete, restore) āļāļĢāđāļāļĄāļāļąāļ target "Target" āļāļ§āļĢāļāļąāđāļāđāļāđāļāļĄāļīāļāļĢāļāļąāļāļĄāļāļļāļĐāļĒāđāđāļĨāļ°āđāļĄāđāļāļĒāļģ: āļāļ·āđāļ table āļŦāļĢāļ·āļ entity, id āļāļāļāļĢāļ°āđāļāļĩāļĒāļ, āđāļĨāļ°āļāđāļēāđāļāđāļāđāļāđāļāđ label āļŠāļąāđāļ āđ (āđāļāđāļ āļŦāļĄāļēāļĒāđāļĨāļāļāļģāļŠāļąāđāļāļāļ·āđāļ) āđāļāļ·āđāļāļāļēāļĢāļŠāđāļāļāļāļĩāđāļĢāļ§āļāđāļĢāđāļ§\n\nāļāļļāļāļāļīāļĨāļāđāļāļąāđāļāļāđāļģāļāļĩāđāđāļāđāļāļēāļāđāļāđāļāļĢāļīāļ:\n\n- actor_type, actor_id (āđāļĨāļ° actor_display_name āļŦāļēāļāļĄāļĩ)\n- action āđāļĨāļ° target_type, target_id\n- happened_at_utc (timestamp āđāļāđāļāđāļāđāļ UTC)\n- source (screen, endpoint, job, import) āđāļĨāļ° ip_address (āđāļāļāļēāļ°āđāļĄāļ·āđāļāļāļģāđāļāđāļ)\n- reason (āļāļāļĄāđāļĄāļāļāđāđāļāļīāđāļĄāđāļāļīāļĄāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļĩāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļ)\n\n### āđāļ§āļĨāļēāđāļāļīāļāđāļŦāļāļļ\n\nāđāļāđāļ timestamp āđāļāđāļ UTC āđāļŠāļĄāļ āđāļĨāđāļ§āđāļŠāļāļāđāļāđāļāđāļ§āļĨāļēāļāđāļāļāļāļīāđāļāļāļāļāļāļđāđāļāļđāđāļ UI āđāļāļāļĄāļīāļ āļ§āļīāļāļĩāļāļĩāđāļāļ°āļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļāđāļāļāļāđāļāļĩāļĒāļāđāļĢāļ·āđāļāļ "āļāļāļŠāļāļāļāļāđāļŦāđāļāđāļ§āļĨāļēāļāđāļēāļāļāļąāļ" āļāļāļ°āļāļĢāļ§āļāļŠāļāļ\n\nāļāđāļēāļāļļāļāļāļąāļāļāļēāļĢāļāļēāļĢāļāļĢāļ°āļāļģāļāļ§āļēāļĄāđāļŠāļĩāđāļĒāļāļŠāļđāļ āđāļāđāļ āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļāļāļāļēāļ āļŠāđāļāđāļāļīāļāļāļ·āļ āļŦāļĢāļ·āļāļāļēāļĢāļŠāđāļāļāļāļāļāđāļāļĄāļđāļĨ āđāļāļīāđāļĄāļāļīāļĨāļāđ "reason" āđāļĄāđāļāļąāļāļāļķāļāļŠāļąāđāļ āđ āđāļāđāļ "āļāļāļļāļĄāļąāļāļīāđāļāļĒāļāļđāđāļāļąāļāļāļēāļĢāđāļ ticket 1842" āļāđāļŠāļēāļĄāļēāļĢāļāđāļāļĨāļĩāđāļĒāļ audit trail āļāļēāļāđāļŠāļĩāļĒāļāļĢāļāļāļ§āļāđāļāđāļāļŦāļĨāļąāļāļāļēāļāđāļāđ\n\n## āđāļĨāļ·āļāļāļĢāļđāļāđāļāļāļāđāļāļĄāļđāļĨ: event log āļāļąāļ versioned history\n\nāļāļąāļ§āđāļĨāļ·āļāļāļāļēāļĢāļāļāļāđāļāļāđāļĢāļāļāļ·āļāļāļĩāđāļĄāļēāļāļāļ "āļāļ§āļēāļĄāļāļĢāļīāļ" āļāļāļāļāļĢāļ°āļ§āļąāļāļīāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ āļāļĩāļĄāļŠāđāļ§āļāđāļŦāļāđāļāļ°āđāļĨāļ·āļāļāļŦāļāļķāđāļāđāļāļŠāļāļāđāļāļ: āļāļēāļĢāļēāļāđāļŦāļāļļāļāļēāļĢāļāđāđāļāļ append-only āļŦāļĢāļ·āļ āļāļēāļĢāļēāļāļāļĢāļ°āļ§āļąāļāļīāđāļ§āļāļĢāđāļāļąāļāļāđāļ entity\n\n### āļāļąāļ§āđāļĨāļ·āļāļ 1: Event log (āļāļēāļĢāļēāļ actions āđāļāļ append-only)\n\nEvent log āđāļāđāļāļāļēāļĢāļēāļāđāļāļĩāļĒāļ§āļāļĩāđāļāļąāļāļāļķāļāļāļļāļāļāļēāļĢāļāļĢāļ°āļāļģāđāļāđāļāđāļāļ§āđāļŦāļĄāđ āđāļāđāļĨāļ°āđāļāļ§āđāļāđāļāļ§āđāļēāđāļāļĢāļāļģ āđāļĄāļ·āđāļāđāļāļīāļāļāļ°āđāļĢāļāļķāđāļ āļĢāļ°āđāļāļĩāļĒāļāđāļāđāļāđāļĢāļąāļāļāļĨ āđāļĨāļ° payload (āļĄāļąāļāđāļāđāļ JSON) āļāļĩāđāļāļāļīāļāļēāļĒāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ\n\nāđāļĄāđāļāļĨāļāļĩāđāđāļāļīāđāļĄāļāđāļēāļĒāđāļĨāļ°āļĒāļ·āļāļŦāļĒāļļāđāļāđāļĄāļ·āđāļāļāļąāļ§āđāļāļāļāđāļāļĄāļđāļĨāđāļāļĨāļĩāđāļĒāļ āļāļāļāļāļēāļāļāļĩāđāļĒāļąāļāđāļĄāļāļāļąāļāļāļĩāļāļāļīāļāļāļĢāļĢāļĄāđāļāļāļĄāļīāļāđāļāđāļāļĒāđāļēāļāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļī āđāļāļĢāļēāļ°āļāļĩāļāļāļ·āļ "āđāļŦāļāļļāļāļēāļĢāļāđāđāļŦāļĄāđāļŠāļļāļāļāđāļāļ"\n\n### āļāļąāļ§āđāļĨāļ·āļāļ 2: Versioned history (āļāļĢāļ°āļ§āļąāļāļīāđāļāļāđāļĒāļāļāļēāļĄ entity)\n\nāđāļāļ§āļāļēāļ versioned history āļŠāļĢāđāļēāļāļāļēāļĢāļēāļāļāļĢāļ°āļ§āļąāļāļīāļāđāļ entity āđāļāđāļ Order_history āļŦāļĢāļ·āļ User_versions āđāļāļĒāļāļļāļāļāļēāļĢāļāļąāļāđāļāļāļāļ°āļŠāļĢāđāļēāļ snapshot āđāļāđāļĄ (āļŦāļĢāļ·āļāļāļļāļāļāļĩāđāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļāļāļāļāļāļīāļĨāļāđāļāļĩāđāđāļāļĨāļĩāđāļĒāļ) āļāļĢāđāļāļĄāļŦāļĄāļēāļĒāđāļĨāļāđāļ§āļāļĢāđāļāļąāļ\n\nāļ§āļīāļāļĩāļāļĩāđāļāļģāđāļŦāđāļāļēāļĢāļĢāļēāļĒāļāļēāļāļāļļāļāđāļ§āļĨāļē ("āļĢāļ°āđāļāļĩāļĒāļāļāļĩāđāļĄāļĩāļĨāļąāļāļĐāļāļ°āļāļĒāđāļēāļāđāļĢāđāļĄāļ·āđāļāļ§āļąāļāļāļąāļāļāļēāļĢāļāļĩāđāļāđāļēāļāļĄāļē?") āļāđāļēāļĒāļāļķāđāļ āđāļĨāļ°āļāļēāļāļĢāļđāđāļŠāļķāļāļāļąāļāđāļāļāļŠāļģāļŦāļĢāļąāļāļāļđāđāļāļĢāļ§āļāļŠāļāļāđāļāļĢāļēāļ° timeline āļāļāļāđāļāđāļĨāļ°āļĢāļ°āđāļāļĩāļĒāļāđāļāđāļāļŠāļīāđāļāļāļĩāđāļĢāļ§āļĄāļāļĒāļđāđāđāļāļāļąāļ§\n\nāđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāđāļāļāļēāļĢāđāļĨāļ·āļāļ:\n\n- āđāļĨāļ·āļāļ event log āļŦāļēāļāļāļļāļāļāđāļāļāļāļēāļĢāļāļĩāđāđāļāļĩāļĒāļ§āđāļŦāđāļāđāļāļŦāļē āļāļĩāļāļāļīāļāļāļĢāļĢāļĄāļāļĩāđāļāđāļēāļĒ āđāļĨāļ°āļĄāļĩāđāļĢāļāđāļŠāļĩāļĒāļāđāļāļĒāđāļĄāļ·āđāļāļāļąāļ§āđāļāļāļāļīāļāļĩāđāļŦāļĄāđāļāļĢāļēāļāļ\n- āđāļĨāļ·āļāļ versioned history āļŦāļēāļāļāļļāļāļāđāļāļāļāļēāļĢ timeline āļĢāļ°āļāļąāļāļĢāļ°āđāļāļĩāļĒāļāļāđāļāļĒ āđ āļŦāļĢāļ·āļāļĄāļļāļĄāļĄāļāļāļāļļāļāđāļ§āļĨāļē āļŦāļĢāļ·āļ diff āļāđāļāļĢāļ°āđāļāļĩāļĒāļāļāļĩāđāļāđāļēāļĒ\n- āļŦāļēāļāļāļ·āđāļāļāļĩāđāđāļāđāļāļāđāļāļĄāļđāļĨāđāļāđāļāļāđāļāļāļģāļāļąāļ event log āļāļĩāđāđāļāđāļ diff āļĢāļ°āļāļąāļāļāļīāļĨāļāđāļĄāļąāļāđāļāļēāļāļ§āđāļē snapshot āđāļāđāļĄ\n- āļŦāļēāļāļāļēāļĢāļĢāļēāļĒāļāļēāļāđāļāđāļāđāļāđāļēāļŦāļĄāļēāļĒāļŦāļĨāļąāļ āļāļēāļĢāļēāļāđāļ§āļāļĢāđāļāļąāļāļāļēāļāļāđāļēāļĒāļāđāļāļāļēāļĢāļāļīāļ§āļĢāļĩāļĄāļēāļāļāļ§āđāļēāļāļēāļĢāđāļĒāļ payload āļāļāļāđāļŦāļāļļāļāļēāļĢāļāđ\n\nāđāļĄāđāļ§āđāļēāļāļļāļāļāļ°āđāļĨāļ·āļāļāđāļāļāđāļ āđāļŦāđāļāļģāđāļŦāđāļĢāļēāļĒāļāļēāļĢ audit āđāļāđāļ immutable: āđāļĄāđāļāļąāļāđāļāļ āđāļĄāđāļĨāļ āļŦāļēāļāļĄāļĩāļāļ°āđāļĢāļāļīāļ āđāļŦāđāđāļāļīāđāļĄāļĢāļēāļĒāļāļēāļĢāđāļŦāļĄāđāļāļĩāđāļāļāļīāļāļēāļĒāļāļēāļĢāđāļāđāđāļ\n\nāļāļīāļāļēāļĢāļāļēāđāļāļīāđāļĄ correlation_id (āļŦāļĢāļ·āļ operation id) āļāļēāļĢāļāļĢāļ°āļāļģāļāļāļāļāļđāđāđāļāđāļŦāļāļķāđāļāļāļĢāļąāđāļāļĄāļąāļāļāļĢāļ°āļāļļāđāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļŦāļĨāļēāļĒāļāļĒāđāļēāļ (āđāļāđāļ "āļāļīāļāļāļēāļĢāđāļāđāļāļēāļāļāļđāđāđāļāđ" āļāļ°āļāļąāļāđāļāļāļāļđāđāđāļāđ āļĒāļāđāļĨāļīāļ sessions āđāļĨāļ°āļĒāļāđāļĨāļīāļāļāļēāļāļāļĩāđāļāđāļēāļāļāļĒāļđāđ) correlation id āļĢāđāļ§āļĄāļāđāļ§āļĒāđāļŦāđāļāļļāļāļāļąāļāļāļĨāļļāđāļĄāđāļāļ§āđāļŦāļĨāđāļēāļāļąāđāļāđāļāđāļāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĢāđāļāļĩāļĒāļ§āļāļĩāđāļāđāļēāļāđāļāđ\n\n## āļāļąāļ CRUD āđāļŦāđāđāļāļ·āđāļāļāļ·āļāđāļāđ (āļĢāļ§āļĄāļāļąāđāļāļāļēāļĢāļĨāļāđāļĨāļ°āļāļēāļĢāđāļāđāđāļāđāļāļāļāļĨāļļāđāļĄ)\n\nāļāļēāļĢāļāļąāļāļāļķāļ audit āļāļĩāđāđāļāļ·āđāļāļāļ·āļāđāļāđāđāļĢāļīāđāļĄāļāļēāļāļāļāļŦāļāļķāđāļāļāđāļ: āļāļļāļāļāļēāļĢāđāļāļĩāļĒāļāļāđāļāļāļāđāļēāļāđāļŠāđāļāļāļēāļāđāļāļĩāļĒāļ§āļāļĩāđāđāļāļĩāļĒāļāđāļŦāļāļļāļāļēāļĢāļāđ audit āļāđāļ§āļĒ āļŦāļēāļāļāļēāļāļāļąāļāđāļāļāđāļāļīāļāļāļķāđāļāđāļāļāļēāļāļāļ·āđāļāļŦāļĨāļąāļ āļāļēāļĢāļāļģāđāļāđāļē āļŦāļĢāļ·āļāļŦāļāđāļēāļāļāđāļāđāđāļāļāđāļ§āļāļāļĩāđāļāđāļēāļĄ flow āļāļāļāļī āļāļāļāļāļļāļ āļĨāđāļāļāļāļ°āļĄāļĩāļāđāļāļāļ§āđāļēāļ\n\nāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļĢāđāļēāļ āđāļŦāđāļāļąāļāļāļķāļ actor āđāļĨāļ° source (UI, API, import) āļāļĒāđāļēāļāļāļąāļāđāļāļ āļāļēāļĢāļāļģāđāļāđāļēāļāļ·āļāļāļĩāđāļāļĩāđāļāļĩāļĄāļĄāļąāļāļŦāļēāļĒāļāļąāļ§ "āđāļāļĢāļāļģ" āļāļąāļāļāļąāđāļāđāļŦāđāđāļāđāļāļāđāļē "performed by" āđāļĄāđāļāđāļāļĄāļđāļĨāļĄāļēāļāļēāļāđāļāļĨāđāļŦāļĢāļ·āļāļāļēāļĢāļāļŠāļēāļ āļāđāļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāļāļĩāđāļāļ°āđāļāđāļāļāđāļēāļāļąāđāļ āļāļāļāļāļēāļāļāļĩāđāļāļ§āļĢāđāļāđāļāļāđāļēāđāļĢāļīāđāļĄāļāđāļ (āđāļāđāļ snapshot āđāļāđāļĄāļŦāļĢāļ·āļāļāļļāļāļāļīāļĨāļāđāļŠāļģāļāļąāļ) āđāļāļ·āđāļāļāļāļīāļāļēāļĒāļ§āđāļēāļāļģāđāļĄāļĢāļ°āđāļāļĩāļĒāļāļāļķāļāļĄāļĩāļāļĒāļđāđ\n\nāļāļēāļĢāļāļąāļāđāļāļāļĄāļĩāļāļ§āļēāļĄāļāļąāļāļāđāļāļāļāļ§āđāļē āļāļļāļāļŠāļēāļĄāļēāļĢāļāļāļąāļāļāļķāļāđāļāļāļēāļ°āļāļīāļĨāļāđāļāļĩāđāđāļāļĨāļĩāđāļĒāļ (āđāļĨāđāļ āļāđāļēāļāļāđāļēāļĒ āđāļĨāļ°āđāļĢāđāļ§) āļŦāļĢāļ·āļāđāļāđāļ snapshot āđāļāđāļĄāļŦāļĨāļąāļāļāļēāļĢāļāļąāļāļāļķāļāđāļāđāļĨāļ°āļāļĢāļąāđāļ (āļāđāļēāļĒāļāđāļāļāļēāļĢāļāļīāļ§āļĢāļĩāđāļāđāļŦāļāļąāļ) āļāļēāļāļŠāļēāļĒāļāļĨāļēāļāļāļĩāđāļāļāļīāļāļąāļāļīāđāļāđāļāļ·āļāđāļāđāļ diffs āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāđāđāļāļāļāļāļī āđāļĨāļ°āđāļāđāļ snapshot āđāļāļāļēāļ°āļ§āļąāļāļāļļāļāļĩāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļ (āđāļāđāļ āļŠāļīāļāļāļīāđ āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļąāļāļāļĩāļāļāļēāļāļēāļĢ āļŦāļĢāļ·āļāļāļāļāļēāļĢāļāļąāđāļāļĢāļēāļāļē)\n\nāļāļēāļĢāļĨāļāđāļĄāđāļāļ§āļĢāļĨāļāļāļīāđāļāļŦāļĨāļąāļāļāļēāļ āđāļŦāđāļāļāļ soft delete (āļāļ is_deleted āļāļĢāđāļāļĄāđāļŦāļāļļāļāļēāļĢāļāđ audit) āļŦāļēāļāļāđāļāļ hard delete āđāļŦāđāđāļāļĩāļĒāļāđāļŦāļāļļāļāļēāļĢāļāđ audit āļāđāļāļāđāļĨāļ°āļĢāļ§āļĄ snapshot āļāļāļāļĢāļ°āđāļāļĩāļĒāļāđāļāļ·āđāļāļāļīāļŠāļđāļāļāđāļŠāļīāđāļāļāļĩāđāļāļđāļāļĨāļ\n\nāļāļēāļĢāļāļđāđāļāļ·āļ (undelete) āđāļŦāđāļĄāļāļāļ§āđāļēāđāļāđāļāļāļēāļĢāļāļĢāļ°āļāļģāđāļĒāļāļāđāļēāļāļŦāļēāļ "Restore" āđāļĄāđāđāļŦāļĄāļ·āļāļāļāļąāļ "Update" āđāļĨāļ°āļāļēāļĢāđāļĒāļāļāļģāđāļŦāđāļāļēāļĢāļāļāļāļ§āļāđāļĨāļ°āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāđāļēāļĒāļāļķāđāļ\n\nāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāđāđāļāđāļāļāļāļĨāļļāđāļĄ āļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļĢāļēāļĒāļāļēāļĢāđāļāļĩāļĒāļ§āļāļĩāđāļāļĨāļļāļĄāđāļāļĢāļ·āļāđāļāđāļ "updated 500 records." āļāļļāļāļāđāļāļāļĄāļĩāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļāļāļĩāđāļāļ°āļāļāļāļāļģāļāļēāļĄāļ§āđāļē "āļĢāļēāļĒāļāļēāļĢāđāļāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāđāļēāļ?" āđāļāļ āļēāļĒāļŦāļĨāļąāļ āļĢāļđāļāđāļāļāļāļāļīāļāļąāļāļīāđāļāđāļāļ·āļ parent event āļāļ§āļ child event āļāđāļāļĢāļ°āđāļāļĩāļĒāļ:\n\n- Parent event: actor, āđāļāļĢāļ·āđāļāļāļĄāļ·āļ/āļŦāļāđāļēāļāļ, āļāļąāļ§āļāļĢāļāļāļāļĩāđāđāļāđ āđāļĨāļ°āļāļāļēāļāļāļļāļ\n- Child event āļāđāļāļĢāļ°āđāļāļĩāļĒāļ: id āļāļāļāļĢāļ°āđāļāļĩāļĒāļ, āļāđāļāļ/āļŦāļĨāļąāļ (āļŦāļĢāļ·āļāļāļīāļĨāļāđāļāļĩāđāđāļāļĨāļĩāđāļĒāļ), āđāļĨāļ°āļāļĨāļĨāļąāļāļāđ (success/fail)\n- āļāļēāļāđāļĨāļ·āļāļ: āļāļīāļĨāļāđ reason āļĢāđāļ§āļĄ (āđāļāđāļ policy update, cleanup, migration)\n\nāļāļąāļ§āļāļĒāđāļēāļ: āļŦāļąāļ§āļŦāļāđāļēāļāļąāļāļāļāļĢāđāļāļāļīāļ 120 āļāļąāđāļ§āđāļāļāļāļĨāļļāđāļĄ āļĢāļēāļĒāļāļēāļĢ parent āļāļ°āļāļąāļāļāļąāļ§āļāļĢāļāļāļ§āđāļē "status=open, older than 30 days," āđāļĨāļ°āđāļāđāļĨāļ°āļāļąāđāļ§āļāļ°āđāļāđ child entry āļāļĩāđāđāļŠāļāļāļ§āđāļēāļāļēāļ status open -> closed\n\n## āđāļāđāļāļŠāļīāđāļāļāļĩāđāđāļāļĨāļĩāđāļĒāļāđāļāļĒāđāļĄāđāļŠāļĢāđāļēāļāļāļąāļāļŦāļēāđāļĢāļ·āđāļāļāļāļ§āļēāļĄāđāļāđāļāļŠāđāļ§āļāļāļąāļ§āļŦāļĢāļ·āļāļāļ·āđāļāļāļĩāđāđāļāđāļ\n\nāļĨāđāļāļāļāļ°āļāļĨāļēāļĒāđāļāđāļāļāļĒāļ°āđāļĢāđāļ§āđāļĄāļ·āđāļāļĄāļąāļāđāļāđāļāļĄāļēāļāđāļ (āļĢāļ°āđāļāļĩāļĒāļāđāļāđāļĄāļāļļāļāļāļąāļ§āļāļĨāļāļāđāļ) āļŦāļĢāļ·āļāđāļāđāļāļāđāļāļĒāđāļāļīāļāđāļ (āđāļāđ "edited user"). āđāļāđāļēāļŦāļĄāļēāļĒāļāļ·āļāļĢāļ°āđāļāļĩāļĒāļāļāļĩāđāļāļīāļŠāļđāļāļāđāđāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄāđāļĨāļ°āļāđāļēāļāđāļāđāđāļāļĒāđāļāļāļĄāļīāļ\n\nāļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļĩāđāļāļāļīāļāļąāļāļīāđāļāđāļāļ·āļāđāļāđāļ diff āļĢāļ°āļāļąāļāļāļīāļĨāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāđāļāļāļŠāđāļ§āļāđāļŦāļāđ āđāļāđāļāđāļāļāļēāļ°āļāļīāļĨāļāđāļāļĩāđāđāļāļĨāļĩāđāļĒāļāļāļĢāđāļāļĄāļāđāļē "before" āđāļĨāļ° "after" āļ§āļīāļāļĩāļāļĩāđāļĨāļāļāļ·āđāļāļāļĩāđāđāļĨāļ°āļāļģāđāļŦāđāļāļĩāļāļāļīāļāļāļĢāļĢāļĄāļŠāđāļāļāļāđāļēāļĒ: "Status: Pending -> Approved" āļāļąāļāđāļāļāļāļ§āđāļēāļāļĨāļāļāļāļāļēāļāđāļŦāļāđ\n\nāđāļāđāļ snapshot āđāļāđāļĄāļŠāļģāļŦāļĢāļąāļāļāđāļ§āļāđāļ§āļĨāļēāļāļĩāđāļŠāļģāļāļąāļ: āļāļēāļĢāļŠāļĢāđāļēāļ āļāļēāļĢāļĨāļ āđāļĨāļ°āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļāļēāļāļŦāļĨāļąāļ Snapshot āļāļēāļāļŦāļāļąāļ āđāļāđāļāļāļāđāļāļāļāļļāļāđāļĄāļ·āđāļāļĄāļĩāļāļāļāļēāļĄāļ§āđāļē "āđāļāļĢāđāļāļĨāđāļĨāļđāļāļāđāļēāļĄāļĩāļĨāļąāļāļĐāļāļ°āļāļĒāđāļēāļāđāļĢāļāđāļāļāļāļđāļāļĨāļ?"\n\nāļāđāļāļĄāļđāļĨāļāļĩāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļāļāđāļāļāļĄāļĩāļāļāļāļēāļĢāļĄāļēāļŠāļāđ āļĄāļīāļāļ°āļāļąāđāļāļāļēāļĢāļēāļ audit āļāļ°āļāļĨāļēāļĒāđāļāđāļāļāļēāļāļāđāļāļĄāļđāļĨāļŠāļģāļĢāļāļāļāļĩāđāđāļāđāļĄāđāļāļāđāļ§āļĒāļāļ§āļēāļĄāļĨāļąāļ āļāļāļāļĩāđāļāļāļāđāļāļĒ:\n\n- āļŦāđāļēāļĄāđāļāđāļāļĢāļŦāļąāļŠāļāđāļēāļ āđāļāđāļāļ API āļŦāļĢāļ·āļāļāļĩāļĒāđāļŠāđāļ§āļāļāļąāļ§ (āļāļąāļāļāļķāļāđāļāđāļ "changed" āđāļāđāļēāļāļąāđāļ)\n- āļĄāļēāļŠāļāđāļāđāļāļĄāļđāļĨāļŠāđāļ§āļāļāļļāļāļāļĨāđāļāđāļ āļāļĩāđāļĄāļĨ/āđāļāļĢāļĻāļąāļāļāđ (āđāļāđāļāļāļēāļāļŠāđāļ§āļāļŦāļĢāļ·āļāļāđāļēāđāļŪāļ)\n- āļŠāļģāļŦāļĢāļąāļāđāļāđāļāļŦāļĢāļ·āļāļāļīāļĨāļāđāļāđāļāļāļ§āļēāļĄāļāļīāļŠāļĢāļ° āđāļŦāđāđāļāđāļāļāļąāļ§āļāļĒāđāļēāļāļŠāļąāđāļ āđ āđāļĨāļ°āļāļāļ§āđāļē "changed"\n- āļāļąāļāļāļķāļāļāļēāļĢāļāđāļēāļāļāļīāļ (user_id, order_id) āđāļāļāļāļēāļĢāļāļąāļāļĨāļāļāļ§āļąāļāļāļļāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļāļāļąāđāļāļŦāļĄāļ\n\nāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļŠāļāļĩāļĄāļē (schema changes) āļāđāļāļģāđāļŦāđāļāļĢāļ°āļ§āļąāļāļī audit āļāļąāļāđāļāđ āļŦāļēāļāļ āļēāļĒāļŦāļĨāļąāļāļĄāļĩāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļāļ·āđāļāļāļīāļĨāļāđāļŦāļĢāļ·āļāđāļāļēāļāļāļ āđāļŦāđāđāļāđāļ fallback āļāļĨāļāļāļ āļąāļĒāđāļāđāļ "unknown field" āļāļĢāđāļāļĄāļāļĩāļĒāđāļāļīāļĨāļāđāđāļāļīāļĄ āļŠāļģāļŦāļĢāļąāļāļāļīāļĨāļāđāļāļĩāđāļāļđāļāļĨāļ āđāļŦāđāđāļāđāļāļāđāļēāļāļĩāđāļĢāļđāđāļĨāđāļēāļŠāļļāļāđāļāđāļāļģāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļ§āđāļē "field removed from schema" āđāļāļ·āđāļāđāļŦāđāļāļĩāļāļĒāļąāļāļāļāļāļ·āđāļāļŠāļąāļāļĒāđ\n\nāļŠāļļāļāļāđāļēāļĒ āļāļģāđāļŦāđāļĢāļēāļĒāļāļēāļĢāļāđāļēāļāļāđāļēāļĒāļŠāļģāļŦāļĢāļąāļāļĄāļāļļāļĐāļĒāđ āđāļāđāļāļāđāļēāļĒāđāļŠāļāļāļāļĨ ("Assigned to") āļāļ§āļāļāļđāđāļāļąāļāļāļĩāļĒāđāļāļīāļ ("assignee_id") āđāļĨāļ°āļāļāļĢāđāđāļĄāļāļāđāļē (āļ§āļąāļāļāļĩāđ āļŠāļāļļāļĨāđāļāļīāļ āļāļ·āđāļāļŠāļāļēāļāļ°)\n\n## āļĢāļđāļāđāļāļāļāļĩāļĨāļ°āļāļąāđāļāļāļāļ: āļāļģ audit logging āđāļāđāļēāđāļāđāļ flow āļāļāļāđāļāļāļāļļāļ\n\nāđāļŠāđāļāļāļēāļ audit āļāļĩāđāđāļāļ·āđāļāļāļ·āļāđāļāđāđāļĄāđāđāļāđāļŦāļĄāļēāļĒāļāļķāļāļāļēāļĢāļāļąāļāļāļķāļāļĄāļēāļāļāļķāđāļ āđāļāđāļĄāļēāļāļēāļāļāļēāļĢāđāļāđāđāļāļāđāļāļāđāļāļĩāļĒāļ§āļāļąāļāļāđāļģ āđ āļāļļāļāļāļĩāđāđāļāļ·āđāļāđāļĄāđāđāļŦāđāđāļāļīāļāļāđāļāļāļ§āđāļēāļāđāļāđāļ "āļāļēāļĢāļāļģāđāļāđāļēāđāļāļāļāļĨāļļāđāļĄāđāļĄāđāđāļāđāļāļđāļāļāļąāļāļāļķāļ" āļŦāļĢāļ·āļ "āļāļēāļĢāđāļāđāđāļāļāļēāļāļĄāļ·āļāļāļ·āļāļāļđāđāļŦāļĄāļ·āļāļāđāļĄāđāļĄāļĩāļāļđāđāļāļĢāļ°āļāļģ"\n\n### 1) āļāļāļāđāļāļāđāļĄāđāļāļĨāļāđāļāļĄāļđāļĨ audit āļāļĢāļąāđāļāđāļāļĩāļĒāļ§\n\nāđāļĢāļīāđāļĄāļāļēāļāđāļĄāđāļāļĨāļāđāļāļĄāļđāļĨāļāļāļāļāļļāļāđāļĨāļ°āļŠāļĢāđāļēāļāļāļļāļāļāļēāļĢāļēāļāđāļĨāđāļ āđ āļāļĩāđāļāļāļīāļāļēāļĒāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāđāļ āđ āđāļāđ\n\nāļāļģāđāļŦāđāđāļĢāļĩāļĒāļāļāđāļēāļĒ: āļŦāļāļķāđāļāļāļēāļĢāļēāļāļŠāļģāļŦāļĢāļąāļāđāļŦāļāļļāļāļēāļĢāļāđ āļŦāļāļķāđāļāļāļēāļĢāļēāļāļŠāļģāļŦāļĢāļąāļāļāļīāļĨāļāđāļāļĩāđāđāļāļĨāļĩāđāļĒāļ āđāļĨāļ° context āļāļāļ actor āđāļĨāđāļ āđ\n\n- audit_event: id, entity_type, entity_id, action (create/update/delete/restore), created_at, request_id\n- audit_event_item: id, audit_event_id, field_name, old_value, new_value\n- actor_context (āļŦāļĢāļ·āļāļāļīāļĨāļāđāļāļ audit_event): actor_type (user/system), actor_id, actor_email, ip, user_agent\n\n### 2) āđāļāļīāđāļĄ subprocess "Write + Audit" āļĢāđāļ§āļĄāļāļąāļ\n\nāļŠāļĢāđāļēāļ subprocess āļāļĩāđāđāļāđāļāđāļģāđāļāđāļāļķāđāļ:\n\n1) āļĢāļąāļāļāļ·āđāļāđāļāļāļāļīāļāļĩ, id āļĢāļ°āđāļāļĩāļĒāļ, action, āđāļĨāļ°āļāđāļē before/after\n2) āđāļāļĩāļĒāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļļāļĢāļāļīāļāđāļāļāļĩāđāļāļēāļĢāļēāļāļŦāļĨāļąāļ\n3) āļŠāļĢāđāļēāļāļĢāļ°āđāļāļĩāļĒāļ audit_event\n4) āļāļģāļāļ§āļāļāļīāļĨāļāđāļāļĩāđāđāļāļĨāļĩāđāļĒāļāđāļĨāļ°āđāļāļĢāļāđāļāļ§ audit_event_item\n\nāļāļāļāļ·āļāđāļāđāļĄāļāļ§āļ: āļāļļāļāđāļŠāđāļāļāļēāļāļāļēāļĢāđāļāļĩāļĒāļāļāđāļāļāđāļĢāļĩāļĒāļāđāļāđ subprocess āđāļāļĩāļĒāļ§āļāļąāļāļāļĩāđ āļĢāļ§āļĄāļāļķāļāļāļļāđāļĄ UI, endpoints API, automations āļāļēāļĄāļāļēāļĢāļēāļāđāļ§āļĨāļē āđāļĨāļ°āļāļēāļĢāļāļŠāļēāļāļ āļēāļĒāļāļāļ\n\n### 3) āļŠāļĢāđāļēāļ actor āđāļĨāļ°āđāļ§āļĨāļēāđāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ\n\nāļāļĒāđāļēāđāļāļ·āđāļāđāļāđāļāļĢāļēāļ§āđāđāļāļāļĢāđāđāļĢāļ·āđāļāļ "who" āđāļĨāļ° "when" āļāđāļēāļ actor āļāļēāļāđāļāļŠāļāļąāļāļāļēāļĢāļāļīāļŠāļđāļāļāđāļāļąāļ§āļāļ āđāļĨāļ°āļŠāļĢāđāļēāļ timestamp āļāļēāļāļāļąāđāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ āļŦāļēāļāļāļēāļāļāļāđāļāđāļĄāļāļąāļāļĢāļąāļ āđāļŦāđāļāļąāđāļ actor_type āđāļāđāļ system āđāļĨāļ°āđāļāđāļāļāļ·āđāļ job āđāļāđāļ actor label\n\n### 4) āļāļāļŠāļāļāļāđāļ§āļĒāļŠāļāļēāļāļāļēāļĢāļāđāļāļĢāļīāļāļŦāļāļķāđāļāļāļĢāļāļĩ\n\nāđāļĨāļ·āļāļāļĢāļ°āđāļāļĩāļĒāļāđāļāļĩāļĒāļ§ (āđāļāđāļ āļāļąāđāļ§āļĨāļđāļāļāđāļē): āļŠāļĢāđāļēāļ āđāļāđāđāļāļŠāļāļāļāļīāļĨāļāđ (status āđāļĨāļ° assignee) āļĨāļ āđāļĨāđāļ§āļāļđāđāļāļ·āļ āļāļĩāļ audit āļāļāļāļāļļāļāļāļ§āļĢāđāļŠāļāļāļŦāđāļēāđāļŦāļāļļāļāļēāļĢāļāđ āđāļāļĒāļĄāļĩāļŠāļāļāļĢāļēāļĒāļāļēāļĢ update āļ āļēāļĒāđāļāđāđāļŦāļāļļāļāļēāļĢāļāđāļāļēāļĢāđāļāđāđāļ āđāļĨāļ° actor āļāļąāļ timestamp āļāļđāļāđāļāļīāļĄāđāļāđāļāļāđāļāļĩāļĒāļ§āļāļąāļāļāļļāļāļāļĢāļąāđāļ\n\n## āļŠāļĢāđāļēāļāļāļĩāļāļāļīāļāļāļĢāļĢāļĄāđāļāļāļĄāļīāļāļāļĩāđāļāļāļāļ°āđāļāđāļāļĢāļīāļ\n\nAudit log āļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāđāļĄāļ·āđāļāļāļāļāđāļēāļāđāļāđāļāļĒāđāļēāļāļĢāļ§āļāđāļĢāđāļ§āļĢāļ°āļŦāļ§āđāļēāļāļāļēāļĢāļāļāļāļ§āļāļŦāļĢāļ·āļāđāļŦāļāļļāļāļēāļĢāļāđ āđāļāđāļēāļŦāļĄāļēāļĒāļāļāļāļāļĩāļāđāļāļāļĄāļīāļāļāļ·āļ: āļāļāļāļāļģāļāļēāļĄ "āđāļāļīāļāļāļ°āđāļĢāļāļķāđāļ?" āđāļāđāļ§āļāđāļĢāļ āđāļĨāđāļ§āđāļŦāđāļāļđāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļĨāļķāļāļĨāļāđāļāļĒāđāļĄāđāļāļĄāļāļĒāļđāđāļāļąāļ JSON āļāļīāļ\n\nāđāļĢāļīāđāļĄāļāļēāļāđāļĨāļĒāđāđāļāļēāļāđāđāļāļĄāđāđāļĨāļāđ: āđāļŦāļĄāđāļŠāļļāļāļāđāļāļ āļŦāļāļķāđāļāđāļāļ§āļāđāļāđāļŦāļāļļāļāļēāļĢāļāđ āđāļĨāļ°āļāļģāļāļĢāļīāļĒāļēāļāļąāļāđāļāļāđāļāđāļ Created, Updated, Deleted, Restored āđāļāđāļĨāļ°āđāļāļ§āļāļ§āļĢāđāļŠāļāļ actor (āļāļāļŦāļĢāļ·āļāļĢāļ°āļāļ), target (āļāļĢāļ°āđāļ āļāļĢāļ°āđāļāļĩāļĒāļāļāļ§āļāļāļ·āđāļāļāļĩāđāļāđāļēāļāđāļāđ), āđāļĨāļ°āđāļ§āļĨāļē\n\nāļĢāļđāļāđāļāļāđāļāļ§āļāļĩāđāļāļāļīāļāļąāļāļīāđāļāđāļāļĢāļīāļ:\n\n- Verb + object: "Updated Customer: Acme Co."\n- Actor: "Maya (Support)" āļŦāļĢāļ·āļ "System: Nightly Sync"\n- Time: timestamp āđāļāļ absolute (āļāļĢāđāļāļĄāđāļāļāđāļ§āļĨāļē)\n- Change summary: "status: Pending -> Approved, limit: 5,000 -> 7,500"\n- Tags: Updated, Deleted, Integration, Job\n\nāđāļāđāļ "āļāļ°āđāļĢāļāļĩāđāđāļāļĨāļĩāđāļĒāļ" āđāļŦāđāļāļĢāļ°āļāļąāļ āđāļŠāļāļ 1-3 āļāļīāļĨāļāđāđāļāļāļĢāļĢāļāļąāļ āđāļĨāđāļ§āļĄāļĩ panel āļĨāļ°āđāļāļĩāļĒāļāļĒāļīāļ (drawer/modal) āđāļŦāđāļāļđāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ: āļāđāļē before/after, āđāļŦāļĨāđāļāļāļģāļāļ (web, mobile, API), āđāļĨāļ°āļāļīāļĨāļāđ reason/comment\n\nāļāļēāļĢāļāļĢāļāļāļāļ·āļāļŠāļīāđāļāļāļĩāđāļāļģāđāļŦāđāļāļĩāļāđāļāđāļāļēāļāđāļāđāļŦāļĨāļąāļāļŠāļąāļāļāļēāļŦāđāđāļĢāļ āļĄāļļāđāļāđāļāļāļĩāđāļāļąāļ§āļāļĢāļāļāļāļĩāđāļāļāļāļāļģāļāļēāļĄāļāļĢāļīāļ āđ:\n\n- Actor (user āļŦāļĢāļ·āļ system)\n- āļāļĢāļ°āđāļ āļāļ§āļąāļāļāļļ (Customers, Orders, Permissions)\n- āļāļĢāļ°āđāļ āļāļāļēāļĢāļāļĢāļ°āļāļģ (Create/Update/Delete/Restore)\n- āļāđāļ§āļāļ§āļąāļāļāļĩāđ\n- āļāļēāļĢāļāđāļāļŦāļēāļāđāļāļāļ§āļēāļĄ (āļāļ·āđāļāļŦāļĢāļ·āļ ID āļāļāļāļĢāļ°āđāļāļĩāļĒāļ)\n\nāļāļēāļĢāļĨāļīāļāļāđāļĄāļĩāļāļ§āļēāļĄāļŦāļĄāļēāļĒ āđāļāđāđāļŦāđāđāļŠāļāļāđāļāļāļēāļ°āđāļĄāļ·āđāļāđāļāđāļĢāļąāļāļāļāļļāļāļēāļ āļŦāļēāļāļāļđāđāļāļđāļĄāļĩāļŠāļīāļāļāļīāđāđāļāđāļēāļāļķāļāļĢāļ°āđāļāļĩāļĒāļāļāļĩāđāđāļāđāļĢāļąāļāļāļĨ āđāļŦāđāđāļŠāļāļ "View record" āļāđāļēāđāļĄāđ āđāļŦāđāđāļŠāļāļāļāđāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ (āđāļāđāļ "Restricted record") āđāļāļāļāļ°āļāļĩāđāļĒāļąāļāļāļāđāļŦāđāļĢāļēāļĒāļāļēāļĢ audit āļĄāļāļāđāļŦāđāļāđāļāđ\n\nāļāļģāđāļŦāđāļāļēāļĢāļāļĢāļ°āļāļģāļāļāļāļĢāļ°āļāļāļāļąāļāđāļāļ āļāđāļēāļĒāļāļēāļāļāļēāļĄāļāļēāļĢāļēāļāđāļ§āļĨāļēāđāļĨāļ°āļāļēāļĢāļāļŠāļēāļāđāļŦāđāđāļŦāđāļāļāđāļēāļāļāļąāļāđāļāļ·āđāļāđāļŦāđāđāļāļāļĄāļīāļāđāļĒāļāđāļāđāļ§āđāļē "Dana āļĨāļāļĄāļąāļ" āļāļąāļ "Nightly billing sync āļāļąāļāđāļāļāļĄāļąāļ"\n\n## āļŠāļīāļāļāļīāđāđāļĨāļ°āļāļāļāļ§āļēāļĄāđāļāđāļāļŠāđāļ§āļāļāļąāļ§āļŠāļģāļŦāļĢāļąāļāļāđāļāļĄāļđāļĨ audit\n\nAudit logs āđāļāđāļāļŦāļĨāļąāļāļāļēāļ āđāļāđāļāđāđāļāđāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļāļāđāļ§āļĒ āļāļāļīāļāļąāļāļīāļāđāļ audit logging āđāļŠāļĄāļ·āļāļāđāļāđāļāļāļĨāļīāļāļ āļąāļāļāđāđāļĒāļāđāļāđāļāļāļāļāļāļāļļāļ: āļāļāļāļēāļĢāđāļāđāļēāļāļķāļāļāļąāļāđāļāļ āļāļāļāđāļāļāļāļąāļāđāļāļ āđāļĨāļ°āļāļēāļĢāļāļąāļāļāļēāļĢāļāđāļāļĄāļđāļĨāļŠāđāļ§āļāļāļļāļāļāļĨāļāļĒāđāļēāļāļĢāļ°āļĄāļąāļāļĢāļ°āļ§āļąāļ\n\nāļāļąāļāļŠāļīāļāđāļāļ§āđāļēāđāļāļĢāđāļŦāđāļāļāļ°āđāļĢāđāļāđ āđāļāļāđāļāđāļāļāļĩāđāđāļāđāļāđāļāļĒāļāļ·āļ: system admins āđāļŦāđāļāļāļļāļāļāļĒāđāļēāļ āļāļđāđāļāļąāļāļāļēāļĢāđāļāļāļāđāļŦāđāļāđāļŦāļāļļāļāļēāļĢāļāđāļŠāļģāļŦāļĢāļąāļāļāļĩāļĄāļāļāļāļāļ āđāļāđāļēāļāļāļāļĢāļ°āđāļāļĩāļĒāļāđāļŦāđāļāđāļŦāļāļļāļāļēāļĢāļāđāļāļĩāđāđāļāļĩāđāļĒāļ§āļāļąāļāļĢāļ°āđāļāļĩāļĒāļāļāļĩāđāđāļāļēāđāļāđāļēāļāļķāļāđāļāđ āđāļĨāļ°āļāļđāđāļāļĢāļ§āļāļŠāļāļ/āļāđāļēāļĒāļāļāļīāļāļąāļāļīāļāļēāļĄāļāļāļŠāļīāļāļāļīāđāļāļđāđāļāđāļāļĒāđāļēāļāđāļāļĩāļĒāļ§ āļŦāļēāļāļāļļāļāđāļŠāļāļāļāļĩāļāļāļīāļāļāļĢāļĢāļĄ āđāļŦāđāđāļāđāļāļāđāļāļĩāļĒāļ§āļāļąāļāļāļąāļāļāļļāļāđāļāļ§ āđāļĄāđāđāļāđāđāļāđāļāļąāļāļŦāļāđāļēāļāļ\n\nāļāļēāļĢāļĄāļāļāđāļŦāđāļāļĢāļ°āļāļąāļāđāļāļ§āļĄāļĩāļāļ§āļēāļĄāļŠāļģāļāļąāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļāļ multi-tenant āļŦāļĢāļ·āļāļāđāļēāļĄāđāļāļāļ āļāļēāļĢāļēāļ audit āļāļāļāļāļļāļāļāļ§āļĢāļĄāļĩāļāļĩāļĒāđāļāļēāļĢāļŠāđāļāļāđāļāļĩāļĒāļ§āļāļąāļāļāđāļāļĄāļđāļĨāļāļļāļĢāļāļīāļ (tenant_id, department_id, project_id) āđāļāļ·āđāļāđāļŦāđāļŠāļēāļĄāļēāļĢāļāļāļĢāļāļāđāļāđāļŠāļāļāļāļĨāđāļāļ āļāļąāļ§āļāļĒāđāļēāļ: āļāļđāđāļāļąāļāļāļēāļĢāļāļąāļāļāļāļĢāđāļāļāļ§āļĢāđāļŦāđāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļąāđāļ§āđāļāļāļīāļ§āļāļāļāđāļāļē āđāļāđāđāļĄāđāđāļŦāđāļāļāļēāļĢāļāļĢāļąāļāđāļāļīāļāđāļāļ·āļāļāđāļāļāđāļēāļĒ HR āđāļĄāđāļāļąāđāļāļŠāļāļāļāļ°āđāļāļīāļāđāļāđāļāļāđāļāļĩāļĒāļ§āļāļąāļ\n\nāļāđāļĒāļāļēāļĒāļāđāļēāļĒ āđ āļāļĩāđāđāļāđāđāļāđāļāļĢāļīāļ:\n\n- āđāļāļāļĄāļīāļ: āđāļāđāļēāļāļķāļ audit āđāļāđāļāļąāđāļāļŦāļĄāļāļāđāļēāļĄ tenant āđāļĨāļ°āđāļāļāļ\n- āļāļđāđāļāļąāļāļāļēāļĢ: āđāļāđāļēāļāļķāļ audit āļāļģāļāļąāļāļāļēāļĄ department_id āļŦāļĢāļ·āļ project_id\n- āđāļāđāļēāļāļāļāļĢāļ°āđāļāļĩāļĒāļ: āđāļāđāļēāļāļķāļ audit āđāļāļāļēāļ°āļĢāļ°āđāļāļĩāļĒāļāļāļĩāđāđāļāļēāļāļđāđāļāđ\n- āļāļđāđāļāļĢāļ§āļāļŠāļāļ/āļāđāļēāļĒāļāļāļīāļāļąāļāļīāļāļēāļĄ: āļāđāļēāļāđāļāđāļāļĒāđāļēāļāđāļāļĩāļĒāļ§ āļāļāļļāļāļēāļāļāļēāļĢāļŠāđāļāļāļāļ āļŦāđāļēāļĄāđāļāđāđāļ\n- āļāļāļāļ·āđāļ āđ: āđāļĄāđāļĄāļĩāļŠāļīāļāļāļīāđāđāļāļĒāļāđāļēāđāļĢāļīāđāļĄāļāđāļ\n\nāļāļ§āļēāļĄāđāļāđāļāļŠāđāļ§āļāļāļąāļ§āļāļ·āļāļāļĢāļķāđāļāļŦāļĨāļąāļ āđāļāđāļāļāļāļāļīāļŠāļđāļāļāđāļŠāļīāđāļāļāļĩāđāđāļāļīāļāļāļķāđāļ āđāļāđāļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļāļēāļĢāļāļģāđāļŦāđāļĨāđāļāļāļāļĨāļēāļĒāđāļāđāļāļŠāļģāđāļāļēāļāļēāļāļāđāļāļĄāļđāļĨāļāļāļāļāļļāļ āļŠāļģāļŦāļĢāļąāļāļāļīāļĨāļāđāļāļĩāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļ (SSNs, āļāļąāļāļāļķāļāļāļēāļĢāđāļāļāļĒāđ, āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļĢāļāļģāļĢāļ°āđāļāļīāļ) āđāļŦāđāđāļāđāļāļēāļĢāļĨāļāļāđāļāļĄāļđāļĨ: āļāļąāļāļāļķāļāļ§āđāļēāļāļīāļĨāļāđāđāļāļĨāļĩāđāļĒāļāđāļāđāđāļĄāđāđāļāđāļāļāđāļēāđāļāđāļē/āđāļŦāļĄāđ āļāļļāļāļāļēāļāļāļąāļāļāļķāļāļ§āđāļē "email changed" āļāļĢāđāļāļĄāļĄāļēāļŠāļāđāļāđāļēāļāļĢāļīāļ āļŦāļĢāļ·āļāđāļāđāļ fingerprint āđāļŪāļāđāļāļ·āđāļāļāļēāļĢāļĒāļ·āļāļĒāļąāļ\n\nāđāļāđāļāđāļŦāļāļļāļāļēāļĢāļāđāļāđāļēāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāđāļĒāļāļāļēāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļĢāļ°āđāļāļĩāļĒāļāļāļļāļĢāļāļīāļ āļāļĒāļēāļĒāļēāļĄāđāļāđāļāļāļēāļĢāļāļĒāļēāļĒāļēāļĄāļĨāđāļāļāļāļīāļ āļāļēāļĢāļĢāļĩāđāļāđāļ MFA āļāļēāļĢāļŠāļĢāđāļēāļ API key āđāļĨāļ°āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļāļāļāļēāļāđāļ§āđāđāļ security_audit āļāļĩāđāļĄāļĩāļāļēāļĢāđāļāđāļēāļāļķāļāđāļāđāļĄāļāļ§āļāļāļ§āđāļēāđāļĨāļ°āļāļēāļĢāđāļāđāļāļāļēāļāļāļ§āđāļē āļāļēāļĢāđāļāđāđāļāļāļļāļĢāļāļīāļāļāļąāđāļ§āđāļ (āļāļēāļĢāļāļąāļāđāļāļāļŠāļāļēāļāļ° āļāļēāļĢāļāļāļļāļĄāļąāļāļī āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāđāļ§āļīāļĢāđāļāđāļāļĨāļ§āđ) āļāļĒāļđāđāđāļāļŠāļāļĢāļĩāļĄ audit āļāļąāđāļ§āđāļ\n\nāđāļĄāļ·āđāļāļĄāļĩāļāļģāļāļāļĨāļāļāđāļāļĄāļđāļĨāļŠāđāļ§āļāļāļļāļāļāļĨ āļāļĒāđāļēāļĨāļāļāļąāđāļ audit trail āđāļāļāļāļĩāđāļāļ°:\n\n- āļĨāļāļŦāļĢāļ·āļāļāļģāđāļŦāđāļāļ°āđāļāđāļāļāđāđāļāļĢāđāļāļĨāđāļāļđāđāđāļāđ\n- āđāļāļāļāļĩāđāļāļąāļ§āļĢāļ°āļāļļ actor āđāļāļĨāđāļāļāļāđāļ§āļĒāļāļ·āđāļāđāļāļĩāļĒāļĄāļāļāļāļĩāđ (āđāļāđāļ "deleted-user-123")\n- āļĨāļāļāđāļēāļāļīāļĨāļāđāļāļĩāđāđāļāđāļāļāđāļāļĄāļđāļĨāļŠāđāļ§āļāļāļļāļāļāļĨ\n- āđāļāđāļ timestamps, āļāļĢāļ°āđāļ āļāļāļēāļĢāļāļĢāļ°āļāļģ āđāļĨāļ°āļāļēāļĢāļāđāļēāļāļāļīāļāļĢāļ°āđāļāļĩāļĒāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄ\n\n## āļāļēāļĢāđāļāđāļāļĢāļąāļāļĐāļē āļāļ§āļēāļĄāļŠāļĄāļāļđāļĢāļāđ āđāļĨāļ°āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄ\n\nāļĨāđāļāļāļāļĩāđāļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāđāļĄāđāđāļāđāđāļāđ "āđāļĢāļēāđāļāđāļāđāļŦāļāļļāļāļēāļĢāļāđ" āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄāļāļļāļāļāđāļāļāļāļīāļŠāļđāļāļāđāļŠāļēāļĄāļŠāļīāđāļ: āđāļāđāļāļāđāļāļĄāļđāļĨāđāļ§āđāļāļēāļāļāļ āļĄāļąāļāđāļĄāđāđāļāđāļāļđāļāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļŦāļĨāļąāļāļāļēāļāļāļąāđāļ āđāļĨāļ°āļāļķāļāļāļĨāļąāļāļĄāļēāđāļāđāđāļĢāđāļ§āđāļĄāļ·āđāļāļāđāļāļāļāļēāļĢ\n\n### āļāļēāļĢāđāļāđāļāļĢāļąāļāļĐāļē: āļāļąāļāļŠāļīāļāđāļāļāđāļĒāļāļēāļĒāļāļĩāđāļāļāļīāļāļēāļĒāđāļāđ\n\nāđāļĢāļīāđāļĄāļāļēāļāļāļāļāđāļēāļĒ āđ āļāļĩāđāļāļĢāļāļāļąāļāļāļ§āļēāļĄāđāļŠāļĩāđāļĒāļ āļāļĩāļĄāļŦāļĨāļēāļĒāđāļŦāđāļāđāļĨāļ·āļāļ 90 āļ§āļąāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāđāļāļąāļāļŦāļēāļāļĢāļ°āļāļģāļ§āļąāļ, 1-3 āļāļĩāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄāļ āļēāļĒāđāļ, āđāļĨāļ°āļāļēāļāļāļ§āđāļēāļāļąāđāļāđāļāļāļēāļ°āļĢāļ°āđāļāļĩāļĒāļāļāļĩāđāļāļđāļāļāļģāļāļąāļāļāļđāđāļĨ āļĢāļ°āļāļļāļāļąāļāļ§āđāļēāļāļ°āđāļĢāļĢāļĩāđāļāđāļāļāļēāļŽāļīāļāļē (āļĄāļąāļāđāļāđāļ: āđāļ§āļĨāļēāļāļāļāđāļŦāļāļļāļāļēāļĢāļāđ) āđāļĨāļ°āļāļ°āđāļĢāļāļĩāđāļĒāļāđāļ§āđāļ (āđāļāđāļ āļĨāđāļāļāļāļĩāđāļĄāļĩāļāļīāļĨāļāđāļāļĩāđāļāļļāļāđāļĄāđāļāļ§āļĢāđāļāđāļ)\n\nāļāđāļēāļāļļāļāļĄāļĩāļŦāļĨāļēāļĒāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄ āļāļģāļŦāļāļ retention āļāđāļēāļāļāļąāļāļāđāļ environment āļĨāđāļāļ production āļĄāļąāļāļāđāļāļāđāļāđāļāļāļēāļāļŠāļļāļ; āļĨāđāļāļāļāļāļŠāļāļāļĄāļąāļāđāļĄāđāļāđāļāļāđāļāđāļ\n\n### āļāļ§āļēāļĄāļŠāļĄāļāļđāļĢāļāđ: āļāļģāđāļŦāđāļāļēāļĢāļāļĨāļāļĄāđāļāļĨāļāļĒāļēāļ\n\nāļāļāļīāļāļąāļāļīāļāđāļ audit logs āđāļāđāļ append-only āļāļĒāđāļēāļāļąāļāđāļāļāđāļāļ§ āđāļĨāļ°āļāļĒāđāļēāđāļŦāđāđāļāļāļĄāļīāļāļāļāļāļīāļĨāļ āļŦāļēāļāļāđāļāļāļĨāļāļāļĢāļīāļ āđ (āļāļģāļāļāļāļēāļāļāļāļŦāļĄāļēāļĒ āļāļēāļāļāļģāļāļ§āļēāļĄāļŠāļ°āļāļēāļ) āđāļŦāđāļāļąāļāļāļķāļāļāļēāļĢāļāļĢāļ°āļāļģāļāļąāđāļāļāđāļ§āļĒāđāļāđāļāđāļŦāļāļļāļāļēāļĢāļāđāđāļĒāļ\n\nāļĢāļđāļāđāļāļāļāļāļīāļāļąāļāļīāđāļāđāļāļĢāļīāļ:\n\n- āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļāđāļēāļāļąāđāļāļāļĩāđāđāļāļĩāļĒāļāđāļŦāļāļļāļāļēāļĢāļāđ audit, āđāļĄāđāđāļāđāđāļāļĨāđāļāļāļāđ\n- āđāļĄāđāļĄāļĩāļŠāļīāļāļāļīāđ UPDATE/DELETE āļāļāļāļēāļĢāļēāļ audit āļŠāļģāļŦāļĢāļąāļāļāļāļāļēāļāļāļāļāļī\n- āļĄāļĩāļāļāļāļēāļ "break glass" āđāļĒāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļĨāđāļēāļāļāđāļāļĄāļđāļĨāđāļāđāļāļāļĢāļąāđāļāļāļĢāļēāļ§\n- snapshot āļŠāđāļāļāļāļāđāļāđāļāļĢāļ°āļĒāļ°āđāļāđāļāđāļ§āđāļāļāļāļāļēāļāļāđāļāļĄāļđāļĨāđāļāļāļŦāļĨāļąāļ\n\n### āļāļēāļĢāļŠāđāļāļāļāļ āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļĨāļ°āļāļēāļĢāļĄāļāļāļīāđāļāļāļĢāđ\n\nāļāļđāđāļāļĢāļ§āļāļŠāļāļāļĄāļąāļāļāļ CSV āļŦāļĢāļ·āļ JSON āļ§āļēāļāđāļāļāļāļēāļĢāļŠāđāļāļāļāļāļāļĩāđāļāļĢāļāļāļāļēāļĄāļāđāļ§āļāļ§āļąāļāļāļĩāđāđāļĨāļ°āļāļĢāļ°āđāļ āļāļ§āļąāļāļāļļ (āđāļāđāļ Invoice, User, Ticket) āđāļāļ·āđāļāđāļĄāđāļāđāļāļāļāļķāļāļāļēāļāļāđāļāļĄāļđāļĨāđāļāđāļ§āļĨāļēāļāļĩāđāđāļĨāļ§āļĢāđāļēāļĒāļāļĩāđāļŠāļļāļ\n\nāļŠāļģāļŦāļĢāļąāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļŦāđāļāļģāļāļąāļāļāļĩāļāļēāļĄāļāļēāļĢāļāđāļāļŦāļēāļāļĩāđāđāļāđāļāđāļāļĒ:\n\n- created_at (āļāļīāļ§āļĢāļĩāļāđāļ§āļāđāļ§āļĨāļē)\n- object_type + object_id (āļāļĢāļ°āļ§āļąāļāļīāļāļāļāļĢāļ°āđāļāļĩāļĒāļāļŦāļāļķāđāļāļĢāļēāļĒāļāļēāļĢ)\n- actor_id (āđāļāļĢāļāļģāļāļ°āđāļĢ)\n\nāļāļđāđāļĨāļāļąāļāļŦāļēāļāļēāļĢāđāļāļĩāļĒāļāļĨāđāļĄāđāļŦāļĨāļ§āđāļāļĩāļĒāļ āļŦāļēāļāļāļēāļĢāđāļāļĩāļĒāļ audit āļĨāđāļĄāđāļŦāļĨāļ§ āļāļļāļāļāļ°āđāļŠāļĩāļĒāļŦāļĨāļąāļāļāļēāļāđāļĨāļ°āļĄāļąāļāļāļ°āđāļĄāđāļĢāļđāđāļāļąāļ§ āđāļŦāđāđāļāļīāđāļĄāļāļēāļĢāđāļāđāļāđāļāļ·āļāļāļāđāļēāļĒ āđ: āļŦāļēāļāđāļāļāļĒāļąāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļēāļĢāđāļāļĩāļĒāļāđāļāđāđāļŦāļāļļāļāļēāļĢāļāđ audit āļāļāđāļāđāļāļĻāļđāļāļĒāđāđāļāļāđāļ§āļāđāļ§āļĨāļē āđāļŦāđāđāļāđāļāđāļāđāļēāļāļāļāđāļĨāļ°āļĨāđāļāļāļāđāļāļāļīāļāļāļĨāļēāļāļāļĒāđāļēāļāļāļąāļ\n\n## āļāđāļāļāļīāļāļāļĨāļēāļāļāļąāđāļ§āđāļāļāļĩāđāļāļģāđāļŦāđ audit logs āđāļĄāđāļĄāļĩāļāļĢāļ°āđāļĒāļāļāđ\n\nāļ§āļīāļāļĩāļāļĩāđāđāļĢāđāļ§āļāļĩāđāļŠāļļāļāđāļāļāļēāļĢāđāļŠāļĩāļĒāđāļ§āļĨāļēāļāļ·āļāđāļāđāļāđāļāļ§āļĄāļēāļ āđ āļāļĩāđāđāļĄāđāļāļāļāļāļģāļāļēāļĄāļāļĢāļīāļ: āđāļāļĢāđāļāļĨāļĩāđāļĒāļāļāļ°āđāļĢ āđāļĄāļ·āđāļāđāļĢ āđāļĨāļ°āļāļēāļāļāļĩāđāđāļŦāļ\n\nāļāļąāļāļāļąāļāļŦāļāļķāđāļāļāļ·āļāļāļķāđāļāļāļē database triggers āđāļāļĩāļĒāļāļāļĒāđāļēāļāđāļāļĩāļĒāļ§ Triggers āļāļēāļāļāļąāļāļāļķāļāļ§āđāļēāļĄāļĩāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāđāļāļ§ āđāļāđāļāļ§āļāļĄāļąāļāļĄāļąāļāļāļĨāļēāļāļāļĢāļīāļāļāļāļēāļāļāļļāļĢāļāļīāļ: āļāļđāđāđāļāđāđāļāđāļŦāļāđāļēāļāļāđāļŦāļ āļāļģāļāļāđāļāđāļāđāļāļŠāļēāđāļŦāļāļļ āļāļāļāļēāļāļāļ°āđāļĢ āđāļĨāļ°āđāļāđāļāļāļēāļĢāđāļāđāđāļāļāļāļāļīāļŦāļĢāļ·āļāļāđāļĒāļāļēāļĒāļāļąāļāđāļāļĄāļąāļāļī\n\nāļāļ§āļēāļĄāļāļīāļāļāļĨāļēāļāļāļĩāđāļĄāļąāļāļāļģāļĨāļēāļĒāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄāđāļĨāļ°āļāļēāļĢāđāļāđāļāļēāļāđāļāļāļĩāļ§āļīāļāļāļĢāļ°āļāļģāļ§āļąāļ:\n\n- āļāļąāļāļāļķāļ payload āļāļĩāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļāđāļāđāļĄāļĢāļđāļāđāļāļ (āļĢāļĩāđāļāđāļāļĢāļŦāļąāļŠāļāđāļēāļ āđāļāđāļāļ āđāļāđāļāļŠāđāļ§āļāļāļąāļ§) āđāļāļāļāļĩāđāļāļ°āđāļāđāļ diff āļāļĩāđāļāļģāđāļāđāļāđāļĨāļ°āļāļąāļ§āļĢāļ°āļāļļāļāļĩāđāļāļĨāļāļāļ āļąāļĒ\n- āđāļŦāđāļāļāđāļāđāđāļāļŦāļĢāļ·āļāļĨāļāļĢāļ°āđāļāļĩāļĒāļ audit "āđāļāļ·āđāļāđāļāđāļāļĢāļ°āļ§āļąāļāļī"\n- āļĨāļ·āļĄāđāļŠāđāļāļāļēāļāļāļēāļĢāđāļāļĩāļĒāļāļāļĩāđāđāļĄāđāđāļāđ UI āđāļāđāļ āļāļēāļĢāļāļģāđāļāđāļē CSV āļāļēāļĢāļāļŠāļēāļ āđāļĨāļ°āļāļēāļāļāļ·āđāļāļŦāļĨāļąāļ\n- āđāļāđāļāļ·āđāļāļĨāļāđāļŦāļāļļāļāļēāļĢāļāđāđāļĄāđāļŠāļĄāđāļģāđāļŠāļĄāļāđāļāđāļ "Updated," "Edit," "Change," "Modify," āļāļģāđāļŦāđāļāļĩāļāļāđāļēāļāđāļŦāļĄāļ·āļāļāđāļŠāļĩāļĒāļāļĢāļāļāļ§āļ\n- āļāļąāļāļāļķāļāđāļāđ object ID āđāļāļĒāđāļĄāđāļĄāļĩāļāļ·āđāļāļāļĩāđāļāđāļēāļāđāļāđāđāļāđāļ§āļĨāļēāļāļēāļĢāđāļāļĨāļĩāđāļĒāļ (āļāļ·āđāļāļāļēāļāđāļāļĨāļĩāđāļĒāļāļ āļēāļĒāļŦāļĨāļąāļ)\n\nāļāļģāļĄāļēāļāļĢāļāļēāļāļāļģāļĻāļąāļāļāđāđāļŦāļāļļāļāļēāļĢāļāđāļāļąāđāļāđāļāđāļāđāļ (āđāļāđāļ: user.created, user.updated, invoice.voided, access.granted) āđāļĨāļ°āļāļąāļāļāļąāļāđāļŦāđāļāļļāļāđāļŠāđāļāļāļēāļāļāļēāļĢāđāļāļĩāļĒāļāļŠāđāļāđāļŦāļāļļāļāļēāļĢāļāđāđāļāļĩāļĒāļ§ āļāļīāļāļēāļĢāļāļēāļāđāļāļĄāļđāļĨ audit āđāļāđāļāđāļāļāđāļāļĩāļĒāļāļāļĢāļąāđāļāđāļāļĩāļĒāļ§: āļāđāļēāļĄāļĩāļāļāļāļģāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļāļīāļ āđāļŦāđāļāļąāļāļāļķāļāļāļēāļĢāļāļĢāļ°āļāļģāđāļāđāđāļāđāļŦāļĄāđāđāļāļāļāļēāļĢāđāļāļĩāļĒāļāļāļĢāļ°āļ§āļąāļāļīāđāļŦāļĄāđ\n\n## āđāļāđāļāļĨāļīāļŠāļāđāļāđāļ§āļāđāļĨāļ°āļāļąāđāļāļāļāļāļāđāļāđāļ\n\nāļāđāļāļāđāļĢāļĩāļĒāļāļ§āđāļēāļāļ āļāļģāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļĢāļ§āļāđāļĢāđāļ§ āļŠāļĢāļļāļāļāļ·āļ: āļāļąāļāļāļķāļ audit āļāļĩāđāļāļĩāļāđāļēāđāļāļ·āđāļāđāļāđāļāđāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļ: āļāļĢāļāļāđāļ§āļ āļŠāļĄāđāļģāđāļŠāļĄāļ āđāļĨāļ°āļāđāļēāļāļāđāļēāļĒāđāļĄāļ·āđāļāđāļāļīāļāļāļąāļāļŦāļē\n\nāļāļāļŠāļāļāđāļāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄāļāļāļŠāļāļāļāđāļ§āļĒāļāđāļāļĄāļđāļĨāļŠāļĄāļāļĢāļīāļ:\n\n- āļāļēāļĢāļŠāļĢāđāļēāļ āļāļąāļāđāļāļ āļĨāļ āļāļđāđāļāļ·āļ āđāļĨāļ°āļāļēāļĢāđāļāđāđāļāđāļāļāļāļĨāļļāđāļĄ āļāļĨāļīāļāđāļŦāļāļļāļāļēāļĢāļāđ audit āļŦāļāļķāđāļāđāļŦāļāļļāļāļēāļĢāļāđāļāđāļāļĢāļ°āđāļāļĩāļĒāļāļāļĩāđāđāļāđāļĢāļąāļāļāļĨ (āđāļĄāđāļĄāļĩāļāđāļāļāļ§āđāļēāļ āđāļĄāđāļĄāļĩāļāđāļģ)\n- āļāļļāļāđāļŦāļāļļāļāļēāļĢāļāđāļĄāļĩ actor (user āļŦāļĢāļ·āļ system), timestamp (UTC), action, āđāļĨāļ°āļāļēāļĢāļāđāļēāļāļāļīāļāļ§āļąāļāļāļļāļāļĩāđāđāļŠāļāļĩāļĒāļĢ (type + ID)\n- āļĄāļļāļĄāļĄāļāļ "āļāļ°āđāļĢāļāļĩāđāđāļāļĨāļĩāđāļĒāļ" āļāđāļēāļāđāļāđ: āļāļ·āđāļāļāļīāļĨāļāđāļāļąāļāđāļāļ āļāđāļēāđāļāđāļē/āđāļŦāļĄāđāđāļŠāļāļ āđāļĨāļ°āļāļīāļĨāļāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļāļāļđāļāļĄāļēāļŠāļāđāļŦāļĢāļ·āļāļŠāļĢāļļāļ\n- āđāļāļāļĄāļīāļāļāļĢāļāļāļāļĩāļāļāļīāļāļāļĢāļĢāļĄāļāļēāļĄāļāđāļ§āļāđāļ§āļĨāļē actor action āđāļĨāļ°āļ§āļąāļāļāļļ āđāļĨāļ°āļŠāđāļāļāļāļāļāļĨāļĨāļąāļāļāđāđāļāļ·āđāļāļāļēāļĢāļāļāļāļ§āļāđāļāđ\n- āļĨāđāļāļāđāļāđāđāļāđāļāđāļĒāļēāļ: āđāļāļĩāļĒāļ-āļāļĒāđāļēāļāđāļāļĩāļĒāļ§āļŠāļģāļŦāļĢāļąāļāļāļāļāļēāļāļŠāđāļ§āļāđāļŦāļāđ āđāļĨāļ°āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļąāļāļāļēāļĢāļēāļ audit āđāļāļāļāļ°āļāļđāļāļāļĨāđāļāļāļŦāļĢāļ·āļāļāļđāļ audit āđāļĒāļāļāđāļēāļāļŦāļēāļ\n\nāļāđāļēāļāļļāļāļāļģāļĨāļąāļāļŠāļĢāđāļēāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļ āļēāļĒāđāļāļāđāļ§āļĒ AppMaster (appmaster.io) āļŦāļāļķāđāļāļ§āļīāļāļĩāļāļāļīāļāļąāļāļīāļāļĩāđāļāđāļ§āļĒāđāļŦāđ coverage āļŠāļđāļāļāļ·āļāļāļēāļĢāļŠāđāļāļāļģāļŠāļąāđāļāļāļēāļ UI, endpoints API, āļāļēāļĢāļāļģāđāļāđāļē āđāļĨāļ° automations āļāđāļēāļ Business Process āđāļāļĩāļĒāļ§āļāļąāļāļāļĩāđāđāļāļĩāļĒāļāļāļąāđāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāđāļāļĄāļđāļĨāđāļĨāļ°āđāļŦāļāļļāļāļēāļĢāļāđ audit āđāļ flow āđāļāļĩāļĒāļ§āļāļąāļ āļāđāļ§āļĒāļ§āļīāļāļĩāļāļĩāđ trail āļāļāļ CRUD āļāļ°āļāļāļāļĩāđāđāļĄāđāļŦāļāđāļēāļāļāđāļĨāļ°āđāļ§āļīāļĢāđāļāđāļāļĨāļ§āđāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ\n\nāđāļĢāļīāđāļĄāđāļĨāđāļāļāļēāļāđāļ§āļīāļĢāđāļāđāļāļĨāļ§āđāļāļĩāđāļŠāļģāļāļąāļāļŦāļāļķāđāļāļāļĒāđāļēāļ (āļāļąāđāļ§ āļāļēāļĢāļāļāļļāļĄāļąāļāļī āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļīāļĨ) āļāļģāđāļŦāđāļāļĩāļāļāļīāļāļāļĢāļĢāļĄāļāđāļēāļāđāļāđ āđāļĨāđāļ§āļāļĒāļēāļĒāļāļāļāļļāļāđāļŠāđāļāļāļēāļāļāļēāļĢāđāļāļĩāļĒāļāļŠāđāļāđāļŦāļāļļāļāļēāļĢāļāđ audit āļāļĩāđāļāļēāļāđāļāļēāđāļāđāđāļĨāļ°āļāđāļāļŦāļēāđāļāđ
āļāļģāļāļēāļĄāļāļĩāđāļāļāļāđāļāļĒ
āđāļāļīāđāļĄāļāļąāļāļāļķāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ (audit logs) āļāļąāđāļāđāļāđāđāļĄāļ·āđāļāļāļąāļ§āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļīāđāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļĨāļĩāđāļĒāļāļāđāļāļĄāļđāļĨāļāļĢāļīāļāđāļāđ āļāļĢāļīāļ āđ āļāļģāļāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļŦāļĢāļ·āļāļāđāļāļāļīāļāļēāļāļĄāļąāļāđāļāļīāļāļāļķāđāļāđāļĢāđāļ§āļāļ§āđāļēāļāļĩāđāļāļīāļāđāļ§āđ āļāļēāļĢāļĒāđāļāļāđāļāļīāļĄāļāļĢāļ°āļ§āļąāļāļīāļĒāđāļāļāļŦāļĨāļąāļāļĄāļąāļāđāļāđāļāļāļēāļĢāđāļāļēāđāļĨāļ°āđāļĄāđāļāļĢāļāļāđāļ§āļ
āļāļąāļāļāļķāļ audit āļāļĩāđāđāļāđāļāļēāļāđāļāđāļāļ§āļĢāļāļāļāļāļģāļāļēāļĄāđāļāđāļ§āđāļēāđāļāļĢāļāļģ, āļĢāļ°āđāļāļĩāļĒāļāđāļāļāļđāļāđāļāļ°āļāđāļāļ, āļāļ°āđāļĢāđāļāļĨāļĩāđāļĒāļ, āđāļ§āļĨāļēāđāļĄāļ·āđāļāđāļ, āđāļĨāļ°āļĄāļēāļāļēāļāļāļĩāđāđāļŦāļ (UI, API, āļāļēāļĢāļāļģāđāļāđāļē āļŦāļĢāļ·āļ job) āļāđāļēāđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļāļāļāđāļāđāļāļāđāļāļŦāļāļķāđāļāđāļāđāļāļĒāđāļēāļāļĢāļ§āļāđāļĢāđāļ§ āļĨāđāļāļāļāļ°āļāļđāļāļĄāļāļāļ§āđāļēāđāļĄāđāļāđāļēāđāļāļ·āđāļāļāļ·āļ
āļāļąāļāļāļķāļāļāļĩāļāļąāļ (debug logs) āļŠāļģāļŦāļĢāļąāļāļāļąāļāļāļąāļāļāļē āļĄāļąāļāļĄāļĩāđāļŠāļĩāļĒāļāļĢāļāļāļ§āļāđāļĨāļ°āđāļĄāđāļŠāļĄāđāļģāđāļŠāļĄāļ āļāļāļ°āļāļĩāđāļāļąāļāļāļķāļ audit āđāļāļ·āđāļāļāļ§āļēāļĄāļĢāļąāļāļāļīāļāļāļāļāļāđāļāļāļĄāļĩāļāļīāļĨāļāđāļāļĩāđāļāļāļāļĩāđ āļāļģāļāļāļīāļāļēāļĒāļāļĩāđāļāļąāļāđāļāļ āđāļĨāļ°āļĢāļđāļāđāļāļāļāļĩāđāļāđāļēāļāđāļāđāļŠāļģāļŦāļĢāļąāļāļāļāļāļĩāđāđāļĄāđāđāļāđāļ§āļīāļĻāļ§āļāļĢ
āļāđāļāļāļ§āđāļēāļāļĄāļąāļāđāļāļīāļāđāļĄāļ·āđāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāđāļāļīāļāļāļķāđāļāļāļāļāļŦāļāđāļēāļāļāđāļāđāđāļāļāļāļāļī āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āļāļēāļĢāđāļāđāđāļāđāļāđāļāļāļĨāļļāđāļĄ, āļāļēāļĢāļāļģāđāļāđāļē, āļāļēāļāļāļēāļĄāļāļēāļĢāļēāļāđāļ§āļĨāļē, āļāđāļāļāļāļąāļāļāļāļāđāļāļāļĄāļīāļ āđāļĨāļ°āļāļēāļĢāļĨāļ āļāļ·āļāļāļļāļāļāļĩāđāļāļĩāļĄāļĄāļąāļāļĨāļ·āļĄāļŠāđāļāđāļŦāļāļļāļāļēāļĢāļāđ audit
āđāļāđāļāļāļāļīāļāļāļāļ actor āđāļĨāļ°āļāļąāļ§āļĢāļ°āļāļļ actor āđāļĒāļāļāļēāļ user ID āđāļāđāļāđāļēāđāļāļĩāļĒāļ§ āļ§āļīāļāļĩāļāļĩāđāļāļļāļāļāļ°āđāļĒāļāđāļāđāļ§āđāļēāđāļāđāļāļāļāļąāļāļāļēāļ āļāļēāļāļĢāļ°āļāļ āļāļąāļāļāļĩāļāļĢāļīāļāļēāļĢ āļŦāļĢāļ·āļāļāļēāļĢāļāļŠāļēāļāļāļēāļāļ āļēāļĒāļāļāļ āđāļāļ·āđāļāļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļāļ§āļēāļĄāļāļģāļāļ§āļĄāļ§āđāļē "āđāļāļĢāļāļēāļāļāļāļāļģ"
āđāļāđāļ timestamp āđāļāļāļēāļāļāđāļāļĄāļđāļĨāđāļāđāļ UTC āđāļŠāļĄāļ āđāļĨāđāļ§āđāļŠāļāļāļāļĨāļāļēāļĄāđāļ§āļĨāļēāđāļāđāļāļĢāļ·āđāļāļāļāļāļāļāļđāđāļāļđāđāļ UI āļāļĩāđāļāđāļ§āļĒāļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļāđāļāđāļāđāđāļĒāđāļāđāļĢāļ·āđāļāļāđāļāļāđāļ§āļĨāļēāđāļĨāļ°āļāļģāđāļŦāđāļāļēāļĢāļŠāđāļāļāļāļāļĢāļēāļāļĢāļ·āđāļāļāđāļēāļĄāļāļĩāļĄ
āđāļāđ event log āđāļāļ append-only āđāļĄāļ·āđāļāļāļļāļāļāđāļāļāļāļēāļĢāļāļĩāđāđāļāļĩāļĒāļ§āđāļāļāļēāļĢāļāđāļāļŦāļēāđāļĨāļ°āļāļĩāļāļāļīāļāļāļĢāļĢāļĄāļāļĩāđāļāđāļēāļĒ āđāļāđ versioned history āļāđāļ-entity āđāļĄāļ·āđāļāļāļļāļāļāđāļāļāļāļēāļĢāļĄāļļāļĄāļĄāļāļāļāļļāļāđāļ§āļĨāļē (point-in-time) āļāļāļāļĢāļ°āđāļāļĩāļĒāļāļāđāļāļĒ āđ āđāļāļŦāļĨāļēāļĒāđāļāļ event log āļāļĩāđāđāļāđāļ diffs āļĢāļ°āļāļąāļāļāļīāļĨāļāđāļĄāļąāļāļāļāđāļĨāļ°āļāļĢāļ°āļŦāļĒāļąāļāļāļ·āđāļāļāļĩāđāļāļ§āđāļē
āđāļāļ°āļāļģāđāļāđ soft delete āđāļĨāļ°āļāļąāļāļāļķāļāļāļēāļĢāļĨāļāđāļāđāļāđāļŦāļāļļāļāļēāļĢāļāđāđāļĒāļ āļŦāļēāļāļāļģāđāļāđāļāļāđāļāļ hard delete āđāļŦāđāđāļāļĩāļĒāļāđāļŦāļāļļāļāļēāļĢāļāđ audit āļāđāļāļ āđāļĨāļ°āļĢāļ§āļĄ snapshot āļŦāļĢāļ·āļāļāļīāļĨāļāđāļŠāļģāļāļąāļāđāļ§āđāđāļāļ·āđāļāļāļīāļŠāļđāļāļāđāļ§āđāļēāļāļđāļāļĨāļāļāļ°āđāļĢāđāļ
āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļĩāđāđāļāđāļāļēāļāđāļāđāļāļ·āļāđāļāđāļ diff āļĢāļ°āļāļąāļāļāļīāļĨāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāđāļāļ āđāļĨāļ°āđāļāđāļ snapshot āđāļāđāļĄāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļĨāļ°āļāļēāļĢāļĨāļ āļŠāļģāļŦāļĢāļąāļāļāļīāļĨāļāđāļāļĩāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļ āđāļŦāđāļāļąāļāļāļķāļāļ§āđāļēāļĄāļĩāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāđāđāļĄāđāđāļāđāļāļāļ§āļēāļĄāļĨāļąāļāļāļĢāļīāļ āđ āļāļķāđāļāļĄāļē āđāļĨāļ°āļāļģāļāļēāļĢāļĨāļāļŦāļĢāļ·āļāļĄāļēāļŠāļāđāļāđāļāļĄāļđāļĨāļŠāđāļ§āļāļāļļāļāļāļĨ
āļŠāļĢāđāļēāļāđāļŠāđāļāļāļēāļāđāļāļĩāļĒāļ§ "write + audit" āđāļĨāļ°āļāļąāļāļāļąāļāđāļŦāđāļāļļāļāļāļēāļĢāđāļāļĩāļĒāļāļāđāļēāļāđāļŠāđāļāļāļēāļāļāļąāđāļ āļĢāļ§āļĄāļāļķāļ UI, API, āļāļēāļĢāļāļģāđāļāđāļē āđāļĨāļ°āļāļēāļāļāļ·āđāļāļŦāļĨāļąāļ āđāļ AppMaster āļāļĩāļĄāļĄāļąāļāļāļģāđāļāđāļ Business Process āļāļĩāđāļāļģāļāļąāđāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļāđāļāļĄāļđāļĨāđāļĨāļ°āđāļāļĩāļĒāļāđāļŦāļāļļāļāļēāļĢāļāđ audit āđāļ flow āđāļāļĩāļĒāļ§āļāļąāļāđāļāļ·āđāļāļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļāđāļāļāļ§āđāļēāļ


