v1.2 — Production Hardening
v1.2 — Production Hardening
Production-ready: GDPR/152-ФЗ compliance, AI cost protection, backup/restore, error tracking, force-SSL.
🔒 Production defaults
force_ssl+ secure cookies в production (toggle черезDISABLE_SSL=true)/uphealthcheck исключён из SSL-redirect- Random seed-passwords (
SecureRandom.alphanumeric(20)) вне dev — никакихpassword123в проде
💾 Backup / Restore
scripts/backup.sh— pg_dump + tar storage + manifest, поддерживает docker compose ИЛИ directDATABASE_URL- Ротация по
HRMS_BACKUP_RETAIN(default 30) scripts/restore.sh— требуетYES-confirmation, не перезаписывает master.key
🤖 AI cost protection
AiBudgetGuard: hard-cap приHARD_CAP_MULTIPLIER × monthly_budget_usd(default 2.0×)- Блокирует
RunAiTaskJobдо конца месяца / увеличения бюджета - Cache:
Rails.cache60s — не крутитSUM(cost_usd)на каждом job-запуске
📋 GDPR / 152-ФЗ compliance
/profile/privacyс двумя действиями:- Export:
GdprExporter→ JSON со всеми данными (10 секций: account, profile, employment, documents, leaves, KPI, interviews, notifications, AI runs, audit log) — Article 15 - Delete:
GdprDeleter→ анонимизация PII, audit-trail остаётся с whodunnit →deleted-user-N— Article 17
- Export:
- DELETE-confirmation required (типизация заглавными)
🚨 Error tracking
HrmsErrorSubscriber— централизованный Rails.error subscriberlog/errors.log(rotation: 5×10MB) с тегированными exception payload'ами- Опциональная отправка в Sentry — только если gem загружен (zero hard dependency)
🌍 i18n
- 2197 / 2197 / 2197 ключей в ru/en/de — полный паритет
- +13 privacy keys в каждой локали