Files
AuroraBot-discord/tickets/2026-01-08-dashboard-control-panel.md

3.1 KiB

DASH-004: Administrative Control Panel

Status: Done Created: 2026-01-08 Tags: dashboard, control-panel, bot-actions, operations

1. Context & User Story

  • As a: Bot Administrator
  • I want to: Execute common maintenance tasks directly from the dashboard buttons.
  • So that: I don't have to use terminal commands or Discord slash commands for system-level operations.

2. Technical Requirements

Data Model Changes

  • N/A.

API / Interface

  • POST /api/actions/reload-commands: Triggers the bot's command loader.
  • POST /api/actions/clear-cache: Clears internal bot caches.
  • POST /api/actions/maintenance-mode: Toggles a maintenance flag for the bot.

3. Constraints & Validations (CRITICAL)

  • Input Validation: Standard JSON body with optional reason field.
  • System Constraints:
    • Actions must be idempotent where possible.
    • Actions must provide a response within 10 seconds.
  • Business Logic Guardrails:
    • SECURITY: This endpoint MUST require high-privilege authentication (currently we have single admin assumption, but token-based check should be planned).
    • Maintenance mode toggle must be logged to the event feed.

4. Acceptance Criteria

  1. Given a "Quick Actions" card, When the "Reload Commands" button is clicked, Then the bot reloads its local command files and posts a "Success" event to the feed.
  2. Given a running bot, When the "Clear Cache" button is pushed, Then the bot flushes its internal memory maps and the memory usage metric reflects the drop.

5. Implementation Plan

  • Step 1: Create an action.service.ts to handle the logic of triggering bot-specific functions.
  • Step 2: Implement the /api/actions route group.
  • Step 3: Design a "Quick Actions" card with premium styled buttons in Dashboard.tsx.
  • Step 4: Add loading states to buttons to show when an operation is "In Progress."

Implementation Notes

Successfully implemented the Administrative Control Panel with the following changes:

  • Backend Service: Created shared/modules/admin/action.service.ts to coordinate actions like reloading commands, clearing cache, and toggling maintenance mode.
  • System Bus: Updated shared/lib/events.ts with new action events.
  • API Endpoints: Added POST /api/actions/* routes to the web server in web/src/server.ts.
  • Bot Integration:
    • Updated AuroraClient in bot/lib/BotClient.ts to listen for system action events.
    • Implemented maintenanceMode flag in AuroraClient.
    • Updated CommandHandler.ts to respect maintenance mode, blocking user commands with a helpful error embed.
  • Frontend UI:
    • Created ControlPanel.tsx component with a premium glassmorphic design and real-time state feedback.
    • Integrated ControlPanel into the Dashboard.tsx page.
    • Updated use-dashboard-stats hook and shared types to include maintenance mode status.
  • Verification: Created 3 new test suites covering the service, the bot listener, and the command handler enforcement. All tests passing.