feat(dlp): implement case management service and DLP Review integration

This commit is contained in:
igor04091968
2026-05-13 03:08:53 +03:00
parent bc44052391
commit 28a4dae67f
11 changed files with 616 additions and 36 deletions
+63
View File
@@ -305,6 +305,9 @@
AW_DLP_POLICY_ENGINE_BIND_HOST={{ aw_dlp_policy_engine_bind_host }}
AW_DLP_POLICY_ENGINE_PORT={{ aw_dlp_policy_engine_port }}
AW_DLP_POLICY_ENGINE_DB_PATH={{ aw_dlp_policy_engine_db_path }}
AW_DLP_CASE_BIND_HOST={{ aw_dlp_case_bind_host }}
AW_DLP_CASE_PORT={{ aw_dlp_case_port }}
AW_DLP_CASE_DB_PATH={{ aw_dlp_case_db_path }}
XDG_DATA_HOME={{ aw_server_data_dir }}/.local/share
XDG_CONFIG_HOME={{ aw_server_data_dir }}/.config
@@ -478,6 +481,59 @@
mode: "0644"
when: aw_dlp_integrations_enabled | default(true) | bool
- name: Создать каталог DLP case management
ansible.builtin.file:
path: /opt/activitywatch/dlp-case-management
state: directory
owner: "{{ aw_server_user }}"
group: "{{ aw_server_group }}"
mode: "0755"
when: aw_dlp_case_management_enabled | default(true) | bool
- name: Скопировать файлы DLP case management
ansible.builtin.copy:
src: "{{ aw_repo_root }}/aw-server/dlp-case-management/{{ item }}"
dest: "/opt/activitywatch/dlp-case-management/{{ item }}"
owner: "{{ aw_server_user }}"
group: "{{ aw_server_group }}"
mode: "0644"
loop:
- case_service.py
- case_schema.py
- case_storage.py
- requirements.txt
when: aw_dlp_case_management_enabled | default(true) | bool
- name: Выставить executable для case_service
ansible.builtin.file:
path: /opt/activitywatch/dlp-case-management/case_service.py
owner: "{{ aw_server_user }}"
group: "{{ aw_server_group }}"
mode: "0755"
when: aw_dlp_case_management_enabled | default(true) | bool
- name: Создать virtualenv DLP case management
ansible.builtin.command:
cmd: python3 -m venv /opt/activitywatch/dlp-case-management/.venv
args:
creates: /opt/activitywatch/dlp-case-management/.venv/bin/python
when: aw_dlp_case_management_enabled | default(true) | bool
- name: Установить зависимости DLP case management
ansible.builtin.pip:
requirements: /opt/activitywatch/dlp-case-management/requirements.txt
virtualenv: /opt/activitywatch/dlp-case-management/.venv
when: aw_dlp_case_management_enabled | default(true) | bool
- name: Установить systemd unit DLP case management
ansible.builtin.copy:
src: "{{ aw_repo_root }}/aw-server/dlp-case-management/case-service.service"
dest: /etc/systemd/system/aw-dlp-case-management.service
owner: root
group: root
mode: "0644"
when: aw_dlp_case_management_enabled | default(true) | bool
- name: Установить скрипт AW worktime API
ansible.builtin.copy:
src: "{{ aw_repo_root }}/aw-server/aw-worktime-api.py"
@@ -575,6 +631,13 @@
state: restarted
when: aw_dlp_integrations_enabled | default(true) | bool
- name: Включить и перезапустить DLP case management
ansible.builtin.systemd:
name: aw-dlp-case-management.service
enabled: true
state: restarted
when: aw_dlp_case_management_enabled | default(true) | bool
- name: Включить и перезапустить AW worktime API
ansible.builtin.systemd:
name: aw-worktime-api.service
+1
View File
@@ -10,3 +10,4 @@
- role: dlp-policy-engine
- role: dlp-content-analysis
- role: dlp-integrations
- role: dlp-case-management
+4
View File
@@ -42,4 +42,8 @@ aw_dlp_policy_engine_port: 5601
aw_dlp_policy_engine_db_path: "{{ aw_server_data_dir }}/dlp-policy-engine.sqlite"
aw_dlp_content_analysis_enabled: true
aw_dlp_integrations_enabled: true
aw_dlp_case_management_enabled: true
aw_dlp_case_bind_host: "0.0.0.0"
aw_dlp_case_port: 5602
aw_dlp_case_db_path: "/opt/activitywatch/dlp-case-management/cases.db"
aw_server_post_deploy_health_check_enabled: true
+4
View File
@@ -33,6 +33,10 @@ aw_dlp_policy_engine_port: 5601
aw_dlp_policy_engine_db_path: "{{ aw_server_data_dir }}/dlp-policy-engine.sqlite"
aw_dlp_content_analysis_enabled: true
aw_dlp_integrations_enabled: true
aw_dlp_case_management_enabled: true
aw_dlp_case_bind_host: "0.0.0.0"
aw_dlp_case_port: 5602
aw_dlp_case_db_path: "/opt/activitywatch/dlp-case-management/cases.db"
aw_server_post_deploy_health_check_enabled: true
aw_worktime_from: "08:00"
@@ -0,0 +1,54 @@
---
- name: Ensure DLP case management directory
ansible.builtin.file:
path: /opt/activitywatch/dlp-case-management
state: directory
owner: "{{ aw_server_user | default('activitywatch') }}"
group: "{{ aw_server_group | default('activitywatch') }}"
mode: "0755"
- name: Copy DLP case management files
ansible.builtin.copy:
src: "{{ playbook_dir }}/../aw-server/dlp-case-management/{{ item }}"
dest: "/opt/activitywatch/dlp-case-management/{{ item }}"
owner: "{{ aw_server_user | default('activitywatch') }}"
group: "{{ aw_server_group | default('activitywatch') }}"
mode: "0644"
loop:
- case_service.py
- case_schema.py
- case_storage.py
- requirements.txt
- name: Make case service executable
ansible.builtin.file:
path: /opt/activitywatch/dlp-case-management/case_service.py
owner: "{{ aw_server_user | default('activitywatch') }}"
group: "{{ aw_server_group | default('activitywatch') }}"
mode: "0755"
- name: Create venv for DLP case management
ansible.builtin.command:
cmd: python3 -m venv /opt/activitywatch/dlp-case-management/.venv
args:
creates: /opt/activitywatch/dlp-case-management/.venv/bin/python
- name: Install Python dependencies for DLP case management
ansible.builtin.pip:
requirements: /opt/activitywatch/dlp-case-management/requirements.txt
virtualenv: /opt/activitywatch/dlp-case-management/.venv
- name: Install systemd unit DLP case management
ansible.builtin.copy:
src: "{{ playbook_dir }}/../aw-server/dlp-case-management/case-service.service"
dest: /etc/systemd/system/aw-dlp-case-management.service
owner: root
group: root
mode: "0644"
- name: Reload systemd and restart DLP case management
ansible.builtin.systemd:
name: aw-dlp-case-management.service
daemon_reload: true
enabled: true
state: restarted