Admin User v1

This commit is contained in:
Eric Gullickson
2025-11-05 19:04:06 -06:00
parent e4e7e32a4f
commit 8174e0d5f9
48 changed files with 11289 additions and 1112 deletions

View File

@@ -9,6 +9,7 @@ import fastifyMultipart from '@fastify/multipart';
// Core plugins
import authPlugin from './core/plugins/auth.plugin';
import adminGuardPlugin, { setAdminGuardPool } from './core/plugins/admin-guard.plugin';
import loggingPlugin from './core/plugins/logging.plugin';
import errorPlugin from './core/plugins/error.plugin';
import { appConfig } from './core/config/config-loader';
@@ -20,6 +21,8 @@ import { stationsRoutes } from './features/stations/api/stations.routes';
import { documentsRoutes } from './features/documents/api/documents.routes';
import { maintenanceRoutes } from './features/maintenance';
import { platformRoutes } from './features/platform';
import { adminRoutes } from './features/admin/api/admin.routes';
import { pool } from './core/config/database';
async function buildApp(): Promise<FastifyInstance> {
const app = Fastify({
@@ -65,13 +68,17 @@ async function buildApp(): Promise<FastifyInstance> {
// Authentication plugin
await app.register(authPlugin);
// Admin guard plugin - initializes after auth plugin
await app.register(adminGuardPlugin);
setAdminGuardPool(pool);
// Health check
app.get('/health', async (_request, reply) => {
return reply.code(200).send({
status: 'healthy',
timestamp: new Date().toISOString(),
environment: process.env.NODE_ENV,
features: ['vehicles', 'documents', 'fuel-logs', 'stations', 'maintenance', 'platform']
features: ['admin', 'vehicles', 'documents', 'fuel-logs', 'stations', 'maintenance', 'platform']
});
});
@@ -81,7 +88,7 @@ async function buildApp(): Promise<FastifyInstance> {
status: 'healthy',
scope: 'api',
timestamp: new Date().toISOString(),
features: ['vehicles', 'documents', 'fuel-logs', 'stations', 'maintenance', 'platform']
features: ['admin', 'vehicles', 'documents', 'fuel-logs', 'stations', 'maintenance', 'platform']
});
});
@@ -113,6 +120,7 @@ async function buildApp(): Promise<FastifyInstance> {
await app.register(fuelLogsRoutes, { prefix: '/api' });
await app.register(stationsRoutes, { prefix: '/api' });
await app.register(maintenanceRoutes, { prefix: '/api' });
await app.register(adminRoutes, { prefix: '/api' });
// 404 handler
app.setNotFoundHandler(async (_request, reply) => {