InfoGrab DocsInfoGrab Docs

v12 변경 로그

요약

플랫폼 및 OS 범위는 보고되고 테스트된 환경을 반영하며, 영향을 받는 모든 구성을 나타내지는 않을 수 있습니다. config.json에 새 설정 옵션이 추가되었습니다. 최신 릴리즈의 주요 내용은 이 블로그 게시물을 참조하세요.

Important
  • Mattermost Server v10.11 ESR (연장 지원 릴리즈) 지원은 2026년 8월 15일에 수명 주기가 종료되었습니다. Mattermost Server v11.7 이상으로 업그레이드해야 합니다.
  • 한 ESR(연장 지원 릴리즈)에서 다음 ESR(major -> major_next)로의 업그레이드는 완전히 지원되고 테스트되었습니다. 그러나 여러 ESR 버전을 건너뛰는 업그레이드(major에서 major+2)는 지원되지만 테스트되지는 않았습니다. 버전을 건너뛸 계획이라면 ESR 릴리즈 간에만 업그레이드할 것을 강력히 권장합니다. 예를 들어 v8.1 ESR에서 업그레이드하는 경우, v10.11 ESR 또는 v11.7 ESR로 업그레이드하기 전에 v9.5 ESR 또는 v9.11 ESR로 업그레이드하세요.
  • 최신 릴리즈로 업그레이드하는 방법에 대한 자세한 내용은 중요 업그레이드 참고 사항 문서를 참조하세요.
  • 예정된 릴리즈에 대한 자세한 내용은 진행 중인 체인지로그를 참조하세요.
  • 모든 Mattermost 사용자는 계정을 만들거나 Mattermost에 접근할 때 Mattermost의 허용 가능한 사용 정책 및 개인정보 처리방침에 동의해야 합니다. 셀프 호스팅 배포를 포함해 Mattermost 구독을 보유한 고객의 경우, 조직은 Mattermost와의 계약 조건에 따라 Mattermost 시스템 콘솔에서 허용 가능한 사용 정책을 자체 허용 가능한 사용 또는 행동 정책으로 교체하거나 재정의할 수 있습니다. 단, 자체 정책에는 허용 가능한 사용 정책을 포함하거나 동등한 조건을 포함해야 합니다. 제공하는 서비스의 사용을 위해 기본 링크를 변경하여 자체 약관을 추가하는 경우, 최종 사용자가 Mattermost 소프트웨어에 대한 Mattermost 허용 가능한 사용 정책을 인지할 수 있도록 새 약관에 기본 약관 링크를 포함해야 합니다.
Note

플랫폼 및 OS 범위는 보고되고 테스트된 환경을 반영하며, 영향을 받는 모든 구성을 나타내지는 않을 수 있습니다.

릴리즈 v12.0 - 메이저 릴리즈#

릴리즈 날짜: 2026-10-16

Important

호환성을 깨는 변경

  • 이 릴리즈에는 message 칼럼을 VARCHAR(65535)에서 VARCHAR(1048576)으로 확장하여 최대 메시지 길이를 16,383자에서 262,144자로 늘리는 데이터베이스 마이그레이션이 포함되어 있습니다. 메시지 길이 제한은 최대 4바이트 문자를 허용하기 위해 칼럼 크기의 4분의 1입니다. 지원되는 PostgreSQL 버전에서 VARCHAR 확장은 메타데이터만 변경하지만, 마이그레이션은 posts를 포함한 영향받는 각 테이블에 짧은 시간 동안 ACCESS EXCLUSIVE 잠금을 획득합니다. 이 잠금 획득은 활성 상태이거나 트랜잭션 중 유휴 상태인 데이터베이스 세션 때문에 지연될 수 있으며, 잠금 대기 중에는 해당 테이블에 대한 읽기와 쓰기가 대기합니다. 잠금 시간을 짧게 유지하기 위해 게시물 메시지의 전체 텍스트 인덱스(idx_posts_message_txt)는 칼럼을 확장하기 전에 삭제되고 이후 마이그레이션에서 동시에 다시 빌드되므로, 다시 빌드가 완료될 때까지 게시물의 데이터베이스 전체 텍스트 검색은 이 인덱스 없이 실행됩니다. 규모가 크거나 사용량이 많은 배포 환경에서는 마이그레이션을 테스트하고 유지 보수 시간대를 예약하세요.
  • 여러 사전 패키지 플러그인이 이 릴리즈에서 오류 없이 실행되려면 변경이 필요하여 v12.0에서 메이저 버전 업데이트를 받았습니다. v12.0용으로 다시 빌드되지 않은 웹 앱 플러그인은 런타임 오류를 방지하기 위해 활성화가 차단될 수 있습니다. 업그레이드하기 전에 커뮤니티에서 제작한 플러그인은 v12.0을 지원하는 릴리즈로 업데이트하고, 자체 제작한 플러그인은 v12.0 기준으로 다시 빌드하여 테스트하세요. 해당 버전에서 제거된 API와 플러그인 업데이트용 codemod는 이 섹션의 React 19 안내를 참조하세요.
  • RHEL 7과 RHEL 8 지원이 중단되었습니다. 이제 서버 바이너리에는 glibc 2.34 이상이 필요합니다(Linux에서 보고됨).
  • OpenSearch 1.x 지원이 중단되었습니다. 이제 Mattermost에는 OpenSearch 2.x 이상이 필요하며, 지원되지 않는 버전에 연결되면 시작 시 오류를 기록합니다.
  • atmos/camo는 더 이상 이미지 프록시로 지원되지 않습니다. ImageProxySettings.ImageProxyType이 atmos/camo로 설정되어 있으면 서버가 시작 시 이를 자동으로 local로 변경하고 경고를 기록합니다. 이미지 프록시가 활성화되어 있으면 이미지는 외부 atmos/camo 서비스 대신 Mattermost 서버가 직접 프록시하므로, 서버가 이미지를 불러오는 외부 호스트에 접근할 수 있어야 합니다. RemoteImageProxyURL과 RemoteImageProxyOptions 설정도 제거되었으며 무시됩니다.
  • 지원되는 최소 PostgreSQL 버전은 이제 v15입니다. PostgreSQL v14 이하는 더 이상 지원되지 않습니다.
  • MoveThreadsEnabled 기능 플래그는 더 이상 지원되지 않습니다. 이 플래그가 활성화되어 있으면 서버가 시작 시 이를 끄고 경고를 기록합니다. 대신 https://github.com/mattermost/mattermost-plugin-wrangler 를 사용하세요.
  • AppsEnabled 기능 플래그는 더 이상 지원되지 않습니다. 이 플래그가 true로 설정되어 있으면 서버가 시작 시 이를 끄고 경고를 기록합니다.
  • 더 이상 사용되지 않는 기본 제공 Slack 가져오기 API와 CLI가 제거되었습니다. POST /teams/{team_id}/import 엔드포인트와 mattermost import slack 명령어는 더 이상 사용할 수 없습니다. 대신 mmetl 도구와 mmctl import를 사용하세요.
  • 더 이상 사용되지 않는 Slack 호환 타입 별칭과 함수(SlackAttachment, SlackAttachmentField, ParseSlackAttachment, StringifySlackFieldValue)가 Go 패키지에서 제거되었습니다. 대신 MessageAttachment, MessageAttachmentField, ParseMessageAttachment, StringifyMessageAttachmentFieldValue를 사용하세요.
  • POST /api/v4/logs/query API는 이제 date_from 또는 date_to가 비어 있지 않은 값이면서 "2006-01-02 15:04:05.999 -07:00" 레이아웃으로 파싱할 수 없는 경우 HTTP 400을 반환합니다. 이전에는 이러한 값이 조용히 무시되고 요청이 필터링되지 않은 결과와 함께 HTTP 200을 반환했습니다. 빈 값은 계속해서 "제한 없음"을 의미합니다.
  • GET /api/v4/license/client 엔드포인트에서 필수 format 쿼리 매개변수가 제거되었습니다. 이제 이 엔드포인트는 형식을 지정하지 않아도 클라이언트 라이선스 정보를 반환합니다.
  • EnableConcurrentReact 기능 플래그가 제거되었습니다. 이제 웹 앱은 항상 동시 실행(concurrent) React로 렌더링합니다.
  • 게시물 ID 및 표시 재정의 속성(from_webhook, from_bot, from_oauth_app, from_plugin, override_username, override_icon_url, override_icon_emoji, webhook_display_name)은 더 이상 일반 사용자 또는 개인 액세스 토큰 세션에서 허용되지 않습니다. 이 속성은 생성 및 업데이트 시 제거되며, 검증된 연동(재정의의 경우 인커밍 웹훅과 슬래시 명령어, from_* 표식의 경우 봇, OAuth, 플러그인)에만 다시 적용됩니다. 사용자 개인 액세스 토큰으로 from_webhook과 override_*를 위조하여 사용자 지정 이름이나 아이콘으로 게시하던 스크립트는 봇 계정 또는 인커밍 웹훅으로 이전해야 합니다. EnableHardenedMode는 더 이상 예약된 게시물 속성을 HTTP 400으로 거부하지 않으며, 로그인, MFA, 비밀번호 재설정, 5xx 오류 정보 제거만 계속 제어합니다.
  • 더 이상 사용되지 않는 대화 상자의 날짜 및 날짜/시간 필드가 제거되었습니다. 최상위 min_date, max_date, time_interval과 datetime_config.allow_manual_time_entry는 더 이상 허용되지 않으며, 대신 datetime_config(manual_time_entry 포함)를 사용하세요. 기존 키는 조용히 무시됩니다.
  • 속성 기반 액세스 정책이 적용된 채널 또는 팀에 멤버를 자동으로 추가하는 설정은 이제 정책의 활성 플래그 대신 정책의 멤버십 규칙에 저장되며, 채널별 및 팀별로 설정됩니다. 기존 설정은 자동으로 마이그레이션됩니다. PUT /api/v4/access_control_policies를 사용하여 active 필드로 자동 추가를 제어하던 클라이언트는 대신 멤버십 규칙의 auto_add 메타데이터를 설정해야 합니다. /access_control_policies/activate 엔드포인트는 변경 없이 계속 작동합니다(웹 앱에서 보고됨).
  • 옵션이 1000개를 초과하는 커스텀 속성 필드는 이제 옵션 목록 대신 개수를 직렬화합니다.
  • EmailSettings 로그인 버튼 색상 설정과 함께 EmailLoginButtonColor, EmailLoginButtonBorderColor, EmailLoginButtonTextColor 클라이언트 구성 필드가 제거되었습니다. 이 필드는 어떤 클라이언트에서도 적용된 적이 없습니다.
  • 채널 멤버 API 엔드포인트는 이제 다른 사용자의 멤버십에 대해 last_viewed_at과 last_update_at을 반환하지 않습니다. 이전에는 유효하지 않은 값 -1을 반환했으며, 이제 이 필드는 요청자가 아닌 다른 사용자의 멤버십인 경우 응답에서 완전히 생략됩니다. 다른 사용자에 대해 이 필드를 읽는 클라이언트는 필드가 없는 경우를 처리해야 합니다(Linux에서 보고됨).
  • 사용되지 않는 구성 설정이 제거되었습니다: ElasticsearchSettings.BulkIndexingTimeWindowSeconds, ClusterSettings.EnableExperimentalGossipEncryption, ExperimentalSettings.ClientSideCertEnable, TeamSettings.ExperimentalViewArchivedChannels, CloudSettings.CWSMock, PluginSettings.ChimeraOAuthProxyURL, DataRetentionSettings.EnableBoardsDeletion, DataRetentionSettings.BoardsRetentionDays, SqlSettings.AtRestEncryptKey, NativeAppSettings.EnableIntuneMAM, GuestAccountsSettings.AllowEmailAccounts. 기존 config.json에 남아 있는 제거된 필드는 무시되고 서버가 정상적으로 시작되므로 구성을 변경할 필요가 없습니다. NativeAppSettings.EnableIntuneMAM을 사용하던 관리자는 대신 IntuneSettings.Enable을 사용해야 합니다.
  • Mattermost 웹 앱과 데스크톱 앱은 React 19를 기반으로 빌드됩니다. 웹 앱(프런트엔드) 컴포넌트를 등록하는 플러그인만 영향을 받으며, 서버 전용 플러그인은 영향을 받지 않습니다. 웹 앱 플러그인은 웹 앱이 제공하는 React 버전을 사용하므로, 다시 빌드하지 않아도 해당 컴포넌트가 React 19에서 렌더링됩니다. React 19에서 제거된 API(ReactDOM.findDOMNode, 함수 컴포넌트의 propTypes/defaultProps, 레거시 Context, 문자열 ref)를 호출하거나 레거시 동기 렌더링에 의존하는 플러그인은 작동하지 않을 수 있습니다. 영향을 받는 플러그인에 npx codemod@latest react/19/migration-recipe를 실행하고 제거된 API 사용을 수정하세요. 자세한 내용은 포럼 게시물을 참조하세요.
  • Enterprise 플랜에서 System Console > System Attributes > User Attributes 페이지가 제거되었습니다. 기존 커스텀 프로필 속성(사용자 속성) 필드는 서버 시작 시 속성 관리로 자동 마이그레이션되며, v12.0부터 그곳에서 관리됩니다. 이전 페이지의 URL은 속성 관리로 리디렉션됩니다.
  • 필드가 속성 관리 템플릿에 연결되어 있으면 /api/v4/custom_profile_attributes/fields/{field_id}에 대한 PATCH 및 DELETE 요청이 이제 HTTP 400을 반환하며, 오류 메시지는 전역 속성 API를 안내합니다. Enterprise 플랜에서는 대상이 되는 기존 사용자 속성 필드가 서버 시작 시 템플릿에 자동으로 연결되므로, 사용자 속성 API로 이러한 필드를 편집하거나 삭제하던 스크립트와 연동은 대신 전역 속성 API를 사용해야 합니다.
  • LocalizationSettings.EnableExperimentalLocales 구성 설정이 제거되었으며, 이 설정이 노출하던 작업 중인 번역 카탈로그 대부분도 함께 제거되었습니다. 이제 덴마크어가 지원 언어이며, 체코어, 크로아티아어, 핀란드어, 리투아니아어, 노르웨이어 보크몰, 포르투갈어(포르투갈)는 이 설정 없이도 모든 사용자가 실험적 언어로 사용할 수 있습니다. 제거된 다른 언어를 선택했던 사용자에게는 Mattermost가 영어로 표시됩니다. 이 설정이 기존 config.json에 남아 있어도 무시됩니다.
  • 벨라루스어가 제거되었습니다. 벨라루스어를 선택했던 사용자에게는 이제 기본 언어가 표시됩니다.
  • ServiceSettings.ExperimentalEnableHardenedMode는 더 이상 사용되지 않으며 ServiceSettings.EnableHardenedMode로 대체되었습니다. 이 설정은 System Console > Experimental > Features에서 System Console > Environment > Web Server로 이동했습니다. 기존 값은 업그레이드 시 EnableHardenedMode로 자동 이전됩니다. 그 이후 서버는 EnableHardenedMode만 읽으므로, 이전 설정을 계속 지정하는 구성 관리 도구, 환경 변수, 스크립트가 있다면 업데이트하세요.

업그레이드 영향#

데이터베이스 스키마 변경#

  • channelmembers의 부분 인덱스 idx_channelmembers_autotranslation_enabled를 CONCURRENTLY를 사용하여 차단 없이 삭제했습니다. 다운타임이나 쿼리 정확성에 대한 영향은 예상되지 않습니다.
  • 마이그레이션 000215는 테이블 재작성 없이 카탈로그만 변경하는 빠른 작업으로 channelmembers에서 오래전부터 사용되지 않던 autotranslation 칼럼을 제거했으며, 잠금 영향은 최소입니다.
  • 독립적인 ABAC 속성 쿼리를 위해 AttributeView 구체화된 뷰를 UserAttributeView와 ChannelAttributeView로 분리했습니다. 해당 테이블은 기능 플래그로 제어되며 프로덕션에서 비어 있으므로 성능 영향은 예상되지 않습니다.
  • posts, drafts, scheduledposts, temporaryposts의 message 칼럼 제한을 65,535자에서 1,048,576자로 늘려 최대 메시지 길이를 16,383자에서 262,144자로 높였습니다. 마이그레이션 중에는 각 테이블에 짧은 ACCESS EXCLUSIVE 잠금이 걸릴 수 있습니다. 이 잠금 획득은 활성 상태이거나 트랜잭션 중 유휴 상태인 데이터베이스 세션 때문에 지연될 수 있으며, 읽기와 쓰기가 일시적으로 차단될 수 있습니다. 전체 텍스트 인덱스 idx_posts_message_txt는 posts.message를 확장하기 전에 삭제되므로, Postgres가 잠금을 보유한 상태에서 이 인덱스를 다시 빌드하지 않습니다.
  • 마이그레이션 000234는 CREATE INDEX CONCURRENTLY를 사용하여 읽기와 쓰기를 차단하지 않고 posts의 전체 텍스트 인덱스 idx_posts_message_txt를 다시 생성합니다. 인덱스 빌드가 완료될 때까지 게시물의 데이터베이스 전체 텍스트 검색은 이 인덱스 없이 실행됩니다.
  • 게시물 전달 추적을 지원하기 위해 ChannelId에 고유 인덱스가 있는 새 PostDeliveryTrackingChannels 테이블을 추가했습니다. 기존 테이블이나 쿼리에는 영향이 없습니다.
  • 다운타임 없이 파일 쿼리 성능을 개선하기 위해 CONCURRENTLY를 사용하여 Fileinfo(CreateAt, Id)에 복합 인덱스 idx_fileinfo_create_at_id를 추가했습니다.
  • 커서 기반 페이지네이션을 가속하기 위해 Channels (CreateAt, Id)에 복합 인덱스 idx_channels_create_at_id를 추가했습니다. 다운타임은 예상되지 않으며 동시 작업에 대한 영향은 최소입니다.
  • 채널별 입장/퇴장 메시지 숨김을 지원하기 위해 Channels 테이블에 DisableJoinLeaveMessages 부울 칼럼을 추가했습니다. 테이블 재작성이 없는 메타데이터 전용 변경이며 다운타임 영향은 무시할 수 있는 수준입니다.
  • 새 속성 필드 변형을 지원하기 위해 property_field_type 열거형에 graph 값을 추가했습니다. 사용자 테이블은 영향을 받지 않으며 실행 중인 시스템에 대한 영향은 무시할 수 있는 수준입니다.
  • 마이그레이션 000223은 PropertyFields의 JSON 블롭에 있던 속성 필드 옵션을 새 PropertyOptions와 PropertyOptionEdges 테이블로 추출하고 UserAttributeView와 ChannelAttributeView를 다시 빌드했습니다. PropertyValues 테이블이 큰 배포 환경에서는 마이그레이션 중에 해당 뷰에서 짧은 쿼리 지연이 발생할 수 있습니다.
  • 읽기/쓰기 영향 없이 활성 속성 옵션의 키셋 페이지네이션을 가속하기 위해 PropertyOptions(FieldID, CreateAt, ID) WHERE DeleteAt = 0에 부분 복합 인덱스 idx_propertyoptions_fieldid_createat_id를 추가했습니다.
  • 속성 시스템 내 이름 확인 조회 속도를 높이기 위해 PropertyOptions(FieldID, Name) WHERE DeleteAt = 0에 부분 복합 인덱스 idx_propertyoptions_fieldid_name을 추가했습니다. 다운타임은 필요하지 않습니다.
  • 읽기/쓰기 영향 없이 필드 범위의 속성 옵션 계층 구조 탐색을 가속하기 위해 PropertyOptionEdges (FieldID, ParentOptionID, ChildOptionID)에 차단 없는 복합 인덱스를 추가했습니다.
  • AccessControlPolicies 멤버십 규칙에 auto_add: "always" 메타데이터를 채워 넣어, 자동 멤버 추가 동작을 Active 칼럼에서 규칙별 메타데이터로 이전했습니다. 성능 영향은 없습니다.
  • 다운타임이나 잠금 영향 없이 액세스 제어 정책 멤버십 조회 속도를 높이기 위해 AccessControlPolicies(Data -> 'rules')에 GIN 인덱스 idx_access_control_policies_rules를 추가했습니다.
  • jsonb_path_ops를 사용하여 AccessControlPolicies(Data -> 'imports')에 GIN 인덱스를 추가함으로써 imports 포함 쿼리의 순차 스캔을 없앴습니다. 일반 트래픽에 대한 다운타임이나 잠금 영향은 없습니다.
  • 사용자가 아니거나 템플릿이 아닌 모든 행의 PropertyFields에 있는 Attrs JSONB 칼럼에서 오래된 ldap 및 saml 키를 제거했습니다. 되돌릴 수 없는 데이터 정리 작업이며 예상되는 다운타임은 없지만, 인덱스가 없는 배포 환경에서는 전체 테이블 스캔이 발생할 수 있습니다.
  • CREATE INDEX CONCURRENTLY를 사용하여 posts(message)에 GIN 전체 텍스트 index idx_posts_message_txt를 추가했습니다. 대규모 배포 환경에서는 다운타임 없이 I/O 부하가 큰 장시간 빌드가 진행될 수 있습니다.

config.json#

config.json에 새 설정 옵션이 추가되었습니다. 아래는 추가된 항목과 설치 시 기본값 목록입니다. 이 설정은 config.json 또는 사용 가능한 경우 System Console에서 수정할 수 있습니다.

  • 모든 플랜의 변경 사항:
    • ServiceSettings.EnableHardenedMode 구성 설정을 추가했습니다. Enable Hardened Mode 설정이 System Console > Experimental > Features에서 System Console > Environment > Web Server로 이동했습니다(Linux 및 Chromium에서 보고됨).
    • ImageProxySettings.RemoteImageProxyOptions 구성 설정을 제거했습니다.
    • ImageProxySettings.RemoteImageProxyURL 구성 설정을 제거했습니다.
    • EmailSettings.LoginButtonBorderColor 구성 설정을 제거했습니다.
    • EmailSettings.LoginButtonColor 구성 설정을 제거했습니다.
    • EmailSettings.LoginButtonTextColor 구성 설정을 제거했습니다.
    • LocalizationSettings.EnableExperimentalLocales 구성 설정과 이 설정이 노출하던 작업 중인 번역 카탈로그 대부분을 제거했습니다. 덴마크어와 실험적 언어 6개는 이 설정 없이도 선택할 수 있습니다. 이 설정이 기존 config.json에 남아 있어도 무시됩니다.
    • 다음 구성 설정을 제거했습니다:
      • TeamSettings.ExperimentalViewArchivedChannels
      • CloudSettings.CWSMock
      • PluginSettings.ChimeraOAuthProxyURL
      • SqlSettings.AtRestEncryptKey
      • GuestAccountsSettings.AllowEmailAccounts
    • "Enable User Typing Messages" 및 "User Typing Timeout" 설정을 System Console > Experimental > Features에서 System Console > Site Configuration > Posts로 이동했습니다.
    • Email Batching Buffer Size, Email Batching Interval, Use Channel Name in Email Notifications 설정을 System Console > Experimental > Features에서 System Console > Site Configuration > Notifications로 이동했습니다.
    • 계정 비활성화 활성화 및 사용자 상태 자리 비움 제한 시간 설정(TeamSettings.EnableUserDeactivation 및 TeamSettings.UserStatusAwayTimeout)을 System Console > Experimental > Features에서 System Console > Site Configuration > Users and Teams로 이동했습니다.
    • 채널 조회 WebSocket 메시지 활성화 설정(ServiceSettings.EnableChannelViewedMessages)을 System Console > Experimental > Features에서 System Console > Environment > Web Server로 이동했습니다.
    • Enable Tutorial 및 Enable Onboarding 설정을 System Console > Experimental > Features에서 System Console > Site Configuration > Customization으로 이동했습니다.
    • atmos/camo 원격 이미지 프록시 유형을 제거했습니다. ImageProxySettings.ImageProxyType이 atmos/camo로 설정된 배포 환경은 업그레이드 시 자동으로 local로 변경되며 경고가 기록됩니다.
    • ServiceSettings.WebserverMode는 이제 nogzip 대신 System Console에서 저장하는 값인 uncompressed를 허용합니다. 인식할 수 없는 값은 시작 시 uncompressed로 대체되며, 이는 이전 버전에서 해당 값을 처리하던 방식과 같습니다.
  • Professional, Enterprise, Enterprise Advanced 플랜의 변경 사항:
    • ThemeSettings.AllowedThemes를 System Console > Site Configuration > Customization에 추가했습니다. 이전에는 config.json을 직접 편집해야만 구성할 수 있었습니다.
    • Enable Theme Selection, Allow Custom Themes, Default Theme 설정을 System Console > Experimental > Features에서 System Console > Site Configuration > Customization으로 이동했습니다.
  • Entry 및 Enterprise Advanced 플랜의 변경 사항:
    • NativeAppSettings.EnableIntuneMAM 구성 설정을 제거했습니다. 대신 IntuneSettings.Enable을 사용하세요.
  • Enterprise 및 Enterprise Advanced 플랜의 변경 사항:
    • Global Relay EML 컴플라이언스 내보내기에 고정 보낸 사람(From) 주소를 선택적으로 지정하는 MessageExportSettings.GlobalRelaySettings.SenderAddress 구성 설정을 추가했습니다.
    • 다음 구성 설정을 제거했습니다:
      • ElasticsearchSettings.BulkIndexingTimeWindowSeconds
      • ClusterSettings.EnableExperimentalGossipEncryption
      • ExperimentalSettings.ClientSideCertEnable
      • DataRetentionSettings.EnableBoardsDeletion
      • DataRetentionSettings.BoardsRetentionDays
  • Enterprise Advanced 플랜의 변경 사항:
    • 게시물 전달 감사 로깅을 제어하는 DeliveryTrackingSettings.Enable(기본값 false)과 DeliveryTrackingSettings.EnableForAllChannels(기본값 true) 구성 설정을 추가했습니다.

호환성#

  • 지원되는 최소 macOS 버전을 15 이상으로, 지원되는 최소 Safari 버전을 27 이상으로 업데이트했습니다. 이전 버전은 데스크톱 앱과 웹 앱에서 더 이상 지원되지 않습니다. 자세한 내용은 소프트웨어 및 하드웨어 요구 사항 문서를 참조하세요.

개선 사항#

최신 릴리즈의 주요 내용은 이 블로그 게시물을 참조하세요.

사용자 인터페이스#

  • 사전 패키지 Calls 플러그인 버전 v1.12.5.
  • 사전 패키지 Dataminr 플러그인 버전 v2.0.0.
  • 사전 패키지 GitLab 플러그인 버전 v2.0.0.
  • 사전 패키지 Zoom 플러그인 버전 v2.0.0.
  • 사전 패키지 GitHub 플러그인 버전 v3.0.0.
  • 사전 패키지 Legal Hold 플러그인 버전 v1.1.6.
  • 사전 패키지 Playbooks 플러그인 버전 v2.12.1.
  • 사전 패키지 MS Calendar 플러그인 버전 v2.0.0.
  • 사전 패키지 MS Teams Meetings 플러그인 버전 v3.0.0.
  • 사전 패키지 Boards 플러그인 버전 v10.0.0.
  • 사전 패키지 Agents 플러그인 버전 2.9.0.
  • 사전 패키지 Jira 플러그인 버전 v5.0.0.
  • 웹 앱을 React 19로 업데이트하고 동시 렌더링을 기본으로 활성화했습니다.
  • 새로 생성된 개인 액세스 토큰과 봇 액세스 토큰에 복사 버튼을 추가했습니다.
  • OpenGraph 이미지 미리보기를 숨기고 표시하는 버튼에 접근성 레이블을 추가했습니다.
  • 두 가지 새로운 대화형 대화 상자 요소 유형인 checkbox_group(여러 항목을 선택하는 체크박스 목록)과 checkbox_matrix(행과 칼럼을 구성할 수 있고 행별로 단일 또는 다중 선택을 지원하는 체크박스 격자)를 추가했습니다. 두 유형 모두 새로운 label_position 옵션을 지원하며, 이 옵션은 라디오 및 bool 요소에서도 사용할 수 있습니다.
  • 대화형 대화 상자 제목의 최대 길이를 24자에서 80자로 늘렸습니다.
  • 디자인 사양에 맞추어 게시물의 단일 이미지 미리보기 너비를 700px로 제한했습니다.
  • 구성된 로케일을 사용할 수 없을 때 디스플레이 설정이 영어로 대체되도록 업데이트했습니다.
  • 불가리아어, 중국어(간체 및 번체), 네덜란드어, 영어(호주), 프랑스어, 독일어, 헝가리어, 이탈리아어, 일본어, 한국어, 페르시아어, 폴란드어, 포르투갈어(브라질), 루마니아어, 러시아어, 스페인어, 스웨덴어, 터키어, 우크라이나어, 베트남어 카탈로그에 누락된 번역을 추가했습니다.
  • 덴마크어를 지원 언어로 추가하고, 체코어, 크로아티아어, 핀란드어, 리투아니아어, 노르웨이어 보크몰, 포르투갈어(포르투갈)를 Settings > Display > Language의 실험적 언어로 추가했습니다.
  • 벨라루스어를 제거했습니다. 벨라루스어를 선택했던 사용자에게는 이제 기본 언어가 표시됩니다.
  • 범위가 지정된 마이그레이션으로 생성되어 관리자 검토를 기다리는 계정을 식별할 수 있도록 사용자 프로필에 IMPORTED - INACTIVE 태그를 추가했습니다.
  • 채널 관리자는 이제 Channel Settings > Configuration에서 채널별로 입장/퇴장 시스템 메시지를 숨길 수 있습니다. 게시물은 저장되며 설정을 다시 활성화하면 다시 표시됩니다.
  • 채널 헤더와 스레드 오른쪽 사이드바의 채널 속성 칩을 개선하고 System Console 속성 사용자 인터페이스를 다듬었습니다.
  • 채널 정보의 채널 속성 칩 스타일을 개선하고, 채널 이름이 잘릴 때 칩이 깜박이지 않도록 채널 헤더의 속성 레이블 오버플로를 안정화했습니다.
  • 예약, 알림, 사용자 지정 시간 계산이 브리티시컬럼비아, 앨버타, 노스웨스트 준주, 모로코에 대한 2026년 규칙을 사용하도록 moment-timezone을 0.6.4(IANA tzdata 2026d)로 업데이트했습니다.

플러그인/연동#

  • 서버 라이선스가 변경될 때 호출되는 플러그인 훅 OnLicenseChanged를 추가했습니다.
  • 세션 범위의 파일 작업 정책 검사를 위한 플러그인 API 메서드를 추가했습니다.
  • 컨텍스트 인식 플러그인이 수행하는 서버-플러그인 및 플러그인 간 HTTP 요청에 대해 요청 기한과 취소 전파를 추가했습니다.
  • 프로덕션 호스트에서의 개발용 JSX 지원을 포함하여, 웹 앱 플러그인을 위한 공유 React JSX 런타임 내보내기를 추가했습니다.
  • Mattermost 라이선스와 함께 구매하며 라이선스가 허용할 때만 실행되는 플러그인인 라이선스 애드온에 대한 지원을 추가했습니다.
  • 향후 React 업그레이드를 지원하도록 웹 앱이 노출하는 React Bootstrap 라이브러리를 업데이트했습니다.

관리#

  • 관리자는 이제 System Console > Users > Manage Roles 모달에서 위임된(세분화된) 관리 역할을 직접 부여할 수 있습니다.
  • System Console 관리자가 사용자 관리 사용자 상세 페이지에서 사용자의 프로필 사진을 업로드하거나 제거할 수 있는 기능을 추가했습니다.
  • 속성을 한 번 정의하여 사용자에게 적용하고, ChannelAttributes 기능 플래그가 활성화된 경우 Enterprise Advanced의 채널에, PostAttributes 기능 플래그가 활성화된 경우 게시물에 적용할 수 있도록 System Console > System Attributes 아래에 속성 관리 페이지를 추가했습니다(Enterprise 플랜). 속성 유형은 텍스트, 전화번호, URL, 선택, 다중 선택, 순위 지정 중에서 선택할 수 있습니다. 관리자는 속성을 생성, 편집, 삭제할 수 있으며, 속성 이름을 바꾸면 같은 레이블을 공유하는 연결된 리소스 필드의 이름도 함께 바뀝니다. 플러그인이 소유한 속성은 플러그인 설정으로 연결되는 링크와 함께 읽기 전용으로 표시됩니다.
  • 값이 상위/하위 계층을 이루는 계층형 속성 유형(API에서는 graph)을 추가했습니다. 계층형 속성은 속성 관리에서 생성하고, 계정 설정과 System Console 사용자 상세 페이지에서 옵션 선택기로 설정하며, 사용자 프로필 팝오버에 이름으로 표시됩니다. 기존 속성의 유형은 계층형으로 또는 계층형에서 다른 유형으로 변경할 수 없습니다. 액세스 정책은 새로운 함수 4개(coversAll, coversAny, withinAll, withinAny)로 계층형 속성을 비교할 수 있습니다. 속성의 옵션을 나열, 생성, 업데이트, 삭제하는 REST 엔드포인트와 플러그인 API 메서드를 추가했습니다.
  • ChannelAttributes 기능 플래그 뒤에서 Enterprise Advanced에 채널 속성을 추가했습니다. 채널을 만들 때 필수 채널 속성이 있으면 입력을 요청하며, 모두 입력해야 채널을 만들 수 있습니다. 채널 속성 값은 생성 후 채널 정보의 새 속성 섹션에서 보고, 편집하고, 추가할 수 있으며, 각 속성의 변경 정책(모든 변경, 증가만, 감소만, 변경 불가)이 적용됩니다. 잠긴 속성은 이유와 함께 읽기 전용으로 표시됩니다. 이제 채널 배너는 채널 속성 값으로 구성되며, 수동으로 구성한 배너가 있으면 계속 우선합니다. POST /api/v4/channels는 채널 속성 값을 받으며 필수 값이 없는 채널의 생성을 거부합니다.
  • 덮어쓰기를 확인하기 전에 설치된 플러그인 버전과 업로드한 플러그인 버전을 비교하는 중복 플러그인 업로드 확인 모달을 추가했습니다.
  • 플러그인 설정 페이지의 활성화 설정을 즉시 실행되는 플러그인 작업 버튼으로 대체하고, 플러그인 설정에서 제거하는 옵션을 추가했습니다.
  • 자동 업로드 드롭존, 진행률 표시기, 더 명확한 비활성 상태 메시지로 System Console의 플러그인 업로드 사용자 경험을 개선했습니다.
  • 내보내기, SQL 복제본 모니터, 기능 플래그 동기화, 읽으면 삭제(burn-on-read), LDAP 그룹 필터, Elasticsearch 인덱스 크기, 연결된 워크스페이스 배치 크기, 푸시 알림 버퍼, 로그 수준, 파일 스토리지, 이메일, 세션, 데이터 보존, TLS, 웹 서버 설정에 대해 더 엄격한 서버 구성 검증을 추가했습니다.
  • 모바일 임시 모드(Mobile Ephemeral Mode) 설정과 관련하여 모바일 기기의 캐시된 데이터 삭제로 발생하는 새 이벤트에 대한 감사 로깅을 추가했습니다.
  • 이제 액세스 규칙은 새로운 ResourceAttributesInPolicies 기능 플래그 뒤에서 사용자의 속성을 접근 대상 채널의 속성과 비교할 수 있으며, 다중 값 속성에는 hasAnyOf와 hasAllOf를 사용할 수 있습니다. 채널 속성을 참조하는 규칙은 해당 속성에 값을 설정하지 않은 모든 채널에 대한 접근을 거부합니다.
  • 개인 액세스 토큰 수명 적용, 만료 알림, 규정을 준수하지 않는 토큰 해지를 사용자 소유 봇 계정으로 확대했습니다. 플러그인 소유 봇 계정과 보호된 시스템 봇 계정은 계속 제외됩니다.
  • 사용자 소유 봇 계정에 대한 개인 액세스 토큰 만료 및 재생성의 웹 앱 지원을 추가했습니다.
  • 채널 파일 다운로드 권한 정책을 콘텐츠 검토자에게 적용했습니다.
  • 제품, 심각도, 이슈 ID, 날짜, 영향받는 버전 범위로 권고를 필터링하는 실시간 Security Updates 게시판을 보안 가이드에 추가했습니다.
  • EnableAIRecaps 기능 플래그가 활성화되지 않으면 System Console Recaps 페이지를 숨깁니다.
  • OAuth 애플리케이션 관리 및 인가 엔드포인트 처리를 업데이트했습니다.
  • 사용자 목록 API의 팀 필터 처리를 업데이트했습니다.
  • 세션 속성(사용자 에이전트, IP 주소, 기기/네트워크 상태)이 이제 기본적으로 수집됩니다.
  • 게시물 조회, 채널 북마크, 알림 전달을 위한 파일 메타데이터 준비 방식을 업데이트했습니다.
  • 커스텀 이모지 이미지 처리가 공유 이미지 디코더를 사용하도록 업데이트하여, 애니메이션 GIF 소스에 구성된 최대 이미지 해상도와 이미지 디코더 동시성 제한이 적용됩니다.
  • 이미지 방향을 판단할 때 EXIF 메타데이터를 읽는 방식을 업데이트했습니다.
  • 생성된 지원 패키지(Support Packet)와 서버 로그 출력에서 데이터베이스 연결 문자열을 보고하는 방식을 업데이트했습니다.

mmctl#

  • 사용자 소유 봇 계정의 개인 액세스 토큰 수명 적용을 위해 mmctl bot create --with-token에 --expires-in 플래그를 추가했습니다.
  • 전체 서버 대신 단일 팀 또는 쉼표로 구분한 팀 목록을 내보내도록 mmctl export create에 --team-name 및 --team-id 플래그를 추가했습니다.
  • 팀의 단일 채널 또는 쉼표로 구분한 채널 목록을 내보내도록 mmctl export create에 --channel-name 및 --channel-id 플래그를 추가했습니다.
  • mmctl export create로 범위를 지정해 내보내면 원본 서버의 전체 이모지 라이브러리가 대상 서버로 들어가는 일을 피하기 위해 기본적으로 커스텀 이모지가 제외됩니다. 커스텀 이모지를 포함하려면 --include-custom-emoji를 전달하세요. 대상 서버에 없는 커스텀 이모지를 참조하는 반응은 그렇지 않으면 :name: 텍스트 그대로 표시됩니다.
  • 내보낸 팀에 할당된 커스텀 권한 스킴가 이제 내보내기에 보존됩니다.
  • 내보낸 팀을 대상 서버의 다른 팀으로 다시 매핑하도록 mmctl import process에 --destination-team-name 및 --destination-team-id 플래그를 추가했습니다.
  • 내보낸 채널을 대상 서버의 다른 채널로 다시 매핑하도록 mmctl import process에 --destination-channel-name 및 --destination-channel-id 플래그를 추가했습니다.
  • SSO 사용자를 가져오기 전에 실행되는 LDAP/SAML 구성 검사를 건너뛰도록 mmctl import process에 --skip-preflight 플래그를 추가했습니다.
  • 가져오기 작업이 진행 상황을 체크포인트로 저장하며, 프로세스 강제 종료로 중단된 작업을 포함하여 충돌 또는 실패 후 다시 시작할 수 있습니다.
  • 범위를 지정한 가져오기로 들어온 모든 사용자는 비활성화된 상태로 관리자 검토 대기 중임을 나타내는 IMPORTED - INACTIVE 태그가 붙습니다. 대상 서버에 이미 존재하는 사용자는 기존 계정과 매칭되며 활성 상태로 유지됩니다.
  • 가져온 사용자의 사용자 이름이 대상 서버의 기존 계정과 일치하면 해당 사용자의 게시물과 반응이 삭제되지 않고 그 계정에 귀속됩니다.
  • 대상 서버에 존재하지 않는 채널을 참조하는 게시물은 전체 가져오기를 중단하는 대신 건너뜁니다.
  • 대상 서버의 유일한 시스템 관리자를 강등하게 되는 역할 업데이트는 가져오기를 중단하는 대신 건너뜁니다.
  • 원본 사용자의 과거 비활성화 날짜가 가져오기 타임스탬프로 덮어쓰이지 않고 보존됩니다.

성능#

  • 벤치마킹 테스트 결과 유의미한 차이가 없었습니다. 새 릴리즈에서 지원되는 사용자 수가 4.31% 감소했으며, 이는 [-5%, +5%] 예측 구간 안에 있습니다. 전체 원시 데이터와 방법론은 성능 보고서 리포지터리에서 확인하세요.
  • 매우 큰 FileInfo 및 Channels 테이블에 대한 Elasticsearch 및 Opensearch 대량 인덱싱 작업의 성능을 개선했습니다.
  • 존재하지 않는 커스텀 이모지 이름(예: "11:11:11"과 같은 타임스탬프 속 이모지 형태의 토큰)의 조회를 캐시하여 데이터베이스 부하를 줄였습니다.

버그 수정#

  • 리디렉션 체인을 따라간 후 제한된 도메인의 링크 미리보기가 렌더링될 수 있던 문제를 수정했습니다.
  • 사이드바의 다이렉트 메시지 및 그룹 메시지 채널이 채널을 클릭하기 전까지 빈 행으로 렌더링되거나 멤버 수가 0으로 표시될 수 있던 문제를 수정했습니다.
  • 미디어 갤러리가 스크롤 막대가 나타나는 너비 근처에 있을 때 인라인 이미지와 동영상이 두 가지 크기 사이에서 깜박일 수 있던 문제를 수정했습니다.
  • mmctl의 출력 형식 관련 문제를 수정했습니다.
  • 기존 계정에 대한 대량 가져오기 처리 관련 문제를 수정했습니다.
  • 채널 멤버 API 엔드포인트가 다른 사용자의 멤버십에 대해 유효하지 않은 last_viewed_at 및 last_update_at 값 -1을 반환하던 문제를 수정했습니다. 이제 이 필드는 요청자가 아닌 다른 사용자의 멤버십인 경우 응답에서 생략됩니다(Linux에서 보고됨).
  • ABAC 플러그인 정책 저장 시 자기 포함 및 공유 쓰기 보호가 적용되도록 수정하고, 정책 편집기/테스트 사용자 인터페이스가 null 사용자와 불완전한 필드에 견딜 수 있도록 강화했습니다.
  • 섹션 기반 플러그인 설정의 렌더링, 탐색, 검증, 검색을 수정했습니다.
  • 사용자 지정 설정 섹션이 여러 개이고 fallback 값이 혼합된 비활성 플러그인에서, 폴백이 활성화된 섹션의 설정이 하나의 "플러그인을 활성화하세요" 경고 뒤에 숨겨지던 문제를 수정했습니다.
  • 플러그인이 푸터 없이 섹션을 사용해 설정을 정의한 경우, 실행 중인 플러그인의 설정이 System Console에서 읽기 전용으로 렌더링될 수 있던 문제를 수정했습니다.
  • 플러그인 목록 간에 페이지를 넘길 때 앱 마켓플레이스 모달의 너비가 바뀌던 문제를 수정했습니다.
  • AI Recaps 시스템 콘솔 권한이 system_admin 역할에 적용되지 않아 업그레이드된 서버에서 System Console Recaps 페이지가 시스템 관리자에게 숨겨지던 문제를 수정했습니다.
  • 앱 마이그레이션이 방금 기록한 행을 아직 따라잡지 못한 읽기 복제본에서 읽어 시작이 중단되던 서버 시작 충돌을 수정했습니다. 이 문제는 라이선스가 있고 SqlSettings.DataSourceReplicas가 구성된 서버에 영향을 주었습니다.
  • 슬래시 명령어, 아웃고잉 웹훅, 게시물 작업 콜백, 대화형 대화 상자 제출, 대화 상자 조회에서 ServiceSettings.OutgoingIntegrationRequestsTimeout 값이 30초를 넘으면 조용히 30초로 제한되던 문제를 수정했습니다.
  • ScheduledPostWillBeCreated 훅을 구현한 플러그인이 읽으면 삭제(burn-on-read) 메시지가 예약되거나 편집될 때 해당 메시지의 내용을 받던 문제를 수정했습니다. 이제 읽으면 삭제 예약 게시물에서는 이 훅을 건너뛰므로, 가드 플러그인은 더 이상 해당 메시지를 검사하거나 거부할 수 없습니다.
  • 스레드 보기를 보는 동안 앱 바에서 Copilot과 같은 플러그인 오른쪽 사이드바 패널을 열 수 없던 문제를 수정했습니다.
  • 플러그인 시작 실패가 웹 앱 시작을 막지 않도록 했습니다. 실패한 플러그인은 페이지를 다시 불러올 때까지 비활성 상태로 남아 있었습니다(웹 앱에서 보고됨).
  • 속성 기반 접근 제어 정책으로 멤버십이 관리되는 팀과 채널의 알림 배너에 기본 제공 속성이 표시되지 않던 문제를 수정했습니다.
  • 대화형 대화 상자가 잘못된 채널에 제출되던 문제를 수정했습니다. 이제 사용자가 현재 보고 있는 채널과 관계없이 트리거가 생성된 채널에 대화 상자가 올바르게 제출됩니다(웹 앱에서 보고됨).
  • ServiceSettings.PostEditTimeLimit보다 오래된 게시물을 고정하거나 고정 해제할 수 없던 문제를 수정했습니다.
  • 메시지 미리보기에서 사용자 멘션을 클릭하면 프로필 팝오버가 열리는 대신 초안이 게시되던 버그를 수정했습니다.
  • 모바일 웹에서 시간을 선택한 후에도 메시지 예약 메뉴가 열려 있어 같은 초안이 두 번 이상 예약될 수 있던 문제를 수정했습니다(웹 앱 및 모바일 웹에서 보고됨).
  • 이미 열려 있는 채널에 도착한 GIF 선택기의 GIF에 이미지 미리보기 디스플레이 설정의 기본 모양이 적용되지 않던 문제를 수정했습니다.
  • 검색 클러스터가 AWS OpenSearch Service의 opensearch-analysis-nori처럼 접두사가 붙은 구성 요소 이름으로 플러그인을 보고할 때 한국어 nori 분석기가 적용되지 않던 문제를 수정했습니다.
  • 허용된 테마(Allowed Themes), DCR 리디렉션 URI 허용 목록(DCR Redirect URI Allowlist)처럼 쉼표로 구분된 목록을 받는 System Console 설정이 주변 공백을 포함하여 항목을 저장하던 문제를 수정했습니다.
  • 서버가 항상 거부하는 기본 채널의 URL을 관리자가 변경하려고 시도할 수 있던 사용자 인터페이스 문제를 수정했습니다. 이제 URL은 설명과 함께 읽기 전용으로 표시되며, 채널 이름은 계속 편집할 수 있습니다.
  • System Console > User Management > Users의 CSV 내보내기가 검색어를 무시하고 사용자 인터페이스에 표시된 필터링된 하위 집합 대신 모든 사용자를 내보내던 문제를 수정했습니다.
  • 관리자가 메뉴가 넘칠 만큼 많은 팀에 속해 있을 때 System Console 헤더 메뉴의 스크롤 막대가 사이드바에 가려지던 문제를 수정했습니다(데스크톱 앱에서 보고됨).
  • 클라우드 미리보기 소개 모달이 페이지 하단에 위치하지 않고 세로 가운데에 표시되도록 수정했습니다.
  • 초대받은 사람이 이미 워크스페이스 멤버일 때 표시되는 게스트 초대 오류를 수정했습니다. 팀에 멤버를 추가할 수 없는 초대자는 이제 해당 사람을 멤버로 초대하라는 안내 대신 시스템 관리자에게 문의하라는 안내를 받습니다(웹 앱에서 보고됨).
  • 코드에서 영어 문법을 조합하여 올바르게 번역할 수 없던 관리자 콘솔 문자열 4개를 수정했습니다. 여기에는 다른 모든 언어에서 영어 "a" 또는 "an"이 불필요하게 표시되던 툴팁이 포함됩니다.
  • 영어 번역 오타를 바로잡고 채널에서 제거된 사용자에 대한 감사 로그 문구를 수정했습니다.
  • 사용자 프로필 업데이트 처리 관련 문제를 수정했습니다.
  • System Console 사용자 상세 페이지에 기본 "선택된 파일 없음" 파일 선택 컨트롤이 나타날 수 있던 회귀를 수정했습니다.
  • 다이렉트 메시지가 팀 멤버로 제한되는 동안 인커밍 웹훅의 다이렉트 및 그룹 채널 대상 지정을 업데이트했습니다.
  • 채널 속성을 변경하거나 일부 속성 드롭다운을 열면 채널 헤더의 모든 속성 칩이 잠시 비워지던 문제를 수정했습니다.
  • 캐시된 세션을 무효화해도 이미 열려 있는 웹소켓 연결에 경우에 따라 전파되지 않던 문제를 수정했습니다.
  • 기본 속성 정의에 LDAP 또는 SAML 동기화 소스가 설정되어 있으면 채널 속성 값을 저장할 수 없고 403 Forbidden 오류가 발생하던 문제를 수정했습니다.
  • 스레드 보기 또는 스레드 팝아웃에서 스레드를 열었을 때 채널의 헤더 속성이 표시되지 않던 문제를 수정했습니다.
  • 채널이 열린 상태에서 현지 날짜가 바뀌어도 게시물 사이의 상대 날짜 구분선이 업데이트되지 않아, 오래된 "오늘" 구분선이 남고 자정 이후에 작성된 게시물에 두 번째 "오늘" 구분선이 생기던 문제를 수정했습니다.
  • 분류 표시(Classification Markings) 페이지가 속성 관리에서 생성된 관련 없는 "classification"이라는 이름의 속성을 조용히 채택하거나 그 속성과 충돌할 수 있던 문제를 수정했습니다. 이제 이러한 충돌은 설명이 포함된 오류로 보고되고 해결될 때까지 페이지가 읽기 전용이 되며, 충돌하는 속성은 속성 관리에서 계속 편집하고 삭제할 수 있습니다.
  • ZIP 아카이브에서 콘텐츠를 추출할 때 과도한 메모리를 소비할 수 있던 문제를 수정했습니다.
  • 스페인어, 프랑스어, 이탈리아어, 일본어에서 서버 메시지가 비어 표시되던 문제를 수정했습니다. 번역되기 전까지는 영어로 표시됩니다.
  • 세션 속성이 변경된 후 클라이언트 캐시를 지울 때까지 파일 첨부가 숨겨진 상태 또는 표시된 상태로 남을 수 있던 문제를 수정했습니다.
  • 속성 관리에서 시스템 관리자가 아닌 사용자에게 읽기 전용 작업 대신 편집 및 삭제 작업이 표시되던 문제, 분류 표시에 필요한 Enterprise Advanced 라이선스 없이 분류 속성이 표시되던 문제, 속성 기반 접근 링크가 속성 관리로 연결되지 않던 문제, 템플릿의 LDAP 또는 SAML 동기화 소스를 변경해도 연결된 사용자 속성이 업데이트되지 않던 문제를 수정했습니다.
  • 자동 번역에 사용하는 AI 서비스를 변경해도 서버를 다시 시작하기 전까지 적용되지 않던 문제를 수정했습니다.
  • Identity Provider의 메타데이터에 cacheDuration 속성(예: PingFederate의 기본값 cacheDuration="PT1440M") 또는 시간대가 없는 validUntil 값이 포함되어 있을 때 System Console의 IdP에서 SAML 메타데이터 가져오기가 실패하던 문제를 수정했습니다.
  • 스레드 팝아웃 창이 스레드 헤더와 메시지 상자만 표시된 채 비어 있는 상태로 열리던 문제를 수정했습니다.
  • received_group WebSocket 이벤트의 범위를 수정하여 해당 그룹을 읽을 수 있는 사용자에게만 전달되도록 했습니다.
  • 이전 버전에서 허용하던 구성으로 v12가 시작되지 않던 문제를 수정했습니다. 지원되지 않는 TLSMinVer 및 WebserverMode 값, 표시 이름이 포함된 이메일 설정, 범위를 벗어난 숫자 설정은 이제 시작 시 경고와 함께 수정됩니다. 비활성화된 로그 대상의 잘못된 로그 수준과 LDAP가 비활성화된 상태에서의 잘못된 LDAP 포트 또는 쿼리 제한 시간은 더 이상 거부되지 않습니다.
  • 스레드 읽지 않음 탭이 읽지 않은 스레드가 있다고 보고하면서도 빈 목록을 표시할 수 있던 문제를 수정했습니다. 업그레이드 후에도 문제가 지속되고 리버스 프록시나 CDN이 API 응답을 캐시하는 경우, 해당 캐시를 한 번 삭제하세요(데스크톱 앱에서 보고됨).

API 변경 사항#

  • POST /access_control/decisions/actions/search (searchAccessControlDecisionActions) API 엔드포인트를 추가했습니다.
  • GET /delivery_tracking/config (getDeliveryTrackingConfig) API 엔드포인트를 추가했습니다.
  • PUT /delivery_tracking/config (updateDeliveryTrackingConfig) API 엔드포인트를 추가했습니다.
  • POST /ephemeral_mode/cleanup (logCleanup) API 엔드포인트를 추가했습니다.
  • POST /ephemeral_mode/purge (logOfflinePurge) API 엔드포인트를 추가했습니다.
  • POST /ephemeral_mode/wipe (logSessionWipe) API 엔드포인트를 추가했습니다.
  • GET /properties/groups/{group_name}/{object_type}/fields/{field_id}/options (getPropertyFieldOptions) API 엔드포인트를 추가했습니다.
  • POST /properties/groups/{group_name}/{object_type}/fields/{field_id}/options (createPropertyFieldOptions) API 엔드포인트를 추가했습니다.
  • PATCH /properties/groups/{group_name}/{object_type}/fields/{field_id}/options (patchPropertyFieldOptions) API 엔드포인트를 추가했습니다.
  • DELETE /properties/groups/{group_name}/{object_type}/fields/{field_id}/options (deletePropertyFieldOptions) API 엔드포인트를 추가했습니다.

감사 로그 이벤트 변경 사항#

  • AuditEventAutoCacheCleanupRun 감사 로그 이벤트를 추가했습니다.
  • AuditEventChannelMembershipAdded 감사 로그 이벤트를 추가했습니다.
  • AuditEventChannelMembershipRemoved 감사 로그 이벤트를 추가했습니다.
  • AuditEventCreatePropertyFieldOptions 감사 로그 이벤트를 추가했습니다.
  • AuditEventDeletePropertyFieldOptions 감사 로그 이벤트를 추가했습니다.
  • AuditEventGetPropertyFieldOptions 감사 로그 이벤트를 추가했습니다.
  • AuditEventOfflinePurge 감사 로그 이벤트를 추가했습니다.
  • AuditEventPatchPropertyFieldOptions 감사 로그 이벤트를 추가했습니다.
  • AuditEventPostDelivered 감사 로그 이벤트를 추가했습니다.
  • AuditEventSessionWipe 감사 로그 이벤트를 추가했습니다.
  • AuditEventUpdateDeliveryTrackingConfig 감사 로그 이벤트를 추가했습니다.
  • 더 이상 사용되지 않는 기본 제공 Slack 가져오기 API와 함께 AuditEventImportTeam(importTeam) 감사 로그 이벤트를 제거했습니다.
  • 더 이상 사용되지 않는 기본 제공 Slack 가져오기 CLI와 함께 AuditEventSlackImport(slackImport) 감사 로그 이벤트를 제거했습니다.

Go 버전#

  • v12.0은 Go v1.26.7로 빌드되었습니다.

v12 변경 로그

Mattermost v12.0
원문 보기

요약

플랫폼 및 OS 범위는 보고되고 테스트된 환경을 반영하며, 영향을 받는 모든 구성을 나타내지는 않을 수 있습니다. config.json에 새 설정 옵션이 추가되었습니다. 최신 릴리즈의 주요 내용은 이 블로그 게시물을 참조하세요.

Important
  • Mattermost Server v10.11 ESR (연장 지원 릴리즈) 지원은 2026년 8월 15일에 수명 주기가 종료되었습니다. Mattermost Server v11.7 이상으로 업그레이드해야 합니다.
  • 한 ESR(연장 지원 릴리즈)에서 다음 ESR(major -> major_next)로의 업그레이드는 완전히 지원되고 테스트되었습니다. 그러나 여러 ESR 버전을 건너뛰는 업그레이드(major에서 major+2)는 지원되지만 테스트되지는 않았습니다. 버전을 건너뛸 계획이라면 ESR 릴리즈 간에만 업그레이드할 것을 강력히 권장합니다. 예를 들어 v8.1 ESR에서 업그레이드하는 경우, v10.11 ESR 또는 v11.7 ESR로 업그레이드하기 전에 v9.5 ESR 또는 v9.11 ESR로 업그레이드하세요.
  • 최신 릴리즈로 업그레이드하는 방법에 대한 자세한 내용은 중요 업그레이드 참고 사항 문서를 참조하세요.
  • 예정된 릴리즈에 대한 자세한 내용은 진행 중인 체인지로그를 참조하세요.
  • 모든 Mattermost 사용자는 계정을 만들거나 Mattermost에 접근할 때 Mattermost의 허용 가능한 사용 정책 및 개인정보 처리방침에 동의해야 합니다. 셀프 호스팅 배포를 포함해 Mattermost 구독을 보유한 고객의 경우, 조직은 Mattermost와의 계약 조건에 따라 Mattermost 시스템 콘솔에서 허용 가능한 사용 정책을 자체 허용 가능한 사용 또는 행동 정책으로 교체하거나 재정의할 수 있습니다. 단, 자체 정책에는 허용 가능한 사용 정책을 포함하거나 동등한 조건을 포함해야 합니다. 제공하는 서비스의 사용을 위해 기본 링크를 변경하여 자체 약관을 추가하는 경우, 최종 사용자가 Mattermost 소프트웨어에 대한 Mattermost 허용 가능한 사용 정책을 인지할 수 있도록 새 약관에 기본 약관 링크를 포함해야 합니다.
Note

플랫폼 및 OS 범위는 보고되고 테스트된 환경을 반영하며, 영향을 받는 모든 구성을 나타내지는 않을 수 있습니다.

릴리즈 v12.0 - 메이저 릴리즈#

릴리즈 날짜: 2026-10-16

Important

호환성을 깨는 변경

  • 이 릴리즈에는 message 칼럼을 VARCHAR(65535)에서 VARCHAR(1048576)으로 확장하여 최대 메시지 길이를 16,383자에서 262,144자로 늘리는 데이터베이스 마이그레이션이 포함되어 있습니다. 메시지 길이 제한은 최대 4바이트 문자를 허용하기 위해 칼럼 크기의 4분의 1입니다. 지원되는 PostgreSQL 버전에서 VARCHAR 확장은 메타데이터만 변경하지만, 마이그레이션은 posts를 포함한 영향받는 각 테이블에 짧은 시간 동안 ACCESS EXCLUSIVE 잠금을 획득합니다. 이 잠금 획득은 활성 상태이거나 트랜잭션 중 유휴 상태인 데이터베이스 세션 때문에 지연될 수 있으며, 잠금 대기 중에는 해당 테이블에 대한 읽기와 쓰기가 대기합니다. 잠금 시간을 짧게 유지하기 위해 게시물 메시지의 전체 텍스트 인덱스(idx_posts_message_txt)는 칼럼을 확장하기 전에 삭제되고 이후 마이그레이션에서 동시에 다시 빌드되므로, 다시 빌드가 완료될 때까지 게시물의 데이터베이스 전체 텍스트 검색은 이 인덱스 없이 실행됩니다. 규모가 크거나 사용량이 많은 배포 환경에서는 마이그레이션을 테스트하고 유지 보수 시간대를 예약하세요.
  • 여러 사전 패키지 플러그인이 이 릴리즈에서 오류 없이 실행되려면 변경이 필요하여 v12.0에서 메이저 버전 업데이트를 받았습니다. v12.0용으로 다시 빌드되지 않은 웹 앱 플러그인은 런타임 오류를 방지하기 위해 활성화가 차단될 수 있습니다. 업그레이드하기 전에 커뮤니티에서 제작한 플러그인은 v12.0을 지원하는 릴리즈로 업데이트하고, 자체 제작한 플러그인은 v12.0 기준으로 다시 빌드하여 테스트하세요. 해당 버전에서 제거된 API와 플러그인 업데이트용 codemod는 이 섹션의 React 19 안내를 참조하세요.
  • RHEL 7과 RHEL 8 지원이 중단되었습니다. 이제 서버 바이너리에는 glibc 2.34 이상이 필요합니다(Linux에서 보고됨).
  • OpenSearch 1.x 지원이 중단되었습니다. 이제 Mattermost에는 OpenSearch 2.x 이상이 필요하며, 지원되지 않는 버전에 연결되면 시작 시 오류를 기록합니다.
  • atmos/camo는 더 이상 이미지 프록시로 지원되지 않습니다. ImageProxySettings.ImageProxyType이 atmos/camo로 설정되어 있으면 서버가 시작 시 이를 자동으로 local로 변경하고 경고를 기록합니다. 이미지 프록시가 활성화되어 있으면 이미지는 외부 atmos/camo 서비스 대신 Mattermost 서버가 직접 프록시하므로, 서버가 이미지를 불러오는 외부 호스트에 접근할 수 있어야 합니다. RemoteImageProxyURL과 RemoteImageProxyOptions 설정도 제거되었으며 무시됩니다.
  • 지원되는 최소 PostgreSQL 버전은 이제 v15입니다. PostgreSQL v14 이하는 더 이상 지원되지 않습니다.
  • MoveThreadsEnabled 기능 플래그는 더 이상 지원되지 않습니다. 이 플래그가 활성화되어 있으면 서버가 시작 시 이를 끄고 경고를 기록합니다. 대신 https://github.com/mattermost/mattermost-plugin-wrangler 를 사용하세요.
  • AppsEnabled 기능 플래그는 더 이상 지원되지 않습니다. 이 플래그가 true로 설정되어 있으면 서버가 시작 시 이를 끄고 경고를 기록합니다.
  • 더 이상 사용되지 않는 기본 제공 Slack 가져오기 API와 CLI가 제거되었습니다. POST /teams/{team_id}/import 엔드포인트와 mattermost import slack 명령어는 더 이상 사용할 수 없습니다. 대신 mmetl 도구와 mmctl import를 사용하세요.
  • 더 이상 사용되지 않는 Slack 호환 타입 별칭과 함수(SlackAttachment, SlackAttachmentField, ParseSlackAttachment, StringifySlackFieldValue)가 Go 패키지에서 제거되었습니다. 대신 MessageAttachment, MessageAttachmentField, ParseMessageAttachment, StringifyMessageAttachmentFieldValue를 사용하세요.
  • POST /api/v4/logs/query API는 이제 date_from 또는 date_to가 비어 있지 않은 값이면서 "2006-01-02 15:04:05.999 -07:00" 레이아웃으로 파싱할 수 없는 경우 HTTP 400을 반환합니다. 이전에는 이러한 값이 조용히 무시되고 요청이 필터링되지 않은 결과와 함께 HTTP 200을 반환했습니다. 빈 값은 계속해서 "제한 없음"을 의미합니다.
  • GET /api/v4/license/client 엔드포인트에서 필수 format 쿼리 매개변수가 제거되었습니다. 이제 이 엔드포인트는 형식을 지정하지 않아도 클라이언트 라이선스 정보를 반환합니다.
  • EnableConcurrentReact 기능 플래그가 제거되었습니다. 이제 웹 앱은 항상 동시 실행(concurrent) React로 렌더링합니다.
  • 게시물 ID 및 표시 재정의 속성(from_webhook, from_bot, from_oauth_app, from_plugin, override_username, override_icon_url, override_icon_emoji, webhook_display_name)은 더 이상 일반 사용자 또는 개인 액세스 토큰 세션에서 허용되지 않습니다. 이 속성은 생성 및 업데이트 시 제거되며, 검증된 연동(재정의의 경우 인커밍 웹훅과 슬래시 명령어, from_* 표식의 경우 봇, OAuth, 플러그인)에만 다시 적용됩니다. 사용자 개인 액세스 토큰으로 from_webhook과 override_*를 위조하여 사용자 지정 이름이나 아이콘으로 게시하던 스크립트는 봇 계정 또는 인커밍 웹훅으로 이전해야 합니다. EnableHardenedMode는 더 이상 예약된 게시물 속성을 HTTP 400으로 거부하지 않으며, 로그인, MFA, 비밀번호 재설정, 5xx 오류 정보 제거만 계속 제어합니다.
  • 더 이상 사용되지 않는 대화 상자의 날짜 및 날짜/시간 필드가 제거되었습니다. 최상위 min_date, max_date, time_interval과 datetime_config.allow_manual_time_entry는 더 이상 허용되지 않으며, 대신 datetime_config(manual_time_entry 포함)를 사용하세요. 기존 키는 조용히 무시됩니다.
  • 속성 기반 액세스 정책이 적용된 채널 또는 팀에 멤버를 자동으로 추가하는 설정은 이제 정책의 활성 플래그 대신 정책의 멤버십 규칙에 저장되며, 채널별 및 팀별로 설정됩니다. 기존 설정은 자동으로 마이그레이션됩니다. PUT /api/v4/access_control_policies를 사용하여 active 필드로 자동 추가를 제어하던 클라이언트는 대신 멤버십 규칙의 auto_add 메타데이터를 설정해야 합니다. /access_control_policies/activate 엔드포인트는 변경 없이 계속 작동합니다(웹 앱에서 보고됨).
  • 옵션이 1000개를 초과하는 커스텀 속성 필드는 이제 옵션 목록 대신 개수를 직렬화합니다.
  • EmailSettings 로그인 버튼 색상 설정과 함께 EmailLoginButtonColor, EmailLoginButtonBorderColor, EmailLoginButtonTextColor 클라이언트 구성 필드가 제거되었습니다. 이 필드는 어떤 클라이언트에서도 적용된 적이 없습니다.
  • 채널 멤버 API 엔드포인트는 이제 다른 사용자의 멤버십에 대해 last_viewed_at과 last_update_at을 반환하지 않습니다. 이전에는 유효하지 않은 값 -1을 반환했으며, 이제 이 필드는 요청자가 아닌 다른 사용자의 멤버십인 경우 응답에서 완전히 생략됩니다. 다른 사용자에 대해 이 필드를 읽는 클라이언트는 필드가 없는 경우를 처리해야 합니다(Linux에서 보고됨).
  • 사용되지 않는 구성 설정이 제거되었습니다: ElasticsearchSettings.BulkIndexingTimeWindowSeconds, ClusterSettings.EnableExperimentalGossipEncryption, ExperimentalSettings.ClientSideCertEnable, TeamSettings.ExperimentalViewArchivedChannels, CloudSettings.CWSMock, PluginSettings.ChimeraOAuthProxyURL, DataRetentionSettings.EnableBoardsDeletion, DataRetentionSettings.BoardsRetentionDays, SqlSettings.AtRestEncryptKey, NativeAppSettings.EnableIntuneMAM, GuestAccountsSettings.AllowEmailAccounts. 기존 config.json에 남아 있는 제거된 필드는 무시되고 서버가 정상적으로 시작되므로 구성을 변경할 필요가 없습니다. NativeAppSettings.EnableIntuneMAM을 사용하던 관리자는 대신 IntuneSettings.Enable을 사용해야 합니다.
  • Mattermost 웹 앱과 데스크톱 앱은 React 19를 기반으로 빌드됩니다. 웹 앱(프런트엔드) 컴포넌트를 등록하는 플러그인만 영향을 받으며, 서버 전용 플러그인은 영향을 받지 않습니다. 웹 앱 플러그인은 웹 앱이 제공하는 React 버전을 사용하므로, 다시 빌드하지 않아도 해당 컴포넌트가 React 19에서 렌더링됩니다. React 19에서 제거된 API(ReactDOM.findDOMNode, 함수 컴포넌트의 propTypes/defaultProps, 레거시 Context, 문자열 ref)를 호출하거나 레거시 동기 렌더링에 의존하는 플러그인은 작동하지 않을 수 있습니다. 영향을 받는 플러그인에 npx codemod@latest react/19/migration-recipe를 실행하고 제거된 API 사용을 수정하세요. 자세한 내용은 포럼 게시물을 참조하세요.
  • Enterprise 플랜에서 System Console > System Attributes > User Attributes 페이지가 제거되었습니다. 기존 커스텀 프로필 속성(사용자 속성) 필드는 서버 시작 시 속성 관리로 자동 마이그레이션되며, v12.0부터 그곳에서 관리됩니다. 이전 페이지의 URL은 속성 관리로 리디렉션됩니다.
  • 필드가 속성 관리 템플릿에 연결되어 있으면 /api/v4/custom_profile_attributes/fields/{field_id}에 대한 PATCH 및 DELETE 요청이 이제 HTTP 400을 반환하며, 오류 메시지는 전역 속성 API를 안내합니다. Enterprise 플랜에서는 대상이 되는 기존 사용자 속성 필드가 서버 시작 시 템플릿에 자동으로 연결되므로, 사용자 속성 API로 이러한 필드를 편집하거나 삭제하던 스크립트와 연동은 대신 전역 속성 API를 사용해야 합니다.
  • LocalizationSettings.EnableExperimentalLocales 구성 설정이 제거되었으며, 이 설정이 노출하던 작업 중인 번역 카탈로그 대부분도 함께 제거되었습니다. 이제 덴마크어가 지원 언어이며, 체코어, 크로아티아어, 핀란드어, 리투아니아어, 노르웨이어 보크몰, 포르투갈어(포르투갈)는 이 설정 없이도 모든 사용자가 실험적 언어로 사용할 수 있습니다. 제거된 다른 언어를 선택했던 사용자에게는 Mattermost가 영어로 표시됩니다. 이 설정이 기존 config.json에 남아 있어도 무시됩니다.
  • 벨라루스어가 제거되었습니다. 벨라루스어를 선택했던 사용자에게는 이제 기본 언어가 표시됩니다.
  • ServiceSettings.ExperimentalEnableHardenedMode는 더 이상 사용되지 않으며 ServiceSettings.EnableHardenedMode로 대체되었습니다. 이 설정은 System Console > Experimental > Features에서 System Console > Environment > Web Server로 이동했습니다. 기존 값은 업그레이드 시 EnableHardenedMode로 자동 이전됩니다. 그 이후 서버는 EnableHardenedMode만 읽으므로, 이전 설정을 계속 지정하는 구성 관리 도구, 환경 변수, 스크립트가 있다면 업데이트하세요.

업그레이드 영향#

데이터베이스 스키마 변경#

  • channelmembers의 부분 인덱스 idx_channelmembers_autotranslation_enabled를 CONCURRENTLY를 사용하여 차단 없이 삭제했습니다. 다운타임이나 쿼리 정확성에 대한 영향은 예상되지 않습니다.
  • 마이그레이션 000215는 테이블 재작성 없이 카탈로그만 변경하는 빠른 작업으로 channelmembers에서 오래전부터 사용되지 않던 autotranslation 칼럼을 제거했으며, 잠금 영향은 최소입니다.
  • 독립적인 ABAC 속성 쿼리를 위해 AttributeView 구체화된 뷰를 UserAttributeView와 ChannelAttributeView로 분리했습니다. 해당 테이블은 기능 플래그로 제어되며 프로덕션에서 비어 있으므로 성능 영향은 예상되지 않습니다.
  • posts, drafts, scheduledposts, temporaryposts의 message 칼럼 제한을 65,535자에서 1,048,576자로 늘려 최대 메시지 길이를 16,383자에서 262,144자로 높였습니다. 마이그레이션 중에는 각 테이블에 짧은 ACCESS EXCLUSIVE 잠금이 걸릴 수 있습니다. 이 잠금 획득은 활성 상태이거나 트랜잭션 중 유휴 상태인 데이터베이스 세션 때문에 지연될 수 있으며, 읽기와 쓰기가 일시적으로 차단될 수 있습니다. 전체 텍스트 인덱스 idx_posts_message_txt는 posts.message를 확장하기 전에 삭제되므로, Postgres가 잠금을 보유한 상태에서 이 인덱스를 다시 빌드하지 않습니다.
  • 마이그레이션 000234는 CREATE INDEX CONCURRENTLY를 사용하여 읽기와 쓰기를 차단하지 않고 posts의 전체 텍스트 인덱스 idx_posts_message_txt를 다시 생성합니다. 인덱스 빌드가 완료될 때까지 게시물의 데이터베이스 전체 텍스트 검색은 이 인덱스 없이 실행됩니다.
  • 게시물 전달 추적을 지원하기 위해 ChannelId에 고유 인덱스가 있는 새 PostDeliveryTrackingChannels 테이블을 추가했습니다. 기존 테이블이나 쿼리에는 영향이 없습니다.
  • 다운타임 없이 파일 쿼리 성능을 개선하기 위해 CONCURRENTLY를 사용하여 Fileinfo(CreateAt, Id)에 복합 인덱스 idx_fileinfo_create_at_id를 추가했습니다.
  • 커서 기반 페이지네이션을 가속하기 위해 Channels (CreateAt, Id)에 복합 인덱스 idx_channels_create_at_id를 추가했습니다. 다운타임은 예상되지 않으며 동시 작업에 대한 영향은 최소입니다.
  • 채널별 입장/퇴장 메시지 숨김을 지원하기 위해 Channels 테이블에 DisableJoinLeaveMessages 부울 칼럼을 추가했습니다. 테이블 재작성이 없는 메타데이터 전용 변경이며 다운타임 영향은 무시할 수 있는 수준입니다.
  • 새 속성 필드 변형을 지원하기 위해 property_field_type 열거형에 graph 값을 추가했습니다. 사용자 테이블은 영향을 받지 않으며 실행 중인 시스템에 대한 영향은 무시할 수 있는 수준입니다.
  • 마이그레이션 000223은 PropertyFields의 JSON 블롭에 있던 속성 필드 옵션을 새 PropertyOptions와 PropertyOptionEdges 테이블로 추출하고 UserAttributeView와 ChannelAttributeView를 다시 빌드했습니다. PropertyValues 테이블이 큰 배포 환경에서는 마이그레이션 중에 해당 뷰에서 짧은 쿼리 지연이 발생할 수 있습니다.
  • 읽기/쓰기 영향 없이 활성 속성 옵션의 키셋 페이지네이션을 가속하기 위해 PropertyOptions(FieldID, CreateAt, ID) WHERE DeleteAt = 0에 부분 복합 인덱스 idx_propertyoptions_fieldid_createat_id를 추가했습니다.
  • 속성 시스템 내 이름 확인 조회 속도를 높이기 위해 PropertyOptions(FieldID, Name) WHERE DeleteAt = 0에 부분 복합 인덱스 idx_propertyoptions_fieldid_name을 추가했습니다. 다운타임은 필요하지 않습니다.
  • 읽기/쓰기 영향 없이 필드 범위의 속성 옵션 계층 구조 탐색을 가속하기 위해 PropertyOptionEdges (FieldID, ParentOptionID, ChildOptionID)에 차단 없는 복합 인덱스를 추가했습니다.
  • AccessControlPolicies 멤버십 규칙에 auto_add: "always" 메타데이터를 채워 넣어, 자동 멤버 추가 동작을 Active 칼럼에서 규칙별 메타데이터로 이전했습니다. 성능 영향은 없습니다.
  • 다운타임이나 잠금 영향 없이 액세스 제어 정책 멤버십 조회 속도를 높이기 위해 AccessControlPolicies(Data -> 'rules')에 GIN 인덱스 idx_access_control_policies_rules를 추가했습니다.
  • jsonb_path_ops를 사용하여 AccessControlPolicies(Data -> 'imports')에 GIN 인덱스를 추가함으로써 imports 포함 쿼리의 순차 스캔을 없앴습니다. 일반 트래픽에 대한 다운타임이나 잠금 영향은 없습니다.
  • 사용자가 아니거나 템플릿이 아닌 모든 행의 PropertyFields에 있는 Attrs JSONB 칼럼에서 오래된 ldap 및 saml 키를 제거했습니다. 되돌릴 수 없는 데이터 정리 작업이며 예상되는 다운타임은 없지만, 인덱스가 없는 배포 환경에서는 전체 테이블 스캔이 발생할 수 있습니다.
  • CREATE INDEX CONCURRENTLY를 사용하여 posts(message)에 GIN 전체 텍스트 index idx_posts_message_txt를 추가했습니다. 대규모 배포 환경에서는 다운타임 없이 I/O 부하가 큰 장시간 빌드가 진행될 수 있습니다.

config.json#

config.json에 새 설정 옵션이 추가되었습니다. 아래는 추가된 항목과 설치 시 기본값 목록입니다. 이 설정은 config.json 또는 사용 가능한 경우 System Console에서 수정할 수 있습니다.

  • 모든 플랜의 변경 사항:
    • ServiceSettings.EnableHardenedMode 구성 설정을 추가했습니다. Enable Hardened Mode 설정이 System Console > Experimental > Features에서 System Console > Environment > Web Server로 이동했습니다(Linux 및 Chromium에서 보고됨).
    • ImageProxySettings.RemoteImageProxyOptions 구성 설정을 제거했습니다.
    • ImageProxySettings.RemoteImageProxyURL 구성 설정을 제거했습니다.
    • EmailSettings.LoginButtonBorderColor 구성 설정을 제거했습니다.
    • EmailSettings.LoginButtonColor 구성 설정을 제거했습니다.
    • EmailSettings.LoginButtonTextColor 구성 설정을 제거했습니다.
    • LocalizationSettings.EnableExperimentalLocales 구성 설정과 이 설정이 노출하던 작업 중인 번역 카탈로그 대부분을 제거했습니다. 덴마크어와 실험적 언어 6개는 이 설정 없이도 선택할 수 있습니다. 이 설정이 기존 config.json에 남아 있어도 무시됩니다.
    • 다음 구성 설정을 제거했습니다:
      • TeamSettings.ExperimentalViewArchivedChannels
      • CloudSettings.CWSMock
      • PluginSettings.ChimeraOAuthProxyURL
      • SqlSettings.AtRestEncryptKey
      • GuestAccountsSettings.AllowEmailAccounts
    • "Enable User Typing Messages" 및 "User Typing Timeout" 설정을 System Console > Experimental > Features에서 System Console > Site Configuration > Posts로 이동했습니다.
    • Email Batching Buffer Size, Email Batching Interval, Use Channel Name in Email Notifications 설정을 System Console > Experimental > Features에서 System Console > Site Configuration > Notifications로 이동했습니다.
    • 계정 비활성화 활성화 및 사용자 상태 자리 비움 제한 시간 설정(TeamSettings.EnableUserDeactivation 및 TeamSettings.UserStatusAwayTimeout)을 System Console > Experimental > Features에서 System Console > Site Configuration > Users and Teams로 이동했습니다.
    • 채널 조회 WebSocket 메시지 활성화 설정(ServiceSettings.EnableChannelViewedMessages)을 System Console > Experimental > Features에서 System Console > Environment > Web Server로 이동했습니다.
    • Enable Tutorial 및 Enable Onboarding 설정을 System Console > Experimental > Features에서 System Console > Site Configuration > Customization으로 이동했습니다.
    • atmos/camo 원격 이미지 프록시 유형을 제거했습니다. ImageProxySettings.ImageProxyType이 atmos/camo로 설정된 배포 환경은 업그레이드 시 자동으로 local로 변경되며 경고가 기록됩니다.
    • ServiceSettings.WebserverMode는 이제 nogzip 대신 System Console에서 저장하는 값인 uncompressed를 허용합니다. 인식할 수 없는 값은 시작 시 uncompressed로 대체되며, 이는 이전 버전에서 해당 값을 처리하던 방식과 같습니다.
  • Professional, Enterprise, Enterprise Advanced 플랜의 변경 사항:
    • ThemeSettings.AllowedThemes를 System Console > Site Configuration > Customization에 추가했습니다. 이전에는 config.json을 직접 편집해야만 구성할 수 있었습니다.
    • Enable Theme Selection, Allow Custom Themes, Default Theme 설정을 System Console > Experimental > Features에서 System Console > Site Configuration > Customization으로 이동했습니다.
  • Entry 및 Enterprise Advanced 플랜의 변경 사항:
    • NativeAppSettings.EnableIntuneMAM 구성 설정을 제거했습니다. 대신 IntuneSettings.Enable을 사용하세요.
  • Enterprise 및 Enterprise Advanced 플랜의 변경 사항:
    • Global Relay EML 컴플라이언스 내보내기에 고정 보낸 사람(From) 주소를 선택적으로 지정하는 MessageExportSettings.GlobalRelaySettings.SenderAddress 구성 설정을 추가했습니다.
    • 다음 구성 설정을 제거했습니다:
      • ElasticsearchSettings.BulkIndexingTimeWindowSeconds
      • ClusterSettings.EnableExperimentalGossipEncryption
      • ExperimentalSettings.ClientSideCertEnable
      • DataRetentionSettings.EnableBoardsDeletion
      • DataRetentionSettings.BoardsRetentionDays
  • Enterprise Advanced 플랜의 변경 사항:
    • 게시물 전달 감사 로깅을 제어하는 DeliveryTrackingSettings.Enable(기본값 false)과 DeliveryTrackingSettings.EnableForAllChannels(기본값 true) 구성 설정을 추가했습니다.

호환성#

  • 지원되는 최소 macOS 버전을 15 이상으로, 지원되는 최소 Safari 버전을 27 이상으로 업데이트했습니다. 이전 버전은 데스크톱 앱과 웹 앱에서 더 이상 지원되지 않습니다. 자세한 내용은 소프트웨어 및 하드웨어 요구 사항 문서를 참조하세요.

개선 사항#

최신 릴리즈의 주요 내용은 이 블로그 게시물을 참조하세요.

사용자 인터페이스#

  • 사전 패키지 Calls 플러그인 버전 v1.12.5.
  • 사전 패키지 Dataminr 플러그인 버전 v2.0.0.
  • 사전 패키지 GitLab 플러그인 버전 v2.0.0.
  • 사전 패키지 Zoom 플러그인 버전 v2.0.0.
  • 사전 패키지 GitHub 플러그인 버전 v3.0.0.
  • 사전 패키지 Legal Hold 플러그인 버전 v1.1.6.
  • 사전 패키지 Playbooks 플러그인 버전 v2.12.1.
  • 사전 패키지 MS Calendar 플러그인 버전 v2.0.0.
  • 사전 패키지 MS Teams Meetings 플러그인 버전 v3.0.0.
  • 사전 패키지 Boards 플러그인 버전 v10.0.0.
  • 사전 패키지 Agents 플러그인 버전 2.9.0.
  • 사전 패키지 Jira 플러그인 버전 v5.0.0.
  • 웹 앱을 React 19로 업데이트하고 동시 렌더링을 기본으로 활성화했습니다.
  • 새로 생성된 개인 액세스 토큰과 봇 액세스 토큰에 복사 버튼을 추가했습니다.
  • OpenGraph 이미지 미리보기를 숨기고 표시하는 버튼에 접근성 레이블을 추가했습니다.
  • 두 가지 새로운 대화형 대화 상자 요소 유형인 checkbox_group(여러 항목을 선택하는 체크박스 목록)과 checkbox_matrix(행과 칼럼을 구성할 수 있고 행별로 단일 또는 다중 선택을 지원하는 체크박스 격자)를 추가했습니다. 두 유형 모두 새로운 label_position 옵션을 지원하며, 이 옵션은 라디오 및 bool 요소에서도 사용할 수 있습니다.
  • 대화형 대화 상자 제목의 최대 길이를 24자에서 80자로 늘렸습니다.
  • 디자인 사양에 맞추어 게시물의 단일 이미지 미리보기 너비를 700px로 제한했습니다.
  • 구성된 로케일을 사용할 수 없을 때 디스플레이 설정이 영어로 대체되도록 업데이트했습니다.
  • 불가리아어, 중국어(간체 및 번체), 네덜란드어, 영어(호주), 프랑스어, 독일어, 헝가리어, 이탈리아어, 일본어, 한국어, 페르시아어, 폴란드어, 포르투갈어(브라질), 루마니아어, 러시아어, 스페인어, 스웨덴어, 터키어, 우크라이나어, 베트남어 카탈로그에 누락된 번역을 추가했습니다.
  • 덴마크어를 지원 언어로 추가하고, 체코어, 크로아티아어, 핀란드어, 리투아니아어, 노르웨이어 보크몰, 포르투갈어(포르투갈)를 Settings > Display > Language의 실험적 언어로 추가했습니다.
  • 벨라루스어를 제거했습니다. 벨라루스어를 선택했던 사용자에게는 이제 기본 언어가 표시됩니다.
  • 범위가 지정된 마이그레이션으로 생성되어 관리자 검토를 기다리는 계정을 식별할 수 있도록 사용자 프로필에 IMPORTED - INACTIVE 태그를 추가했습니다.
  • 채널 관리자는 이제 Channel Settings > Configuration에서 채널별로 입장/퇴장 시스템 메시지를 숨길 수 있습니다. 게시물은 저장되며 설정을 다시 활성화하면 다시 표시됩니다.
  • 채널 헤더와 스레드 오른쪽 사이드바의 채널 속성 칩을 개선하고 System Console 속성 사용자 인터페이스를 다듬었습니다.
  • 채널 정보의 채널 속성 칩 스타일을 개선하고, 채널 이름이 잘릴 때 칩이 깜박이지 않도록 채널 헤더의 속성 레이블 오버플로를 안정화했습니다.
  • 예약, 알림, 사용자 지정 시간 계산이 브리티시컬럼비아, 앨버타, 노스웨스트 준주, 모로코에 대한 2026년 규칙을 사용하도록 moment-timezone을 0.6.4(IANA tzdata 2026d)로 업데이트했습니다.

플러그인/연동#

  • 서버 라이선스가 변경될 때 호출되는 플러그인 훅 OnLicenseChanged를 추가했습니다.
  • 세션 범위의 파일 작업 정책 검사를 위한 플러그인 API 메서드를 추가했습니다.
  • 컨텍스트 인식 플러그인이 수행하는 서버-플러그인 및 플러그인 간 HTTP 요청에 대해 요청 기한과 취소 전파를 추가했습니다.
  • 프로덕션 호스트에서의 개발용 JSX 지원을 포함하여, 웹 앱 플러그인을 위한 공유 React JSX 런타임 내보내기를 추가했습니다.
  • Mattermost 라이선스와 함께 구매하며 라이선스가 허용할 때만 실행되는 플러그인인 라이선스 애드온에 대한 지원을 추가했습니다.
  • 향후 React 업그레이드를 지원하도록 웹 앱이 노출하는 React Bootstrap 라이브러리를 업데이트했습니다.

관리#

  • 관리자는 이제 System Console > Users > Manage Roles 모달에서 위임된(세분화된) 관리 역할을 직접 부여할 수 있습니다.
  • System Console 관리자가 사용자 관리 사용자 상세 페이지에서 사용자의 프로필 사진을 업로드하거나 제거할 수 있는 기능을 추가했습니다.
  • 속성을 한 번 정의하여 사용자에게 적용하고, ChannelAttributes 기능 플래그가 활성화된 경우 Enterprise Advanced의 채널에, PostAttributes 기능 플래그가 활성화된 경우 게시물에 적용할 수 있도록 System Console > System Attributes 아래에 속성 관리 페이지를 추가했습니다(Enterprise 플랜). 속성 유형은 텍스트, 전화번호, URL, 선택, 다중 선택, 순위 지정 중에서 선택할 수 있습니다. 관리자는 속성을 생성, 편집, 삭제할 수 있으며, 속성 이름을 바꾸면 같은 레이블을 공유하는 연결된 리소스 필드의 이름도 함께 바뀝니다. 플러그인이 소유한 속성은 플러그인 설정으로 연결되는 링크와 함께 읽기 전용으로 표시됩니다.
  • 값이 상위/하위 계층을 이루는 계층형 속성 유형(API에서는 graph)을 추가했습니다. 계층형 속성은 속성 관리에서 생성하고, 계정 설정과 System Console 사용자 상세 페이지에서 옵션 선택기로 설정하며, 사용자 프로필 팝오버에 이름으로 표시됩니다. 기존 속성의 유형은 계층형으로 또는 계층형에서 다른 유형으로 변경할 수 없습니다. 액세스 정책은 새로운 함수 4개(coversAll, coversAny, withinAll, withinAny)로 계층형 속성을 비교할 수 있습니다. 속성의 옵션을 나열, 생성, 업데이트, 삭제하는 REST 엔드포인트와 플러그인 API 메서드를 추가했습니다.
  • ChannelAttributes 기능 플래그 뒤에서 Enterprise Advanced에 채널 속성을 추가했습니다. 채널을 만들 때 필수 채널 속성이 있으면 입력을 요청하며, 모두 입력해야 채널을 만들 수 있습니다. 채널 속성 값은 생성 후 채널 정보의 새 속성 섹션에서 보고, 편집하고, 추가할 수 있으며, 각 속성의 변경 정책(모든 변경, 증가만, 감소만, 변경 불가)이 적용됩니다. 잠긴 속성은 이유와 함께 읽기 전용으로 표시됩니다. 이제 채널 배너는 채널 속성 값으로 구성되며, 수동으로 구성한 배너가 있으면 계속 우선합니다. POST /api/v4/channels는 채널 속성 값을 받으며 필수 값이 없는 채널의 생성을 거부합니다.
  • 덮어쓰기를 확인하기 전에 설치된 플러그인 버전과 업로드한 플러그인 버전을 비교하는 중복 플러그인 업로드 확인 모달을 추가했습니다.
  • 플러그인 설정 페이지의 활성화 설정을 즉시 실행되는 플러그인 작업 버튼으로 대체하고, 플러그인 설정에서 제거하는 옵션을 추가했습니다.
  • 자동 업로드 드롭존, 진행률 표시기, 더 명확한 비활성 상태 메시지로 System Console의 플러그인 업로드 사용자 경험을 개선했습니다.
  • 내보내기, SQL 복제본 모니터, 기능 플래그 동기화, 읽으면 삭제(burn-on-read), LDAP 그룹 필터, Elasticsearch 인덱스 크기, 연결된 워크스페이스 배치 크기, 푸시 알림 버퍼, 로그 수준, 파일 스토리지, 이메일, 세션, 데이터 보존, TLS, 웹 서버 설정에 대해 더 엄격한 서버 구성 검증을 추가했습니다.
  • 모바일 임시 모드(Mobile Ephemeral Mode) 설정과 관련하여 모바일 기기의 캐시된 데이터 삭제로 발생하는 새 이벤트에 대한 감사 로깅을 추가했습니다.
  • 이제 액세스 규칙은 새로운 ResourceAttributesInPolicies 기능 플래그 뒤에서 사용자의 속성을 접근 대상 채널의 속성과 비교할 수 있으며, 다중 값 속성에는 hasAnyOf와 hasAllOf를 사용할 수 있습니다. 채널 속성을 참조하는 규칙은 해당 속성에 값을 설정하지 않은 모든 채널에 대한 접근을 거부합니다.
  • 개인 액세스 토큰 수명 적용, 만료 알림, 규정을 준수하지 않는 토큰 해지를 사용자 소유 봇 계정으로 확대했습니다. 플러그인 소유 봇 계정과 보호된 시스템 봇 계정은 계속 제외됩니다.
  • 사용자 소유 봇 계정에 대한 개인 액세스 토큰 만료 및 재생성의 웹 앱 지원을 추가했습니다.
  • 채널 파일 다운로드 권한 정책을 콘텐츠 검토자에게 적용했습니다.
  • 제품, 심각도, 이슈 ID, 날짜, 영향받는 버전 범위로 권고를 필터링하는 실시간 Security Updates 게시판을 보안 가이드에 추가했습니다.
  • EnableAIRecaps 기능 플래그가 활성화되지 않으면 System Console Recaps 페이지를 숨깁니다.
  • OAuth 애플리케이션 관리 및 인가 엔드포인트 처리를 업데이트했습니다.
  • 사용자 목록 API의 팀 필터 처리를 업데이트했습니다.
  • 세션 속성(사용자 에이전트, IP 주소, 기기/네트워크 상태)이 이제 기본적으로 수집됩니다.
  • 게시물 조회, 채널 북마크, 알림 전달을 위한 파일 메타데이터 준비 방식을 업데이트했습니다.
  • 커스텀 이모지 이미지 처리가 공유 이미지 디코더를 사용하도록 업데이트하여, 애니메이션 GIF 소스에 구성된 최대 이미지 해상도와 이미지 디코더 동시성 제한이 적용됩니다.
  • 이미지 방향을 판단할 때 EXIF 메타데이터를 읽는 방식을 업데이트했습니다.
  • 생성된 지원 패키지(Support Packet)와 서버 로그 출력에서 데이터베이스 연결 문자열을 보고하는 방식을 업데이트했습니다.

mmctl#

  • 사용자 소유 봇 계정의 개인 액세스 토큰 수명 적용을 위해 mmctl bot create --with-token에 --expires-in 플래그를 추가했습니다.
  • 전체 서버 대신 단일 팀 또는 쉼표로 구분한 팀 목록을 내보내도록 mmctl export create에 --team-name 및 --team-id 플래그를 추가했습니다.
  • 팀의 단일 채널 또는 쉼표로 구분한 채널 목록을 내보내도록 mmctl export create에 --channel-name 및 --channel-id 플래그를 추가했습니다.
  • mmctl export create로 범위를 지정해 내보내면 원본 서버의 전체 이모지 라이브러리가 대상 서버로 들어가는 일을 피하기 위해 기본적으로 커스텀 이모지가 제외됩니다. 커스텀 이모지를 포함하려면 --include-custom-emoji를 전달하세요. 대상 서버에 없는 커스텀 이모지를 참조하는 반응은 그렇지 않으면 :name: 텍스트 그대로 표시됩니다.
  • 내보낸 팀에 할당된 커스텀 권한 스킴가 이제 내보내기에 보존됩니다.
  • 내보낸 팀을 대상 서버의 다른 팀으로 다시 매핑하도록 mmctl import process에 --destination-team-name 및 --destination-team-id 플래그를 추가했습니다.
  • 내보낸 채널을 대상 서버의 다른 채널로 다시 매핑하도록 mmctl import process에 --destination-channel-name 및 --destination-channel-id 플래그를 추가했습니다.
  • SSO 사용자를 가져오기 전에 실행되는 LDAP/SAML 구성 검사를 건너뛰도록 mmctl import process에 --skip-preflight 플래그를 추가했습니다.
  • 가져오기 작업이 진행 상황을 체크포인트로 저장하며, 프로세스 강제 종료로 중단된 작업을 포함하여 충돌 또는 실패 후 다시 시작할 수 있습니다.
  • 범위를 지정한 가져오기로 들어온 모든 사용자는 비활성화된 상태로 관리자 검토 대기 중임을 나타내는 IMPORTED - INACTIVE 태그가 붙습니다. 대상 서버에 이미 존재하는 사용자는 기존 계정과 매칭되며 활성 상태로 유지됩니다.
  • 가져온 사용자의 사용자 이름이 대상 서버의 기존 계정과 일치하면 해당 사용자의 게시물과 반응이 삭제되지 않고 그 계정에 귀속됩니다.
  • 대상 서버에 존재하지 않는 채널을 참조하는 게시물은 전체 가져오기를 중단하는 대신 건너뜁니다.
  • 대상 서버의 유일한 시스템 관리자를 강등하게 되는 역할 업데이트는 가져오기를 중단하는 대신 건너뜁니다.
  • 원본 사용자의 과거 비활성화 날짜가 가져오기 타임스탬프로 덮어쓰이지 않고 보존됩니다.

성능#

  • 벤치마킹 테스트 결과 유의미한 차이가 없었습니다. 새 릴리즈에서 지원되는 사용자 수가 4.31% 감소했으며, 이는 [-5%, +5%] 예측 구간 안에 있습니다. 전체 원시 데이터와 방법론은 성능 보고서 리포지터리에서 확인하세요.
  • 매우 큰 FileInfo 및 Channels 테이블에 대한 Elasticsearch 및 Opensearch 대량 인덱싱 작업의 성능을 개선했습니다.
  • 존재하지 않는 커스텀 이모지 이름(예: "11:11:11"과 같은 타임스탬프 속 이모지 형태의 토큰)의 조회를 캐시하여 데이터베이스 부하를 줄였습니다.

버그 수정#

  • 리디렉션 체인을 따라간 후 제한된 도메인의 링크 미리보기가 렌더링될 수 있던 문제를 수정했습니다.
  • 사이드바의 다이렉트 메시지 및 그룹 메시지 채널이 채널을 클릭하기 전까지 빈 행으로 렌더링되거나 멤버 수가 0으로 표시될 수 있던 문제를 수정했습니다.
  • 미디어 갤러리가 스크롤 막대가 나타나는 너비 근처에 있을 때 인라인 이미지와 동영상이 두 가지 크기 사이에서 깜박일 수 있던 문제를 수정했습니다.
  • mmctl의 출력 형식 관련 문제를 수정했습니다.
  • 기존 계정에 대한 대량 가져오기 처리 관련 문제를 수정했습니다.
  • 채널 멤버 API 엔드포인트가 다른 사용자의 멤버십에 대해 유효하지 않은 last_viewed_at 및 last_update_at 값 -1을 반환하던 문제를 수정했습니다. 이제 이 필드는 요청자가 아닌 다른 사용자의 멤버십인 경우 응답에서 생략됩니다(Linux에서 보고됨).
  • ABAC 플러그인 정책 저장 시 자기 포함 및 공유 쓰기 보호가 적용되도록 수정하고, 정책 편집기/테스트 사용자 인터페이스가 null 사용자와 불완전한 필드에 견딜 수 있도록 강화했습니다.
  • 섹션 기반 플러그인 설정의 렌더링, 탐색, 검증, 검색을 수정했습니다.
  • 사용자 지정 설정 섹션이 여러 개이고 fallback 값이 혼합된 비활성 플러그인에서, 폴백이 활성화된 섹션의 설정이 하나의 "플러그인을 활성화하세요" 경고 뒤에 숨겨지던 문제를 수정했습니다.
  • 플러그인이 푸터 없이 섹션을 사용해 설정을 정의한 경우, 실행 중인 플러그인의 설정이 System Console에서 읽기 전용으로 렌더링될 수 있던 문제를 수정했습니다.
  • 플러그인 목록 간에 페이지를 넘길 때 앱 마켓플레이스 모달의 너비가 바뀌던 문제를 수정했습니다.
  • AI Recaps 시스템 콘솔 권한이 system_admin 역할에 적용되지 않아 업그레이드된 서버에서 System Console Recaps 페이지가 시스템 관리자에게 숨겨지던 문제를 수정했습니다.
  • 앱 마이그레이션이 방금 기록한 행을 아직 따라잡지 못한 읽기 복제본에서 읽어 시작이 중단되던 서버 시작 충돌을 수정했습니다. 이 문제는 라이선스가 있고 SqlSettings.DataSourceReplicas가 구성된 서버에 영향을 주었습니다.
  • 슬래시 명령어, 아웃고잉 웹훅, 게시물 작업 콜백, 대화형 대화 상자 제출, 대화 상자 조회에서 ServiceSettings.OutgoingIntegrationRequestsTimeout 값이 30초를 넘으면 조용히 30초로 제한되던 문제를 수정했습니다.
  • ScheduledPostWillBeCreated 훅을 구현한 플러그인이 읽으면 삭제(burn-on-read) 메시지가 예약되거나 편집될 때 해당 메시지의 내용을 받던 문제를 수정했습니다. 이제 읽으면 삭제 예약 게시물에서는 이 훅을 건너뛰므로, 가드 플러그인은 더 이상 해당 메시지를 검사하거나 거부할 수 없습니다.
  • 스레드 보기를 보는 동안 앱 바에서 Copilot과 같은 플러그인 오른쪽 사이드바 패널을 열 수 없던 문제를 수정했습니다.
  • 플러그인 시작 실패가 웹 앱 시작을 막지 않도록 했습니다. 실패한 플러그인은 페이지를 다시 불러올 때까지 비활성 상태로 남아 있었습니다(웹 앱에서 보고됨).
  • 속성 기반 접근 제어 정책으로 멤버십이 관리되는 팀과 채널의 알림 배너에 기본 제공 속성이 표시되지 않던 문제를 수정했습니다.
  • 대화형 대화 상자가 잘못된 채널에 제출되던 문제를 수정했습니다. 이제 사용자가 현재 보고 있는 채널과 관계없이 트리거가 생성된 채널에 대화 상자가 올바르게 제출됩니다(웹 앱에서 보고됨).
  • ServiceSettings.PostEditTimeLimit보다 오래된 게시물을 고정하거나 고정 해제할 수 없던 문제를 수정했습니다.
  • 메시지 미리보기에서 사용자 멘션을 클릭하면 프로필 팝오버가 열리는 대신 초안이 게시되던 버그를 수정했습니다.
  • 모바일 웹에서 시간을 선택한 후에도 메시지 예약 메뉴가 열려 있어 같은 초안이 두 번 이상 예약될 수 있던 문제를 수정했습니다(웹 앱 및 모바일 웹에서 보고됨).
  • 이미 열려 있는 채널에 도착한 GIF 선택기의 GIF에 이미지 미리보기 디스플레이 설정의 기본 모양이 적용되지 않던 문제를 수정했습니다.
  • 검색 클러스터가 AWS OpenSearch Service의 opensearch-analysis-nori처럼 접두사가 붙은 구성 요소 이름으로 플러그인을 보고할 때 한국어 nori 분석기가 적용되지 않던 문제를 수정했습니다.
  • 허용된 테마(Allowed Themes), DCR 리디렉션 URI 허용 목록(DCR Redirect URI Allowlist)처럼 쉼표로 구분된 목록을 받는 System Console 설정이 주변 공백을 포함하여 항목을 저장하던 문제를 수정했습니다.
  • 서버가 항상 거부하는 기본 채널의 URL을 관리자가 변경하려고 시도할 수 있던 사용자 인터페이스 문제를 수정했습니다. 이제 URL은 설명과 함께 읽기 전용으로 표시되며, 채널 이름은 계속 편집할 수 있습니다.
  • System Console > User Management > Users의 CSV 내보내기가 검색어를 무시하고 사용자 인터페이스에 표시된 필터링된 하위 집합 대신 모든 사용자를 내보내던 문제를 수정했습니다.
  • 관리자가 메뉴가 넘칠 만큼 많은 팀에 속해 있을 때 System Console 헤더 메뉴의 스크롤 막대가 사이드바에 가려지던 문제를 수정했습니다(데스크톱 앱에서 보고됨).
  • 클라우드 미리보기 소개 모달이 페이지 하단에 위치하지 않고 세로 가운데에 표시되도록 수정했습니다.
  • 초대받은 사람이 이미 워크스페이스 멤버일 때 표시되는 게스트 초대 오류를 수정했습니다. 팀에 멤버를 추가할 수 없는 초대자는 이제 해당 사람을 멤버로 초대하라는 안내 대신 시스템 관리자에게 문의하라는 안내를 받습니다(웹 앱에서 보고됨).
  • 코드에서 영어 문법을 조합하여 올바르게 번역할 수 없던 관리자 콘솔 문자열 4개를 수정했습니다. 여기에는 다른 모든 언어에서 영어 "a" 또는 "an"이 불필요하게 표시되던 툴팁이 포함됩니다.
  • 영어 번역 오타를 바로잡고 채널에서 제거된 사용자에 대한 감사 로그 문구를 수정했습니다.
  • 사용자 프로필 업데이트 처리 관련 문제를 수정했습니다.
  • System Console 사용자 상세 페이지에 기본 "선택된 파일 없음" 파일 선택 컨트롤이 나타날 수 있던 회귀를 수정했습니다.
  • 다이렉트 메시지가 팀 멤버로 제한되는 동안 인커밍 웹훅의 다이렉트 및 그룹 채널 대상 지정을 업데이트했습니다.
  • 채널 속성을 변경하거나 일부 속성 드롭다운을 열면 채널 헤더의 모든 속성 칩이 잠시 비워지던 문제를 수정했습니다.
  • 캐시된 세션을 무효화해도 이미 열려 있는 웹소켓 연결에 경우에 따라 전파되지 않던 문제를 수정했습니다.
  • 기본 속성 정의에 LDAP 또는 SAML 동기화 소스가 설정되어 있으면 채널 속성 값을 저장할 수 없고 403 Forbidden 오류가 발생하던 문제를 수정했습니다.
  • 스레드 보기 또는 스레드 팝아웃에서 스레드를 열었을 때 채널의 헤더 속성이 표시되지 않던 문제를 수정했습니다.
  • 채널이 열린 상태에서 현지 날짜가 바뀌어도 게시물 사이의 상대 날짜 구분선이 업데이트되지 않아, 오래된 "오늘" 구분선이 남고 자정 이후에 작성된 게시물에 두 번째 "오늘" 구분선이 생기던 문제를 수정했습니다.
  • 분류 표시(Classification Markings) 페이지가 속성 관리에서 생성된 관련 없는 "classification"이라는 이름의 속성을 조용히 채택하거나 그 속성과 충돌할 수 있던 문제를 수정했습니다. 이제 이러한 충돌은 설명이 포함된 오류로 보고되고 해결될 때까지 페이지가 읽기 전용이 되며, 충돌하는 속성은 속성 관리에서 계속 편집하고 삭제할 수 있습니다.
  • ZIP 아카이브에서 콘텐츠를 추출할 때 과도한 메모리를 소비할 수 있던 문제를 수정했습니다.
  • 스페인어, 프랑스어, 이탈리아어, 일본어에서 서버 메시지가 비어 표시되던 문제를 수정했습니다. 번역되기 전까지는 영어로 표시됩니다.
  • 세션 속성이 변경된 후 클라이언트 캐시를 지울 때까지 파일 첨부가 숨겨진 상태 또는 표시된 상태로 남을 수 있던 문제를 수정했습니다.
  • 속성 관리에서 시스템 관리자가 아닌 사용자에게 읽기 전용 작업 대신 편집 및 삭제 작업이 표시되던 문제, 분류 표시에 필요한 Enterprise Advanced 라이선스 없이 분류 속성이 표시되던 문제, 속성 기반 접근 링크가 속성 관리로 연결되지 않던 문제, 템플릿의 LDAP 또는 SAML 동기화 소스를 변경해도 연결된 사용자 속성이 업데이트되지 않던 문제를 수정했습니다.
  • 자동 번역에 사용하는 AI 서비스를 변경해도 서버를 다시 시작하기 전까지 적용되지 않던 문제를 수정했습니다.
  • Identity Provider의 메타데이터에 cacheDuration 속성(예: PingFederate의 기본값 cacheDuration="PT1440M") 또는 시간대가 없는 validUntil 값이 포함되어 있을 때 System Console의 IdP에서 SAML 메타데이터 가져오기가 실패하던 문제를 수정했습니다.
  • 스레드 팝아웃 창이 스레드 헤더와 메시지 상자만 표시된 채 비어 있는 상태로 열리던 문제를 수정했습니다.
  • received_group WebSocket 이벤트의 범위를 수정하여 해당 그룹을 읽을 수 있는 사용자에게만 전달되도록 했습니다.
  • 이전 버전에서 허용하던 구성으로 v12가 시작되지 않던 문제를 수정했습니다. 지원되지 않는 TLSMinVer 및 WebserverMode 값, 표시 이름이 포함된 이메일 설정, 범위를 벗어난 숫자 설정은 이제 시작 시 경고와 함께 수정됩니다. 비활성화된 로그 대상의 잘못된 로그 수준과 LDAP가 비활성화된 상태에서의 잘못된 LDAP 포트 또는 쿼리 제한 시간은 더 이상 거부되지 않습니다.
  • 스레드 읽지 않음 탭이 읽지 않은 스레드가 있다고 보고하면서도 빈 목록을 표시할 수 있던 문제를 수정했습니다. 업그레이드 후에도 문제가 지속되고 리버스 프록시나 CDN이 API 응답을 캐시하는 경우, 해당 캐시를 한 번 삭제하세요(데스크톱 앱에서 보고됨).

API 변경 사항#

  • POST /access_control/decisions/actions/search (searchAccessControlDecisionActions) API 엔드포인트를 추가했습니다.
  • GET /delivery_tracking/config (getDeliveryTrackingConfig) API 엔드포인트를 추가했습니다.
  • PUT /delivery_tracking/config (updateDeliveryTrackingConfig) API 엔드포인트를 추가했습니다.
  • POST /ephemeral_mode/cleanup (logCleanup) API 엔드포인트를 추가했습니다.
  • POST /ephemeral_mode/purge (logOfflinePurge) API 엔드포인트를 추가했습니다.
  • POST /ephemeral_mode/wipe (logSessionWipe) API 엔드포인트를 추가했습니다.
  • GET /properties/groups/{group_name}/{object_type}/fields/{field_id}/options (getPropertyFieldOptions) API 엔드포인트를 추가했습니다.
  • POST /properties/groups/{group_name}/{object_type}/fields/{field_id}/options (createPropertyFieldOptions) API 엔드포인트를 추가했습니다.
  • PATCH /properties/groups/{group_name}/{object_type}/fields/{field_id}/options (patchPropertyFieldOptions) API 엔드포인트를 추가했습니다.
  • DELETE /properties/groups/{group_name}/{object_type}/fields/{field_id}/options (deletePropertyFieldOptions) API 엔드포인트를 추가했습니다.

감사 로그 이벤트 변경 사항#

  • AuditEventAutoCacheCleanupRun 감사 로그 이벤트를 추가했습니다.
  • AuditEventChannelMembershipAdded 감사 로그 이벤트를 추가했습니다.
  • AuditEventChannelMembershipRemoved 감사 로그 이벤트를 추가했습니다.
  • AuditEventCreatePropertyFieldOptions 감사 로그 이벤트를 추가했습니다.
  • AuditEventDeletePropertyFieldOptions 감사 로그 이벤트를 추가했습니다.
  • AuditEventGetPropertyFieldOptions 감사 로그 이벤트를 추가했습니다.
  • AuditEventOfflinePurge 감사 로그 이벤트를 추가했습니다.
  • AuditEventPatchPropertyFieldOptions 감사 로그 이벤트를 추가했습니다.
  • AuditEventPostDelivered 감사 로그 이벤트를 추가했습니다.
  • AuditEventSessionWipe 감사 로그 이벤트를 추가했습니다.
  • AuditEventUpdateDeliveryTrackingConfig 감사 로그 이벤트를 추가했습니다.
  • 더 이상 사용되지 않는 기본 제공 Slack 가져오기 API와 함께 AuditEventImportTeam(importTeam) 감사 로그 이벤트를 제거했습니다.
  • 더 이상 사용되지 않는 기본 제공 Slack 가져오기 CLI와 함께 AuditEventSlackImport(slackImport) 감사 로그 이벤트를 제거했습니다.

Go 버전#

  • v12.0은 Go v1.26.7로 빌드되었습니다.