e90b0454c1a349c709aedcf6f185b7ccb967e72d
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) | — |
Стек
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 — полное руководство для агентов и разработчиков.
Languages
JavaScript
81%
EJS
13.9%
Shell
5.1%