# Discovery Report: NODE.DC Platform Дата: 2026-05-04 ## Источники - Базовое ТЗ: `/Users/dcconstructions/Downloads/mnt/NODEDC/DOC/BASE/tz_codex_platform_authentik_launcher_plane.md` - Краткое ТЗ: `/Users/dcconstructions/Downloads/mnt/NODEDC/DOC/BASE/nodedc_auth.md` - Launcher repo: `/Users/dcconstructions/Downloads/mnt/data/nodedc_launcher` - Task Manager repo: `/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER` ## Workspace `/Users/dcconstructions/Downloads/mnt/NODEDC` используется как внешний workspace-корень для платформенной работы. Текущая папка `NODEDC` до нулевого этапа содержала только базовые документы в `DOC/BASE`. Отдельного git-репозитория в этой папке нет. ## Launcher Путь: `/Users/dcconstructions/Downloads/mnt/data/nodedc_launcher` Факты discovery: - отдельный git-репозиторий; - Vite/React приложение; - основной entrypoint: `src/main.tsx`; - команды из `package.json`: `npm run dev`, `npm run build`, `npm run preview`, `npm run test`; - backend слоя в текущем Launcher не найдено; - значит OIDC/session handling, Authentik service token, app registry и audit log нельзя хранить только во frontend. Минимальный вывод: для production-like auth нужен Launcher backend или BFF слой. ## Task Manager / Plane Путь: `/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER` Факты discovery: - отдельный git-репозиторий; - self-host runtime лежит в `plane-app`; - локальный fork исходников лежит в `plane-src`; - Plane CE self-host запущен через Docker; - локальный URL стенда: `http://localhost:8090`; - текущий compose/env: `plane-app/docker-compose.yaml` и `plane-app/plane.env`; - текущий fork Plane: `plane-src`, версия `1.3.0`; - основной runtime-контейнер API: `plane-app-api-1`; - активные контейнеры Plane: web, proxy, api, worker, beat-worker, db, redis, minio, mq, admin, space, live. Текущий workspace в Plane: - slug: `nodedc`; - name: `NODE DC`; - owner: `dcctouch@gmail.com`; - codex user: `codex@nodedc.local`. Существующие проекты в workspace `nodedc` на момент discovery: - `NODEDCLAUN` / `NODEDC LAUNCHER` - `CODEX` / `DCTM-WT-CODEX` - `NODEDCTASK` / `NODEDC TASKMANAGER` - `MGR` / `Менеджмент` - `BUH` / `Бухгалтерия` ## NDC details в карточках Канон карточек описан в `/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/AGENTS.md`. Структурированные блоки карточки хранятся в `Issue.detail_layout` под ключом: ```text nodedc_structured_blocks ``` Типы блоков: - `text`: текстовый блок с `title` и `body`; - `checker`: чекер с `title` и пунктами `items`. Frontend отображает эти блоки через компоненты: - `plane-src/apps/web/core/components/issues/issue-detail-widgets/structured-content.helpers.ts` - `plane-src/apps/web/core/components/issues/issue-detail-widgets/structured-content-blocks.tsx` ## Решение по переносам Физически переносить Launcher и Task Manager внутрь `NODEDC` на нулевом этапе не нужно. Причины: - оба приложения уже являются отдельными git-репозиториями; - Plane runtime завязан на текущие `plane-app`, `plane.env`, volumes и backup; - перенос может сломать локальный self-host стенд; - платформенный слой должен управлять интеграцией, а не становиться монорепозиторием всех исходников. Допустимый вариант позже: добавить symlink или workspace manifest из `NODEDC` на внешние репозитории, если это потребуется для удобства навигации. ## Риски - Нельзя пересоздавать существующего Plane admin/user, иначе потеряются связи workspace, задач, комментариев и assignee. - Нельзя делать Authentik admin token доступным frontend-коду Launcher. - Нельзя полагаться только на reverse proxy как единственный долгосрочный auth layer для приложений, которые мы контролируем кодом. - Нельзя публиковать наружу Postgres, Redis, MinIO и внутренние API в staging/production. ## Следующий технический шаг Создать локальный `platform/infra` слой с Authentik и reverse proxy, но сначала согласовать конкретную схему доменов, ports и secrets.