'audit', 'version' => '1.0.0', 'enabled_by_default' => true, 'load_order' => 5, 'requires' => [], 'routes' => [ // API audit pages ['path' => 'admin/api-audit', 'target' => 'audit/api-audit/index'], ['path' => 'admin/api-audit/view', 'target' => 'audit/api-audit/view'], ['path' => 'admin/api-audit/data', 'target' => 'audit/api-audit/data'], ['path' => 'admin/api-audit/purge', 'target' => 'audit/api-audit/purge'], // System audit pages ['path' => 'admin/system-audit', 'target' => 'audit/system-audit/index'], ['path' => 'admin/system-audit/view', 'target' => 'audit/system-audit/view'], ['path' => 'admin/system-audit/data', 'target' => 'audit/system-audit/data'], ['path' => 'admin/system-audit/purge', 'target' => 'audit/system-audit/purge'], // Import audit pages ['path' => 'admin/import-audit', 'target' => 'audit/import-audit/index'], ['path' => 'admin/import-audit/view', 'target' => 'audit/import-audit/view'], ['path' => 'admin/import-audit/data', 'target' => 'audit/import-audit/data'], ['path' => 'admin/import-audit/purge', 'target' => 'audit/import-audit/purge'], // User lifecycle audit pages ['path' => 'admin/user-lifecycle-audit', 'target' => 'audit/user-lifecycle-audit/index'], ['path' => 'admin/user-lifecycle-audit/view', 'target' => 'audit/user-lifecycle-audit/view'], ['path' => 'admin/user-lifecycle-audit/data', 'target' => 'audit/user-lifecycle-audit/data'], ['path' => 'admin/user-lifecycle-audit/purge', 'target' => 'audit/user-lifecycle-audit/purge'], ['path' => 'admin/user-lifecycle-audit/restore', 'target' => 'audit/user-lifecycle-audit/restore'], // Frontend telemetry ['path' => 'admin/frontend-telemetry/ingest', 'target' => 'audit/frontend-telemetry/ingest'], ], 'public_paths' => [], 'container_registrars' => [ \MintyPHP\Module\Audit\AuditContainerRegistrar::class, ], 'ui_slots' => [ 'sidebar.admin_nav_item' => [ [ 'key' => 'audit-api-audit', 'group' => 'admin-logs', 'label' => 'API audit', 'path' => 'audit/api-audit', 'permission' => 'audit.api.view', 'order' => 200, ], [ 'key' => 'audit-system-audit', 'group' => 'admin-logs', 'label' => 'System audit logs', 'path' => 'audit/system-audit', 'permission' => 'audit.system.view', 'order' => 210, ], [ 'key' => 'audit-import-audit', 'group' => 'admin-logs', 'label' => 'Import logs', 'path' => 'audit/import-audit', 'permission' => 'audit.imports.view', 'order' => 220, ], [ 'key' => 'audit-user-lifecycle-audit', 'group' => 'admin-logs', 'label' => 'User lifecycle logs', 'path' => 'audit/user-lifecycle-audit', 'permission' => 'audit.user_lifecycle.view', 'order' => 230, ], ], ], 'authorization_policies' => [ \MintyPHP\Module\Audit\AuditAuthorizationPolicy::class, ], 'permissions' => [ [ 'key' => 'audit.api.view', 'description' => 'View API audit logs', ], [ 'key' => 'audit.system.view', 'description' => 'View system audit logs', ], [ 'key' => 'audit.system.purge', 'description' => 'Purge system audit logs', ], [ 'key' => 'audit.api.purge', 'description' => 'Purge API audit logs', ], [ 'key' => 'audit.imports.view', 'description' => 'View import audit logs', ], [ 'key' => 'audit.imports.purge', 'description' => 'Purge import audit logs', ], [ 'key' => 'audit.user_lifecycle.view', 'description' => 'View user lifecycle audit logs', ], [ 'key' => 'audit.user_lifecycle.restore', 'description' => 'Restore deleted users from lifecycle audit', ], ], 'scheduler_jobs' => [ [ 'job_key' => 'audit_system_purge', 'handler' => \MintyPHP\Module\Audit\Handler\SystemAuditPurgeJobHandler::class, 'label' => 'System audit log cleanup', 'description' => 'Purges system audit log entries older than the configured retention period', 'default_enabled' => 1, 'default_timezone' => 'UTC', 'default_schedule_type' => 'daily', 'default_schedule_interval' => 1, 'default_schedule_time' => '03:00', 'default_schedule_weekdays_csv' => null, 'default_catchup_once' => 1, 'allowed_schedule_types' => ['daily', 'weekly'], ], [ 'job_key' => 'audit_api_purge', 'handler' => \MintyPHP\Module\Audit\Handler\ApiAuditPurgeJobHandler::class, 'label' => 'API audit log cleanup', 'description' => 'Purges API audit log entries older than 90 days', 'default_enabled' => 1, 'default_timezone' => 'UTC', 'default_schedule_type' => 'daily', 'default_schedule_interval' => 1, 'default_schedule_time' => '03:15', 'default_schedule_weekdays_csv' => null, 'default_catchup_once' => 1, 'allowed_schedule_types' => ['daily', 'weekly'], ], [ 'job_key' => 'audit_import_purge', 'handler' => \MintyPHP\Module\Audit\Handler\ImportAuditPurgeJobHandler::class, 'label' => 'Import audit log cleanup', 'description' => 'Purges import audit run records older than 90 days', 'default_enabled' => 1, 'default_timezone' => 'UTC', 'default_schedule_type' => 'daily', 'default_schedule_interval' => 1, 'default_schedule_time' => '03:30', 'default_schedule_weekdays_csv' => null, 'default_catchup_once' => 1, 'allowed_schedule_types' => ['daily', 'weekly'], ], [ 'job_key' => 'audit_user_lifecycle_purge', 'handler' => \MintyPHP\Module\Audit\Handler\UserLifecycleAuditPurgeJobHandler::class, 'label' => 'User lifecycle audit log cleanup', 'description' => 'Purges user lifecycle audit entries older than 365 days', 'default_enabled' => 1, 'default_timezone' => 'UTC', 'default_schedule_type' => 'daily', 'default_schedule_interval' => 1, 'default_schedule_time' => '03:45', 'default_schedule_weekdays_csv' => null, 'default_catchup_once' => 1, 'allowed_schedule_types' => ['daily', 'weekly'], ], ], 'layout_context_providers' => [ \MintyPHP\Module\Audit\Providers\AuditLayoutProvider::class, ], 'session_providers' => [], 'event_listeners' => [], 'search_resources' => [ \MintyPHP\Module\Audit\Providers\AuditSearchResourceProvider::class, ], 'asset_groups' => [], 'migrations_path' => 'db/updates', 'i18n_path' => 'i18n', ];