Для программистов

Карта кода: устройство проекта на досках за минуту

Выберите папку или zip-архив проекта — NodePanel прочитает исходники прямо в браузере и соберёт проект с досками: страницы, API, вызовы с фронта, таблицы и архитектура. Код не запускается, файлы не покидают ваш компьютер.

14 дней полного доступа · входит в обычную подписку

Магазин · Фронт → API
0
файлов исходников уходит на сервер
6
видов досок: от обзора до архитектуры
300 МБ
архив проекта, до 50 000 файлов
10
языков: JavaScript, TypeScript, Python, PHP, Go, Java, Kotlin, C#, Ruby, Rust

Как это работает

От папки до готовых досок — четыре шага

Ничего не нужно устанавливать и настраивать: всё происходит в окне браузера, а на сервер уходит только результат, который вы одобрили.

  1. Выберите папку или zip

    Кнопка «Карта кода» на странице проектов. Перетащите папку проекта в окно или выберите zip-архив до 300 МБ. Папки node_modules, .git и сборки пропускаются сами.

  2. Браузер разберёт исходники

    В фоновом потоке, не тормозя страницу: «Ищем файлы», «Читаем файлы», «Разбираем код», «Строим доски». Обычно — до минуты; разбор можно отменить, дольше 3 минут он не идёт.

  3. Проверьте предпросмотр

    Окно покажет, какие доски будут созданы, сколько на них блоков и связей, какие фреймворки нашлись и сколько файлов пропущено и почему. До нажатия «Создать проект» на сервер не уходит ничего.

  4. Откройте готовый проект

    Проект с досками появится в списке. Доска «Обзор» ведёт на остальные, блоки разложены без наложений — дальше это обычные доски для работы всей командой.

Особенности браузера

Браузер переспросит — это нормально

При выборе папки браузер покажет вопрос, который звучит тревожнее, чем есть на самом деле. Вот что он значит и что ещё браузер делает ради вашей безопасности.

Нажмите «Загрузить» — так браузер разрешает странице прочитать выбранную папку. На сервер файлы при этом не отправляются.

  • «Загрузить файлы на этот сайт?» — стандартная фраза

    Так 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 дней полного доступа · без привязки карты · ничего не нужно устанавливать