# microws (АРМ Администрирования)

## Инструкция:
https://confluence.egovdev.ru/pages/viewpage.action?pageId=232850420

## запуск на UAT 
скачать исходники проекта:
```bash
git clone -b release/1.0.0 http://git.gosuslugi.local/pgs2/source/microws.git
```
cобрать образ, для этого в корне проекта выполнить:
```bash
docker build -t registry.gosuslugi.local/pgs2/microws2:1.0.0 --build-arg publicPath=/microws2 .
```
- _параметр для сборки - `publicPath` указывает на подкаталог в котором будет работать приложение. По умолчанию `/microws`_

выгрузить образ в хаб:
```bash
docker push registry.gosuslugi.local/pgs2/microws2:1.0.0
``` 
Выполнить установку через helm (пример для среды UAT):

```bash
helm upgrade --install microws2 microws2/ -f env/uat.yml -f env/uat/microws2.yml
Где:   
  microws2                - имя релиза (равно имени сервиса)   
  microws2/               - директория с чартом
  -f env/uat.yml          - файл с переменными для среды uat
  -f env/uat/microws2.yml - файл с переменными для сервиса microws2 в среде uat
```

## запуск на машине разработчика
Для того, чтобы запусть проект на машине разработчика, необходимо выполнить последовательные шаги:

1. Установить все зависимости;
2. Установить зависимости клиентов/сервисов;
3. Запустить проект.

### Для версии 2.3.40
в разделе инцидентов используется api Gateway
для его корректной работы необходимо:
значение переменной окружения `API_BASE_URL`
вручную записать с префиксом https://
в указанный конфиг гейтвея -
`config/krakend/krakend.json`

пример:
```json
{
  "extra_config": {
    "github_com/devopsfaith/krakend-cors": {
      "allow_origins": [
        "https://example.com"
      ]
    }
  }
}
```

### Установка всех зависимостей

```
yarn install
```

### Установка зависимостей клиентов/сервисов

```
yarn openapi:install-all
```

#### Пересоздание openapi с последующей установкой всех зависимостей

```
yarn openapi
```

#### Создание openapi для конкретных сервисов с последующей установкой всех зависимостей
Имена сервисов указываются в параметре --clients
```bash
npm run generatePaths --clients=idm,fias
```

### Запуск приложения с hot-reloads для разработчика

После выполнения данной команды проект должен запуститься и быть доступен по адресу: https://localhost:8080/microws/

```
yarn serve
```

### Компилирование и сборка файлов для production

```
yarn build
```

### Выполнение юнит-тестов

```
yarn test:unit
```

### Выполнение end-to-end тестов

```
yarn test:e2e
```

### Создание компонентов с помощью генератора

Таким способом можно создавать и другие сущности, которые позволяет создать генератор.

```
yarn new component component-name
```

### Создание сервисов от OpenAPI

// TODO: create yarn script to create a Service easier.

1. Put into ./src/services a new someServise.ts which have:

```
import * as OpenApi from '@openapi/s3urlsigner/src';
import Service from './Service';


export default new Service('some-auth', OpenApi);
```

2. put into ./src/state/modules/some/do.ts

```
import SomeService from '../services/someService';

export actions...

export const s3UrlSignerSignedMethods = mapActions('s3Urlsigner/signed', [...
```

### Создание docker-образа и запуск контейнера

Перед данной командой необходимо выполнить `yarn-build`.

```
yarn docker
```

### Кастомизация конфигураций

См. [Configuration Reference](https://cli.vuejs.org/config/).

#### GIT

- `git commit -m "PGSRUSH-666 mod myModule.Auth> Добавил возможность авторизации OAuth2"` - Коммит будет добавлен если пройдет валидацию ESLint.

- `numberIssue [add|fix|mod|del] module_or_file> Краткий комментарий`
  - **numberIssue** - Номер задачи * обязательный
  - **add** - Добавил модуль или отдельный файл
  - **fix** - Исправление багов
  - **mod** - Изменения (Наподрбии новых методов или свойств класса)
  - **del** - Что-то было удалено в коммите
  - **module_or_file** - Что было изменено. Название модуля или файла
  - Описание изменений.
- Примеры:
  - `PGSRUSH-666 mod eslint> Изменил пару правил`
  - `PGSRUSH-666 fix Исправил ошибки формата`
  - `PGSRUSH-666 Исправил ошибки формата`

## Logs

вот здесь можно смотреть в препроде записи в кафке. http://kafkadrop-tmp-219385011.eu-west-1.elb.amazonaws.com/topic/apps-notifier.message.send.push/messages?partition=2&offset=2642&count=1&keyFormat=DEFAULT&format=DEFAULT

это топик по пушам. смотреть надо все три партиции. учти, что timestamp в UTC
и записи одновременно выводятся не более чем по 100 штук. записи в пушах летят быстро. я когда вчерашние искал, просто по 100 назад шел и смотрел на время в первой. позже нашего - значит еще на 100 назад
если пуш не отправится, он упадет в http://kafkadrop-tmp-219385011.eu-west-1.elb.amazonaws.com/topic/apps-notifier.message.error.push/messages?partition=1&offset=0&count=100&keyFormat=DEFAULT&format=DEFAULT проверь на всякий случай. но вообще там не было наших, проверил (edited)
сервисом отправки push уведомлений по websocket занимается Виталий.
логи сервиса wokrkow смотреть в http://k8s.pgsp.devsun.ru/
вот здесь указан токен к нему https://conf.devsun.ru/pages/viewpage.action?pageId=81463274
выбирай namespace apps и под workflow-serive . там есть кнопка скачать лог , удобнее . иначе нужно проматывать по экранам

### ПГС. Пред-Прод.

https://conf.devsun.ru/pages/viewpage.action?pageId=81463274
