snapshot of https://github.com/mattermost/mattermost.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s
Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s
This commit is contained in:
473
api/v4/source/remoteclusters.yaml
Normal file
473
api/v4/source/remoteclusters.yaml
Normal file
@@ -0,0 +1,473 @@
|
||||
"/api/v4/remotecluster":
|
||||
get:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Get a list of remote clusters.
|
||||
description: |
|
||||
Get a list of remote clusters.
|
||||
|
||||
##### Permissions
|
||||
`manage_secure_connections` or `manage_shared_channels`
|
||||
operationId: GetRemoteClusters
|
||||
parameters:
|
||||
- name: page
|
||||
in: query
|
||||
description: The page to select
|
||||
schema:
|
||||
type: integer
|
||||
- name: per_page
|
||||
in: query
|
||||
description: The number of remote clusters per page
|
||||
schema:
|
||||
type: integer
|
||||
- name: exclude_offline
|
||||
in: query
|
||||
description: Exclude offline remote clusters
|
||||
schema:
|
||||
type: boolean
|
||||
- name: in_channel
|
||||
in: query
|
||||
description: Select remote clusters in channel
|
||||
schema:
|
||||
type: string
|
||||
- name: not_in_channel
|
||||
in: query
|
||||
description: Select remote clusters not in this channel
|
||||
schema:
|
||||
type: string
|
||||
- name: only_confirmed
|
||||
in: query
|
||||
description: Select only remote clusters already confirmed
|
||||
schema:
|
||||
type: boolean
|
||||
- name: only_plugins
|
||||
in: query
|
||||
description: Select only remote clusters that belong to a plugin
|
||||
schema:
|
||||
type: boolean
|
||||
- name: exclude_plugins
|
||||
in: query
|
||||
description: Select only remote clusters that don't belong to a plugin
|
||||
schema:
|
||||
type: boolean
|
||||
- name: include_deleted
|
||||
in: query
|
||||
description: Include those remote clusters that have been deleted
|
||||
schema:
|
||||
type: boolean
|
||||
responses:
|
||||
"200":
|
||||
description: Remote clusters fetch successful. Result might be empty.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/RemoteCluster"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
"403":
|
||||
$ref: "#/components/responses/Forbidden"
|
||||
|
||||
post:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Create a new remote cluster.
|
||||
description: |
|
||||
Create a new remote cluster and generate an invite code.
|
||||
|
||||
##### Permissions
|
||||
`manage_secure_connections`
|
||||
operationId: CreateRemoteCluster
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- name
|
||||
- default_team_id
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
display_name:
|
||||
type: string
|
||||
default_team_id:
|
||||
type: string
|
||||
password:
|
||||
type: string
|
||||
description: |
|
||||
The password to use in the invite code. If empty,
|
||||
the server will generate one and it will be part
|
||||
of the response
|
||||
responses:
|
||||
"201":
|
||||
description: Remote cluster creation successful
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
remote_cluster:
|
||||
$ref: "#/components/schemas/RemoteCluster"
|
||||
invite:
|
||||
type: string
|
||||
description: The encrypted invite for the newly created remote cluster
|
||||
password:
|
||||
type: string
|
||||
description: |
|
||||
The password generated by the server if none was
|
||||
sent on the create request
|
||||
"400":
|
||||
$ref: "#/components/responses/BadRequest"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
"403":
|
||||
$ref: "#/components/responses/Forbidden"
|
||||
|
||||
"/api/v4/remotecluster/{remote_id}":
|
||||
get:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Get a remote cluster.
|
||||
description: |
|
||||
Get the Remote Cluster details from the provided id string.
|
||||
|
||||
##### Permissions
|
||||
`manage_secure_connections` or `manage_shared_channels`
|
||||
operationId: GetRemoteCluster
|
||||
parameters:
|
||||
- name: remote_id
|
||||
in: path
|
||||
description: Remote Cluster GUID
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: Remote Cluster retrieval successful
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/RemoteCluster"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
"403":
|
||||
$ref: "#/components/responses/Forbidden"
|
||||
"404":
|
||||
$ref: "#/components/responses/NotFound"
|
||||
patch:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Patch a remote cluster.
|
||||
description: |
|
||||
Partially update a Remote Cluster by providing only the fields you want to update. Ommited fields will not be updated.
|
||||
|
||||
##### Permissions
|
||||
`manage_secure_connections`
|
||||
operationId: PatchRemoteCluster
|
||||
parameters:
|
||||
- name: remote_id
|
||||
in: path
|
||||
description: Remote Cluster GUID
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
display_name:
|
||||
type: string
|
||||
default_team_id:
|
||||
type: string
|
||||
description: The team where channels from invites are created
|
||||
responses:
|
||||
"200":
|
||||
description: Remote Cluster patch successful
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/RemoteCluster"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
"403":
|
||||
$ref: "#/components/responses/Forbidden"
|
||||
"404":
|
||||
$ref: "#/components/responses/NotFound"
|
||||
delete:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Delete a remote cluster.
|
||||
description: |
|
||||
Deletes a Remote Cluster.
|
||||
|
||||
##### Permissions
|
||||
`manage_secure_connections`
|
||||
operationId: DeleteRemoteCluster
|
||||
parameters:
|
||||
- name: remote_id
|
||||
in: path
|
||||
description: Remote Cluster GUID
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"204":
|
||||
description: Remote Cluster deletion successful
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
"403":
|
||||
$ref: "#/components/responses/Forbidden"
|
||||
"404":
|
||||
$ref: "#/components/responses/NotFound"
|
||||
|
||||
"/api/v4/remotecluster/{remote_id}/generate_invite":
|
||||
post:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Generate invite code.
|
||||
description: |
|
||||
Generates an invite code for a given remote cluster.
|
||||
|
||||
##### Permissions
|
||||
`manage_secure_connections`
|
||||
operationId: GenerateRemoteClusterInvite
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- password
|
||||
properties:
|
||||
password:
|
||||
type: string
|
||||
description: The password to encrypt the invite code with.
|
||||
responses:
|
||||
"201":
|
||||
description: Invite code generated
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: string
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
"403":
|
||||
$ref: "#/components/responses/Forbidden"
|
||||
|
||||
"/api/v4/remotecluster/accept_invite":
|
||||
post:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Accept a remote cluster invite code.
|
||||
description: |
|
||||
Accepts a remote cluster invite code.
|
||||
|
||||
##### Permissions
|
||||
`manage_secure_connections`
|
||||
operationId: AcceptRemoteClusterInvite
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- invite
|
||||
- name
|
||||
- default_team_id
|
||||
- password
|
||||
properties:
|
||||
invite:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
display_name:
|
||||
type: string
|
||||
default_team_id:
|
||||
type: string
|
||||
password:
|
||||
type: string
|
||||
description: The password to decrypt the invite code.
|
||||
responses:
|
||||
"201":
|
||||
description: Invite successfully accepted
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/RemoteCluster"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
"403":
|
||||
$ref: "#/components/responses/Forbidden"
|
||||
|
||||
"/api/v4/remotecluster/ping":
|
||||
post:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Receive a ping from a remote cluster.
|
||||
description: |
|
||||
Receives heartbeat traffic from an already linked remote cluster.
|
||||
This endpoint is authenticated with a remote-cluster token and is
|
||||
used by the secure connection transport layer.
|
||||
|
||||
##### Permissions
|
||||
No user session permissions required.
|
||||
operationId: RemoteClusterPing
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/RemoteClusterFrame"
|
||||
responses:
|
||||
"200":
|
||||
description: Ping response successful
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/RemoteClusterPing"
|
||||
"400":
|
||||
$ref: "#/components/responses/BadRequest"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
|
||||
"/api/v4/remotecluster/msg":
|
||||
post:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Receive a remote cluster message.
|
||||
description: |
|
||||
Receives and processes an incoming transport message from a linked
|
||||
remote cluster. This endpoint is authenticated with a remote-cluster
|
||||
token and is part of the secure connection protocol.
|
||||
|
||||
##### Permissions
|
||||
No user session permissions required.
|
||||
operationId: RemoteClusterAcceptMessage
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/RemoteClusterFrame"
|
||||
responses:
|
||||
"200":
|
||||
description: Message accepted successfully
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/RemoteClusterResponse"
|
||||
"400":
|
||||
$ref: "#/components/responses/BadRequest"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
|
||||
"/api/v4/remotecluster/confirm_invite":
|
||||
post:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Confirm an invite with a remote cluster.
|
||||
description: |
|
||||
Confirms an invitation handshake from a linked remote cluster.
|
||||
This endpoint is authenticated with a remote-cluster token and is
|
||||
used by the secure connection protocol.
|
||||
|
||||
##### Permissions
|
||||
No user session permissions required.
|
||||
operationId: RemoteClusterConfirmInvite
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/RemoteClusterFrame"
|
||||
responses:
|
||||
"200":
|
||||
description: Invitation confirmation successful
|
||||
"400":
|
||||
$ref: "#/components/responses/BadRequest"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
|
||||
"/api/v4/remotecluster/upload/{upload_id}":
|
||||
post:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Upload file data for a remote upload session.
|
||||
description: |
|
||||
Streams file data into an existing upload session from a linked
|
||||
remote cluster. This endpoint is authenticated with a remote-cluster token.
|
||||
|
||||
##### Permissions
|
||||
No user session permissions required.
|
||||
operationId: UploadRemoteClusterData
|
||||
parameters:
|
||||
- name: upload_id
|
||||
in: path
|
||||
description: The upload session ID.
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
content:
|
||||
application/octet-stream:
|
||||
schema:
|
||||
type: string
|
||||
format: binary
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
file:
|
||||
type: string
|
||||
format: binary
|
||||
responses:
|
||||
"200":
|
||||
description: Upload chunk accepted
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/FileInfo"
|
||||
"204":
|
||||
description: Upload data accepted with no file completion yet
|
||||
"400":
|
||||
$ref: "#/components/responses/BadRequest"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
|
||||
"/api/v4/remotecluster/{user_id}/image":
|
||||
post:
|
||||
tags:
|
||||
- remote clusters
|
||||
summary: Set profile image for a remote user.
|
||||
description: |
|
||||
Uploads and sets a profile image for a remote user managed by the
|
||||
requesting remote cluster. This endpoint is authenticated with a
|
||||
remote-cluster token.
|
||||
|
||||
##### Permissions
|
||||
No user session permissions required.
|
||||
operationId: RemoteSetProfileImage
|
||||
parameters:
|
||||
- name: user_id
|
||||
in: path
|
||||
description: The remote user ID.
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
image:
|
||||
type: string
|
||||
format: binary
|
||||
responses:
|
||||
"200":
|
||||
description: Profile image updated successfully
|
||||
"400":
|
||||
$ref: "#/components/responses/BadRequest"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
Reference in New Issue
Block a user