From f68f39f5f9ee4c05dc843c97d50f80a0f4c75ce3 Mon Sep 17 00:00:00 2001 From: Aleksey Sabilin Date: Sun, 16 Aug 2026 22:54:42 +0300 Subject: [PATCH] docs(branding): calentiq.com Domain/DNS checklist live; Spec#8 ops wording. [skip ci] --- BRANDING.md | 21 ++++++++++++--------- EventHubBackSpec.md | 2 +- EventHubFrontSpec.md | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/BRANDING.md b/BRANDING.md index 85df625..08b0726 100644 --- a/BRANDING.md +++ b/BRANDING.md @@ -33,17 +33,20 @@ IA без изменений: top nav + bottom nav mobile; без left sidebar; Runtime-копии в приложении: `EventHubFront/public/brand/` (mark, lockup, favicons, mood app icons). Локальные ZIP (`calentiq-brand-pack-local.zip` и т.п.) — рабочие сборки; в git SoT не кладём. -## Domain / DNS (чеклист, без покупки) +## Domain / DNS (чеклист, `calentiq.com`) -Публичный бренд ≠ внутренние хосты `*.eventhub.local` / `*.eventhub.test` (DevOps). Перед продом: +Публичный бренд ≠ внутренние хосты `*.eventhub.local` / `*.eventhub.test` (DevOps). +**Канон apex:** `calentiq.com` (куплен, в использовании на stage / IFT / redirects). -- [ ] Выбрать домен (кандидат: `calentiq.*` / аналог) — **не покупать** без явного ок владельца -- [ ] RDAP/whois: свободен ли домен; нет ли конфликтующих TM -- [ ] DNS: A/AAAA или CNAME на edge (Traefik/CDN); отдельно `www` / apex -- [ ] TLS: ACME (Let’s Encrypt) или managed cert; проверить SAN -- [ ] Почта: SPF/DKIM/DMARC — чеклист в `EventHubDevOps/docs/SMTP.md` (исполнение после ок на домен/ящик) -- [ ] Stage/IFT: либо оставить `eventhub.*` стенды, либо завести `*.calentiq.*` aliases в DevOps -- [ ] Обновить публичные URL в UI/письмах только после cutover +Проверка 2026-08-16 (публичный DNS + HTTPS): + +- [x] Домен: `calentiq.com` (куплен, в проде/stage/IFT) +- [x] Регистрация: домен занят нами (NS `nameself` / regtime); TM-конфликты — вне DNS-чеклиста +- [x] DNS: A `calentiq.com` / `www` / `stage.*` / `api.stage.*` → `195.208.119.190`; apex+www → 308 `https://stage.calentiq.com/`; IFT — split-DNS (`EventHubDevOps/docs/CALENTIQ-CERTS.md`, `STANDS.md`) +- [x] TLS: Let’s Encrypt (Traefik `certResolver: le`); SAN stage/IFT живые (issuer LE YR2) +- [x] Почта: SPF/DKIM/DMARC для Resend (канон stage) — статус в `EventHubDevOps/docs/SMTP.md` +- [x] Stage/IFT aliases `*.calentiq.com` — в DevOps (`STANDS.md`, `CALENTIQ-CERTS.md`) +- [x] Публичные URL: `PUBLIC_APP_URL` / `SMTP_FROM=noreply@calentiq.com`; Front same-origin + legal stubs `/privacy` `/terms` ## Epic diff --git a/EventHubBackSpec.md b/EventHubBackSpec.md index b968eae..42683b2 100644 --- a/EventHubBackSpec.md +++ b/EventHubBackSpec.md @@ -246,7 +246,7 @@ Legacy: прямой `POST /v1/calendars/:id/specialists` **не использ #### Фаза 2 (вне текущего контракта реализации; трекер Spec#8) - **Pilot / ops:** SMTP / transactional email; backup; secrets / certs / alerts; legal stubs; позиция и боевой эквайринг **подписки владельца** (не оплата услуги клиентом); DNS/SPF - без покупки домена без явного ок. + для `calentiq.com` (домен в использовании; чеклист `BRANDING.md`). - Waitlist на событие — **сделано** (Back#72): таблица `waitlist_entry`; API `POST/DELETE/GET /v1/events/:id/waitlist`; только commercial с `settings.waitlist_enabled=true`; join при полном слоте; FIFO promote при diff --git a/EventHubFrontSpec.md b/EventHubFrontSpec.md index 5169a92..e8f73fc 100644 --- a/EventHubFrontSpec.md +++ b/EventHubFrontSpec.md @@ -377,7 +377,7 @@ E2E: `e2e/TESTIDS.md`. Моки (`npm run test:e2e`, `project=mock`) — тол Эпик: https://git.sabilin.com/EventHub/EventHubSpec/issues/8 **Pilot / ops (фаза 2):** SMTP / transactional email; backup; secrets / certs / alerts; -legal stubs; позиция по подписке **владельца**; DNS/SPF без покупки домена без явного ок. +legal stubs; позиция по подписке **владельца**; DNS/SPF для `calentiq.com` (домен в использовании; чеклист `BRANDING.md`). **Продукт (фаза 2):** - серверный logout / revoke session (`POST /v1/logout` + `{ refresh_token }`; клиент зовёт до clear storage) — сделано