openspec: archive fix-apex-webfinger-and-registration

This commit is contained in:
estorozhenko
2026-09-07 05:51:35 +00:00
parent cd7e279bb6
commit 30121869f2
5 changed files with 5 additions and 178 deletions
@@ -0,0 +1,51 @@
# gotosocial/webfinger-and-registration Specification
## Purpose
TBD - created by archiving change fix-apex-webfinger-and-registration. Update Purpose after archive.
## Requirements
### Requirement: Apex WebFinger резолвит любой аккаунт
- **MUST**: `https://dedinit.ru/.well-known/webfinger?resource=acct:USER@dedinit.ru`
возвращает (после 301) JSON от GtS с `subject: acct:USER@dedinit.ru` для
любого существующего локального пользователя, а не статический ответ
с захардкоженным пользователем.
- **MUST**: редирект реализован через `mod_alias RedirectMatch` в `.htaccess`
(Apache на Jino; mod_rewrite/PHP недоступны).
- **SHOULD**: `/.well-known/nodeinfo` на apex также редиректит на GtS.
#### Scenario: Резолв короткого адреса клиентом
- **GIVEN** локальный пользователь `kpa39l` на инстансе social.dedinit.ru
(account-domain dedinit.ru)
- **WHEN** клиент запрашивает `dedinit.ru/.well-known/webfinger?resource=acct:kpa39l@dedinit.ru`
- **THEN** ответ (после 301) содержит `subject: acct:kpa39l@dedinit.ru`
и aliases/links на `social.dedinit.ru/users/kpa39l`
- **THEN** Tusky/Mastodon отображают короткий `@kpa39l@dedinit.ru`
### Requirement: Регистрация открыта с лимитом 10/день
- **MUST**: `GTS_ACCOUNTS_REGISTRATION_OPEN=true` — страница `/signup` доступна,
`/api/v1/instance` → `registrations: true`.
- **MUST**: `GTS_ACCOUNTS_REGISTRATION_DAILY_LIMIT=10` — максимум 10
зарегистрированных/одобренных аккаунтов за 24 часа.
- **SHOULD**: SMTP работает (письма подтверждения/уведомления доставляются).
#### Scenario: Регистрация нового пользователя
- **GIVEN** инстанс с открытой регистрацией
- **WHEN** пользователь открывает `https://social.dedinit.ru/signup` и заполняет форму
- **THEN** заявка создаётся, попадает в очередь одобрения (approval_required)
- **THEN** при превышении 10 заявок за 24ч регистрация временно закрывается
### Requirement: SMTP-доставка писем
- **MUST**: SMTP (smtp.jino.ru:587 STARTTLS, social@dedinit.ru) отправляет
тестовое письмо без ошибок.
#### Scenario: Отправка тестового письма
- **GIVEN** SMTP-конфиг в docker-compose.yml + пароль в .env
- **WHEN** отправляется письмо на kpa39l@yandex.ru
- **THEN** сервер SMTP принимает сообщение (250), письмо доставляется