IRPCLogin.CreateUserSession

View as Markdown

Vault API / core session session idempotent

Opens a session that acts as another user of the vault.

ServiceLogin and sessions MFiles.IRPCLogin
gRPC method/MFiles.IRPCLogin/CreateUserSession
HTTP (mf-http-grpc)POST /grpc/v1/create-user-session
RequestCreateUserSessionRequest
ResponseCreateUserSessionResponse
Book and levelVault API, core
Kindsession
SessionRequired: the session ID from LogIn in the mfiles-session-id-bin metadata.
Idempotentyes
Returns metadata structure versionno
Streamingnone (unary)

Remarks

Used by M-Files server-side components; applications rarely need it. Allowed only for a vault session of a local Windows administrator logged in on the server computer; all other sessions get E_MFILES_ACCESS_DENIED, including vault administrators. The new session uses a read-only license.

Request: CreateUserSessionRequest

Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

FieldTypeDescription
user_idint32The ID of the user account (in the session's vault) to act as.

Response: CreateUserSessionResponse

Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

FieldTypeDescription
session_infoSessionInfoServerThe new session. Send its session_id in mfiles-session-id-bin.
session_info.session_idbytesSession ID when the login process has been completed successfully.
session_info.keep_alive_interval_in_secondsuint32The number of seconds that can pass between KeepAlive calls before MFServer closes the session.
session_info.user_idint32The M-Files Account ID of the logged-in user.
session_info.account_namestringThe M-Files Account name of the logged-in user.
session_info.session_access_rightsSessionAccessThe access rights of this session.
session_info.session_access_rights.server_accessServerAccessThe session's server-level access rights.
session_info.session_access_rights.vault_accessVaultAccessThe session's vault-level access rights.
session_info.session_access_rights.object_accessObjectAccessThe session's object-level access rights regardless of object ACLs.
session_info.session_access_rights.object_type_accessObjectTypeAccessThe session's object type-level access rights regardless of object type ACLs.
session_info.session_access_rights.property_def_accessPropertyDefAccessThe session's property definition-level access rights regardless of property definition ACLs.
session_info.substitute_users[]repeated UserOrUserGroupIDThe user ID of this session's account, as well as the users for which the user is a substitute. The first ID in the vector is the user ID. Others are the IDs of the users for which the user is a substitute.
session_info.substitute_users[].typeUserTypeUser type.Values: USER_TYPE_UNKNOWN (0), USER_TYPE_USER (1), USER_TYPE_USER_GROUP (2), USER_TYPE_WORKFLOW_STATE_PSEUDO_USER (3), USER_TYPE_PROPERTY_BASED_PSEUDO_USER (4).
session_info.substitute_users[].idint32User or user group.
session_info.user_and_group_memberships[]repeated UserOrUserGroupIDThe user ID of this session's account, as well as the groups to which the user belongs either directly or indirectly. The first ID in the vector is the user ID. Others are group IDs.
session_info.user_and_group_memberships[].typeUserTypeUser type.Values: USER_TYPE_UNKNOWN (0), USER_TYPE_USER (1), USER_TYPE_USER_GROUP (2), USER_TYPE_WORKFLOW_STATE_PSEUDO_USER (3), USER_TYPE_PROPERTY_BASED_PSEUDO_USER (4).
session_info.user_and_group_memberships[].idint32User or user group.
session_info.is_internal_userboolIs the user an internal user?
session_info.use_strict_set_equality_comparisonboolIf false, not equal type comparisons are performed in pre-MF11 style in which it is enough that at least one of the left-side values does not match any of the right-side values in order to treat the left and right values unequal. If true, none of the left-side values can match any of the right-side values in order to treat the left and right values unequal i.e. pure set-based exclusion. Prefer using the new comparison style. The old behavior is provided for compatibility reasons.
session_info.product_modeProductModeProduct mode.Values: PRODUCT_MODE_FULL (0), PRODUCT_MODE_EXPRESS (1), PRODUCT_MODE_BUSINESS (2).
session_info.languageLanguageThe user's language in the vault. The code and the name may be empty.
session_info.language.idint32Language ID.
session_info.language.namestringThe name of the language.
session_info.language.language_codestringLanguage indentifier, e.g. the ISO 639-1 or ISO 639-2 language code such as "en" or "eng".
session_info.timezonebytesThe serialized time zone information (TIME_ZONE_INFORMATION) of this session.
session_info.client_culturestringThe client software culture for this session.
session_info.acl_modeACLModeThe ACL mode of the vault. Ignore it for a session that is not a vault session.Values: ACLMODE_SIMPLE (0), ACLMODE_COMPONENT_BASED (1).
session_info.license_typeLicenseTypeThe license type of the logged-in user.Values: LICENSE_TYPE_NONE (0), LICENSE_TYPE_NAMED_USER_LICENSE (1), LICENSE_TYPE_CONCURRENT_USER_LICENSE (2), LICENSE_TYPE_READ_ONLY_LICENSE (3), LICENSE_TYPE_VISITOR_LICENSE (4).
session_info.keep_upload_session_alive_interval_in_secondsuint32Keep a file upload session alive at least this often.