Сайт фотографа в Касселе, командная работа
Новый сайт фотостудии в Касселе: 16 страниц, статика, со своим сервером на Node для отдачи. Работа командная: 39 коммитов, из них мои 8. Моя часть легла на ту сторону, которой не видно: встроить чужой чат так, чтобы без согласия он не загружался вовсе.
Было и стало

Моя часть
- Чат-виджет ADON CRM встроен на все 15 страниц, не прямым тегом, а через загрузчик согласия: до согласия его нет в DOM вовсе
- Чужой виджет разобран прежде, чем пускать: XHR с опросом, Shadow DOM, без iframe и WebSocket, обращается только к своему адресу
- Заведена новая категория функциональных куки и поднята версия согласия, новая цель обработки требует спросить заново
- Расширен CSP на сервере: адрес виджета добавлен в
script-srcиconnect-src - Куки приведены к решению Planet49: аналитика и маркетинг выключены по умолчанию, функциональные тоже
- Дописан раздел о чате в Datenschutzerklärung
- Первый экран: рамка снимка поставлена так, чтобы фотография её заполняла; переписаны описания студии
Проверка
- До согласия: виджета в DOM нет, проверено селектором, скрипт отсутствует
- После согласия на функциональные куки: виджет внедряется и строит свой интерфейс в Shadow DOM
- При повторном заходе с сохранённым согласием грузится сам
- Нарушений CSP в консоли нет; соединение с API разрешено, ни iframe, ни WebSocket не нужны
- Весь ход работы лежит в репозитории журналом внедрения, его можно проверить, а не просто поверить
Технологии: HTML, CSS, JavaScript, Node.js (отдача и CSP), Docker