IRPCPropertyDefs.GetPropertyDefs
Vault API / core read session or assertion idempotent returns metadata structure version
Gets all property definitions that the user is allowed to see.
| Service | Property definitions and classes MFiles.IRPCPropertyDefs |
|---|---|
| gRPC method | /MFiles.IRPCPropertyDefs/GetPropertyDefs |
| HTTP (mf-http-grpc) | POST /grpc/v1/get-property-defs |
| Request | GetPropertyDefsRequest |
| Response | GetPropertyDefsResponse |
| Book and level | Vault API, core |
| Kind | read |
| Session | Required: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata). |
| Idempotent | yes |
| Returns metadata structure version | yes (in the mfiles-metadata-version-bin trailer) |
| Streaming | none (unary) |
Remarks
- Requires a vault session. No special vault rights are needed.
- Property definitions that the user cannot see (because of the property definition's permissions) are left out. The owner property definitions of built-in object types that can never have an owner are also left out.
- Names are in the session language when the vault has translations for it.
- Change check: send the
current_versionof the previous response asknown_version. If nothing has changed, the response has the samecurrent_versionand an emptyproperty_defs: keep your cached list, do not treat it as "no property definitions". Send 0 to always get the full list. This version counter is separate from the class version of GetObjectClassesAndGroups. - Whether a property is required depends on the class, not on the property definition: read
associated_property_defsof ObjectClass. - Cacheable by metadata structure version.
Request: GetPropertyDefsRequest
Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.
| Field | Type | Description |
|---|---|---|
call_importance | CallImportance | The importance level of this call. Leave unset or use CALL_IMPORTANCE_NORMAL.Values: CALL_IMPORTANCE_DEFAULT (0), CALL_IMPORTANCE_NORMAL (1), CALL_IMPORTANCE_CAN_BE_REJECTED (2). |
include_icons | bool | Ignored by the server; the response is the same for true and false. |
known_version | int32 | The current_version from the caller's previous response, or 0 to get all property definitions. If it equals the server's current version, property_defs is empty. |
Response: GetPropertyDefsResponse
Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page. Fields marked (recursive) refer to a type already on their path.
| Field | Type | Description |
|---|---|---|
current_version | int32 | The current version of the property definitions on the server. Store it and send it as known_version next time. |
property_defs[] | repeated PropertyDef | The property definitions the user can see, or empty if known_version was current. See PropertyDef. |
property_defs[].id | int32 | The property definition ID. Built-in property definitions (0 Name or title, 20 Created, 100 Class, ...) have the same ID in every vault. IDs 1-19 are never used by real property definitions. |
property_defs[].name | string | The name of the property. |
property_defs[].tooltip | string | The tip text of this property. |
property_defs[].data_type | Datatype | The data type of the values. Lookup properties use DATATYPE_LOOKUP (one item) or DATATYPE_MULTI_SELECT_LOOKUP (several items). |
property_defs[].content_type | ContentType | Content type (sub-datatype).Values: CONTENT_TYPE_GENERIC (0), CONTENT_TYPE_EMAIL_ADDRESS (1), CONTENT_TYPE_URL (2), CONTENT_TYPE_RTF (3), CONTENT_TYPE_HTML (4). |
property_defs[].is_based_on_value_list | bool | True for lookup properties; value_list then names the list. Test this flag, not value_list != 0: 0 is a valid list ID (the Document object type). |
property_defs[].enable_automatic_permissions | bool | True to allow automatic permissions via this property def. |
property_defs[].is_conflict_reference | bool | True if this is the conflict property of the object type in value_list. |
property_defs[].disallow_as_grouping_level | bool | True to disallow using this property def as a grouping level in views. |
property_defs[].value_list | int32 | With is_based_on_value_list, the ID of the value list or object type whose items are the property's values. |
property_defs[].value_list_item_filter[] | repeated SearchCondition | A static filter on the items of value_list. The server applies it when this property is passed as filtering_property_def or LookupItemRequest.property_def; such conditions cannot be sent in search_conditions directly. |
property_defs[].value_list_item_filter[].expression | Expression | The left side of the condition: what is evaluated for each object, such as a property value, a status value or any field (full-text search). |
property_defs[].value_list_item_filter[].type | ConditionType | The comparison operator. |
property_defs[].value_list_item_filter[].value | TypedValue | The right side of the condition: the value to compare with. Its data type must suit the expression, for example a lookup for a lookup property, Boolean for STATUS_TYPE_IS_DELETED. |
property_defs[].update_type | UpdateType | The update behaviour of the property.Values: UPDATE_TYPE_NORMAL (0), UPDATE_TYPE_SET_BY_SERVER (1), UPDATE_TYPE_SET_BY_CLIENT_CODE (2). |
property_defs[].automatic_value_type | AutomaticValueType | Defines the type of the automatic value of this field, if any.Values: AUTOMATIC_VALUE_TYPE_NONE (0), AUTOMATIC_VALUE_TYPE_CALCULATE_WITH_TEMPLATE (1), AUTOMATIC_VALUE_TYPE_CALCULATED_WITH_CODE (2), AUTOMATIC_VALUE_TYPE_FIXED_VALUE_WITH_INCREMENT (3), AUTOMATIC_VALUE_TYPE_FIXED_VALUE_WITH_CODE (4). |
property_defs[].default_value | TypedValue | If set, specifies a fixed default value for this property. |
property_defs[].default_value.is_null_value | bool | True if the value is empty. data is then unset. |
property_defs[].default_value.type | Datatype | The data type of the value. |
property_defs[].default_value.data | TypedValueUnion | The value, in the member that matches type. Unset for an empty value. |
property_defs[].icon | Bytes | If set, contains an icon in .ICO format (contains multiple sizes and color depths). |
property_defs[].icon.value | bytes | Array of bytes. |
property_defs[].is_predefined | bool | True if this is a predefined PropertyDef. Predefined PropertyDefs cannot be deleted and modifying them is restricted. |
property_defs[].allow_for_all_object_types | bool | True if this property definition can be used with all object types. |
property_defs[].is_owner | bool | True if this is the owner property of the object type in value_list. |
property_defs[].is_default | bool | True if this is the default property of the object type in value_list (ValueList.default_property_def). |
property_defs[].owner_property_def_info | OwnerPropertyDef | For a lookup property, the property whose value limits this property's values. For example, Workflow State (39) is limited by Workflow (38). A property_def of -106 means that the owner property is determined automatically. |
property_defs[].owner_property_def_info.property_def | int32 | The ID of the owner property definition, or -106 if the owner property is determined automatically. |
property_defs[].owner_property_def_info.dependency_relation | DependencyRelation | How this property depends on its owner property: DEPENDENCY_RELATION_FILTER limits its values to those that belong to the owner property's value, DEPENDENCY_RELATION_FILL fills it automatically from the owner property's value.Values: DEPENDENCY_RELATION_NOTHING (0), DEPENDENCY_RELATION_FILL (1), DEPENDENCY_RELATION_FILTER (2). |
property_defs[].owner_property_def_info.data | DependentPropertyDefUnion | Details of the DEPENDENCY_RELATION_FILL relation. |
property_defs[].object_type | int32 | If allow_for_all_object_types is false, the object type whose objects use this property; otherwise ignored. |
property_defs[].acl | AccessControlList | If set, specifies the ACL that defines the visibility and editability of this property in objects. |
property_defs[].acl.checked_out_to_user | int32 | Specifies the ID of the user who has extended rights because of the checkout operation performed by her. 0 if such user does not exist. |
property_defs[].acl.is_fully_authoritative | bool | Specifies whether this access control list is set to ignore the secondary permissions that come from the latest checked in version. |
property_defs[].acl.custom_component | AccessControlListComponent | Accesses the custom component of this ACL. |
property_defs[].acl.restrictive_components[] | repeated AccessControlListComponentMapEntry | Accesses the restrictive automatic components of this ACL. |
property_defs[].acl.secondary_access_control_list | AccessControlList (recursive) | Secondary ACL used for latest version ACL. Not used for access check if null. |
property_defs[].acl.additive_components[] | repeated AccessControlListComponentMapEntry | Accesses the additive automatic components of this ACL. |
property_defs[].property_def_permissions | PropertyDefPermissionsForClient | What the caller may do with values of this property: see them and edit them. Set when the property definition has permissions. |
property_defs[].property_def_permissions.current_user_can_see | bool | The property def is visible for the current user (provided for symmetry). |
property_defs[].property_def_permissions.current_user_can_edit | bool | The current user can edit the values. |
property_defs[].value_list_sorting_type | VLSortingType | The sorting type of value list items.Values: VLSORTING_TYPE_BY_DISPLAY_NAME (0), VLSORTING_TYPE_BY_EXTERNAL_ID (1). |
property_defs[].value_list_sort_ascending | bool | True to sort in ascending order, false to sort in descending order. |
property_defs[].validation_type | ValidationType | How values are validated; validation_string holds the rule.Values: VALIDATION_TYPE_NONE (0), VALIDATION_TYPE_REGEX (1), VALIDATION_TYPE_CODE (2). |
property_defs[].validation_string | string | The validation rule; its meaning depends on validation_type. |
property_defs[].formatting_type | FormattingType | How values are formatted; formatting_string holds the format.Values: FORMATTING_TYPE_NONE (0). |
property_defs[].formatting_string | string | The format; its meaning depends on formatting_type. |
property_defs[].guid | string | The GUID of the property definition, with braces. |
property_defs[].options | PROPERTYDEFFLAGS | Flags such as can_use_in_search. See PROPERTYDEFFLAGS. |
property_defs[].options.all | bool | Specifies all flags set; Including any future flags. |
property_defs[].options.can_use_in_search | bool | Are objects searchable by this property? |
property_defs[].options.can_use_in_history_search | bool | Are history versions of objects searchable by this property? |
property_defs[].options.show_only_filtered_values | bool | Should only the values matching the property filter be shown on the metadata card? |
is_property_def_required[] | repeated bool | Always empty. Required properties are defined per class: see ObjectClass.associated_property_defs. |
Related methods
- GetObjectClassesAndGroups -- Gets all classes and class groups that the user is allowed to see.