From 9fcec4d2953fd46820c3fc7a967c1cdc330a6bec Mon Sep 17 00:00:00 2001 From: vvzvlad Date: Sat, 20 Jun 2026 04:11:19 +0300 Subject: [PATCH] docs: remove backlog doc for broken import formats MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Delete the backlog documentation that described the removal of non‑functional DOCX, PDF, and Confluence import features now that the code changes have been merged. --- docs/backlog/remove-broken-import-formats.md | 86 -------------------- 1 file changed, 86 deletions(-) delete mode 100644 docs/backlog/remove-broken-import-formats.md diff --git a/docs/backlog/remove-broken-import-formats.md b/docs/backlog/remove-broken-import-formats.md deleted file mode 100644 index 28209d0a..00000000 --- a/docs/backlog/remove-broken-import-formats.md +++ /dev/null @@ -1,86 +0,0 @@ -# Удаление нерабочих импортов (DOCX / PDF / Confluence) - -Контекст: DOCX, PDF и Confluence-импорт опирались на приватный EE-модуль, -который выпилен из репозитория. В community-сборке эти пути либо бросают -"enterprise license" (DOCX/PDF), либо молча ничего не делают (Confluence). -Решено убрать эти форматы целиком. - -## Уже сделано (фронтенд) — лежит в рабочем дереве, НЕ закоммичено - -- `apps/client/src/features/page/components/page-import-modal.tsx` - — убраны кнопки Word (DOCX), PDF, Confluence + связанный мёртвый код - (импорты иконок `IconFileTypeDocx`/`IconFileTypePdf`/`ConfluenceIcon`, - рефы `docxFileRef`/`pdfFileRef`/`confluenceFileRef`, ветка `confluence` - в `handleZipUpload`, сбросы docx/pdf в `handleFileUpload`). - Остались рабочие: Markdown, HTML, Notion, generic-zip. -- `apps/client/src/components/icons/confluence-icon.tsx` — удалён (git rm), - больше нигде не импортируется. - -Статус git на момент записи: -- `D apps/client/src/components/icons/confluence-icon.tsx` -- `M apps/client/src/features/page/components/page-import-modal.tsx` - -Предложенное сообщение коммита для фронтенд-части уже сформулировано -(refactor(import): remove non-functional DOCX/PDF/Confluence import buttons). - -## Осталось сделать (бэкенд) — ТЕКУЩАЯ ЗАДАЧА: удалить заглушки - -Заглушки = EE-require шимы, которые throw/return. Точки правок: - -1. `apps/server/src/integrations/import/services/import.service.ts` - - удалить метод `processDocx` (~160-194) — EE-require → BadRequestException. - - удалить метод `processPdf` (~196-230) — то же. - - в `importPage` удалить ветки диспетчера `else if (.docx)` и `else if (.pdf)` - (~76-91); оставить `.md` и `.html`. - - удалить вычисление `pageId` (~65-69): после удаления docx/pdf оно всегда - `undefined`, поэтому убрать и спред `...(pageId ? { id: pageId } : {})` - в `insertPage` (~115). - - `uuid7` (импорт, стр. 26) — НЕ трогать: используется в `importZip` - (`const fileTaskId = uuid7();`, ~320). - - `moduleRef` (конструктор ~45, импорт `ModuleRef` стр. 31) — ПРОВЕРИТЬ: - использовался только в processDocx/processPdf? Если да — убрать параметр - конструктора и импорт. (grep был прерван, нужно перепроверить.) - -2. `apps/server/src/integrations/import/services/file-import-task.service.ts` - - удалить ветку `if (fileTask.source === FileImportSource.Confluence) {...}` - (~118-138) — EE-require с тихим `return`. - - после удаления проверить, что импорт `FileImportSource` всё ещё нужен - (Generic/Notion используются на ~109-110 — нужен). - -3. `apps/server/src/integrations/import/import.controller.ts` - - стр. 54: `validFileExtensions = ['.md', '.html', '.docx', '.pdf']` - → `['.md', '.html']`. - - стр. ~101-106 `sourceMap`: убрать записи `'.docx': 'docx'` и `'.pdf': 'pdf'`. - - стр. 164: `validZipSources = ['generic', 'notion', 'confluence']` - → `['generic', 'notion']`. - - стр. 167: текст ошибки → "must either be generic or notion". - -4. `apps/server/src/integrations/import/utils/file.utils.ts` - - стр. 13: убрать `Confluence = 'confluence'` из enum `FileImportSource` - (после удаления ветки значение не используется). - ПРОВЕРИТЬ grep'ом, что больше нет ссылок на `FileImportSource.Confluence`. - -5. `apps/server/src/common/features.ts` - - стр. 9: `CONFLUENCE_IMPORT: 'import:confluence'` — ПРОВЕРИТЬ использование - по серверу и клиенту; если не используется — убрать. - -## Вне scope (НЕ заглушки — рабочий, но теперь недостижимый код) - -- `isConfluenceImport`-обвязка в - `apps/server/src/integrations/import/services/import-attachment.service.ts` - (стр. 57, 67, 98, 674, 682, 756, 770) и confluence-стриппинг путей в - `apps/server/src/integrations/import/utils/import.utils.ts` (стр. 45-62). - Это реальная логика разбора вложений, а не заглушка. После удаления - Confluence-импорта флаг `isConfluenceImport` никогда не станет true → - код станет мёртвым, но он внутри shared-сервиса, которым пользуются - generic/notion. Удаление — отдельный, более рискованный рефакторинг. - Решение: пока оставить (либо отдельной задачей). -- Комментарий в миграции `20250521T154949-file_tasks.ts:11` "(generic, notion, - confluence)" — это просто комментарий, схему/старые миграции не трогаем. - -## Открытые вопросы (проверить перед/во время реализации; grep был прерван) - -- [ ] `moduleRef` в import.service.ts — используется только docx/pdf? -- [ ] Все ссылки на `FileImportSource.Confluence` — только удаляемая ветка? -- [ ] `CONFLUENCE_IMPORT` / `import:confluence` — где используется (сервер+клиент)? -- [ ] `isConfluenceImport=true` ставится где-то кроме удалённого EE-модуля?