Перейти к содержимому

Данные и доступ

Каждая бизнес-запись содержит family_id. PostgreSQL RLS проверяет активное членство через auth.uid(). Роль берётся из таблицы членства, а не из изменяемых метаданных пользователя. Пользователь вне семьи не видит её записи.

Родитель управляет стратегией, школьными оценками и требованиями университетов. Ученик работает с действиями и результатами. Секретный ключ доступен только серверным операциям администрирования; обычные операции используют RLS.

Неизвестные баллы и даты хранятся как null. В интерфейсе они не превращаются в нулевые результаты. Исходная школьная оценка и её документ сохраняются отдельно от исправленной оценки. Обязательные условия gate определяют его прогресс.

Файлы хранятся в закрытых bucket. Путь начинается с UUID семьи. Оригиналы нельзя перезаписать обычным пользовательским запросом. Завершённый месячный обзор сохраняет снимок направлений и защищён от изменения.

Миграции находятся в supabase/migrations. Начальные стратегические данные создаются scripts/generate-seed.py; повторная загрузка не заменяет существующие записи с тем же идентификатором. Аутентификационные пользователи не входят в seed.