naeel 805b440e5d v0.5.11: ТЗ-полный compliance тест — 111 тестов, 20 компаний × 100 CIDR
Покрытие:
- §4.1 Просмотр списка (19 тестов)
- §4.2 Создание записи (10 тестов)
- §4.3 Редактирование (4 теста)
- §4.4 Soft delete (5 тестов)
- §4.5 Лимиты (8 тестов)
- §4.6 Аудит (7 тестов)
- §4.7 Export (13 тестов)
- §5 Валидация — все 14 запрещённых + маски + XSS/SQLi (21 тест)
- §3 Роли и права (9 тестов)
- §3.1 Мульти-компания (7 тестов)
- ТЗ-плюс уточнения (2 теста)

Результат: 111 PASS, 0 FAIL — лог в test-results/
2026-06-02 18:38:08 +03:00

IP WhiteList

⚠️ В процессе разработки. НЕ для production.

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

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


Что делает

  • Клиент авторизуется через Keycloak (OIDC) и управляет списком своих IPv4/CIDR: добавляет, редактирует, удаляет (soft delete)
  • Валидация на сервере: маски /22–/32, запрет 14 приватных/служебных диапазонов, запрет дубликатов и пересечений внутри компании, нормализация host-битов
  • Лимиты: глобальный (15 по умолчанию, настраивается через env) и индивидуальный на компанию (устанавливает админ)
  • Администратор видит записи всех компаний, управляет лимитами, просматривает журнал аудита
  • Аудит: все изменения (создание/редактирование/удаление) фиксируются — кто, когда, что было и что стало

Роли

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

Как получить список для фильтрации

Агрегированный список всех активных CIDR в формате txt (одна строка — одна подсеть).

Endpoint Авторизация Статус
GET /export Bearer-токен Будет основным (публичным по ТЗ)
GET /exp Нет Временный, работает сейчас

После перевода /export на публичный доступ /exp будет удалён.

Стек

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

Архитектура

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

Два слоя: SSR UI для браузера, JSON API для внешних потребителей.

Деплой

Nubes k8s. Редеплой — Nubes UI из Gitea после git push. 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%