v0.5.164: закомментированы старые UI/Api/export, всё в v2

This commit is contained in:
2026-06-22 17:23:56 +04:00
parent 9e6e22fadc
commit 24f1d5af77
3 changed files with 10 additions and 28 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ipwhitelist", "name": "ipwhitelist",
"version": "0.5.163", "version": "0.5.164",
"description": "IP WhiteList microservice for cloud provider", "description": "IP WhiteList microservice for cloud provider",
"main": "server.js", "main": "server.js",
"scripts": { "scripts": {
+8 -26
View File
@@ -31,7 +31,7 @@ const { authLimiter } = require('./src/middleware/rateLimit');
const { createSessionMiddleware } = require('./src/middleware/session'); const { createSessionMiddleware } = require('./src/middleware/session');
const { aggregateCIDRs } = require('./src/validators'); const { aggregateCIDRs } = require('./src/validators');
const { CSP_DIRECTIVES } = require('./src/middleware/csp'); const { CSP_DIRECTIVES } = require('./src/middleware/csp');
const { createUiRouter } = require('./ui/index'); // const { createUiRouter } = require('./ui/index'); // ⛔ устарело, всё в v2
const app = express(); const app = express();
const PORT = process.env.PORT || 3000; const PORT = process.env.PORT || 3000;
@@ -102,26 +102,8 @@ async function start() {
// JWKS endpoint для валидации токенов внешними сервисами (только в mock-режиме) // JWKS endpoint для валидации токенов внешними сервисами (только в mock-режиме)
if (auth.jwksHandler) app.get('/.well-known/jwks.json', auth.jwksHandler); if (auth.jwksHandler) app.get('/.well-known/jwks.json', auth.jwksHandler);
// ── /export — публичный (ВРЕМЕННО без авторизации) ─────────────────────── // ⛔ Старый /export — удалён, всё в /v2/export
// 🔮 КОГДА Keycloak SSO: заменить на app.use('/export', auth.bearerMiddleware, ...) // app.get('/export', async (req, res) => { ... });
app.get('/export',
/* 🔮 auth.bearerMiddleware, */
async (req, res) => {
try {
const cidrs = await q.getExportCIDRs();
const aggregated = aggregateCIDRs(cidrs);
const text = aggregated.join('\n') + (aggregated.length ? '\n' : '');
res.set('Content-Type', 'text/plain; charset=utf-8');
const fname = (req.query.filename || 'white-list.txt').replace(/[^\w\-_. ]/g, '_');
const disp = req.query.view === '1' ? 'inline' : 'attachment';
res.set('Content-Disposition', disp + '; filename="' + fname + '"');
res.send(text);
} catch (e) {
console.error('[export] Error:', e);
res.status(500).send('Ошибка экспорта');
}
}
);
// ── OIDC-роуты (Keycloak) — активны ТОЛЬКО когда KC_CLIENT_ID задан ───── // ── OIDC-роуты (Keycloak) — активны ТОЛЬКО когда KC_CLIENT_ID задан ─────
// В mock-режиме (сейчас): заглушки, работает ui/routes/auth.js // В mock-режиме (сейчас): заглушки, работает ui/routes/auth.js
@@ -129,9 +111,9 @@ async function start() {
const { createRouter: createOidcRouter } = require('./src/routes/oidc'); const { createRouter: createOidcRouter } = require('./src/routes/oidc');
app.use('/', createOidcRouter({ auth })); app.use('/', createOidcRouter({ auth }));
// ── REST API v1 (Bearer JWT, без сессий/CSRF) ───────────────────────────── // ⛔ Старый API v1 — удалён, всё в v2
const { createApiRouter } = require('./src/api/index'); // const { createApiRouter } = require('./src/api/index');
app.use('/api/v1', createApiRouter({ auth, q })); // app.use('/api/v1', createApiRouter({ auth, q }));
// ── UI-слой: SSR через EJS, данные из /api/v1/* ─────────────────────────── // ── UI-слой: SSR через EJS, данные из /api/v1/* ───────────────────────────
// Монтируется ПОСЛЕ /api/v1/ — не перехватывает API-запросы. // Монтируется ПОСЛЕ /api/v1/ — не перехватывает API-запросы.
@@ -140,8 +122,8 @@ async function start() {
app.get('/', (req, res) => res.redirect('/v2/app')); app.get('/', (req, res) => res.redirect('/v2/app'));
const { createV2Router } = require('./v2/server'); const { createV2Router } = require('./v2/server');
app.use('/v2', createV2Router()); app.use('/v2', createV2Router());
// Хранит Bearer token в сессии, рендерит те же views/*.ejs. // ⛔ Старый UI-слой — удалён, всё в v2
app.use('/', createUiRouter({ auth, MOCK_USERS, authLimiter })); // app.use('/', createUiRouter({ auth, MOCK_USERS, authLimiter }));
// ── Общий обработчик ошибок ─────────────────────────────────────────────── // ── Общий обработчик ошибок ───────────────────────────────────────────────
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
+1 -1
View File
@@ -8,7 +8,7 @@
// ═══════════════════════════════════════════════════════════════════════════════ // ═══════════════════════════════════════════════════════════════════════════════
module.exports = { module.exports = {
version: '0.5.163', version: '0.5.164',
// ── IAM ────────────────────────────────────────────────────────────────── // ── IAM ──────────────────────────────────────────────────────────────────
iamUrl: process.env.V2_IAM_URL || 'https://auth-api.ngcloud.ru/api/v1/auth/user', iamUrl: process.env.V2_IAM_URL || 'https://auth-api.ngcloud.ru/api/v1/auth/user',