Repository navigation
07 Guest Access
Гость (курьер, такси, родственник) открывает шлагбаум сам — по ссылке с QR-кодом, короткому коду или PIN — без звонка жителю и без регистрации. По умолчанию пропуск живёт 12 часов; всё логируется.
Житель (кабинет) или админ Гость (телефон, без аккаунта)
───────────────────────── ─────────────────────────────
Создать пропуск: Получает ссылку (мессенджер/SMS):
срок 12 ч, имя «Курьер» https://gate.example.com/guest/<token>
│ │
▼ ▼
Ссылка + QR + код 7K4M-Q2XD Страница: адрес ЖК, срок, кнопка
+ PIN 554145 «Открыть шлагбаум» (большая)
│
▼
Шлагбаум открыт, событие в журнале:
«Иванов И.И. (гость Курьер)», guest
-
Ссылка/QR —
/guest/<token>: подписанная HMAC-ссылка (токен не подбирается), страница с большой кнопкой; QR ведёт на неё же. Работает без сессии и CSRF — защиту обеспечивает подпись + rate-limit. -
Короткий код —
7K4M-Q2XDна странице/guest(«открыть по коду»): продиктовать по телефону, ввести на планшете охраны. Алфавит кода не содержит неоднозначных символов (0/O, 1/I/L). -
PIN — 6 цифр для клавиатуры панели BAS-IP (
pin_fallback).
-
Житель: кабинет → «Гостевой доступ» (если карточке разрешено
allow_guest_pass). Поля: срок (пресеты1, 2, 4, 8, 12, 24, 48, 72ч), имя гостя, телефон, госномер, цель. Обязательность полей — в настройках. -
Админ/оператор:
/admin/guest→ «Создать» от имени любого жителя. -
API:
POST /api/v1/guest/passes(scopeguest.create) — для интеграций (домофон, бот, CRM курьеров). -
CLI:
bin/bas-ip guest:create --resident=5 --hours=12 --name="Курьер".
| Механизм | Значение по умолчанию |
|---|---|
| Срок по умолчанию / максимум | 12 ч / 72 ч |
| Открытий в пределах срока | без лимита (max_uses=0) или N |
| Активных пропусков на жителя / на дом | 5 / 200 |
| Созданий в сутки на жителя | 10 |
| Rate-limit страницы и открытия |
guest_open: 20/мин на IP + cooldown 3 с |
| Подпись ссылки | HMAC ключом приложения (signed_link) |
| Автоистечение | cron schedule:run гасит истёкшие |
Гостевое открытие не требует авторизации, поэтому защищено комплексно:
подпись + одноразовость токена по сроку + rate-limit + журнал. Попытки
открытия с истёкшим/отозванным кодом дают понятную страницу и пишутся
в журнал как denied.
Каждое событие: кто (житель-владелец пропуска + имя гостя), когда,
тип доступа guest, квартира, устройство, результат, источник (web/код/
API), счётчик использований пропуска. Видно в:
-
/admin/gate(журнал ворот, фильтр «гостевые»), - карточке пропуска (
/admin/guest) — сколько раз и когда открыли, - кабинете жителя (
/cabinet/log), -
bin/bas-ip gate:log --access=guest, - лог-канале
gate(storage/logs/gate-*.log).
Уведомления (настраивается): жителю при создании (guest_created),
при использовании (guest_used), гостю — приглашение (guest_invite).
-
Отозвать — в кабинете жителя, в
/admin/guest,guest:revoke <код>; причина пишется в журнал. -
Истёкшие — гасятся автоматически (
auto_revoke_expired). -
Экспорт —
/admin/guest/export.
config.guest и Админка → Настройки → Гостевой доступ: сроки, пресеты,
лимиты, обязательные поля, PIN, синхронизация госномера с whitelist панели
(car_sync, driver-specific), уведомления.
Дальше: 08 · Биллинг