Живе демо
Живе демо: кнопка Спробувати живе демо, яка будь-кому відкриває справжню панель керування з входом у демонстраційну організацію. railhook.io його використовує; на власному сервері воно є, лише якщо його ввімкнути.
Що отримує відвідувач
Section titled “Що отримує відвідувач”Демо є однією організацією, Acme Inc., з одним проєктом, Acme Shop:
- чотири ендпоінти з підписками, один із яких час від часу збоїть, тож є доставки з повторними спробами і запис у Недоставлених повідомленнях;
- джерело Stripe і джерело GitHub, чиї перевірені вхідні події переслано в їхні призначення;
- приблизно півтори доби трафіку, тож панель і аналітика завжди показують останні 24 години.
Відвідувач може відкрити й переглянути кожен екран і нічого не може змінити.
Чому воно типово вимкнене
Section titled “Чому воно типово вимкнене”Демо видає сесію кожному, хто попросить. На розгортанні для вашої команди це анонімний вхід без потреби, тому з DEMO_ENABLED=false (типово):
- демонстраційна організація не створюється, а залишена раніше видаляється;
- кнопки на головній сторінці, на
/pricingі в меню Розробникам приховані; - ендпоінт сесії,
POST /api/v1/public/demo/session, відповідає404.
Як увімкнути
Section titled “Як увімкнути”-
Задайте змінну у
.envу каталозі встановлення; якщо рядка ще немає, додайте його:.env DEMO_ENABLED=true -
Перестворіть контейнери, щоб її прочитали і API, і панель:
Terminal window ./railhook startAPI створює демонстраційну організацію під час запуску. Панель читає ту саму змінну для кнопок демо.
-
Відкрийте
/demoна адресі вашого Railhook. Сторінка відкриє сесію й перейде до панелі.
У Kubernetes задайте обидві половини у значеннях Helm:
api: env: DEMO_ENABLED: "true"ui: publicDemo: trueЧому демо лише для читання
Section titled “Чому демо лише для читання”Демо-сесія є токеном доступу до демонстраційної організації з роллю Спостерігач, і нічим більше:
- Кожну зміну відхиляє сервер, а не лише панель. Будь-який метод, окрім
GET,HEADчиOPTIONS, отримує403на кожному ендпоінті (API-ключі, учасники, налаштування, тарифи, відтворення, надсилання подій, сесії порталу, підключені застосунки, власний профіль відвідувача). Експорт теж заборонено, хоч це й читання. Винятки нічого в демо не змінюють: вихід, відкриття нової демо-сесії, а також контактна форма й тестер вебхуків на публічному сайті. - Її не можна подовжити. Refresh-токена немає. Вона діє
DEMO_SESSION_TTL_MINUTES(типово 30), потім відвідувач повертається на головну сторінку й може відкрити нову. - Вона працює лише в API. Демо-токен не приймається ніде поза
/api/. - Відкриття обмежено: десять сесій на хвилину з однієї адреси, за CAPTCHA реєстрації, якщо її налаштовано (
CAPTCHA_SECRET_KEYіCAPTCHA_SITE_KEY). - Нічого ніколи не доставляється. Усі URL ведуть на зарезервовані хости
.example, усі доставки й пересилання вже завершені, а джерела демо відхиляють вхідні вебхуки. Воркер ніколи не має роботи з демо.
Як воно лишається актуальним
Section titled “Як воно лишається актуальним”API переписує історію демо кожні DEMO_REFRESH_INTERVAL_MINUTES (типово 60), тож вона завжди доходить до поточного моменту. Організацію, ендпоінти й джерела створено один раз; замінюються лише події, доставки й вхідні події.
Огляд адміністратора платформи не враховує організацію, обліковий запис і трафік демо, а його недоставлені повідомлення не спричиняють сповіщення webhook_dlq_depth.
Як вимкнути
Section titled “Як вимкнути”Задайте DEMO_ENABLED=false і виконайте ./railhook start. Нову сесію відкрити не можна, кнопки зникають; відкрита сесія діє до кінця строку, але демо в ній порожнє.
Під час запуску API видаляє демо: організацію, обліковий запис, проєкт, ендпоінти, джерела й усю історію. Видаляються лише рядки з ідентифікаторами демо, яких не може мати жодна інша організація, а в журнал API пишеться один рядок про видалене. Наступні запуски нічого не роблять. Повторне ввімкнення створює демо заново.
Усі три змінні є в довіднику конфігурації, ендпоінт сесії в довіднику API.