Для программистов
Карта кода: устройство проекта на досках за минуту
Выберите папку или zip-архив проекта — NodePanel прочитает исходники прямо в браузере и соберёт проект с досками: страницы, API, вызовы с фронта, таблицы и архитектура. Код не запускается, файлы не покидают ваш компьютер.
14 дней полного доступа · входит в обычную подписку
- 0
- файлов исходников уходит на сервер
- 6
- видов досок: от обзора до архитектуры
- 300 МБ
- архив проекта, до 50 000 файлов
- 10
- языков: JavaScript, TypeScript, Python, PHP, Go, Java, Kotlin, C#, Ruby, Rust
Как это работает
От папки до готовых досок — четыре шага
Ничего не нужно устанавливать и настраивать: всё происходит в окне браузера, а на сервер уходит только результат, который вы одобрили.
Выберите папку или zip
Кнопка «Карта кода» на странице проектов. Перетащите папку проекта в окно или выберите zip-архив до 300 МБ. Папки node_modules, .git и сборки пропускаются сами.
Браузер разберёт исходники
В фоновом потоке, не тормозя страницу: «Ищем файлы», «Читаем файлы», «Разбираем код», «Строим доски». Обычно — до минуты; разбор можно отменить, дольше 3 минут он не идёт.
Проверьте предпросмотр
Окно покажет, какие доски будут созданы, сколько на них блоков и связей, какие фреймворки нашлись и сколько файлов пропущено и почему. До нажатия «Создать проект» на сервер не уходит ничего.
Откройте готовый проект
Проект с досками появится в списке. Доска «Обзор» ведёт на остальные, блоки разложены без наложений — дальше это обычные доски для работы всей командой.
Особенности браузера
Браузер переспросит — это нормально
При выборе папки браузер покажет вопрос, который звучит тревожнее, чем есть на самом деле. Вот что он значит и что ещё браузер делает ради вашей безопасности.
Нажмите «Загрузить» — так браузер разрешает странице прочитать выбранную папку. На сервер файлы при этом не отправляются.
«Загрузить файлы на этот сайт?» — стандартная фраза
Так Chrome и Edge называют любой доступ страницы к папке; в Firefox вопрос похожий — примерно «Вы уверены, что хотите загрузить все файлы из…?». Файлы не уходят на сервер: их читает страница прямо у вас на компьютере, а на сервер попадают только готовые доски после предпросмотра.
Число файлов в вопросе может пугать
Браузер считает всё подряд, включая node_modules, .git и сборку. Карта кода такие папки не открывает, поэтому смело выбирайте папку всего проекта целиком.
Путь к папке текстом не вписать
Браузер даёт странице доступ только к той папке, которую вы выбрали сами или перетащили в окно, — остальной диск ей не виден. Это защита браузера, а не ограничение NodePanel.
Перетащить папку тоже можно
Перетащите папку проекта прямо в окно «Карта кода» — результат тот же, что у кнопки «Выбрать папку». Zip-архив выбирается кнопкой «Выбрать zip» или тоже перетаскиванием.
На телефоне — только zip
Мобильные браузеры не умеют выбирать папку целиком. Заархивируйте проект в zip или откройте карту кода на компьютере.
Закрыли вкладку — доступа больше нет
Страница получает файлы только на время разбора и ничего не запоминает. Чтобы обновить карту, папку нужно выбрать заново — без вашего действия сайт её не прочитает.
Что получится
Шесть досок, по одной на каждый взгляд
Это обычные доски NodePanel: блоки можно двигать, раскрашивать, комментировать и дополнять своими. Пустых досок нет: если в проекте нет базы данных, не будет и доски «Данные».
Обзор
Карточка на каждую доску карты с переходом на неё, стек проекта — фреймворки и языки — и что разобрано.
Страницы
Страница — маршрут и файл, группы по разделам сайта, связи — переходы по ссылкам и из кода.
API
Маршрут на карточке, цвет по методу: GET зелёный, POST синий, PUT и PATCH оранжевые, DELETE красный. Группы по модулям.
Фронт → API
Какая страница или модуль какой маршрут вызывает. Вызовы, которых нет на бэкенде, — отдельной группой.
Данные
Таблицы с полями, типами и пометками PK и UNIQUE, связи — внешние ключи с подписью поля.
Архитектура
Сервисы из docker-compose и самые заметные зависимости между папками кода — мелочь не рисуется, чтобы схема читалась.
Что умеем разбирать
Что карта кода находит в проекте
Языки — JavaScript, TypeScript, Python, PHP, Go, Java, Kotlin, C#, Ruby и Rust. Архитектура по docker-compose и импортам строится для любого проекта на этих языках, остальное — для фреймворков из списка.
Страницы
- Next.js — App и Pages Router
- React Router
- Vue Router и шаблоны .vue
- Nuxt
- SvelteKit и шаблоны .svelte
- Angular
- 1С-Битрикс — urlrewrite.php и страницы сайта
Маршруты страниц и переходы: ссылки в коде и шаблонах, переадресации, переходы из кода.
API
- Express
- NestJS
- FastAPI
- Flask
- Django
- Laravel
- Symfony
- Go — net/http, Gin, Echo, chi, Fiber, gorilla/mux
- Spring и JAX-RS на Java и Kotlin
- ASP.NET Core — контроллеры и Minimal API
- Ruby on Rails
- Rust — Axum и Actix Web
Маршруты с методами и префиксами групп и роутеров, ресурсы Laravel и Rails раскрываются в стандартные маршруты, обработчики route.ts в Next.js и файлы маршрутов Nuxt и SvelteKit.
Вызовы с фронта
- fetch
- axios
- HttpClient в Angular
- свои API-клиенты
Какой адрес вызывает страница или модуль — и есть ли такой маршрут на бэкенде.
Данные
- Prisma
- SQL-миграции
- Django-модели
- миграции и модели Laravel (Eloquent)
- Doctrine
- GORM
- JPA
- Entity Framework Core
- Rails — schema.rb, миграции и модели
Таблицы, поля и внешние ключи, включая связи «многие ко многим».
Архитектура
- docker-compose
- импорты JS, TS, Vue и Svelte
- импорты Python, PHP, Go, Java, Kotlin, C# и Rust
- компоненты 1С-Битрикс
Сервисы, образы, порты и зависимости; псевдонимы путей из tsconfig, пакеты монорепозитория, модули go.mod, пакеты и пространства имён.
Безопасность
Ваш код остаётся у вас
Исходники — самое ценное, что есть у команды. Поэтому карта кода устроена так, чтобы их вообще не нужно было отправлять: разбор идёт в браузере, на сервер попадает только схема. И каждый шаг этого пути защищён отдельно.
Остаётся на вашем компьютере
- Содержимое файлов: функции, строки, комментарии
- Файлы .env, ключи, сертификаты и пароли
- История git и служебные папки
- Всё, что вы не одобрили в предпросмотре
Только готовые доски — после предпросмотра
Попадает на сервер NodePanel
- Названия страниц и маршрутов API
- Пути к файлам, имена папок и модулей
- Таблицы и поля с типами
- Сервисы docker-compose, образы и порты
Разбор только в браузере
Исходники читает фоновый поток в изолированной песочнице прямо в вашей вкладке: у неё нет доступа ни к вашему входу в NodePanel, ни к странице, ни к интернету. Автотест проверяет: во время разбора на наш сервер не уходит ни одного запроса с данными.
Код не запускается
Файлы только читаются как текст. Скрипты из package.json не выполняются, файлы настроек вроде vite.config или next.config не исполняются, а исходники разборщика тест проверяет на конструкции, способные запустить чужой код.
Секреты не открываются
Файлы .env, ключи и сертификаты, .npmrc, файлы credentials и secrets, базы SQLite, папки .ssh и .aws пропускаются по имени, не читая, — даже под хитрыми именами вроде .ENV или server.pem.txt. В отчёте только их число.
Похожее на ключи вырезается
Строки из кода на доски не попадают, кроме путей маршрутов. Параметры адресов, логины и пароли в адресах срезаются, а похожее на токены и ключи заменяется на «[скрыто]».
Архив под контролем
Пути, ведущие за пределы проекта, ссылки на другие файлы и вложенные архивы не открываются. Архив-бомбу видно по фактически разжатым байтам, а на диск ничего не записывается.
Текст — только текст
Имена из кода на доске — простой текст: невидимые и управляющие символы и «перевёрнутый» текст убираются, длина ограничена. Ссылки между досками ставит только сервер — на доски этой же карты.
Предпросмотр перед отправкой
Вы видите, какие доски, сколько блоков и связей уйдёт на сервер и сколько файлов пропущено. Не понравилось — закройте окно, и ничего не отправится.
Сервер не верит браузеру
Каждую доску сервер проверяет строгой схемой, заново сверяет права и подписку, выдаёт блокам свои id и записывает всё одной транзакцией. Чужой проект для него неотличим от несуществующего.
Лимиты от перегрузки
Размер архива, число файлов, размер файла, глубина папок и время разбора ограничены. Создать или обновить карту можно до 20 раз в час, и у каждого — один запрос за раз.
Функцию отдельно атаковали как злоумышленник
Готовую карту кода независимо проверили методом «красной команды»: пытались добраться до чужих проектов, подсунуть вредный код в архиве и доске, перегрузить сервер. Всё найденное исправлено и закрыто автотестами, которые запускаются при каждом изменении.
Обещать «стопроцентную безопасность» честно не может никто. Поэтому главное решение здесь другое: исходники просто не отправляются. Если не хотите, чтобы на сервер попали даже названия маршрутов и таблиц, — посмотрите предпросмотр и не нажимайте «Создать проект».
Умное обновление
Код изменился — обновите карту, правки останутся
Выберите новую версию той же папки или свежий архив. NodePanel сравнит её с картой и поменяет только то, что пришло из кода.
Что меняется
- Новое в коде появляется с меткой «новое»
- Изменённое обновляет только поля, пришедшие из кода
- Исчезнувшее из кода не удаляется, а помечается «удалено из кода»
- У коллег открытые доски перечитываются сами
Что остаётся как было
- Положение и размер блоков, которые вы разложили
- Цвета, комментарии и обсуждения
- Свои блоки и связи, добавленные руками
- Версия каждой доски до обновления — в истории версий
Кому удобно
Вся команда смотрит на один и тот же проект
Не схема из презентации годовой давности, а то, что сейчас лежит в коде, — и обсуждать её можно прямо на доске.
- Онбординг
Новый человек в команде
В первый же день видит, какие страницы есть, какие маршруты они вызывают и где лежат таблицы, — вместо недели блужданий по папкам.
- Ревью архитектуры
Архитектор
Сервисы и зависимости между модулями — на одной доске. Видно, где связей слишком много, и это можно обсудить комментарием прямо у блока.
- Живая документация
Аналитик и тестировщик
Полный список страниц и маршрутов API с файлами — то, что есть в продукте на самом деле. Обновили карту — документация снова свежая, заметки на досках остались.
- Поиск лишнего
Тимлид
Вызовы с фронта, которых нет на бэкенде, собраны в группу «Не найдены на бэкенде», а после обновления видно новое и исчезнувшее из кода.
Честно об ограничениях
Чего карта кода пока не умеет
Код читается, но не исполняется, поэтому часть устройства проекта увидеть нельзя. Лучше знать об этом заранее.
- Языки — JavaScript, TypeScript, Python, PHP, Go, Java, Kotlin, C#, Ruby и Rust. Проекты на других языках пока не разбираются.
- Маршруты, которые собираются на лету — в цикле или из настроек, — могут не найтись: код читается, но не исполняется.
- Маршруты из файлов настроек (routes.yaml в Symfony, роутинг на функциях Spring, Ktor) и маршрутизация ASP.NET MVC по шаблону {controller}/{action} без атрибутов не читаются.
- Связи между файлами Ruby не строятся. Псевдонимы путей берутся из tsconfig и jsconfig, а не из настроек сборщика.
- В карте — до 24 досок, на доске — до 400 блоков. Большой проект попадёт в карту не целиком — предпросмотр предупредит об этом заранее.
- Файлы больше 1 МБ и сжатый код сборки пропускаются.
- В песочнице на главной карты кода нет: нужен аккаунт с подпиской или пробным периодом.
Все кнопки, подписи и шаги — в документации. Открыть раздел «Карта кода»
Вопросы и ответы
Про карту кода — коротко
Отправляется ли мой код на сервер NodePanel?
Нет. Исходники разбираются в браузере на вашем компьютере. На сервер уходят только готовые доски: названия страниц, маршрутов и таблиц, пути к файлам и сервисы — ровно то, что вы видите в предпросмотре перед отправкой.
Запускается ли мой код во время разбора?
Нет. Файлы только читаются как текст: скрипты из package.json, файлы настроек и сам код проекта не выполняются. Это правило проверяют автотесты.
Что происходит с файлами .env и ключами?
Они не открываются вовсе: файлы .env, ключи, сертификаты, .npmrc, файлы credentials и secrets, настройки со строками подключения (appsettings.json, application.yml, database.yml, wp-config.php) пропускаются по имени, их содержимое не читается. В отчёте предпросмотра — только их число. А похожие на токены строки в остальном коде заменяются пометкой «скрыто».
Что будет с моими правками на досках после обновления карты?
Останутся. Обновление меняет только то, что пришло из кода: новое добавляет с меткой «новое», исчезнувшее помечает «удалено из кода». Положение, цвета, комментарии и свои блоки не трогаются, а перед обновлением сохраняется версия каждой доски.
Какие языки и фреймворки поддерживаются?
Языки — JavaScript, TypeScript, Python, PHP, Go, Java, Kotlin, C#, Ruby и Rust. Страницы: Next.js — App и Pages Router, React Router, Vue Router и шаблоны .vue, Nuxt, SvelteKit и шаблоны .svelte, Angular, 1С-Битрикс — urlrewrite.php и страницы сайта. API: Express, NestJS, FastAPI, Flask, Django, Laravel, Symfony, Go — net/http, Gin, Echo, chi, Fiber, gorilla/mux, Spring и JAX-RS на Java и Kotlin, ASP.NET Core — контроллеры и Minimal API, Ruby on Rails, Rust — Axum и Actix Web. Вызовы с фронта: fetch, axios, HttpClient в Angular, свои API-клиенты. Данные: Prisma, SQL-миграции, Django-модели, миграции и модели Laravel (Eloquent), Doctrine, GORM, JPA, Entity Framework Core, Rails — schema.rb, миграции и модели. Архитектура: docker-compose, импорты JS, TS, Vue и Svelte, импорты Python, PHP, Go, Java, Kotlin, C# и Rust, компоненты 1С-Битрикс.
Сколько стоит карта кода?
Отдельно не платится: она входит в обычную подписку NodePanel и доступна в пробный период. Ограничение одно — до двадцати карт в час на человека, создание и обновление вместе.
Кто увидит карту моего проекта?
Карта — обычный проект NodePanel, и вы его владелец. Его видят только те, кого вы пригласите, с той ролью, которую выберете: только просмотр, редактирование или полный доступ.
Можно ли построить карту кода с телефона?
Можно, но только из zip-архива: мобильные браузеры не умеют выбирать папку целиком. Удобнее работать с картой на компьютере — там же её проще и обновлять.
Посмотрите на свой проект со стороны
Зарегистрируйтесь, нажмите «Карта кода» на странице проектов и выберите папку — через минуту схема будет на досках.
Построить карту кода14 дней полного доступа · без привязки карты · ничего не нужно устанавливать