[PREVIEW] forumify 1.1 preview: Audit Logs

By jannes , Mar 1, 2026
  • jannes @jannes
    Mar 1, 2026

    Hello all,

    The development of forumify 1.1 started almost immediately after the 1.0 release. We're about 2 months in now, and we'll be slowly releasing some previews of what is to come. This will be the first of those posts.

    I think for the minor versions, we'll be doing 1 every quarter. So you can expect this feature to be available at the end of this month!

    Audit Logs

    A very important feature for admins to get visibility into the who, what, where and when of their websites.

    So far, in 1.0, the only insights we had were a couple of fields on each entity that showed the user who created and updated an entity, and when this was done. These fields served mostly for technical requirements, and were never meant to be a solution for proper audit logs.

    Entity Logs

    If an entity has audit logging enabled, and they are using the standard admin abstractions, the audit icon will automatically appear in the top right, and when clicking it, you can see all changes done to this entity in a list:

    Furthermore, when clicking the "menu" icon at the end of each row, you can see exactly which fields were modified:

    Global Logs

    Aside from logs per individual entity, there will also be a global log in "Settings" -> "Audit Logs", where you can search, sort and inspect any audit log that exists in the system.

    Plugin Developer Notes

    To prevent sensitive data or technical entities from ending up in the log, each entity must be enabled for auditing. To enabled auditing, add the "AuditableEntityInterface" to your entity, and implement its fields:

    class MyEntity implements AuditableEntityInterface
    {
        public function getIdentifierForAudit(): string
        {
            return (string)$this->getId();
        }
    
        public function getNameForAudit(): string
        {
            return $this->getName();
        }
    }
    

    You can hide certain fields from the log if they change frequently or have no value for admins to know about by using AuditExcludedField:

        #[AuditExcludedField]
        private int $views = 0;
    

    Or if you do want to inform admins about changes, but the field itself is sensitive, like passwords, secrets,... you can use SensitiveField:

        #[SensitiveField]
        private ?string $password = null;
    

    Final Words

    Audit logging should add transparency to your community, and this feature is long overdue. After the 1.1 release plugin devs will need some time to add this feature to their plugins, but we've tried to make it as simple as possible.

    Please let us know what you think of this feature. Any feedback or ideas before we release is greatly appreciated 😉