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

This commit is contained in:
upstream-mirror
2026-09-16 00:29:55 +05:00
commit 240db4e2a7
15309 changed files with 2173406 additions and 0 deletions

View File

@@ -0,0 +1,471 @@
"/api/v4/custom_profile_attributes/fields":
get:
tags:
- custom profile attributes
summary: List all the Custom Profile Attributes fields
description: |
List all the Custom Profile Attributes fields.
__Minimum server version__: 10.5
##### Permissions
Must be authenticated.
operationId: ListAllCPAFields
responses:
"200":
description: Custom Profile Attributes fetch successful. Result may be empty.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/PropertyField"
"401":
$ref: "#/components/responses/Unauthorized"
post:
tags:
- custom profile attributes
summary: Create a Custom Profile Attribute field
description: |
Create a new Custom Profile Attribute field on the system.
__Minimum server version__: 10.5
##### Permissions
Must have `manage_system` permission.
operationId: CreateCPAField
requestBody:
content:
application/json:
schema:
type: object
required:
- name
- type
properties:
name:
type: string
description: >
The internal identifier for this attribute. Must match
`^[A-Za-z_][A-Za-z0-9_]*$` and must not be a CEL reserved
word (true, false, null, in, as, break, const, continue, else,
for, function, if, import, let, loop, package, namespace,
return, var, void, while). This name is used in ABAC policy
expressions as `user.attributes.<name>`.
type:
type: string
attrs:
type: object
properties:
visibility:
type: string
description: "Visibility of the attribute"
enum: ["hidden", "when_set", "always"]
default: "when_set"
sort_order:
type: number
description: "Sort order for displaying this attribute"
options:
type: array
description: "Options for select/multiselect fields"
items:
type: object
properties:
name:
type: string
color:
type: string
value_type:
type: string
description: "Type of text value"
enum: ["email", "url", "phone"]
ldap:
type: string
description: "LDAP attribute for syncing"
saml:
type: string
description: "SAML attribute for syncing"
protected:
type: boolean
description: "If true, the field is read-only and cannot be modified."
source_plugin_id:
type: string
description: "The ID of the plugin that created this field. This attribute cannot be changed."
access_mode:
type: string
description: "Access mode of the field"
enum: ["", "source_only", "shared_only"]
default: ""
display_name:
type: string
description: >
Human-readable label shown in the UI. Defaults to the field
`name` when omitted or empty. Maximum 255 characters.
responses:
"201":
description: Custom Profile Attribute field creation successful
content:
application/json:
schema:
$ref: "#/components/schemas/PropertyField"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"422":
description: >
Validation error. Returned when `name` does not match the
required identifier pattern, is a CEL reserved word, or when
`attrs.display_name` exceeds 255 characters.
content:
application/json:
schema:
$ref: "#/components/schemas/AppError"
"/api/v4/custom_profile_attributes/fields/{field_id}":
patch:
tags:
- custom profile attributes
summary: Patch a Custom Profile Attribute field
description: |
Partially update a Custom Profile Attribute field by providing
only the fields you want to update. Omitted fields will not be
updated. The fields that can be updated are defined in the
request body, all other provided fields will be ignored.
**Note:** Fields with `attrs.protected = true` cannot be
modified and will return an error.
__Minimum server version__: 10.5
##### Permissions
Must have `manage_system` permission.
operationId: PatchCPAField
parameters:
- name: field_id
in: path
description: Custom Profile Attribute field GUID
required: true
schema:
type: string
requestBody:
description: Custom Profile Attribute field that is to be updated
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: >
New name for the attribute. When changed, must match
`^[A-Za-z_][A-Za-z0-9_]*$` and must not be a CEL reserved
word. Pre-existing fields with non-conforming names remain
patchable on all other attributes; the validation only fires
when `name` actually changes.
type:
type: string
attrs:
type: object
properties:
visibility:
type: string
description: "Visibility of the attribute"
enum: ["hidden", "when_set", "always"]
default: "when_set"
sort_order:
type: number
description: "Sort order for displaying this attribute"
options:
type: array
description: "Options for select/multiselect fields"
items:
type: object
properties:
id:
type: string
name:
type: string
color:
type: string
value_type:
type: string
description: "Type of text value"
enum: ["email", "url", "phone"]
ldap:
type: string
description: "LDAP attribute for syncing"
saml:
type: string
description: "SAML attribute for syncing"
protected:
type: boolean
description: "If true, the field is read-only and cannot be modified."
source_plugin_id:
type: string
description: "The ID of the plugin that created this field. This attribute cannot be changed."
access_mode:
type: string
description: "Access mode of the field"
enum: ["", "source_only", "shared_only"]
default: ""
display_name:
type: string
description: >
Human-readable label shown in the UI. Maximum 255 characters.
responses:
"200":
description: Custom Profile Attribute field patch successful
content:
application/json:
schema:
$ref: "#/components/schemas/PropertyField"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"422":
description: >
Validation error. Returned when a `name` change does not match
the required identifier pattern, is a CEL reserved word, or
when `attrs.display_name` exceeds 255 characters.
content:
application/json:
schema:
$ref: "#/components/schemas/AppError"
delete:
tags:
- custom profile attributes
summary: Delete a Custom Profile Attribute field
description: |
Marks a Custom Profile Attribute field and all its values as
deleted.
__Minimum server version__: 10.5
##### Permissions
Must have `manage_system` permission.
operationId: DeleteCPAField
parameters:
- name: field_id
in: path
description: Custom Profile Attribute field GUID
required: true
schema:
type: string
responses:
"200":
description: Custom Profile Attribute field deletion successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"/api/v4/custom_profile_attributes/values":
patch:
tags:
- custom profile attributes
summary: Patch Custom Profile Attribute values
description: |
Partially update a set of values on the requester's Custom
Profile Attribute fields by providing only the information you
want to update. Omitted fields will not be updated. The fields
that can be updated are defined in the request body, all other
provided fields will be ignored.
**Note:** Values for fields with `attrs.protected = true` cannot be
updated and will return an error.
__Minimum server version__: 10.5
##### Permissions
Must be authenticated.
operationId: PatchCPAValues
requestBody:
description: Custom Profile Attribute values that are to be updated
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
value:
oneOf:
- type: string
- type: array
items:
type: string
responses:
"200":
description: Custom Profile Attribute values patch successful
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
value:
oneOf:
- type: string
- type: array
items:
type: string
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"/api/v4/custom_profile_attributes/group":
get:
tags:
- custom profile attributes
summary: Get Custom Profile Attribute property group data
description: |
Get the property group used for Custom Profile Attributes.
__Minimum server version__: 10.8
##### Permissions
Must be authenticated.
operationId: GetCPAGroup
responses:
"200":
description: Group fetch successful
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: The ID of the custom profile attributes group
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"/api/v4/users/{user_id}/custom_profile_attributes":
get:
tags:
- custom profile attributes
summary: List Custom Profile Attribute values
description: |
List all the Custom Profile Attributes values for specified user.
__Minimum server version__: 10.5
##### Permissions
Must have `view members` permission.
operationId: ListCPAValues
parameters:
- name: user_id
in: path
description: User GUID
required: true
schema:
type: string
responses:
"200":
description: Custom Profile Attribute values fetch successful. Result may be empty.
content:
application/json:
schema:
type: array
items:
type: object
properties:
field_id:
type: string
value:
type: string
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
patch:
tags:
- custom profile attributes
summary: Update custom profile attribute values for a user
description: |
Update Custom Profile Attribute field values for a specific user.
**Note:** Values for fields with `attrs.protected = true` cannot be
updated and will return an error.
__Minimum server version__: 11
##### Permissions
Must have permission to edit the user. Users can only edit their own CPA values unless they are system administrators.
parameters:
- name: user_id
in: path
description: User GUID
required: true
schema:
type: string
operationId: PatchCPAValuesForUser
requestBody:
description: Custom Profile Attribute values that are to be updated
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
value:
oneOf:
- type: string
- type: array
items:
type: string
responses:
'200':
description: Custom profile attribute values updated successfully
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
value:
oneOf:
- type: string
- type: array
items:
type: string
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'