roistat-reports-api
Чтение отчётов Roistat, воспроизводимая сверка с сырыми сделками и коллтрекингом, а также строго ограждённая запись сохранённых отчётов.
它会碰到什么
逐条看命中(8 条严重或高危)
- 高
scripts/build_roistat_report_pack.py:68cred-envreadproject = os.environ.get("ROISTAT_PROJECT", "").strip() or str(value.get("project") or "").strip() - 高
scripts/build_roistat_report_pack.py:69cred-envreadapi_key = os.environ.get("ROISTAT_API_KEY", "").strip() or str(value.get("api_key") or "").strip() - 高
scripts/build_roistat_report_pack.py:70cred-envreadbase_url = os.environ.get("ROISTAT_BASE_URL", "").strip() or str(value.get("base_url") or "https://cloud.roistat.com/api/v1").strip() - 高
scripts/save_roistat_report.py:107cred-envreadif os.environ.get("ROISTAT_PROJECT", "").strip() != project: - 高
scripts/save_roistat_report.py:109cred-envreadapi_key = os.environ.get("ROISTAT_WRITE_API_KEY", "").strip() - 高
scripts/save_roistat_report.py:110cred-envreadif apply and os.environ.get("ROISTAT_WRITE_ARMED") != "1": - 高
scripts/save_roistat_report.py:114cred-envreadstate_root = Path(os.environ.get("YDFALL_STATE_ROOT") or Path.home() / ".local/state/yandex-direct-for-all").expanduser() - 高
scripts/save_roistat_report.py:115cred-envreadbase_url = os.environ.get("ROISTAT_BASE_URL", "https://cloud.roistat.com/api/v1").strip()
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Отчёты Roistat
Обязательный порядок
- Доступ бери из
ROISTAT_PROJECTиROISTAT_API_KEYлибо из указанного закрытого файла JSON с правами0600. Никогда не передавай ключ аргументом. - Точно задай период, окно, модель атрибуции, канал, фильтры и валюту.
- Считай три источника разными: аналитический отчёт, сырые сделки и коллтрекинг. У каждого есть собственное состояние полноты.
- Сырые сделки и коллтрекинг запрашивай только с явным
--include-personal-data; полученные пакеты остаются закрытыми. - Проходи всю постраничную выдачу. Статус
partialне превращай в полный отчёт. - Каждое число должно воспроизводиться из сохранённых ответов и
report-context.json.
Чтение и сверка
Используй scripts/build_roistat_report_pack.py. Он сохраняет исходный ответ аналитики, нормализованные строки, параметры и отдельный расчёт расхождений.
В сверке хранятся обе исходные суммы и разница. Расхождение может быть связано с окном атрибуции, поздним событием CRM, валютой или неполной выгрузкой; причину подтверждай доказательствами.
Запись
scripts/save_roistat_report.py до сетевого вызова проверяет:
- точную контрольную сумму спецификации;
- закрытое подтверждение владельца не старше 24 часов;
- точное совпадение проекта, действия и целевого отчёта;
ROISTAT_WRITE_ARMED=1и отдельныйROISTAT_WRITE_API_KEY;- чтение до записи, чтение после записи, неизменность посторонних отчётов и кандидат на откат.
Без --apply выполняется только местная проверка. Любой откат требует нового подтверждения.
Граница публикации
Не публикуй номера проектов, ключи, выгрузки, телефоны, домены, клиентские названия и местные пути. Публичные примеры должны быть только синтетическими.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
plugins/nebelov/yandex-direct-for-all/skills/roistat-reports-api/SKILL.md