Commit Graph

51 Commits

Author SHA1 Message Date
91e5f5dac4 [0.6.5] - 2025-09-21
Some checks failed
Deploy on push / deploy (push) Failing after 5s
### 🔐 Улучшенная аутентификация для микросервисов

####  Новые возможности
- **Универсальная аутентификация**: Добавлена функция `authenticate_request()` для всех handlers
- **Множественные источники токенов**: Поддержка Bearer, X-Session-Token, Cookie
- **Redis сессии**: Интеграция с Redis для проверки активных сессий
- **Безопасная валидация**: Функция `secure_token_validation()` с проверкой TTL и обновлением активности
- **Извлечение токенов**: Универсальная функция `extract_token_from_request()` для всех типов запросов

#### 🧪 Тестирование
- **14 новых тестов**: Полное покрытие новой логики аутентификации
- **Производительность**: Тесты производительности (< 1ms на операцию)
- **Безопасность**: Тесты защиты от подозрительных токенов
- **Граничные случаи**: Тестирование истекших токенов, неверных форматов
- **Интеграция**: Тесты с мокированным Redis

#### ♻️ Рефакторинг (DRY & YAGNI)
- **Устранение дублирования**: Объединена логика аутентификации из upload.rs и user.rs
- **Удаление устаревшего кода**: Убраны `extract_user_id_from_token`, `validate_token`, `get_user_by_token`
- **Очистка констант**: Удалены неиспользуемые `MAX_TOKEN_LENGTH`, `MIN_TOKEN_LENGTH`
- **Упрощение**: Заменена `extract_and_validate_token` на `authenticate_request`

#### ��️ Архитектурные улучшения
- **Библиотечная цель**: Добавлена `lib.rs` для тестирования модулей
- **Модульность**: Четкое разделение ответственности между модулями
- **Единообразие**: Все handlers теперь используют одинаковую логику аутентификации

#### 📋 Совместимость
- **Обратная совместимость**: Все существующие API endpoints работают без изменений
- **Graceful fallback**: Работа без Redis (JWT-only режим)
- **Множественные форматы**: Поддержка различных способов передачи токенов
2025-09-22 01:15:35 +03:00
ae0fc9a18d 0.6.4-thumb-upgrade
Some checks failed
Deploy / deploy (push) Has been skipped
CI / lint (push) Successful in 1m53s
CI / test (push) Failing after 9m28s
2025-09-03 10:21:17 +03:00
58a0255c78 redis-connect-fix
Some checks failed
Deploy / deploy (push) Has been skipped
CI / lint (push) Failing after 7s
CI / test (push) Failing after 10m3s
2025-09-02 18:17:12 +03:00
7746d1f38e [0.6.1] - 2025-09-02
Some checks failed
CI / lint (push) Successful in 2m11s
Deploy / deploy (push) Has been skipped
CI / test (push) Failing after 9m6s
### 🚀 Изменено - Упрощение архитектуры
- **Генерация миниатюр**: Полностью удалена из Quoter, теперь управляется Vercel Edge API
- **Очистка legacy кода**: Удалены все функции генерации миниатюр и сложность
- **Документация**: Сокращена с 17 файлов до 7, следуя принципам KISS/DRY
- **Смена фокуса**: Quoter теперь сосредоточен на upload + storage, Vercel обрабатывает миниатюры
- **Логирование запросов**: Добавлена аналитика источников для оптимизации CORS whitelist
- **Реализация таймаутов**: Добавлены настраиваемые таймауты для S3, Redis и внешних операций
- **Упрощенная безопасность**: Удален сложный rate limiting, оставлена только необходимая защита upload
- **Vercel интеграция**: Добавлена поддержка Vercel Edge API с CORS и оптимизированными заголовками
- **Redis graceful fallback**: Приложение теперь работает без Redis с предупреждениями вместо паники
- **Умная логика ответов**: Автоматическое определение Vercel запросов и оптимизированные заголовки
- **Консолидация документации**: Объединены 4 Vercel документа в один comprehensive guide

### 📝 Обновлено
- Консолидирована документация в практическую структуру:
  - Основной README.md с быстрым стартом
  - docs/SETUP.md для конфигурации и развертывания
  - Упрощенный features.md с фокусом на основную функциональность
  - docs/vercel-frontend-migration.md - единый comprehensive guide для Vercel интеграции
- Добавлен акцент на Vercel по всему коду и документации
- Обновлены URL patterns в документации: quoter.discours.io → files.dscrs.site

### 🗑️ Удалено
- Избыточные файлы документации (api-reference, deployment, development, и т.д.)
- Дублирующийся контент в нескольких документах
- Излишне детальная документация для простого файлового прокси
- 4 отдельных Vercel документа: vercel-thumbnails.md, vercel-integration.md, hybrid-architecture.md, vercel-og-integration.md

💋 **Упрощение**: KISS принцип применен - убрали избыточность, оставили суть.
2025-09-02 14:39:54 +03:00
7973ba0027 [0.6.1] - 2025-09-02
Some checks failed
Deploy / deploy (push) Has been skipped
CI / lint (push) Failing after 8s
CI / test (push) Failing after 10m26s
### 🚀 Изменено - Упрощение архитектуры
- **Генерация миниатюр**: Полностью удалена из Quoter, теперь управляется Vercel Edge API
- **Очистка legacy кода**: Удалены все функции генерации миниатюр и сложность
- **Документация**: Сокращена с 17 файлов до 7, следуя принципам KISS/DRY
- **Смена фокуса**: Quoter теперь сосредоточен на upload + storage, Vercel обрабатывает миниатюры
- **Логирование запросов**: Добавлена аналитика источников для оптимизации CORS whitelist
- **Реализация таймаутов**: Добавлены настраиваемые таймауты для S3, Redis и внешних операций
- **Упрощенная безопасность**: Удален сложный rate limiting, оставлена только необходимая защита upload

### 📝 Обновлено
- Консолидирована документация в практическую структуру:
  - Основной README.md с быстрым стартом
  - docs/SETUP.md для конфигурации и развертывания
  - Упрощенный features.md с фокусом на основную функциональность
- Добавлен акцент на Vercel по всему коду и документации

### 🗑️ Удалено
- Избыточные файлы документации (api-reference, deployment, development, и т.д.)
- Дублирующийся контент в нескольких документах
- Излишне детальная документация для простого файлового прокси

💋 **Упрощение**: KISS принцип применен - убрали избыточность, оставили суть.
2025-09-02 14:00:54 +03:00
82668768d0 🔒 Implement comprehensive security and DDoS protection
### Security Features:
- **Rate Limiting**: Redis-based IP tracking with configurable limits
  - General: 100 requests/minute (5min block)
  - Upload: 10 requests/5min (10min block)
  - Auth: 20 requests/15min (30min block)
- **Request Validation**: Path length, header count, suspicious patterns
- **Attack Detection**: Admin paths, script injections, bot patterns
- **Enhanced JWT**: Format validation, length checks, character filtering
- **IP Tracking**: X-Forwarded-For and X-Real-IP support

### Security Headers:
- X-Content-Type-Options: nosniff
- X-Frame-Options: DENY
- X-XSS-Protection: 1; mode=block
- Content-Security-Policy with strict rules
- Strict-Transport-Security with includeSubDomains

### CORS Hardening:
- Limited to specific domains: discours.io, new.discours.io
- Restricted methods: GET, POST, OPTIONS only
- Essential headers only

### Infrastructure:
- Security middleware for all requests
- Local cache + Redis for performance
- Comprehensive logging and monitoring
- Progressive blocking for repeat offenders

### Documentation:
- Complete security guide (docs/security.md)
- Configuration examples
- Incident response procedures
- Monitoring recommendations

Version bump to 0.6.0 for major security enhancement.
2025-09-02 11:40:43 +03:00
d3bee5144f 🧹 Remove unused legacy modules and functions
- Deleted quota.rs module (quota management not needed via HTTP)
- Removed legacy get_id_by_token GraphQL function
- Removed unused set_user_quota and increase_user_quota methods
- Cleaned up unused imports and legacy structs
- Simplified handlers/mod.rs to only expose universal_handler

Architecture now focused on core functionality:
- GET / (user info)
- GET /<filename> (file serving)
- POST / (file upload)
2025-09-02 11:27:48 +03:00
6c03863a86 🔒 Fix Let's Encrypt ACME challenge for SSL certificates
- Add .well-known/ path exclusion in proxy_handler
- Prevent quoter from intercepting ACME challenge requests
- Fix CI/CD build without sudo access
- Add comprehensive SSL troubleshooting documentation

Resolves: SSL certificate generation failure for files.dscrs.site
2025-09-02 11:09:52 +03:00
b1270c5cb6 build-reconfig
Some checks failed
Deploy / deploy (push) Has been skipped
CI / lint (push) Has been cancelled
CI / test (push) Has been cancelled
2025-09-02 09:09:34 +03:00
1aace5fd19 clipped2
Some checks failed
Deploy / deploy (push) Has been skipped
CI / lint (push) Successful in 7m32s
CI / test (push) Failing after 13m4s
2025-09-01 23:33:27 +03:00
6c3262edbe simpler-auth+no-overlay
Some checks failed
Deploy / deploy (push) Has been skipped
CI / lint (push) Failing after 8s
CI / test (push) Failing after 3m57s
2025-09-01 20:36:15 +03:00
4a174bd2cb 0.3.0-less-expect
Some checks failed
Deploy / deploy (push) Has been skipped
CI / test (push) Failing after 1m23s
CI / lint (push) Failing after 55s
2025-08-12 14:48:59 +03:00
ea92a376ed docs
Some checks failed
CI / test (push) Failing after 4m0s
CI / lint (push) Failing after 4s
CI / deploy (push) Has been skipped
2025-08-02 00:18:09 +03:00
30000a4803 0.1.1-cors-internal
Some checks failed
deploy / deploy (push) Failing after 33s
2025-06-02 22:20:37 +03:00
b471c66209 noheic-convertion
Some checks failed
deploy / deploy (push) Failing after 5s
2024-11-13 11:32:50 +03:00
bc14d86018 heic-sys
Some checks failed
deploy / deploy (push) Failing after 6s
2024-11-13 11:14:53 +03:00
dc543af525 libheif-add
Some checks failed
deploy / deploy (push) Failing after 6s
2024-11-13 08:56:18 +03:00
6e90529420 0.1.0-overlay 2024-10-23 20:06:34 +03:00
911284c8ae detect-old-width
All checks were successful
deploy / deploy (push) Successful in 4m15s
2024-10-23 12:34:34 +03:00
f5ee1c75ee async-gen
All checks were successful
deploy / deploy (push) Successful in 4m33s
2024-10-22 20:35:51 +03:00
cf28f21351 log
Some checks failed
deploy / deploy (push) Failing after 3m30s
2024-10-22 12:36:59 +03:00
a2a053c582 ..
All checks were successful
deploy / deploy (push) Successful in 4m14s
2024-10-22 09:38:42 +03:00
4a1f985cce 0.0.5-fixes
Some checks failed
deploy / deploy (push) Failing after 4m9s
2024-10-22 00:11:33 +03:00
1f35ef96d4 env-logger
All checks were successful
deploy / deploy (push) Successful in 4m33s
2024-10-02 18:56:52 +03:00
e3937e70ae logadd
All checks were successful
deploy / deploy (push) Successful in 4m47s
2024-10-02 18:38:44 +03:00
5f0775ab8f bump
Some checks failed
deploy / deploy (push) Failing after 3s
2024-09-23 17:16:56 +03:00
ad6623a1b8 redis-types+spawn-blocking-fix
Some checks failed
deploy / deploy (push) Failing after 5s
2024-09-23 16:32:54 +03:00
3ff90ba4f3 0.0.3-desirable
Some checks failed
deploy / deploy (push) Failing after 4s
2024-08-31 03:32:37 +03:00
e01e6f0e33 0.0.2
Some checks failed
deploy / deploy (push) Failing after 4s
2024-08-30 22:11:36 +03:00
8e9387b95d quoter-init
Some checks failed
deploy / deploy (push) Failing after 3s
2024-08-30 21:05:51 +03:00
d14e5457f3 redis-api-update
Some checks failed
deploy / deploy (push) Failing after 4s
2024-06-06 13:33:25 +03:00
b323575f87 upgrade-versiong 2024-04-08 19:52:41 +03:00
e64c4c6cf4 sentry-connectedd 2024-04-08 10:17:14 +03:00
ffe18a89e5 userid-trim-fix 2024-01-10 16:32:25 +03:00
c47364dc7a less-logs 2023-12-18 01:21:29 +03:00
d15633af0f validate-jwt-query-fix 2023-12-13 17:57:12 +03:00
5cf79bf531 sse-format 2023-10-19 17:43:00 +03:00
6c0f84749e handler-id 2023-10-18 14:59:01 +03:00
1a421b001e handle-disconnect-fix-payload-format 2023-10-16 16:22:54 +03:00
ece504bbd1 trytofix-404 2023-10-11 23:06:27 +03:00
47c88d2efb disconnect-handler2 2023-10-06 18:07:24 +03:00
12dd58c566 80fix 2023-10-06 13:50:20 +03:00
caa659b2c7 ready-to-test 2023-10-03 16:29:31 +03:00
4e08913c3c fixed-broadcast 2023-10-03 13:43:21 +03:00
1535e1a36c fixes-13-unwrap 2023-10-02 21:55:10 +03:00
e0f8f0f0e0 fixes-10 2023-10-02 18:38:48 +03:00
8623d8b6b4 fixes-7 2023-10-02 16:55:31 +03:00
e30029afe8 fixed-cargo 2023-10-02 14:28:59 +03:00
444a05e8ea cargobin 2023-10-02 14:28:06 +03:00
adc65909f1 draft2 2023-10-02 12:22:04 +03:00