ВНИМАНИЕ: в общем случае, отдельную БД для безопасности создавать не нужно. В конфигурации источника данных security-ds в файле standalone.xml в качестве имени базы данных используйте базу данных приложения.
Предоставление необходимых прав для роли <your-project-security-role>
```
GRANT CREATE ON DATABASE "<your-project-db>" TO "<your-project-security-role>";
```
Создание таблицы shedlock для автосинхронизации
```
CREATE TABLE shedlock
(
name varchar not null
constraint tasks_lock_pkey
primary key,
lock_until timestamp,
locked_at timestamp,
locked_by varchar
);
comment on table shedlock is 'Таблица для синхронизации выполнения запланированных задач между нодами.';
ALTER TABLE shedlock
OWNER to "owner";
```
## Дополнительные ограничения базы секьюрити
Логин пользователя <user_account.username> и имена ролей <user_role.name> не должны совпадать, так как в ходе работы jbpm-а они сохраняются в одну и ту же таблицу.
Пример ошибки при совпадении: username = 'qa_test' и role_name = 'qa_test' (роль привязана к этому пользователю). Ошибка возникает при запуске любого процесса под этим пользователем.
(SELECT user_group_id FROM security.user_group WHERE name = '<your-admin-group>'),
(SELECT user_role_id FROM security.user_role WHERE name = 'Security - Role Admin'));
```
# Настройка браузера для входа в систему с помощью Kerberos
1. Запустите браузер firefox.
2.В адресной строке введите about:config, нажать кнопку "я принимаю на себя риск"
3.С помощью поиска найдите параметр network.negotiate-auth.trusted-uris и в качестве значения ввести домен(например для домена example.com надо ввести .example.com)
4. Откройте в браузере приложение. Пример http://app.example.com/ . Приложение должно открыться без запроса логина/пароля
# Восстановление структуры БД
На основе БД проекта с помощью jOOQ генерируются Java классы для каждого объекта БД. Это происходит по нажатию кнопки Обновить на панели БД в студии. При необходимости можно сформировать DDL на основе данных классов. Пример класса для генерации DDL
```
package ru.cg.webbpm.test_project.db_beans;
import org.jooq.*;
import org.jooq.impl.*;
public class Main {
public static void main (String args []) {
DefaultConfiguration defaultConfiguration = new DefaultConfiguration();
- этим способом нельзя восстановить функции/процедуры БД
см. также [https://www.jooq.org/doc/latest/manual/sql-building/ddl-statements/generating-ddl/](https://www.jooq.org/doc/latest/manual/sql-building/ddl-statements/generating-ddl/)
Если версия проекта содержит SNAPSHOT (например 1.0-SNAPSHOT), то при установке такой версии на сервере приложений будет запущена процедура остановки запущенных процессов данной версии. Этот режим удобен при отладке процесса на рабочем месте аналитика.
На боевом и тестовом стенде необходимо передавать дистрибутив проекта, с версией, которая не содержит SNAPSHOT. Например - 1.0
# Обновление платформы
## Обновления версии платформы
### С помощью студии
1. Откройте проект в студии. Версия платформы обновится автоматически
### Вручную
1. Обновите значение webbpm-platform.version в pom.xml. Пример
1. Измените версию платформы и backend модуля в файле [pom.xml](pom.xml) вашего проекта на нужную версию
2. Скопируйте ресурсы
```
из директории: webbpm-platform\components\resources\target\classes\
в директорию: {your-project}\packages\ru.cg.webbpm.packages.base.resources\
```
3. Скопируйте фронт
```
из директории: webbpm-platform\components\frontend\dist
в директорию: {your-project}\frontend\node_modules\@webbpm\base-package\
```
4. Запретите выполнение npm install при запуске студии. Для этого добавьте параметр `-DexecuteNpmInstall=false` в настройках Run/Debug Configurations студии