Changed authMiddleware/roleMiddleware to authenticateToken/requireAdmin to match actual exports from auth.middleware.js
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
/**
|
|
* Hooks Metrics API Routes
|
|
* Serves framework enforcement metrics to admin dashboard
|
|
*/
|
|
|
|
const express = require('express');
|
|
const router = express.Router();
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const { authenticateToken, requireAdmin } = require('../middleware/auth.middleware');
|
|
|
|
const METRICS_PATH = path.join(__dirname, '../../.claude/metrics/hooks-metrics.json');
|
|
|
|
/**
|
|
* GET /api/admin/hooks/metrics
|
|
* Get current hooks metrics
|
|
*/
|
|
router.get('/metrics', authenticateToken, requireAdmin, async (req, res) => {
|
|
try {
|
|
// Check if metrics file exists
|
|
if (!fs.existsSync(METRICS_PATH)) {
|
|
return res.json({
|
|
success: true,
|
|
metrics: {
|
|
hook_executions: [],
|
|
blocks: [],
|
|
session_stats: {}
|
|
}
|
|
});
|
|
}
|
|
|
|
// Read metrics
|
|
const metricsData = fs.readFileSync(METRICS_PATH, 'utf8');
|
|
const metrics = JSON.parse(metricsData);
|
|
|
|
res.json({
|
|
success: true,
|
|
metrics: metrics
|
|
});
|
|
} catch (error) {
|
|
console.error('Error fetching hooks metrics:', error);
|
|
res.status(500).json({
|
|
success: false,
|
|
error: 'Failed to fetch hooks metrics'
|
|
});
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|