Диаграмма из тех артефактов, которые должны обновляться сами. Архитектура меняется с каждым мержем, страница документации отстаёт на релиз, и в итоге кто-то открывает редактор, чтобы поправить всё вручную. У LetDraw есть API для диаграмм и MCP-сервер, чтобы эту работу делал скрипт или ИИ-агент, причём заново при каждом изменении источника.
Если вы уже генерируете диаграммы из файла Compose или спецификации, следующий шаг: перестать нажимать кнопку самому. Персональный API-токен превращает ту же генерацию в вызов, который может сделать любая машина: шаг сборки, ночная задача или ассистент, который читает ваш запрос и рисует результат. Токен несёт только те права, которые вы ему дали, поэтому автоматизация по умолчанию работает с минимальными привилегиями.
Персональные API-токены и области доступа
Вы создаёте токен в разделе Разработчику, даёте ему имя и выбираете области доступа. Вот и вся настройка. Имя нужно, чтобы потом различать токены; назовите один «CI-скрипт», а другой по имени ассистента, который будет его хранить, и отзыв токена отключит ровно одного клиента и больше ничего.
Области доступа обеспечивают минимальные привилегии. Вместо одного всемогущего ключа каждый токен получает только те возможности, которые нужны для его задачи:
- Чтение диаграмм для задачи, которая только получает текущее состояние рисунка
- Создание и редактирование диаграмм для автоматизации, которая создаёт или обновляет холсты
- Экспорт в Mermaid или D2 для пайплайна документации, которому нужен файл для коммита
- Генерация по запросу для ИИ-сценария, где запрос превращается в диаграмму
Один токен, одна задача, одно имя, которое можно отозвать. В этом разница между автоматизацией, которой вы доверяете, и ключом, который страшно кому-то отдать.
Генерация диаграмм в CI или по cron
REST API: это обычный HTTP-эндпоинт. Аутентифицируйтесь bearer-токеном, отправьте JSON-тело и получите диаграмму в ответ. Вот сценарий генерации по запросу, такой вызов вы добавите в шаг сборки, чтобы архитектура рисовалась из спецификации при каждом пуше:
# $LD_TOKEN holds a token with the "generate" and "export" scopes # 1) prompt to diagram (uses the AI key stored on your account) curl https://api.letdraw.com/api-v1/documents/generate \ -H "Authorization: Bearer $LD_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "prompt": "web -> api -> postgres, redis cache on api", "name": "Architecture" }' # 2) export it as text to commit next to the code (format=mermaid or d2) curl "https://api.letdraw.com/api-v1/documents/$DOC_ID/export?format=mermaid" \ -H "Authorization: Bearer $LD_TOKEN"
Поставьте это в cron-задачу, и устаревшая диаграмма в документации просто перестанет существовать. Задача запускается, диаграмма перегенерируется из того, что сегодня говорят входные данные, и коллеги открывают картинку, которая соответствует реальности. Первый вызов возвращает новый документ с его id; вызов экспорта превращает его в текст mermaid или d2, который можно закоммитить рядом с кодом.
Пайплайн, который всегда свежий
Схема одна и та же, будь триггером мерж или расписание: что-то меняется, пайплайн вызывает API, и диаграмма пересобирается. Никто не должен помнить о повторном экспорте, потому что помнить нечего.
Подключение к ИИ-ассистенту через MCP
Те же возможности доступны через Model Context Protocol, так что ИИ-ассистент может рисовать и редактировать диаграммы прямо в диалоге. Вы один раз регистрируете LetDraw как MCP-сервер, передаёте ему токен, и ассистент получает инструменты, которые разрешают его области доступа: он может создать холст, отредактировать то, что на нём есть, экспортировать в Mermaid или D2 или сгенерировать диаграмму по описанию, которое вы пишете обычным языком.
{
"mcpServers": {
"letdraw": {
"url": "https://api.letdraw.com/mcp",
"headers": {
"Authorization": "Bearer $LD_TOKEN"
}
}
}
}
Поскольку ассистент держит только тот токен, который вы ему дали, его возможности ограничены областями этого токена. Дайте ассистенту для черновиков создание и редактирование плюс генерацию, и он сможет весь день строить и править диаграммы; дайте ассистенту-ревьюеру только чтение и экспорт, и он сможет смотреть и выдавать файл, но никогда не изменит ваш холст. Называйте токен по имени клиента, который его хранит, и если захотите отключить клиента, вы отзываете один токен, и ассистент теряет доступ при следующем же вызове.
Отозвать, обновить, повторить
Любой токен можно отозвать на той же странице «Разработчику», где вы его создали. Именно поэтому передавать токены скриптам и ассистентам спокойно: ничто из выданного не вечно и ничто не переплетено с чем-то ещё. Утёкшая переменная CI, клиент, которым вы перестали пользоваться, слишком щедро выданная область; в каждом случае решение одно: отозвать этот токен и выпустить новый с теми областями, которые вы на самом деле имели в виду.
В итоге получается небольшая поверхность с ясным правилом. Машины и ассистенты получают диаграммы так же, как вы, через именованные токены, которые несут только нужные для их задачи права, и любой из них можно отозвать в любой момент. Диаграмма перестаёт быть тем, что вы поддерживаете, и становится тем, что производит ваш пайплайн.