NotariumДокументация
Версия документации: latest
RU

Пространства и проекты

Notarium различает две единицы организации: пространство (space) — изолированную базу и границу безопасности, и проект — помеченную папку внутри пространства. Это разные сущности с разными задачами: пространство изолирует, проект — организует работу.

Пространство — единица изоляции

Пространство — это самодостаточная база знаний: свой индекс, граф, поиск, дерево, журнал истории и свой состав участников. Пространства не пересекаются: заметки, поиск и связи одного не видны из другого. Пространство несёт две роли разом — организация («личное» / «работа» / «архив») и граница безопасности: именно на уровне пространства решается, кто и что видит.

  • Каждое пространство обслуживается ровно одним экземпляром движка — изоляция обеспечивается самой архитектурой.
  • Идентичность пространства — стабильный внутренний space_id; slug (URL-safe: строчные латинские буквы, цифры, дефисы и подчёркивания — [a-z0-9_-]) — это переименуемый адрес и URL-хэндл, а displayName — человекочитаемая метка. Переименование slug безопасно: старое имя уходит в alias-историю и продолжает резолвиться (/s/<старый> редиректит на текущий).
  • Адресация: /s/<slug> в интерфейсе и /api/s/<slug>/… в REST.

Подробнее о ролях и приватности — в разделе Модель доступа.

Личное пространство

У каждого пользователя гарантированно есть личное пространство — его дом по умолчанию:

  • оно создаётся при выдаче учётной записи и неудаляемо;
  • служит лендингом по умолчанию и хранит приватную память агентов о вас и ваш профиль;
  • это полноценное рабочее пространство: в нём можно сразу вести заметки и помечать проекты, не заводя ничего отдельного.
В личное пространство нельзя пригласить второго участника

Это единственное отличие личного пространства от обычного. Другой участник с доступом на чтение увидел бы вашу приватную память и личные заметки — поэтому приглашения в личное пространство запрещены на сервере, а не только скрыты в интерфейсе.

Проект — помеченная папка

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

Метка — dot-файл .notariummeta в корне папки (JSON со стабильным id). Он путешествует вместе с папкой при любом переносе, в том числе внешнем (git, файловый менеджер), — идентичность проекта якорится в самой папке, а не только в базе.

myspace/
├─ research/
│  └─ .notariummeta      ← помеченная папка = проект
├─ inbox/                ← обычная папка (не проект)
└─ ...
  • Адресация — хэндл (space, slug) по модели GitLab group/project. Slug проекта уникален внутри пространства; одноимённость между пространствами разводится полем space. Корневой проект схлопывается до просто <space> (например main, а не main/main).
  • Slug проекта — транслитерированный kebab от displayName или последнего сегмента пути (не всего пути).
  • Пометить папку, снять метку или создать «New project» — действия человека (право space:write). Агент контейнеры не создаёт: он владеет содержимым, человек — структурой.
  • Создание пространства автоматически помечает его корень как проект — чтобы агент мог сразу писать в <space> без ручной пометки.

Проект — это охват и адрес, но не граница безопасности: решение о доступе всегда остаётся за членством в пространстве. Как агент адресует проекты — см. Интент-инструменты.

Требования и границы

Проекты опираются на служебную БД и локальное хранилище меток — без них проект не открыть.