Delete page "Architecture"
@@ -1,67 +0,0 @@
|
||||
# Архитектура проекта
|
||||
|
||||
## Структура директорий
|
||||
|
||||
```
|
||||
VA.ASPEKTER/
|
||||
├── z51-pug-builder/ # Основное приложение
|
||||
│ ├── vite.config.js # Backend API (~1400 строк, Vite middleware)
|
||||
│ ├── src/
|
||||
│ │ ├── App.svelte # Монолитный UI (~6500+ строк)
|
||||
│ │ ├── app.css # Стили
|
||||
│ │ ├── main.js # Entry point
|
||||
│ │ └── lib/
|
||||
│ │ ├── api.js # API клиент
|
||||
│ │ ├── parsing.js # Парсинг Pug-шаблонов
|
||||
│ │ └── spellcheck.js # Проверка орфографии
|
||||
│ ├── public/ # Статика (favicon, Block.pug)
|
||||
│ ├── data/ # Данные проекта (не в git)
|
||||
│ ├── Dockerfile
|
||||
│ └── package.json
|
||||
├── email-gen/ # Pug-шаблоны писем (репо коллег)
|
||||
│ └── emails/
|
||||
│ ├── includes/mixins.pug # Общие миксины
|
||||
│ └── vipavenue/ # Шаблоны VipAvenue
|
||||
│ ├── parts/ # Header/Footer
|
||||
│ └── letters/ # Сгенерированные письма
|
||||
├── deploy/
|
||||
│ ├── email-gen-api/ # Сервис рендера Pug → HTML
|
||||
│ │ ├── server.js
|
||||
│ │ └── Dockerfile
|
||||
│ ├── nginx/ # Конфиг nginx
|
||||
│ └── scripts/ # Скрипты деплоя
|
||||
├── docker-compose.yml # Dev окружение
|
||||
└── docker-compose.prod.yml # Prod окружение
|
||||
```
|
||||
|
||||
## Цепочка рендера
|
||||
|
||||
```
|
||||
App.svelte (блоки → PUG-код)
|
||||
↓ POST /api/project/vipavenue/render-email
|
||||
vite.config.js (записывает let.pug, html.pug)
|
||||
↓ HTTP POST к email-gen-api
|
||||
email-gen-api:8787 (Pug → HTML, inlines CSS)
|
||||
↓
|
||||
vite.config.js (кэш, Mindbox-теги, nowrap, фид)
|
||||
↓
|
||||
App.svelte (iframe srcdoc → превью)
|
||||
```
|
||||
|
||||
## Аутентификация
|
||||
|
||||
- scrypt хеширование паролей
|
||||
- Cookie `va_token`, HttpOnly, SameSite=Strict, Secure
|
||||
- Сессии в памяти + файл `_system/sessions.json`
|
||||
- TTL 7 дней
|
||||
- Роли: `admin` (полный доступ к настройкам) / `user`
|
||||
|
||||
## Хранение данных
|
||||
|
||||
Файловая БД в `data/vipavenue/`:
|
||||
- `settings.json` — настройки проекта (FTP, feedUrl, genderPaths)
|
||||
- `letters.json` — индекс писем
|
||||
- `letters/*.json` — данные каждого письма (блоки, тема, дата)
|
||||
- `drafts/*.json` — черновики по юзерам
|
||||
- `presets.json` — пресеты блоков
|
||||
- `block.pug` — кастомный шаблон блока
|
||||
Reference in New Issue
Block a user