Add plugin platform with modular backend and frontend registry.

Split graph/import/meta into Django apps, add API v1 with OpenAPI and pytest, and introduce plugin registry with the tags reference plugin on both FE and BE.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-25 09:35:51 +03:00
co-authored by Cursor
parent b694a596b8
commit cafc7335ad
77 changed files with 1801 additions and 490 deletions
+13 -3
View File
@@ -44,17 +44,25 @@ docker compose up --build
## Архитектура frontend
```text
views / components
views / features / components
Pinia store (orchestration)
application/usecases
application/usecases + application/services
infrastructure/repositories → local (IndexedDB) | remote (REST)
changelog + syncAdapter (noop, подготовка к sync)
core/pluginRegistry + plugins/* (optional extensions)
changelog + syncAdapter (hybrid-ready)
```
API v1: `/api/v1/` (legacy `/api/` сохранён). OpenAPI: `/api/v1/docs/`.
Плагины: `VITE_ENABLED_PLUGINS=tags` (frontend), `ENABLED_PLUGINS=tags` (backend).
Документация для авторов плагинов: [docs/PLUGIN_AUTHOR_GUIDE.md](docs/PLUGIN_AUTHOR_GUIDE.md).
## Структура проекта
```text
@@ -92,6 +100,8 @@ social-graph/
| GET | `/api/network-map-graph/` | Граф карты сети |
| GET | `/api/relation-types/` | Типы связей |
| GET | `/api/network-map-choices/` | Справочники карты |
| GET | `/api/v1/meta/choices/` | Все справочники (типы связей, сферы, круги) |
| GET | `/api/v1/plugins/` | Манифест включённых плагинов |
| POST | `/api/import/` | Импорт CSV/JSON/vCard (legacy) |
В режиме `local` импорт и бэкап выполняются в браузере (экран **Импорт**).