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]>
472 lines
16 KiB
YAML
472 lines
16 KiB
YAML
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|
|
|
|
"/v1/team/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"
|
|
"/v1/team/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"
|
|
|
|
"/v1/team/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'
|