Политика видимости
NOTE
Статус: Target service boundary. Документ описывает целевую сервисную границу. Код либо полностью отсутствует, либо существует только как scaffold — смотрите секцию «Статус документа» ниже для точного указания на код. Правила маркировки — в
50-processes/documentation-standard.md.
Этот README описывает целевую сервисную границу visibility. Читайте его, когда нужно понять, где принимаются решения о доступности данных для разных субъектов и как эти решения применяются в выдаче.
Назначение
Подсистема управления видимостью данных: хранение, компиляция и применение DataVisibilityPolicy ко всем точкам выдачи.
Статус документа
- Тип знания:
target service boundary - Статус реализации: отдельный runtime и код сервиса пока отсутствуют
- Текущее место кода: в репозитории нет реализации visibility engine; текущий backend ограничен минимальным API-scaffold
- Что читать дальше:
../../10-business/contexts/visibility.md,../../20-architecture/adr/0012-data-visibility-policy.md,../pricing/README.md
Область действия
Входит:
- CRUD для
DataVisibilityPolicy. - Компиляция policies в исполнимое представление.
- Кэш per subject.
- Evaluation
(subject, target_kind, candidates[]). - Трансляция policy в ES filter там, где это возможно.
Не входит:
- Сами данные каталога, observations и цен.
- Управление субъектами и auth context.
Публичный контракт
Вход
- HTTP (admin):
/v1/admin/visibility-policies. - RPC / library:
Filter(subject, target_kind, candidates).
Выход
- События
visibility.policy.events.v1для аудита и инвалидации кэша.
Внутренняя архитектура
В целевом состоянии это policy engine с compiler/evaluator/cache слоями. Он должен одинаково работать как для pre-filter в поиске, так и для post-filter/response shaping в других сервисах.
Зависимости
- PostgreSQL.
- Kafka.
- Redis.
Хранилище
data_visibility_policyevent_storepolicy_evaluation_auditкак опциональный debug/audit слой
Конфигурация
| Env var | Default | Описание |
|---|---|---|
VISIBILITY_DEFAULT_EFFECT | allow | default effect |
VISIBILITY_CACHE_TTL | 5m | TTL кэша |
VISIBILITY_AUDIT_SAMPLING_RATE | 0.01 | sampling audit |
Локальный запуск
Выделенного процесса visibility в текущем репозитории нет.
Тестирование
- Нужны unit-тесты policy compiler и evaluator.
- Нужны integration-тесты на Redis cache и ES translation.
- Нужны regression fixtures на сложные policy-combination кейсы.
Наблюдаемость
В целевом состоянии нужны метрики:
visibility_evaluations_total{target_kind}visibility_evaluation_duration_seconds{target_kind}visibility_cache_hits_totalvisibility_filtered_total{effect}
Сейчас отдельной observability-поверхности нет.
Открытые вопросы / TODO
- Определить стартовый набор policy presets.
- Добавить UI-симулятор для admin flow.
- Измерить performance на горячем пути.