Steam-Pulse должен быть безопасным read-only аналитическим инструментом. Любые будущие функции торговли должны быть изолированы, отключены по умолчанию и защищены ручным подтверждением.
Запрещено хранить в git:
- Steam credentials;
- Steam shared secret или identity secret;
- API keys площадок;
- Telegram bot token;
- cookies;
- trade URLs;
- database credentials.
Использовать:
.envтолько локально;.env.exampleбез реальных значений;- secret manager в production;
- маскирование секретов в логах.
Логи должны помогать диагностике, но не раскрывать приватные данные.
Безопасно логировать:
- marketplace name;
- status code;
- latency;
- normalized item name;
- opportunity id;
- anonymized chat id;
- error category.
Нельзя логировать:
- tokens;
- cookies;
- passwords;
- TOTP secrets;
- полные private URLs;
- HTTP request URLs, если они могут содержать токены или приватные query-параметры;
- raw API responses с потенциальными секретами.
- Соблюдать правила и ограничения площадок.
- Использовать официальные API и documented endpoints, если они доступны.
- Не проектировать обход капчи, банов, антифрода или rate limits.
- При 429, капче или блокировке снижать нагрузку и переводить адаптер в degraded state.
- Разделять read-only credentials и trading credentials.
- Для MVP не нужны Steam credentials, если можно обойтись публичными данными.
- Будущие торговые ключи должны иметь минимальные права.
- Опасные операции требуют approval workflow.
- Фиксировать зависимости lock-файлом.
- Использовать проверенные библиотеки.
- Регулярно запускать dependency audit.
- Не добавлять пакеты ради одной простой функции.
- Все расчеты должны быть детерминированы и покрыты тестами.
- Денежные значения хранить в
Decimal, не вfloat. - Валюты хранить явно.
- Комиссии версионировать и документировать.
- В алертах показывать, какие комиссии учтены.
.envне попадает в git.- Все секреты замаскированы в логах.
- Rate limits настроены на каждую площадку.
- Timeouts есть у всех HTTP-запросов.
- Есть healthcheck адаптеров.
- Есть алерт о degraded state.
- Есть backup базы.
- Есть безопасный restore с проверкой целостности backup-файла.
- Есть maintenance-команда с dry-run и backup перед cleanup.
- Есть журнал отправленных сигналов.