Netpulse_SasS/server/internal/httpapi
byrsapty 95a19b074d
Some checks failed
CI / agent (push) Waiting to run
CI / hygiene (push) Successful in 9s
CI / web (push) Successful in 1m11s
CI / server (push) Successful in 1m35s
CI / dbtest (push) Has been cancelled
Історія входів: 93 записи були в базі й ніде не показувались
core.login_attempts наповнювалась на кожній спробі входу й читалась
рівно в одному місці — для стримування підбору. Ні ендпойнта, ні
сторінки. На питання «хто заходив у мій моніторинг» продукт мав
відповідь у базі й не мав способу її показати.

ГОЛОВНЕ БУЛА НЕ ВЕРСТКА. У таблиці немає tenant_id — саме тому ці
події й не в аудиті. Показати «як є» означало б віддати одному
кабінету спроби входу чужих людей. Прив'язка непряма: спроба ->
користувач -> членство, трьома шляхами одночасно (user_id, username,
email) в одному JOIN LATERAL з tenant_id усередині. Саме JOIN, а не
LEFT JOIN: без збігу рядок ПРИБИРАЄТЬСЯ, а не лишається без імені.

На бойових даних це не теорія: у власника немає пошти, тож за email
не прив'язується ЖОДНА з 94 спроб. Шлях через username дає 93.

Невдала спроба з неіснуючим логіном не належить нікому: рядком не
показується, але рахується числом — сигнал «логіни перебирають»
лишається, чужа людина в чужий кабінет не потрапляє.

Ізоляцію перевірено проти справжньої бази (TestLoginAttemptsTenantIsolation).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-29 01:06:42 +03:00
..
agents_manage.go Білінг, SLA, вбудовані правила, пісочниця установника, тести сторінок 2026-08-27 21:17:23 +03:00
alerts.go Аудит: закрито дві найдорожчі сліпі зони — алерти й склад команди 2026-08-29 01:06:21 +03:00
api_test.go Білінг: запит читав старі імена колонок usage_now 2026-08-27 21:30:51 +03:00
audit.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
audit_meta.go Аудит: закрито дві найдорожчі сліпі зони — алерти й склад команди 2026-08-29 01:06:21 +03:00
audit_meta_test.go Аудит: закрито дві найдорожчі сліпі зони — алерти й склад команди 2026-08-29 01:06:21 +03:00
auth.go /me віддає ім'я з бази: Principal.Username ніколи не заповнювався 2026-08-28 20:04:22 +03:00
auth_test.go Аудит: закрито дві найдорожчі сліпі зони — алерти й склад команди 2026-08-29 01:06:21 +03:00
billing.go Білінг, SLA, вбудовані правила, пісочниця установника, тести сторінок 2026-08-27 21:17:23 +03:00
checks.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
compliance.go Аудит: закрито дві найдорожчі сліпі зони — алерти й склад команди 2026-08-29 01:06:21 +03:00
dashboards.go Дашборди, Esc/клік повз вікно, редагування каналів і протоколів 2026-08-24 18:30:28 +03:00
device_detail.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
devices_bulk.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
downloads.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
git_mirror.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
groups.go Білінг, SLA, вбудовані правила, пісочниця установника, тести сторінок 2026-08-27 21:17:23 +03:00
logins.go Історія входів: 93 записи були в базі й ніде не показувались 2026-08-29 01:06:42 +03:00
map_access.go Мапи: режим редагування, доступи груп, іконки, форми вузлів 2026-08-24 18:44:09 +03:00
maps_undo_test.go Етап 4: редактор мапи — зв'язки, видалення, відкат 2026-08-14 21:46:18 +03:00
maps_write.go Білінг, SLA, вбудовані правила, пісочниця установника, тести сторінок 2026-08-27 21:17:23 +03:00
maps_write_test.go Етап 3: запис у мапу — редактор полотна 2026-08-14 15:58:16 +03:00
metrics.go Історія метрик, шаблони будь-яких перевірок, маршрути правил 2026-08-24 17:21:50 +03:00
metrics_devices.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
ncm_commands.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
ncm_config_devices.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
ncm_configs.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
ncm_localfiles.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
ncm_profiles.go Профілі збору конфігів: перегляд, редагування, створення з прикладів 2026-08-25 16:40:26 +03:00
ncm_rollback.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
principal.go Вхід за логіном, групи хостів і права доступу 2026-08-24 02:00:04 +03:00
queues.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
roles.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
server.go Історія входів: 93 записи були в базі й ніде не показувались 2026-08-29 01:06:42 +03:00
serverlog.go Журнали файлами, тонший штрих мінікарти 2026-08-27 22:55:29 +03:00
serverlog_test.go Сторінка «Журнал сервера»: кільцевий буфер у памяті 2026-08-27 23:50:03 +03:00
sla.go Білінг, SLA, вбудовані правила, пісочниця установника, тести сторінок 2026-08-27 21:17:23 +03:00
static.go Пакування: runner міграцій і вшитий у бінарник фронтенд 2026-08-25 01:01:55 +03:00
storage.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
telegram_link.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
templates.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
templates_iffilter.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
traps.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
tv.go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
users.go Аудит: закрито дві найдорожчі сліпі зони — алерти й склад команди 2026-08-29 01:06:21 +03:00
ws.go Етап 5: користувачі, вхід і права 2026-08-15 10:24:58 +03:00