Files
team/api/v4/source/ldap.yaml
T
zeekayandHanzo Dev 404de134f3 Point the API spec and its route checker at the new base
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]>
2026-08-14 10:58:08 -07:00

452 lines
13 KiB
YAML

/v1/team/ldap/sync:
post:
tags:
- LDAP
summary: Sync with LDAP
description: >
Synchronize any user attribute changes in the configured AD/LDAP server
with Mattermost.
##### Permissions
Must have `manage_system` permission.
operationId: SyncLdap
responses:
"200":
description: LDAP sync successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"501":
$ref: "#/components/responses/NotImplemented"
/v1/team/ldap/test:
post:
tags:
- LDAP
summary: Test LDAP configuration
description: >
Test the current AD/LDAP configuration to see if the AD/LDAP server can
be contacted successfully.
##### Permissions
Must have `manage_system` permission.
operationId: TestLdap
responses:
"200":
description: LDAP test successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"500":
$ref: "#/components/responses/InternalServerError"
"501":
$ref: "#/components/responses/NotImplemented"
/v1/team/ldap/test_connection:
post:
tags:
- LDAP
summary: Test LDAP connection with specific settings
description: >
Test the LDAP connection using the provided settings without modifying
the current server configuration.
##### Permissions
Must have `sysconsole_read_authentication_ldap` or `manage_system` permission.
operationId: TestLdapConnection
requestBody:
description: LDAP settings to test
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/LdapSettings"
responses:
"200":
description: LDAP connection test successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"500":
$ref: "#/components/responses/InternalServerError"
"501":
$ref: "#/components/responses/NotImplemented"
/v1/team/ldap/test_diagnostics:
post:
tags:
- LDAP
summary: Test LDAP diagnostics with specific settings
description: >
Test LDAP diagnostics using the provided settings to validate configuration
and see sample results without modifying the current server configuration.
Use the `test` query parameter to specify which diagnostic to run.
##### Permissions
Must have `sysconsole_read_authentication_ldap` or `manage_system` permission.
operationId: TestLdapDiagnostics
parameters:
- in: query
name: test
required: true
description: Type of LDAP diagnostic test to run
schema:
type: string
enum:
- filters
- attributes
- group_attributes
example: filters
requestBody:
description: LDAP settings to test diagnostics with
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/LdapSettings"
responses:
"200":
description: LDAP diagnostic test results
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/LdapDiagnosticResult"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"500":
$ref: "#/components/responses/InternalServerError"
"501":
$ref: "#/components/responses/NotImplemented"
/v1/team/ldap/groups:
get:
tags:
- LDAP
summary: Returns a list of LDAP groups
description: >
##### Permissions
Must have `manage_system` permission.
__Minimum server version__: 5.11
operationId: GetLdapGroups
parameters:
- name: q
in: query
description: Search term
required: false
schema:
type: string
- name: page
in: query
description: The page to select.
schema:
type: integer
default: 0
- name: per_page
in: query
description: The number of users per page.
per page.
schema:
type: integer
default: 60
responses:
"200":
description: LDAP group page retrieval successful
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/LDAPGroupsPaged"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
/v1/team/ldap/groups/{remote_id}/link:
post:
tags:
- LDAP
summary: Link a LDAP group
description: >
##### Permissions
Must have `manage_system` permission.
__Minimum server version__: 5.11
operationId: LinkLdapGroup
parameters:
- name: remote_id
in: path
description: Group GUID
required: true
schema:
type: string
responses:
"201":
description: LDAP group successfully linked
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
delete:
tags:
- groups
summary: Delete a link for LDAP group
description: >
##### Permissions
Must have `manage_system` permission.
__Minimum server version__: 5.11
operationId: UnlinkLdapGroup
parameters:
- name: remote_id
in: path
description: Group GUID
required: true
schema:
type: string
responses:
"200":
description: Successfully deleted ldap group link
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
/v1/team/ldap/migrateid:
post:
tags:
- LDAP
summary: Migrate Id LDAP
description: >
Migrate LDAP IdAttribute to new value.
##### Permissions
Must have `manage_system` permission.
__Minimum server version__: 5.26
operationId: MigrateIdLdap
requestBody:
content:
application/json:
schema:
type: object
required:
- toAttribute
properties:
toAttribute:
description: New IdAttribute value
type: string
required: true
responses:
"200":
description: Migration successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"500":
$ref: "#/components/responses/InternalServerError"
"501":
$ref: "#/components/responses/NotImplemented"
/v1/team/ldap/certificate/public:
post:
tags:
- LDAP
summary: Upload public certificate
description: >
Upload the public certificate to be used for TLS verification. The server will pick a hard-coded filename for the
PublicCertificateFile setting in your `config.json`.
##### Permissions
Must have `manage_system` permission.
operationId: UploadLdapPublicCertificate
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
certificate:
description: The public certificate file
type: string
format: binary
required:
- certificate
responses:
"200":
description: LDAP certificate upload successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"501":
$ref: "#/components/responses/NotImplemented"
delete:
tags:
- LDAP
summary: Remove public certificate
description: >
Delete the current public certificate being used for TLS verification.
##### Permissions
Must have `manage_system` permission.
operationId: DeleteLdapPublicCertificate
responses:
"200":
description: LDAP certificate delete successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"501":
$ref: "#/components/responses/NotImplemented"
/v1/team/ldap/certificate/private:
post:
tags:
- LDAP
summary: Upload private key
description: >
Upload the private key to be used for TLS verification. The server will pick a hard-coded filename for the
PrivateKeyFile setting in your `config.json`.
##### Permissions
Must have `manage_system` permission.
operationId: UploadLdapPrivateCertificate
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
certificate:
description: The private key file
type: string
format: binary
required:
- certificate
responses:
"200":
description: LDAP certificate upload successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"501":
$ref: "#/components/responses/NotImplemented"
delete:
tags:
- LDAP
summary: Remove private key
description: >
Delete the current private key being used with your TLS verification.
##### Permissions
Must have `manage_system` permission.
operationId: DeleteLdapPrivateCertificate
responses:
"200":
description: LDAP certificate delete successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"501":
$ref: "#/components/responses/NotImplemented"
/v1/team/ldap/users/{user_id}/group_sync_memberships:
post:
tags:
- LDAP
summary: Create memberships for LDAP configured channels and teams for this user
description: >
Add the user to each channel and team configured for each LDAP group of whicht the user is
a member.
##### Permissions
Must have `sysconsole_write_user_management_groups` permission.
operationId: AddUserToGroupSyncables
parameters:
- name: user_id
in: path
description: User Id
required: true
schema:
type: string
responses:
"200":
description: Channel and team memberships created as needed.
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"501":
$ref: "#/components/responses/NotImplemented"