Практические разборы l2_integration
Публичный AI-сайт без утечек: build → scan → deploy
Практический выпуск CodeVibers: пишем artifact scanner, специально блокируем небезопасную frontend-сборку, исправляем секрет, internal URL, email и source map, затем подтверждаем PASS тестами.
Видео по теме
Практический выпуск CodeVibers: пишем artifact scanner, специально блокируем небезопасную frontend-сборку, исправляем секрет, internal URL, email и source map, затем подтверждаем PASS тестами.
Таймкоды
- 00:00 Что строим
- 00:35 Риск в production artifact
- 00:55 Пишем scanner и policy
- 01:45 Fail, fix и повторный запуск
- 02:35 Отчет и deploy rule
Shorts
- Почему нужно сканировать dist, а не src
- Security-отчет бесполезен без exit code
- Не печатайте найденный секрет в лог
- Зеленый security test может ничего не проверять
- Зачем блокировать source map в production
- Правильный порядок deploy для AI-сайта
Источники выпуска
- {'title': 'GitHub Push protection', 'url': 'https://docs.github.com/en/code-security/concepts/secret-security/push-protection'}
- {'title': 'GitHub custom patterns', 'url': 'https://docs.github.com/en/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/defining-custom-patterns-for-secret-scanning'}
Исходники проекта из выпуска
Это тот же воспроизводимый проект, который собирается и тестируется в видео.
policy.json— Topic-specific release policy.release_gate.py— Artifact scanner and redacted reports.build_site.py— Reproducible bad and fixed frontend bundles.run_demo.py— Fail/fix/pass end-to-end demo.test_release_gate.py— Regression checks for every blocking rule.
Команды запуска и проверки
python3 run_demo.py
python3 -m unittest -v test_release_gate.py
Практический материал из выпуска
Артефакт: Рабочий artifact scanner для production frontend bundle с fail/fix/pass демонстрацией.
Что должно получиться: Python scanner, policy, bad/fixed builders, regression tests и redacted HTML report.
Видимый результат: В терминале bad build блокируется, fixed build проходит; в браузере открывается redacted audit report.
Вход для демо: Синтетический AI lead-score frontend с фиктивным token, email, internal URL и source map.
Выход демо: reports/bad.json, reports/fixed.json, reports/fixed.html и reports/summary.json.
Проверка результата: Bad fixture exits 2 with findings; fixed fixture exits 0; five regression tests pass; report never exposes complete values.
Как собрать
- Создать policy с блокирующими типами утечек.
- Написать scanner production artifact с redaction.
- Собрать небезопасный frontend и получить ожидаемый release block.
- Исправить build: backend proxy, no source map, synthetic public data.
- Повторить scan, запустить tests и открыть итоговый HTML report.
Шаблон: approval gate и журнал решений
Используйте этот фрагмент как минимальную политику для действий, которые видит клиент или которые меняют учетную систему.
approval_rule: if action.external_visible == true or action.crm_write == true -> require_human_approval
decision_log: request_id, source_data, ai_recommendation, human_edit, final_action, rejection_reason
Чеклист перед пилотом
- Bad build exit 2.
- Fixed build exit 0.
- Five tests pass.
- Privacy OCR passed for every recording.
Требования и рекомендации
Требования
- Gate запускается после build и до deploy.
- Отчет содержит файл, строку, finding code и безопасный preview.
- Тест доказывает, что bad fixture падает, а fixed fixture проходит.
- Секреты не печатаются целиком ни в console, ни в HTML report.
Рекомендации
- Сканировать именно production artifact, а не только исходники.
- Возвращать ненулевой exit code при blocking finding.
- Считать source maps, localhost/internal URLs и PII отдельными типами риска.
- Хранить allowlist узкой и проверяемой, а не игнорировать целые каталоги.
Суть темы
Практический выпуск CodeVibers: пишем artifact scanner, специально блокируем небезопасную frontend-сборку, исправляем секрет, internal URL, email и source map, затем подтверждаем PASS тестами.
Что важно забрать
- Добавить python3 release_gate.py dist --policy policy.json между frontend build и deploy.
- Зритель получит рабочий pre-deploy gate и увидит настоящий fail/fix/pass цикл.
- Проверяем не репозиторий, а конечный production artifact, который реально уходит пользователю.
- Заменить ручной security checklist на исполняемый release contract.
Как применять на практике
Используйте материал как отправную точку: сформулируйте задачу, ограничьте область применения, выберите метрику качества и проверьте результат на небольшом сценарии до внедрения в production.
Практические шаги
- Создать policy с блокирующими типами утечек.
- Написать scanner production artifact с redaction.
- Собрать небезопасный frontend и получить ожидаемый release block.
- Исправить build: backend proxy, no source map, synthetic public data.
- Повторить scan, запустить tests и открыть итоговый HTML report.
Рекомендации
- Сканировать именно production artifact, а не только исходники.
- Возвращать ненулевой exit code при blocking finding.
- Считать source maps, localhost/internal URLs и PII отдельными типами риска.
- Хранить allowlist узкой и проверяемой, а не игнорировать целые каталоги.
Требования и ограничения
- Gate запускается после build и до deploy.
- Отчет содержит файл, строку, finding code и безопасный preview.
- Тест доказывает, что bad fixture падает, а fixed fixture проходит.
- Секреты не печатаются целиком ни в console, ни в HTML report.
Примеры
- PUBLIC_AI_KEY в app.js блокирует релиз.
- bundle.js.map и api.internal.example также блокируют релиз до исправления.
Антипримеры
- Проверить только .env в репозитории и считать production bundle безопасным.
Как проверить готовность
- bad build возвращает exit code 2 и четыре категории findings.
- fixed build возвращает exit code 0 и zero blocking findings.
- HTML report показывает обе попытки без раскрытия найденного значения.
Навигация по выпуску
- 00:00 Что строим
- 00:35 Риск в production artifact
- 00:55 Пишем scanner и policy
- 01:45 Fail, fix и повторный запуск
- 02:35 Отчет и deploy rule