mirror of
https://github.com/hanzoai/team.git
synced 2026-09-30 01:57:35 +00:00
The OpenAPI document keys every operation by its full path, so the spec described endpoints that no longer exist the moment the server moved. The openApiSync analyzer cross-checks each registered subrouter against that document and reconstructs the prefix from a literal of its own, so spec and analyzer have to move together or every route reports as missing. Its special case for the v5 root goes away with the root itself. The api/v4 directory keeps its name: it is where the spec sources live, not a URL anyone requests. Co-authored-by: Hanzo Dev <[email protected]>
474 lines
14 KiB
YAML
474 lines
14 KiB
YAML
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|