diff --git a/SPEC.md b/SPEC.md index f441005..1f54bc7 100644 --- a/SPEC.md +++ b/SPEC.md @@ -27,6 +27,11 @@ - lossless-конвертер `convertProseMirrorToMarkdown` / `markdownToProseMirror`; - collab-путь записи `replacePageContent` / `mutatePageContent` (Hocuspocus/Yjs). +Реализация — **monorepo (npm workspaces)**: `packages/docmost-client` (выносной +`DocmostClient` + `lib/*`, лейаут 1:1 с `docmost-mcp/src/` — sync-методы дописываем +сюда, изменения бэкпортятся в `docmost-mcp` вручную) и `packages/sync` (движок +синхронизации). + **Важно:** MCP-инструменты — это тонкая обёртка над HTTP API Docmost. Синк-движок ходит в REST Docmost **напрямую** и волен использовать любые эндпойнты, которых нет в MCP (в частности — листинг корзины и restore, см. §8). @@ -323,7 +328,11 @@ git диффает побайтово. Если export недетерминир Будущая фаза (флаг `includeAttachments` у export уже есть) сможет качать бинари в vault и переписывать ссылки. Сейчас — вне scope. -### Остаются открытыми +### Решение по слою доступа +- **Доступ к Docmost — всегда REST** (решено). Прямое чтение Postgres отвергнуто: + выигрыш на чтении не окупает связку с внутренней схемой, обход сайд-эффектов + сервисов (поиск/аудит/websocket) и недоступность против Docmost Cloud. Запись — + через collab/Yjs (§2), чтение — REST (§16). ---