135 lines
7.7 KiB
Markdown
135 lines
7.7 KiB
Markdown
# Общая документация по сервисам / микросервисам
|
||
|
||
Документация так же имеется в формате [**Wiki**](https://penahub.gitlab.yandexcloud.net/pena-services/docs/-/wikis/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5)
|
||
|
||
## Архитектура:
|
||
|
||
- [**Архитектура сервисов NodeJS**](./architecture/nodejs/README.md)
|
||
- [**Архитектура сервисов Golang**](./architecture/golang/README.md)
|
||
|
||
## Переменные окружения:
|
||
|
||
- [**Переменные окружения сервисов / микросервисов**](./environment/README.md)
|
||
|
||
## Swagger:
|
||
|
||
- [**Информация о swagger'е**](./swagger/README.md)
|
||
|
||
## Комманды:
|
||
|
||
- [**Комманды сервисов NodeJS**](./commands/nodejs/README.md)
|
||
|
||
## Развёртывание:
|
||
|
||
Подробно о развёртывании можно почитать [**тут**](https://penahub.gitlab.yandexcloud.net/devops/docs)
|
||
|
||
|
||
|
||
``` c4plantuml
|
||
....
|
||
@startuml
|
||
!include C4_Context.puml
|
||
|
||
title Связи между компонентами PenaHUB
|
||
|
||
Person(marketplaceFront, "Marketplace", "Платформа, на которой пользователь приобретает подписки на наши сервисы")
|
||
Person(adminFront, "Admin", "Админка. Техподдержка, статистика, настройки")
|
||
Person(amoTemplategenFront, "AmoTemplategen", "Интеграция с amocrm. Позволяет шаблонизировать docx")
|
||
Person(servicesLanding, "Landing", "Лендинг с формой обратной связи")
|
||
Person(squizFront, "Squiz", "Фронт генератора опросов")
|
||
Person(metricaFront, "Metrica", "Фронт сервиса настройки сборщика метрик телеграм ботов")
|
||
|
||
System(authService, "AuthService", "Авторизация, Регистрация, Обновление токена, Изменение пароля")
|
||
System(customerService, "Customer", "Аккаунт клиента, Кошелёк, Корзина, Оплата, Покупка тарифов")
|
||
System(discountService, "Discount", "Создание скидок, Вычисление стоимости корзины")
|
||
System(adminBackend, "AdminBackend", "Создание тарифов, Роли, Привилегии, Допуски")
|
||
System(socialAuthService, "SocialAuth", "Авторизация через сторонние сервисы")
|
||
System(cbrfWorker, "CBRF", "Хранение котировок валют по ЦБ и конвертация валюты")
|
||
System(heryvym, "Heruvym", "Техподдержка")
|
||
System(trashlog, "Trashlog", "Логпомойка поверх Clickhouse")
|
||
System(treasurer, "Treasurer", "Платёжки, Генерация платёжной ссылки и колбеки на изменение статуса платежа")
|
||
System(feedbackSvc, "feedbackService", "Получить данные с формы и отправить их в телеграм канал")
|
||
System(verification, "VerificationService", "Сохранение верификационных документов и подтверждение статуса верификации пользователя")
|
||
System(templategenService, "templategenService", "Продуктовый сервис шаблонизации docx")
|
||
System(templategenWorker, "templategenWorker", "Воркер, выполняющий шаблонизацию документа")
|
||
System(squizService, "SquizService", "Продуктовый сервис опросника")
|
||
System(squizStorer, "squizStorer", "Сервис сохранения файлов кастомизации опроса")
|
||
System(squizAnswerer, "squizAnswerer", "Выдача опросов и сохранение результатов")
|
||
System(penaDisk, "penaDisk", "Промежуточный сервис хранения файлов пользователей")
|
||
System(metricaService, "metricaService", "Продуктовый сервис сбора статистики телеграм ботов")
|
||
System(sink, "sink", "Сервис сохранения логов телеграм ботов")
|
||
|
||
System_Ext(mail_system, "smtp.biz", "")
|
||
System_Ext(amocrm, "Amocrm", "")
|
||
System_Ext(cbrf, "ЦБРФ", "")
|
||
System_Ext(yookasa, "Yookassa", "")
|
||
System_Ext(s3, "YandexS3", "")
|
||
System_Ext(bot, "ClientBot", "")
|
||
|
||
Rel(treasurer, yookasa, "получение платёжной ссылки")
|
||
Rel(cbrfWorker, cbrf, "курс валют")
|
||
Rel_Back(yookasa, treasurer, "Вебхук оплаты")
|
||
Rel(templategenService, mail_system, "Отправка акта")
|
||
Rel_Back(templategenService, amocrm, "создание аккаунта")
|
||
Rel(templategenWorker, amocrm, "Данные для шаблонизации")
|
||
Rel(templategenWorker, penaDisk, "Сохранение результатов")
|
||
Rel(penaDisk, templategenWorker, "Получение шаблона")
|
||
Rel(templategenService, penaDisk, "Сохранение шаблона")
|
||
Rel(penaDisk, s3, "Сохранение файла")
|
||
Rel_Back(penaDisk, s3, "Получение файла")
|
||
Rel_Back(sink, bot, "Передача логов")
|
||
Rel(sink, trashlog, "Сохранение логов в помойку")
|
||
Rel(squizStorer, s3, "Сохранение файла кастомизации")
|
||
Rel(squizAnswerer, trashlog, "Сохранение ответов в помойку")
|
||
Rel(verification, s3, "Сохранение файлов верификации")
|
||
Rel(customerService, treasurer, "Запрос платёжной ссылки")
|
||
Rel(treasurer, customerService, "Пополнение кошелька, запись в историю")
|
||
Rel(customerService, cbrfWorker, "Пересчёт кошелька пользователя, вычисление стоимости корзины в нужной валюте")
|
||
Rel_Neighbor(socialAuthService, authService, "Создание модели входа для пользователя внешней системы")
|
||
Rel_Back(adminBackend, customerService, "Список тарифов и привилегий")
|
||
Rel(templategenService, adminBackend, "Публикация привилегий")
|
||
Rel(templategenService, customerService, "Запись в историю о окончании привилегии")
|
||
Rel(customerService, discountService, "Вычисление стоимости корзины")
|
||
Rel(customerService, verification, "Получение данных верификации")
|
||
Rel(customerService, authService, "email для отправки акта")
|
||
Rel(customerService, templategenService, "запрос шаблонизации акта проделанных работ")
|
||
|
||
Rel(servicesLanding, feedbackSvc, "")
|
||
Rel(servicesLanding, heryvym, "")
|
||
|
||
Rel(metricaFront, metricaService, "")
|
||
Rel(metricaFront, authService, "")
|
||
Rel(metricaFront, heryvym, "")
|
||
|
||
Rel(squizFront, squizService, "")
|
||
Rel(squizFront, squizStorer, "")
|
||
Rel(squizFront, squizAnswerer, "")
|
||
Rel(squizFront, authService, "")
|
||
Rel(squizFront, heryvym, "")
|
||
|
||
Rel(amoTemplategenFront, templategenService, "")
|
||
Rel(amoTemplategenFront, heryvym, "")
|
||
|
||
Rel(adminFront, adminBackend, "")
|
||
Rel(adminFront, discountService, "")
|
||
Rel(adminFront, customerService, "")
|
||
Rel(adminFront, authService, "")
|
||
Rel(adminFront, heryvym, "")
|
||
Rel(adminFront, verification, "")
|
||
Rel(adminFront, templategenService, "")
|
||
Rel(adminFront, squizService, "")
|
||
Rel(adminFront, penaDisk, "")
|
||
Rel(adminFront, sink, "")
|
||
|
||
Rel(marketplaceFront, adminBackend, "")
|
||
Rel(marketplaceFront, discountService, "")
|
||
Rel(marketplaceFront, customerService, "")
|
||
Rel(marketplaceFront, authService, "")
|
||
Rel(marketplaceFront, heryvym, "")
|
||
Rel(marketplaceFront, verification, "")
|
||
Rel(marketplaceFront, socialAuthService, "")
|
||
Rel(marketplaceFront, penaDisk, "")
|
||
@enduml
|
||
....
|
||
```
|