1
2026-05-31 10:06:50 +03:00

IP WhiteList

Self-service портал управления доверенными IPv4-адресами клиентов облачного провайдера. Записи исключаются из блокировки системами фильтрации во время DDoS-атак.

Техническое задание · Отчёт о соответствии ТЗ

Быстрый старт

npm install
cp .env.example .env   # заполнить переменные
npm start              # http://localhost:3000
npm test               # 104 API-теста
npm run test:stress    # 191 стресс-тест

Переменные окружения

Переменная Назначение По умолчанию
DEV_MODE mock-аутентификация (true в dev, запрещён в prod)
ADMIN_CLIENT_ID clientId администратора WZ01112
DEFAULT_LIMIT лимит записей на компанию 15
DATABASE_URL строка подключения PostgreSQL
SESSION_SECRET секрет сессий (обязателен в prod)

Полный список в AGENT.md

Стек

Node.js 18+ / Express 4 / EJS / PostgreSQL 17 / jsonwebtoken RS256

Архитектура

Browser → UI (EJS, сессия) → api-client → REST API (Bearer JWT) → PostgreSQL

Два слоя: SSR UI для браузера и JSON API для внешних потребителей. API — Bearer-only (без сессий), UI — сессия + Bearer-токен внутри.

Подробная карта файлов в AGENT.md

Роли

Роль clientId Права
Клиент Любой CRUD своих записей в пределах лимита
Администратор WZ01112 CRUD всех записей, изменение лимитов, аудит

Деплой

Платформа: Nubes k8s. Редеплой — через Nubes UI из Gitea после git push. Production URL: https://white.nodejsk8s.dev.nubes.ru

Разработка

Перед любой задачей читать AGENT.md — полное руководство для агентов и разработчиков.

S
Description
No description provided
Readme
7 MiB
Languages
JavaScript 81%
EJS 13.9%
Shell 5.1%