import { Router } from "express"; import { authenticateToken, authenticateTokenOrApiKey } from "../middleware/auth.middleware"; import { tenantIsolation } from "../middleware/tenant.middleware"; import { registerUserRoutes } from "./user.routes"; import { registerFormRoutes } from "./form.routes"; import { registerTaskCrudRoutes } from "./task-crud.routes"; import { registerTaskTransitionRoutes } from "./task-transitions.routes"; import { registerTaskFieldRoutes } from "./task-fields.routes"; import { registerTaskRoleRoutes } from "./task-roles.routes"; const router = Router(); // Global middleware for all protected route prefixes // Для /api/tasks и /api/forms — authenticateTokenOrApiKey: JWT-путь идентичен, // API-ключ допускается только на endpoint'ы из белого списка (см. auth.middleware). router.use('/api/users', authenticateToken, tenantIsolation); router.use('/api/user-statuses', authenticateToken, tenantIsolation); router.use('/api/organizations', authenticateToken, tenantIsolation); router.use('/api/forms', authenticateTokenOrApiKey, tenantIsolation); router.use('/api/tasks', authenticateTokenOrApiKey, tenantIsolation); // Register domain route handlers registerUserRoutes(router); registerFormRoutes(router); registerTaskCrudRoutes(router); registerTaskTransitionRoutes(router); registerTaskFieldRoutes(router); registerTaskRoleRoutes(router); export default router;