Production persistence

production persistence

RLS policy map

Public access закрыт, service role работает только на сервере.

Слой сохранности превращает OmenHall из набора красивых залов в сервис, где покупка, свиток, письмо, архив и удаление имеют проверяемый след.

Что хранится

Только то, что нужно для доставки, архива, поддержки, бухгалтерии и пользовательского контроля.

  • sealed record
  • consent
  • delivery status
  • artifact keys
  • audit event

Что не хранится

Нельзя складывать в базу всё подряд только потому, что оно красиво выглядит в аналитике.

  • сырые секреты
  • ключи
  • полные public preview
  • медицинские/юридические claims
  • лишние third-party данные

Операторский смысл

Если клиент потерял письмо, Stripe прислал повторный webhook или пользователь просит удалить данные, у владельца есть маршрут действий.

  • проверить event
  • найти delivery job
  • не раскрыть лишнее
  • переотправить безопасно
  • зафиксировать итог

Tables

public.reading_records

Запечатанные чтения

Основная запись вопроса, запечатанного ввода, payment status и результата.

public.oracle_artifacts

Артефакты свитка

PDF, share-card, gift artifact и print-view как отдельные доставляемые сущности.

public.delivery_jobs

Очередь доставки

Email, PDF, gift, receipt, Echo и recovery отправляются как отслеживаемые jobs.

public.omen_consents

Согласия и приватность

Отдельный ledger для archive, email, Echo, Passport, public share и gift consent.

public.echo_threads

Echo threads

Возвраты к свиткам без нового гадания: cadence, prompts, next return and archive tags.

Risk rules

Нет согласия

Не писать в Passport, email или public share без явного согласия.

Утечка public/private

Share-card получает только безопасные поля; полный вопрос остаётся private.

Потерянная доставка

Delivery jobs имеют attempts, status, next_run_at и support path.

Дубль оплаты

Stripe event id и checkout session id имеют уникальные индексы.

Артефакт без чтения

artifact может ссылаться на reading_record, council_session или gift key и иметь status.

Тревожное удержание

Echo и email не давят страхом и не продают повторный вопрос как спасение.

Нет пути удаления

Есть data_deletion_requests с scope, verification, status и retention note.

Related