add myoffice scripts

This commit is contained in:
aleksandr.vodyanov
2024-04-09 10:19:48 +03:00
parent 6596117571
commit 9f2c40e688
28 changed files with 1310 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
# PGS_AVATAR_SYNC
Скрипт использует Flask для REST API.
Позволяет при входе пользователей в CO обращаться на IPA сервер для получения фотографии пользователя, а затем, при необходимости, отправляет её в COAPI для обновления в профиле пользователя.
## Переменные окружения
| Название | Значение по умолчанию | Описание |
| ------------ | ---------------------------------------- | --------------------------------------------------- |
| CO_API_URL | "https://coapi.hyperus.team/api/v1/auth" | Конечная точка COAPI для работы с "profile/picture" |
| IPA_ADDRESS | ipa.hyperus.team | Адрес сервера IPA |
| IPA_LOGIN | automated.carbon | Учетная запись подключения к IPA |
| IPA_PASSWORD | - | Пароль учетной записи подключения к IPA |
## Установка
1. Собрать образ и запустить контейнер на сервере CO.
```bash
docker build . --build-arg FLASK_PORT=8085 --tag pgs_avatar_sync:0.0.1
docker run -d -e IPA_PASSWORD="securepassword" --name pgs_avatar_sync --network host --restart always pgs_avatar_sync:0.0.1
```
2. Добавить дополнительную обработку на стороне `openresty-lb-core-auth`:
#### `/opt/openresty/nginx/conf/co/lua/auth/co_auth_login.lua`
Ищем строку в конце файла (~60):
```lua
ngx.say(cjson.encode({ success = "true", token = token }));
```
Добавляем перед ней:
```lua
-- Send data for update avatars
local httpc = http:new();
local request = {
method = "POST",
body = cjson.encode({ login = login, token = token }),
headers = {
["Content-Type"] = "application/json; charset utf-8"
},
ssl_verify = false
};
--- Необходимо указать корректный порт, FLASK_PORT переданный при сборке
local avatar_res, avatar_err = httpc:request_uri("http://172.17.0.1:8085/avatar", request);
if not avatar_res then
ngx.log(ngx.ERR, "Request failed: ", avatar_err)
end
httpc:close();
ngx.log(ngx_INFO, "Update avatar for <" .. login .. ">.");
```