SLDS-based Lightning page, exposed as App Page + Tab Queue_Admin_Console, added to the Event_Queue app navigation. Tab visibility is gated by the Event_Queue_Admin permission set; every @AuraEnabled method additionally checks the Queue_Admin_Console_Access custom permission.
- Retention enabled / global dry-run badges
- Next scheduled
JobQueueRetentionfire + cron expression - Last purge summary (Name, Policy, Status, Deleted count)
- Queue__c aggregate by Status (count + oldest row)
- Refresh button — no auto-refresh
lightning-datatablejoiningQueue_Retention_Policy__mdtwith the latestQueue_Purge_Log__cper policy (for Last Run columns)- New policy → modal with
lightning-inputfields (MDT isn't LDS-backed, so nolightning-record-edit-form) - Save →
QueueAdminController.upsertPolicyreturns a deployment id; modal shows "Deploying…" spinner; pollsgetDeploymentStatusevery 3s up to 2 minutes - D3 uniqueness checked before the deploy fires (saves a round trip)
- Row actions: Run now, Run now (dry), Preview matches, Edit
- Table of all four
Job*classes (JobPendingEvents,JobOldQueuedEvents,JobRetryEventProcessor,JobQueueRetention) - Per row: scheduled yes/no, next fire, current cron, last fire
- Actions: Start / Abort. Optional "Custom cron" input at the top of the tab lets the admin override a job's default cadence on Start.
lightning-datatableofQueue_Purge_Log__c(most recent 200)- Status filter: All / SUCCESS / PARTIAL / ERROR / DRY_RUN / SKIPPED_GLOBAL_CAP
Three stacked cards, each bound to its own hierarchy custom setting so the folders stay self-contained:
- Queue Admin (
Queue_Admin_Setting__c) — 6 fields: master switch, global dry-run, global cap, chunk, log retention, empty recycle bin - Notifier (
Notifier_Setting__c.ClassName__c) — LWC validates the configured class extendsAbstractNotifiervia@AuraEnabledprobe before saving. Blank = silent. - Logger (
Logger_Setting__c.ClassName__c) — same validation pattern. Blank = shippedDebugLoggerdefault. - Danger zone — "Abort all jobs" button.
Event_Queue_Adminpermission set assigns:- Custom Permission
Queue_Admin_Console_Access - Apex class access for all retention + notifier + logger classes
- Object CRUD on
Queue_Purge_Log__c - Tab visibility on
Queue_Admin_Console,Queue_Purge_Log__c CustomizeApplication(required forMetadata.Operations.enqueueDeployment)
- Custom Permission
All methods on QueueAdminController; all wrap FeatureManagement.checkPermission('Queue_Admin_Console_Access'):
getOverview(),listPolicies(),previewPolicyMatch(),runPolicyNow()upsertPolicy(),getDeploymentStatus()listPurgeLogs(),getScheduleStatus(),startJob(),abortJob()getAllSettings(),upsertQueueAdminSetting(),upsertNotifierSetting(),upsertLoggerSetting()