eveloth / ev-autoreg

A simple tool that provides autoregistration of issues for ExtraView service desk with Exchange mail server integration.
MIT License
10 stars 0 forks source link

EV Autoregistrar

EV Autoregistrar — это программа, связывающая корпоративный Exchange сервер и сервисдеск ExtraView, который используется, в частности, в таких компаниях как Pfizer, HP и других.

Этот сервис призван упросить обработку однотипных заявок, поступающих на сервисдеск, позволяя дежурному инженеру сконцентрироваться не на шаблонных действиях, необходимых для регистрации заявок и назначения их на отвественную группу, а на самой работе по заявкам.

Он позволяет устанавливать правила, по которым будут отбираться заявки для авторегистрации — как по простому вхождению подстрок, так и по регулярным выражениям, а также уточнять делали API-запроса, что актуально в том случае, если конкретная компания настроила сервер ExtraView определённым образом.

Возможности

Roadmap

Технологии

.NET 7, ASP.NET Core, PostgreSQL, Redis, gRPC, SignalR Core, Docker, Seq

Установка

Развёртывание приложения производится в два шага с использованием docker compose.

  1. Конфигурация

Конфигурация производится при помощи установки переменных окружения через файл .env.

Склонируйте проект и перейдите в его корневую директорию:

git clone https://github.com/eveloth/ev-autoreg.git
cd ev-autoreg

Скопируйте шаблон:

cp -v .envexample .env

Установите следующие минимально необходимые значения в секции #REQUIRED:

# REQUIRED

PG_PASS='' # Пароль от базы данных
REDIS__PASSWORD='' # Пароль для Redis
SYMMETRICSECURITYKEY='' # 128-ми битный симметричный ключ для шифрования учётных данных
JWT__KEY='' # Ключ подписи JWT токена

Если вы планируете использовать лог-аггрегатор Seq, установите также следующие значения:

SEQOPTIONS__SERVERURL='' # Адрес, по которому доступен Seq
SEQOPTIONS__APIKEY='' # API ключ
  1. Развёртка

Разверните приложение командой из корневой директории проекта:

docker compose up -d

Учётная запись суперадминистратора создаётся автоматически, учётные данные: admin@evautoreg.org / P@ssw0rd123. Рекомендуется сменить их сразу после установки. Приложение будет доступно по адресу http://localhost:7444, интерфейс и документация Swagger — http://localhost:7444/swagger/index.html при использовании настроек по умолчанию. Просматривать логи в реальном времени можно с помощью SignalR Core клиента по адресу http://localhost:7445/log или ws://localhost:7445/log при использовании вебсокетов как транспорта SignalR.

При развётрке на Windows рекомендуется использовать compose-файл compose-win.yaml - docker compose -f .\compose-win.yaml up -d.

Принцип работы приложения

Приложение состоит из двух сервисов — REST API для адмнистрирования и управления авторегистратором и самого авторегистратора.

Авторегистратор включает в себя минималистичный почтовый клиент, подключающийся к Exchange серверу, и анализатор заявок. Почтовый клиент анализирует входящие письма на предмет соответсвия их темы регулярному выражению, и в случае совпадения также с помощью регулярного выражения получает из темы письма ID поступившей заявки. После этого заявка загружается в память, а анализатор проверяет, соответствуют ли значения полей заявки правилам, которые указал пользователь. Каждое правило соответствует своему типу заявки, а для каждого типа заявки определены API-запросы к серверу ExtraView, которые выполняются в указанном порядке. Если заявка соответсвует правилам, она будет зарегистрирована и сохранена в базу данных для статистики.