Канон документов, каталог задач и OpenSpec
docs/ по канону 12: паспорт с целью проекта, архитектура сегодняшнего устройства, схема хранилища, модель угроз, конвенции кода, журнал ревью. Конвенции перенесены из jellybit; места, где код им не следует, помечены строкой «Расхождение» как объявленный долг. tasks/ с роадмапом: две достигнутые цели, две запланированные (веб и многопользовательский режим), два направления (все форматы, долгие записи) и пять задач в беклоге. openspec/config.yaml — маршрутизатор с адресами документов, спек пока нет. CLAUDE.md переписан по форме канона: инварианты с severity, семантика гейта, запреты с путями. Taskfile получил task gate.
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# 🎯 Сервисом пользуются несколько человек, и записи одного не видны другому
|
||||
|
||||
- **Тип:** goal
|
||||
- **Секция:** Запланировано
|
||||
- **Зачем:** У задачи нет владельца, а HTTP API открыт наружу без аутентификации: пригласить второго человека сейчас значит открыть ему чужие расшифровки.
|
||||
|
||||
Приложение узнаёт, кто к нему пришёл, и показывает каждому только его записи.
|
||||
Учётные записи заводит и проверяет внешний провайдер — Authelia по OIDC; своей
|
||||
регистрации и своих паролей не делаем, это граница из
|
||||
[паспорта](../../docs/passport.md).
|
||||
|
||||
## Завершение
|
||||
|
||||
1. Неаутентифицированный запрос к записям не проходит: ни к странице, ни к API.
|
||||
2. У задачи и файла есть владелец, и выборка чужой записи по её
|
||||
идентификатору возвращает «не найдено», а не содержимое.
|
||||
3. Вход идёт через OIDC у Authelia; выход из сессии работает.
|
||||
4. Пользователь Telegram сопоставлен с учётной записью, и записи, пришедшие
|
||||
ботом, видны ему же в браузере.
|
||||
5. Белый список Telegram перестаёт быть отдельным механизмом: право писать боту
|
||||
выводится из учётной записи.
|
||||
Reference in New Issue
Block a user