# 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 - [x] Step 1: Create an `action.service.ts` to handle the logic of triggering bot-specific functions. - [x] Step 2: Implement the `/api/actions` route group. - [x] Step 3: Design a "Quick Actions" card with premium styled buttons in `Dashboard.tsx`. - [x] 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.