AAA AI Business OS На главную

Может ли одна компания увидеть данные другой

Может ли одна компания увидеть данные другой

Правило живёт в базе, а не в приложении

Разграничение по организациям включено на каждой таблице арендатора и применяется принудительно — в том числе к владельцу схемы. Запрос, в котором забыли условие по организации, всё равно не увидит чужого: правило применяет база, а не автор запроса.

Приложение подключается ролью, которая не является ни суперпользователем, ни владельцем схемы. Иначе разграничение обходилось бы самим подключением, и все проверки ниже ничего бы не значили.

Это изоляция компании, а не проекта

Две компании не видят данных друг друга. Внутри одной компании разграничение по проектам есть не у всех плоскостей: у очереди согласований его нет по устройству. Мы говорим это прямо, потому что обещание изоляции без такой оговорки было бы неправдой — и потому, что узнать о ней стоит до пилота, а не в нём.

Проверяется отдельными наборами по каждой плоскости

Изоляция проверяется тестами, которые подключаются ролью приложения и пытаются прочитать чужое. Такие наборы написаны по каждой плоскости данных отдельно, а не один общий: общий тест доказывает, что механизм включён, и не доказывает, что его не забыли на новой таблице.

Основание: apps/api/src/db/sql/*_security.sql, apps/api/test/integration/*-isolation.test.ts. Страница описывает то, что есть в этой сборке, а не то, что запланировано.