Files
glchat/NOTICE
T
grendervill 16218ee045 feat(auth): сервис аккаунтов и аутентификации Фазы 1
- регистрация: политика пароля (≥10 + локальный словарь 10k утечек, SecLists MIT),
  username и email без учёта регистра, шифрование email с привязкой к аккаунту,
  blind index для поиска, автовступление в главный сервер с ролью @user
- вход: Argon2id+pepper, TOTP при включённом 2FA, блокировка после серии неудач,
  события безопасности; единый ответ на неверный пароль и неизвестный аккаунт
- сессии: opaque-токены (в БД только SHA-256), ротация токена, logout/logout-all,
  отзыв остальных сессий при смене пароля, step-up с окном 10 минут
- 2FA: настройка секрета с QR-URL, подтверждение кодом, 8 резервных кодов
  (хранятся хэшами), обязательность для инстанс-админов, запрет отключения
- тесты на реальной SQLite: регистрация/вход/дубликаты, слабые и утёкшие пароли,
  ротация и logout-all, TOTP и резервные коды, step-up, смена пароля,
  выключенная регистрация, отсутствие секретов в логах
2026-09-19 21:29:07 +03:00

55 lines
4.0 KiB
Plaintext

# NOTICE — атрибуция и сторонние компоненты
glchat — self-hosted платформа общения.
Copyright (C) 2026 glchat contributors.
Лицензия проекта: **AGPL-3.0-or-later** (полный текст — `LICENSE`).
## Архитектурные референсы
Проект использует **архитектурные идеи** следующих проектов. Их исходный код
в glchat не переносился; любые прямые заимствования фрагментов (включая схемы
и тексты) обязаны фиксироваться в этом файле с указанием источника и лицензии.
| Проект | Лицензия | Что используется |
|---|---|---|
| [Spacebar server](https://github.com/spacebarchat/server) | AGPL-3.0 | Архитектурный референс: структура API/Gateway/CDN/voice, сущности, модель прав |
| [Fermo](https://git.sovrahi.com/oh64/Fermo) | AGPL-3.0 | **Только UX/UI-референс.** Код не используется и не форкается (по просьбе автора) |
## Сторонние компоненты
| Компонент | Лицензия | Использование |
|---|---|---|
| [LiveKit](https://github.com/livekit/livekit) (`livekit/livekit-server`) | Apache-2.0 | SFU для голоса, видео и шаринга экрана (Docker-образ) |
| [LiveKit server SDK for Go](https://github.com/livekit/server-sdk-go) | Apache-2.0 | Выдача токенов, RoomService API (фаза 3) |
| [LiveKit Components](https://github.com/livekit/components-js) | Apache-2.0 | UI голосовых комнат в веб-клиенте (фаза 3) |
| [Caddy](https://github.com/caddyserver/caddy) | Apache-2.0 | TLS/Let's Encrypt, reverse proxy (Docker-образ) |
| [chi](https://github.com/go-chi/chi) | MIT | HTTP-роутер (фаза 1) |
| [huma](https://github.com/danielgtaylor/huma) | MIT | Типизированные хендлеры и OpenAPI 3.1 (фаза 1) |
| [goose](https://github.com/pressly/goose) | MIT | Миграции SQLite (embedded) |
| [sqlc](https://sqlc.dev) | MIT | Генерация кода доступа к БД |
| [mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) | MIT | Драйвер SQLite (CGO) |
| [coder/websocket](https://github.com/coder/websocket) | MIT | WebSocket Gateway (фаза 1) |
| [React](https://react.dev) | MIT | Веб-клиент |
| [Vite](https://vite.dev) | MIT | Сборка веб-клиента |
| [Tailwind CSS](https://tailwindcss.com) | MIT | Стили веб-клиента |
| [Radix UI](https://www.radix-ui.com) | MIT | Доступные UI-примитивы |
| [TanStack Query](https://tanstack.com/query) | MIT | Серверное состояние клиента |
| [i18next](https://www.i18next.com) | MIT | Локализация ru/en |
| [age](https://age-encryption.org) (filippo.io/age) | BSD-3-Clause | Шифрование бэкапов |
Полный список Go-зависимостей с версиями — `go.mod`/`go.sum`; JS-зависимостей —
`web/package.json`/`web/package-lock.json`. Совместимость лицензий с AGPL-3.0
проверяется при добавлении каждой зависимости (AGENT.md §15).
## Данные
| Файл | Источник | Лицензия |
|---|---|---|
| `internal/auth/data/leaked-passwords.txt` | [SecLists](https://github.com/danielmiessler/SecLists) `Passwords/Common-Credentials/10k-most-common.txt` | MIT |
## Ассеты
Встроенные звуки, иконки и изображения — только CC0, собственные или
сгенерированные, с фиксацией происхождения в этом файле. Сторонние ассеты
без явной лицензии не используются.