1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-03-04 00:18:40 +01:00
unleash.unleash/src/lib/routes/index.ts

60 lines
2.2 KiB
TypeScript
Raw Normal View History

import { BackstageController } from './backstage';
import ResetPasswordController from './auth/reset-password-controller';
import { SimplePasswordProvider } from './auth/simple-password-provider';
import type { IUnleashConfig, IUnleashServices } from '../types';
import LogoutController from './logout';
import rateLimit from 'express-rate-limit';
2024-03-05 15:25:06 +01:00
import Controller from './controller';
import { AdminApi } from './admin-api';
import ClientApi from './client-api';
2016-06-18 21:53:18 +02:00
import { HealthCheckController } from './health-check';
import FrontendAPIController from '../features/frontend-api/frontend-api-controller';
import EdgeController from './edge-api';
import { PublicInviteController } from './public-invite';
import type { Db } from '../db/db';
import { minutesToMilliseconds } from 'date-fns';
class IndexRouter extends Controller {
2023-02-16 08:08:51 +01:00
constructor(config: IUnleashConfig, services: IUnleashServices, db: Db) {
super(config);
this.use('/health', new HealthCheckController(config, services).router);
this.use(
'/invite',
new PublicInviteController(config, services).router,
);
this.use('/internal-backstage', new BackstageController(config).router);
this.use('/logout', new LogoutController(config, services).router);
this.useWithMiddleware(
'/auth/simple',
new SimplePasswordProvider(config, services).router,
rateLimit({
windowMs: minutesToMilliseconds(1),
max: config.rateLimiting.simpleLoginMaxPerMinute,
2023-08-03 12:47:19 +02:00
validate: false,
standardHeaders: true,
legacyHeaders: false,
}),
);
this.use(
'/auth/reset',
new ResetPasswordController(config, services).router,
);
2023-02-16 08:08:51 +01:00
this.use('/api/admin', new AdminApi(config, services, db).router);
this.use('/api/client', new ClientApi(config, services).router);
this.use(
'/api/frontend',
new FrontendAPIController(config, services).router,
);
this.use('/edge', new EdgeController(config, services).router);
}
}
export default IndexRouter;
module.exports = IndexRouter;