type: index
aspect: policy
title: "Политики — Правила и ограничения"
version: 1.0.0
date: 2026-02-19
Обязательные правила работы с кодом, данными, инфраструктурой и безопасностью.
| Документ | Описание | Статус |
|---|---|---|
| policy-code.md | Политики кода (стиль, импорты, тесты, комментарии) | ✅ Active |
| policy-code-data-separation.md | Разделение код/данные/$WORKSPACE/$DATASPACE | ✅ Active |
| Документ | Описание | Статус |
|---|---|---|
| policy-data.md | Политики работы с данными (хранение, retention, архивация) | ✅ Active |
| policy-resource-allocation.md | Распределение ресурсов (CPU, память, диск) | ✅ Active |
| Документ | Описание | Статус |
|---|---|---|
| policy-infra.md | Политики инфраструктуры (серверы, сервисы, деплой) | ✅ Active |
| policy-docker.md | Политики Docker (образы, контейнеры, сети) | ✅ Active |
| policy-rollback.md | Политики откатов (когда и как откатывать) | ✅ Active |
| Документ | Описание | Статус |
|---|---|---|
| policy-security.md | Общие политики безопасности | ✅ Active |
| policy-security-credentials.md | Управление credentials (ключи, пароли, токены) | ✅ Active |
| Документ | Описание | Статус |
|---|---|---|
| policy-agents.md | Правила работы AI-агентов | ✅ Active |
| policy-licensing.md | Стратегия лицензирования ПО | ✅ Active |
Политики отвечают на вопрос "ЧТО МОЖНО, А ЧТО НЕЛЬЗЯ?"
Этот аспект определяет:
- Что разрешено делать
- Что запрещено делать
- Какие ограничения существуют
- Как соблюдать правила
SECURITY > PERFORMANCE > CONVENIENCE
Никогда:
- Hardcoded credentials
- SQL injection уязвимости
- Выполнение непроверенного кода
- Доступ без авторизации
$WORKSPACE ← Код (под git)
$DATASPACE ← Данные (S3, вне git)
/mnt/beget-infra ← Бекапы, recovery
Подробнее: policy-code-data-separation.md
Каждый компонент получает только необходимые права:
- AI-агент → read-only к документации
- Пользователь → доступ только к своим проектам
- Сервис → доступ только к своей БД
Для критических операций:
1. Создать бекап
2. Выполнить изменение
3. Проверить результат
4. Откатить если проблема
Подробнее: policy-rollback.md
Что регулируют:
- Стиль кода (PEP 8, Airbnb Style Guide)
- Структура проекта
- Импорты и зависимости
- Комментарии и документация
- Тестирование (coverage >= 80%)
См.: policy-code.md
Что регулируют:
- Где хранить данные ($DATASPACE, не $WORKSPACE)
- Сколько хранить (retention policy)
- Как архивировать (старше 90 дней)
- Как удалять (через 1 год)
См.: policy-data.md
Что регулируют:
- Деплой (только через CI/CD)
- Доступ к серверам (только SSH keys)
- Мониторинг (обязательно)
- Логирование (retention 30 дней)
См.: policy-infra.md
Что регулируют:
- Credentials (только в .credentials.md, не в git)
- API keys (переменные окружения)
- HTTPS (обязательно для prod)
- Аутентификация (обязательна)
См.: policy-security.md, policy-security-credentials.md
| Уровень | Политика | Нарушение | Последствия |
|---|---|---|---|
| 🔴 Критично | Security credentials | Ключи в git | НЕМЕДЛЕННАЯ блокировка |
| 🔴 Критично | SQL injection | Уязвимость | Code review rejection |
| 🟡 Важно | Code style | Не отформатирован | CI/CD блокировка |
| 🟡 Важно | Test coverage | < 80% | Review warning |
| 🟢 Желательно | Комментарии | Нет docstrings | Замечание при review |
| Стадия | Обязательные политики |
|---|---|
| DRAFT | Структура проекта, именование |
| DEV | Code style, типизация, импорты |
| TEST | Test coverage >= 80%, security scan |
| PROD | Все политики, обязательный review |
| ARCHIVE | Data retention, backup перед удалением |
#!/bin/bash
# .git/hooks/pre-commit
# Форматирование
black . || exit 1
prettier --write .
# Линтинг
ruff check . || exit 1
eslint .
# Безопасность
detect-secrets scan || exit 1
# Тесты
pytest --cov=. --cov-fail-under=80 || exit 1
# .github/workflows/policy-checks.yml
name: Policy Checks
on: [push, pull_request]
jobs:
code-quality:
steps:
- name: Style check
run: black --check .
- name: Lint
run: ruff check .
- name: Type check
run: mypy .
- name: Security scan
run: bandit -r .
- name: Tests
run: pytest --cov=. --cov-fail-under=80
# scripts/policy-monitor.py
def check_policy_compliance():
"""Проверка соблюдения политик."""
violations = []
# Проверка размера файлов
for file in get_python_files():
if len(file.readlines()) > 500:
violations.append(f"{file}: exceeds 500 lines")
# Проверка credentials в коде
for file in get_all_files():
if contains_hardcoded_credentials(file):
violations.append(f"{file}: hardcoded credentials")
return violations
| Аспект | Документ | Связь |
|---|---|---|
| Формат | format-code.md | КАК ВЫГЛЯДИТ код (форматирование) |
| Именование | naming-variables.md | КАК НАЗЫВАТЬ (переменные, функции) |
| Процессы | process-development.md | КАК ДЕЛАТЬ (workflow) |
| Структура | structure-project.md | ГДЕ размещать (файлы, папки) |
| Lifecycle | lifecycle-code.md | КОГДА применять (стадии) |
Проверить политики:
- policy-code.md — стиль кода
- policy-security.md — безопасность
- policy-code-data-separation.md — где размещать
Настроить инструменты:
```bash
# Pre-commit hooks
pre-commit install
# Линтеры
pip install black ruff mypy
npm install -g prettier eslint
```
Обязательные проверки:
- ✅ Все тесты пройдены
- ✅ Coverage >= 80%
- ✅ Security scan чист
- ✅ Code review одобрен
- ✅ Бекап создан
Следовать политикам:
- policy-infra.md — деплой
- policy-rollback.md — откат
- policy-docker.md — контейнеры
НИКОГДА:
- ❌ Hardcode в коде
- ❌ Коммит в git
- ❌ Отправка в чат
ВСЕГДА:
- ✅ Переменные окружения
- ✅ .credentials.md (в .gitignore)
- ✅ Vault/Secrets Manager
Подробнее: policy-security-credentials.md
| Нарушение | Действие |
|---|---|
| Credentials в git | Немедленная ротация ключей |
| SQL injection | Блокировка деплоя |
| Отсутствие тестов для prod | Откат на предыдущую версию |
| Деплой без review | Автоматический откат |
| Нарушение | Действие |
|---|---|
| Code style не соблюдён | CI/CD блокировка |
| Coverage < 80% | Review warning |
| Большой файл (> 500 строк) | Требование рефакторинга |
| Нарушение | Действие |
|---|---|
| Нет docstrings | Комментарий при review |
| Сложная функция | Рекомендация упрощения |
Файлов в 4-policy/: 12 (11 политик + 1 README)
Охват:
- ✅ Код (code, code-data-separation)
- ✅ Данные (data, resource-allocation)
- ✅ Инфраструктура (infra, docker, rollback)
- ✅ Безопасность (security, security-credentials)
- ✅ Агенты и лицензирование (agents, licensing)
Статус: ФАЗА 6 завершена ✅
policy-[object].mdВерсия: 1.0.0
Дата: 2026-02-19
Владелец: architect