2.8 KiB
2.8 KiB
Week 4 & 5: Operations & UI - Testing Guide
Week 4: Operations Endpoints
1. Mechanic Execute
File: src/pages/api/god/mechanic/execute.ts
Test kill-locks:
curl -X POST http://localhost:4321/api/god/mechanic/execute \
-H "X-God-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "kill-locks"}'
Test vacuum:
curl -X POST http://localhost:4321/api/god/mechanic/execute \
-H "X-God-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "vacuum", "table": "posts"}'
2. System Config (Redis)
File: src/pages/api/god/system/config.ts
Set config:
curl -X POST http://localhost:4321/api/god/system/config \
-H "X-God-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"throttle_delay_ms": 100,
"max_concurrency": 64,
"max_cost_per_hour": 50,
"enable_auto_throttle": true,
"memory_threshold_pct": 85
}'
Get config:
curl http://localhost:4321/api/god/system/config \
-H "X-God-Token: YOUR_TOKEN"
3. Live Logs
File: src/pages/api/god/logs.ts
curl "http://localhost:4321/api/god/logs?lines=50" \
-H "X-God-Token: YOUR_TOKEN"
Week 5: UI Components
1. Resource Monitor (Recharts)
Component: src/components/admin/ResourceMonitor.tsx
Features:
- Real-time CPU/RAM charts
- 2-minute history (60 data points)
- Auto-refresh every 2s
- Color-coded areas (blue=CPU, purple=RAM)
Usage in page:
import ResourceMonitor from '@/components/admin/ResourceMonitor';
<ResourceMonitor client:load />
2. Campaign Map (Leaflet)
Component: src/components/admin/CampaignMap.tsx
Features:
- OpenStreetMap tiles
- Color-coded markers (green=generated, blue=pending)
- Popup with location details
- Fetches from geo_locations table
Usage in page:
import CampaignMap from '@/components/admin/CampaignMap';
<CampaignMap client:load />
3. Tailwind Configuration
File: tailwind.config.mjs
Ensure proper dark mode and Shadcn/UI integration.
Integration Steps
Add ResourceMonitor to Admin Dashboard
---
// src/pages/admin/index.astro
import ResourceMonitor from '@/components/admin/ResourceMonitor';
---
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
<ResourceMonitor client:load />
<!-- Other dashboard components -->
</div>
Add CampaignMap to Geo-Intelligence Page
---
// src/pages/admin/intelligence/geo.astro
import CampaignMap from '@/components/admin/CampaignMap';
---
<CampaignMap client:load />
Success Criteria
- ✅ Mechanic operations complete without errors
- ✅ System config persists in Redis
- ✅ Logs stream database activity
- ✅ ResourceMonitor shows live charts
- ✅ CampaignMap displays locations
- ✅ Dark mode styling consistent