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:
471
api/v4/source/custom_profile_attributes.yaml
Normal file
471
api/v4/source/custom_profile_attributes.yaml
Normal 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'
|
||||
Reference in New Issue
Block a user