#527: Обновление v4.3.x

Инструкция

ВАЖНО! Перед обновлением на v4.3.3 необходимо иметь версию Swarmica не ниже v4.2.0

Подготовка

Для обновления на версию v4.3.3 проверьте, что в конфигурационном файле .env поставлена версия v4.3.3:

~# grep VERSION .env
SW_FRONTEND_VERSION=v4.3.3
SW_BACKEND_VERSION=v4.3.3

Проверьте, что для сервиса postgres в docker-compose.yml установлен параметр shm_size: 1gb. Для нагруженных систем рекомендуется так же увеличить стандартные параметры work_mem, temp_buffers и shared_buffers согласно документации Postgres. то есть полностью секция сервиса postgres выглядит вот так:

  postgres:
    image: postgres:14.2-bullseye
    restart: always
    container_name: swarmica-postgres
    shm_size: 1gb
    command: postgres -N 1024 -c work_mem=8MB -c temp_buffers=16MB -c shared_buffers=1GB -c track_activity_query_size=16384
    volumes:
      - swarmica_postgres_data:/var/lib/postgresql/data:Z
      - swarmica_postgres_data_backups:/backups:z
    env_file:
      - .env

ВАЖНО! Проверьте файл docker-compose.yml на соответствие следующим инструкциям!

Перед редактированием файла обязательно сделайте копию:

cp docker-compose.yml{,.back-`date +%Y%m%d%H%M%S`}

Обновление

Будет прерывание сервиса на несколько минут, рекомендуется выполнять обновление в часы, когда использование системы минимально

Выполните обновление с перезагрузкой системы:

docker compose pull
docker compose up -d --remove-orphans

После обновления

После того, как все контейнеры запустятся и сервис станет доступен через веб-интерфейс, выполните пост-апгрейдные шаги:

1. Запустите команду выставления полей, связанных с последним комментарием, добавленным в тикет:

docker exec --env-file .env -it swarmica-django-1 python manage.py migrate_ticket_last_reply

2. Запустите команду пост-старт, чтобы обновить файлы статики, индексы поиска и выполнить другие необходимые процедуры:

docker exec --env-file .env -it swarmica-django-1 python manage.py post_start

Эта команда может занять долгое время, в зависимости от количества данных в системе.

3. После того, как все успешно обновлено и работоспособность проверена, можно удалить неиспользуемые данные docker для освобождения дискового пространства:

docker system prune -a

ВАЖНО! Убедитесь, что все контейнеры успешно запустились, перед запуском этой команды

Список изменений

Frontend

  • Feature #1340: enable inviting new users when email is not found in ticket requester
  • Feature #1342: Added filter copying
  • Feature #1349: Added a list of evaluated evaluations
  • Feature #1371: show original message when edit message
  • Feature #1375: Added a display state for list of related tickets in article
  • Feature #1377: Add admonitions support for the articles
  • Feature #1382: Added article comments pagination, moved add comment form to bottom of page
  • Feature #1384: refine pinned comments UI: expand attachments, add toggle title, fix truncation
  • Feature #1389: set default role filter in employees setting to exclude blocked users
  • Feature #1391: new mechanism for inserting style, script, etc
  • Feature #1392: diff article versions block
  • Feature #1405: make mail domain optional when creating an organization
  • Feature #1420: Supported 'last_reply_by', 'last_reply_at' in ticket filters
  • Feature #1421: Added qa to 'all employees' table in scorecards
  • Feature #1425: Supported vk channel in settings
  • Feature #1434: add ai_assistant parameter in session search and differentiate AI-assistant searches in session history
  • Feature #1441: save refresh token in refreshAuthToken function
  • Feature #1447: Supported swarmica license upload via UI
  • Bug #1383: Changed warning text in ticket
  • Bug #1394: Fixed a request to set/remove flag from an article when comment is empty
  • Bug #1396: Added a phone identity icon
  • Bug #1397: Fixed message when merging tickets
  • Bug #1407: Added icon for VK channel
  • Bug #1409: remove useMemo in localizedDate and preferenceLocalizedDate compoenents to prevent rendered more hooks error
  • Bug #1411: Convert HTML to Markdown when creating an article from a comment
  • Bug #1412: Fixed sla edit form
  • Bug #1413: resolve conflicts
  • Bug #1417: fix display of selected user in cf object
  • Bug #1418: fix double date display in article comments
  • Bug #1418: fix table style in view article
  • Bug #1422: Refresh an article when server sends an event
  • Bug #1424: Fixed button translations for aqi and lai evaluations
  • Bug #1427: fix error when last used filter in article was deleted
  • Bug #1428: Fixed display of attached files in ticket
  • Bug #1429: Added a slash to nodes request
  • Bug #1431: Fixed display of dates in article properties depending on settings
  • Bug #1432: Fixed icons in CommentCollapsedSwitch, created ArticleCommentsContainer
  • Bug #1437: Moved 'delete' button to the bottom of TicketKCSArticles widget
  • Bug #1439: resolve bug with search text vanishing on filter change
  • Bug #1442: fix ai search icon in ticket session search list
  • Bug #1444: clear ai search state after creating ticket or if solution article help
  • Bug #1448: Added a blank filter name when copying a filter
  • Bug #1449: Changed logic of button on register form
  • Bug #1450: Fix custom favicon
  • Bug #1451: invite user in requester search in ticket
  • Bug #1452: Added 'Evaluation' column for qa, aqi, lai to the table
  • Bug #1455: fix but not open on chat tab when open_chat=true in url

Backend

  • Feature #1922: Added telegram local bot server
  • Feature #1937: added outgoing email notification to logs
  • Feature #1941: updated dates in email footer fixture
  • Feature #1992: Removed startup errors if there are no environment variables for VK, and VK Channel was added to the documentation.
  • Feature #1995: added hyperlink to ticket in XLSX filter export
  • Feature #2000: The last_reply field has been added to Ticket, along with filtering options for last_reply_by and last_reply_at (__eq, __lte, __gte) in the API, exports, and query language.
  • Feature #2001: Made the mail_domains field optional when creating/updating an Organization
  • Feature #2002: JWT tokens lifetime now configurable from .env
  • Feature #2004: Added a WebSocket articles with notifications about viewers and article/revision changes.
  • Feature #2006: Added a command to set the last_reply field for all non-merged, non-deleted tickets.
  • Feature #2007: ai_assistant field added to SessionSearch model
  • Feature #2009: Added ordering by evaluated_at for aqi, lai, qa evaluations
  • Feature #2011: Added 5-star csatwidget fixture and move russian trusted certificate to MINCIFRY_CERT_PATH in settings
  • Feature #2012: Triggers now could be called for UserEvent
  • Feature #2015: Removed sending multiple messages with a single change and removed sending articleUpdated, articleRevisionAdded messages to the author of the changes
  • Feature #2016: Added the ability to configure ROTATE_REFRESH_TOKENS from env.
  • Feature #2026: add api for license object
  • Feature #2027: create_admin CLI tool
  • Feature #2032: added 'User created' event
  • Feature #2033: change url path for swarmica license api from /api/license to /api/swarmica_license
  • Feature #2036: Added channel retrieval by UID in send_test_email and added channel UID in the admin panel.
  • Feature #2038: The prompt for YandexGPT has been rewritten to be more concise.
  • Feature billmanager6#19: add ability to parse billing groups into custom field on account sync
  • Bug #1982: changed icontains search logic to use one queryset
  • Bug #1984: Added proper escaping in Yandex Tracker search query + precise search
  • Bug #1986: do not generate new code unless expired when sending account created notification when created from whatsapp, vk or telegram
  • Bug #1987: Removed ticket channel creation in the chat session to avoid sending combined comments after the chat session is closed.
  • Bug #1991: The caption for files is sent as a separate message in Telegram if the maximum length is exceeded.
  • Bug #1996: properly handle multiple choices for satisfaction_score in Ticket filters
  • Bug #1997: Removed copy-paste and unnecessary templates for VK.
  • Bug #1998: Fixed errors when switching routes for VkChannel.
  • Bug #1999: Added serializers for VkChannel
  • Bug #2003: Fixed export issue where multiple related fields referencing the same model were merged into one column
  • Bug #2005: Made it so that the last_reply_by field returns null if there is no value.
  • Bug #2017: Added qa to agent metrics
  • Bug #2018: Reworked conversion of HTML lists to text.
  • Bug #2019: improve html links parsing when sending message to whatsapp
  • Bug #2020: Added a check to ensure that the ticket's source is an email_channel before creating a ticket_channel with email_identity to avoid duplicating the same channel in the ticket.
  • Bug #2025: Added API call timeout for JIRA and YouTrack
  • Bug #2034: Fixed an issue with liking/disliking an article and disabled article signals during mock_data to prevent errors.
  • Bug #2037: clear instance cache on new license load