Локально путь к сертификату вёл в ~/Downloads у каждого свой, а в контейнере
задавался двумя отдельными переменными. Теперь каталог один и подменяется
целиком через SECRETS_DIR: по умолчанию secrets/ в корне репозитория, в
контейнере /certs (смонтированный каталог с хоста, GRAPH_CERT_DIR не меняется).
Имена файлов внутри фиксированы, поэтому GRAPH_CERT_PATH и GRAPH_KEY_PATH
больше не нужны. Содержимое secrets/ в .gitignore, кроме README.
Отсутствие файлов теперь даёт понятную ошибку вместо ENOENT — на свежем
клоне это основной сценарий отказа.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
npm run dev читает server/.env через --env-file (нативно в Node 20+),
чтобы не передавать GRAPH_* руками при каждом старте. Без запущенного
сервиса на 3100 vite-прокси отдаёт 500, что легко принять за баг формы.
.env добавлен в .gitignore, в репозиторий положен только .env.example.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Основа для формы обращений в HR взамен встроенной Microsoft Forms.
React зафиксирован на 17: этого требует @tnsu/ui-kit в peerDependencies.
Дизайн-токены скопированы из request-portal, чтобы формы компании выглядели
одинаково; подключаются явным @use в каждом SCSS-модуле, как там же.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>