# M-Files gRPC API: Server integration API
All pages of the Server integration API of the M-Files gRPC API 26.11: the book page, then each service followed by its methods. Pages are separated by `---` lines.
---
# Server integration API
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/integration/
Services that other M-Files components and connectors call.
11 services, 68 methods, grouped by importance level. Each service page lists its highlighted methods first, then all others.
## Specialized services
Administration and server-integration services.
| Service | Methods | Summary |
|---|---|---|
| [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `IRPCIndexingDataSource` | 21 | An interface for retrieving data for indexing. |
| [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md) `IRPCIndexingDataSource2` | 5 | More methods for search indexers, continuing [IRPCIndexingDataSource](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md). |
| [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md) `IRPCMonitoringDatapointsSink` | 4 | Receives the progress and status data points that the M-Files indexing service reports about each index of the vault. |
| [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `IRPCApplicationTaskQueue` | 12 | Persistent task queues and broadcast messages that vault applications use to share background work between the server instances of a vault. |
| [Replication packages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/index.md) `IRPCReplicationPackages` | 2 | Lists and deletes the content replication packages that wait in cloud storage for import into the vault. |
| [WOPI operations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/index.md) `IRPCWOPIOperations` | 3 | Creates the access tokens with which Office for the web (WOPI) opens vault files, and returns the Office for the web actions that the vault can use. |
| [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `IRPCWOPIOperationsPublic` | 15 | File, lock and session operations for Office for the web (WOPI), authorized by a WOPI access token instead of an M-Files session. |
| [Web companion](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionOperation/index.md) `IRPCWebCompanionOperation` | 1 | Registers an M-Files Web Companion installation with a vault. |
| [Web companion tasks](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/index.md) `IRPCWebCompanionTaskOperation` | 2 | Passes "open this file in a desktop application" tasks from M-Files Web to M-Files Web Companion. |
| [Document file I/O for server components](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/index.md) `IRPCDocumentOperationsFileIOInternal` | 2 | Server-to-server variants of file upload commit and file size checks. |
| [Ground Link channel](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/index.md) `IRPCGroundLink` | 1 | The M-Files Ground Link channel: a long-lived two-way stream between a Ground Link proxy and the M-Files Server that hosts the vault, typically in M-Files Cloud. |
---
# Indexing data source (IRPCIndexingDataSource)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/
An interface for retrieving data for indexing.
This interface provides methods for retrieving the information of objects and files that
must be indexed based on a logical timestamp. Methods for getting the data of objects for
metadata indexing and file contents for file data indexing are also provided.
- **gRPC service:** `MFiles.IRPCIndexingDataSource`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 21
- **Proto file:** [`mfiles/IRPCIndexingDataSource.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCIndexingDataSource.proto)
## Overview
**For M-Files components only.** Search indexers use this service to crawl the vault: they ask
which objects and files have changed since their last position and fetch the data to index.
Applications should not call it; to search, use [IRPCSearch](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCSearch/index.md).
- **Callers:** the M-Files indexing service (the indexer process that M-Files Server runs for the
vault's search indexes) uses all methods. M-Files' cloud search indexing services use the
combined enumerator ([GetNextObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md)
and its companions) together with
[IRPCIndexingDataSource2](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md).
- **Authentication:** the M-Files indexing service logs in to the vault with Windows
authentication as an internal process of M-Files Server, under the server's own service
account, and so has the system administrator server role.
- **Rights, data methods** (enumerators, `HasMore...`, `GetSmallestTimestamp...`, downloads and
file caching): a vault session with the vault rights `see_all_objects` and
`see_deleted_objects`; no server role is needed. The data is returned regardless of object
permissions, with the objects' permissions included for the index.
- **Rights, configuration methods** (`GetFullTextSearchLanguage`, `GetObjectTypesWithPropertyDefs`,
`GetEnabledIndexes`, `ConvertDestructionTimestampToLogical`, `GetFacetSources`,
`GetIndexingOptions`, `GetVaultTempFilePath`, `NotifyObjectSkippedIndexing`): the system
administrator server role (server right `log_in_to_any_vault`). A vault administrator without it
gets "You do not have the server-level access rights required by this operation." (codes
0x800400A8 and 0x800407E4).
- **Crawl model:** every enumerator call carries an [IndexingRequest](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexingRequest/index.md)
that names the index and the caller's last indexed position as a
[LogicalTimestamp](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md). The `...ForIX` methods serve a combined
index of metadata and file content; the `...ForMIX` and `...ForFIX` methods serve separate
metadata and file data indexes. `HasMore...` checks whether there is work,
`GetNext...` returns a batch and the new position, and `GetSmallestTimestamp...` maps a
Change Tracking version to a logical timestamp.
## Methods
| Method | Summary | Facts |
|---|---|---|
| [CacheFileForIndexing](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexing/index.md) | Writes a file version, in the requested format, to a temporary folder on the server computer and returns its local path. | `internal: not for applications` `write` `session` |
| [CacheFileForIndexingCollective](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexingCollective/index.md) | Like CacheFileForIndexing, for up to 20 file versions in one call, processed in parallel. | `internal: not for applications` `write` `session` |
| [ConvertDestructionTimestampToLogical](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/ConvertDestructionTimestampToLogical/index.md) | Converts a destruction time (a Windows FILETIME value) to the vault's logical destruction timestamp. | `internal: not for applications` `write` `session` |
| [DownloadFile_BeginForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/index.md) | Begins downloading a file for file data indexing. | `internal: not for applications` `write` `session` |
| [DownloadFile_EndForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX/index.md) | Ends downloading a file for file data indexing. | `internal: not for applications` `write` `session` |
| [DownloadFile_ReadBlockForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX/index.md) | Gets a specific block from a file from the server for file data indexing. | `internal: not for applications` `write` `session` |
| [GetEnabledIndexes](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetEnabledIndexes/index.md) | Gets the names of the enabled indexes. | `internal: not for applications` `write` `session` |
| [GetFacetSources](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetFacetSources/index.md) | Gets the facet definitions configured for the vault, as JSON. | `internal: not for applications` `write` `session` |
| [GetFullTextSearchLanguage](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetFullTextSearchLanguage/index.md) | Gets the full-text search languages of the vault. | `internal: not for applications` `write` `session` |
| [GetIndexingOptions](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetIndexingOptions/index.md) | Gets the indexing options of one index, or of all indexes, as JSON. | `internal: not for applications` `write` `session` |
| [GetNextFilesForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextFilesForFIX/index.md) | Gets next object files for file data indexing. | `internal: not for applications` `write` `session` |
| [GetNextObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md) | Gets next objects and their data for indexing. | `internal: not for applications` `write` `session` |
| [GetNextObjectsForMIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForMIX/index.md) | Gets next objects and their data for metadata indexing. | `internal: not for applications` `write` `session` |
| [GetObjectTypesWithPropertyDefs](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetObjectTypesWithPropertyDefs/index.md) | Gets object types with associated property defs. | `internal: not for applications` `write` `session` |
| [GetSmallestTimestampForFiledataIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForFiledataIX/index.md) | Gets the smallest timestamp of a file that has been modified since specific Change Tracking version. Returns also the current Change Tracking version. | `internal: not for applications` `write` `session` |
| [GetSmallestTimestampForMetadataIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForMetadataIX/index.md) | Gets the smallest timestamp of an object that has been modified since specific Change Tracking version. Returns also the current Change Tracking version. | `internal: not for applications` `write` `session` |
| [GetVaultTempFilePath](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetVaultTempFilePath/index.md) | Gets the local path of the vault's temporary file folder on the server computer. | `internal: not for applications` `write` `session` |
| [HasMoreObjectsForFiledataIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForFiledataIX/index.md) | Checks whether object files are waiting for a file data index, and optionally how many. | `internal: not for applications` `write` `session` |
| [HasMoreObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForIX/index.md) | Checks whether objects are waiting for a combined index, and optionally how many. | `internal: not for applications` `write` `session` |
| [HasMoreObjectsForMetadataIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForMetadataIX/index.md) | Checks whether objects are waiting for a metadata index, and optionally how many. | `internal: not for applications` `write` `session` |
| [NotifyObjectSkippedIndexing](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/NotifyObjectSkippedIndexing/index.md) | Reports objects or files that an indexer skipped, and why. | `internal: not for applications` `write` `session` |
---
# IRPCIndexingDataSource.CacheFileForIndexing
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexing/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Writes a file version, in the requested format, to a temporary folder on the server computer and
returns its local path.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/CacheFileForIndexing`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/cache-file-for-indexing`
- **Request:** [`CacheFileForIndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexing/index.md#request)
- **Response:** [`CacheFileForIndexingResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexing/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files indexing service, which runs on the server computer,
calls it. Applications should not call it: the result is a path on the server's own disk.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
- Creates a file that the caller owns and must delete. `sub_dir` must stay inside the indexing
temporary folder; a path that leaves it fails with "The parameter is incorrect.".
## Request: CacheFileForIndexingRequest
A structure that specifies cache file for indexing request.
> 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 |
|---|---|---|
| `file_info_for_fix` | [`FileInfoForFIX`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileInfoForFIX/index.md) | File info for indexing. |
| `file_info_for_fix.obj_file_ver` | [`ObjFileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjFileVer/index.md) | File version. |
| `file_info_for_fix.obj_file_ver.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object that owns the file. |
| `file_info_for_fix.obj_file_ver.file_ver` | [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | The specific file version, as in `File.file_ver`. |
| `file_info_for_fix.is_destroyed` | `bool` | True if the file has been destroyed and is no longer available. If true then only the objfilever member is valid. |
| `file_info_for_fix.data_file_version` | `int32` | Data file version if the file is an internal file. |
| `file_info_for_fix.size` | `int64` | The logical size of the file in bytes. |
| `file_info_for_fix.extension` | `string` | The file extension, not including the dot (e.g. "doc"). This unencoded extension may contain characters that are not allowed in file extensions in file systems. |
| `file_info_for_fix.relevance_score` | `float` | Relevance score of the object. |
| `file_info_for_fix.file_ids[]` | repeated [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | All file IDs of the object's LCI version. |
| `file_info_for_fix.file_ids[].type` | [`FileIDType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileIDType/index.md) | `FILE_IDTYPE_SPECIFIC` for one file. Values: `FILE_IDTYPE_UNINITIALIZED` (0), `FILE_IDTYPE_ALL` (1), `FILE_IDTYPE_ANY` (2), `FILE_IDTYPE_SPECIFIC` (3). |
| `file_info_for_fix.file_ids[].internal_id` | `int32` | The file ID. |
| `file_info_for_fix.file_ids[].external_repository_id` | `string` | Used only for files in external repositories. Leave empty. |
| `file_info_for_fix.timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Logical timestamp for indexing. |
| `file_info_for_fix.timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `file_info_for_fix.timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `file_info_for_fix.object_data` | [`ObjectVersionExWP`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionExWP/index.md) | If not null contains the basic object version information. The search results are returned from the server using this information with external content repositories. |
| `file_info_for_fix.object_data.object_version` | [`ObjectVersionEx`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionEx/index.md) | Object info. |
| `file_info_for_fix.object_data.properties[]` | repeated [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | Property values, or an empty array. |
| `file_info_for_fix.object_data.acl` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | If set, ACL. |
| `file_info_for_fix.object_data.current_user_permissions` | [`ObjectPermissionsForClient`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectPermissionsForClient/index.md) | If set, permissions of the object version. |
| `file_info_for_fix.last_modified_for_indexing` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The last modified timestamp for indexing. |
| `file_info_for_fix.repository_path` | [`FolderArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FolderArray/index.md) | If not null contains the array of folders describing the repository path to the object version location. The search results are returned from the server using this information with external content repositories. |
| `file_info_for_fix.repository_path.value[]` | repeated [`Folder`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Folder/index.md) | Array of Folder structures. |
| `file_format` | [`FileFormat`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileFormat/index.md) | Specifies the requested file format to cache. Values: `FILE_FORMAT_NATIVE` (0), `FILE_FORMAT_PDF` (1), `FILE_FORMAT_DISPLAY_ONLY_PDF` (2), `FILE_FORMAT_PLAIN_TEXT` (3), `FILE_FORMAT_MARKDOWN` (4). |
| `sub_dir` | `string` | Optional subfolder under the vault's indexing temporary folder (`Filedata/Temp/FIX`). |
## Response: CacheFileForIndexingResponse
A structure that specifies cache file for indexing response.
> 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 |
|---|---|---|
| `full_path` | `string` | The full local path of the cached file on the server computer. |
| `file_format` | [`FileFormat`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileFormat/index.md) | The format actually produced, which can differ from the requested one. Values: `FILE_FORMAT_NATIVE` (0), `FILE_FORMAT_PDF` (1), `FILE_FORMAT_DISPLAY_ONLY_PDF` (2), `FILE_FORMAT_PLAIN_TEXT` (3), `FILE_FORMAT_MARKDOWN` (4). |
## Related methods
- [CacheFileForIndexingCollective](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexingCollective/index.md): Like CacheFileForIndexing, for up to 20 file versions in one call, processed in parallel.
---
# IRPCIndexingDataSource.CacheFileForIndexingCollective
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexingCollective/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Like CacheFileForIndexing, for up to 20 file versions in one call, processed in parallel.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/CacheFileForIndexingCollective`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/cache-file-for-indexing-collective`
- **Request:** [`CacheFileForIndexingCollectiveRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexingCollective/index.md#request)
- **Response:** [`CacheFileForIndexingCollectiveResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexingCollective/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files indexing service, which runs on the server
computer, calls it. Applications should not call it: the results are paths on the server's own
disk.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
- `indexing_elements` must have 1 to 20 entries. `max_threads` above 20 is reduced to 20.
## Request: CacheFileForIndexingCollectiveRequest
A structure that specifies cache file for indexing request.
> 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 |
|---|---|---|
| `indexing_elements[]` | repeated [`CacheFileForIndexingElement`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.CacheFileForIndexingElement/index.md) | The file versions to cache, with an optional subfolder each. |
| `indexing_elements[].file_information` | [`FileInfoForFIX`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileInfoForFIX/index.md) | File info for indexing. |
| `indexing_elements[].file_information.obj_file_ver` | [`ObjFileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjFileVer/index.md) | File version. |
| `indexing_elements[].file_information.is_destroyed` | `bool` | True if the file has been destroyed and is no longer available. If true then only the objfilever member is valid. |
| `indexing_elements[].file_information.data_file_version` | `int32` | Data file version if the file is an internal file. |
| `indexing_elements[].file_information.size` | `int64` | The logical size of the file in bytes. |
| `indexing_elements[].file_information.extension` | `string` | The file extension, not including the dot (e.g. "doc"). This unencoded extension may contain characters that are not allowed in file extensions in file systems. |
| `indexing_elements[].file_information.relevance_score` | `float` | Relevance score of the object. |
| `indexing_elements[].file_information.file_ids[]` | repeated [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | All file IDs of the object's LCI version. |
| `indexing_elements[].file_information.timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Logical timestamp for indexing. |
| `indexing_elements[].file_information.object_data` | [`ObjectVersionExWP`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionExWP/index.md) | If not null contains the basic object version information. The search results are returned from the server using this information with external content repositories. |
| `indexing_elements[].file_information.last_modified_for_indexing` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The last modified timestamp for indexing. |
| `indexing_elements[].file_information.repository_path` | [`FolderArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FolderArray/index.md) | If not null contains the array of folders describing the repository path to the object version location. The search results are returned from the server using this information with external content repositories. |
| `indexing_elements[].file_format` | [`FileFormat`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileFormat/index.md) | Specifies the requested file format to cache. Values: `FILE_FORMAT_NATIVE` (0), `FILE_FORMAT_PDF` (1), `FILE_FORMAT_DISPLAY_ONLY_PDF` (2), `FILE_FORMAT_PLAIN_TEXT` (3), `FILE_FORMAT_MARKDOWN` (4). |
| `indexing_elements[].sub_directory` | `string` | The optional subdirectory under Filedata\Temp\FIX. |
| `max_threads` | `uint32` | The maximum number of files to cache in parallel, at most 20. |
## Response: CacheFileForIndexingCollectiveResponse
A structure that specifies cache file for indexing response.
> 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 |
|---|---|---|
| `indexing_elements[]` | repeated [`CacheFileForIndexingCollectiveResponseElement`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.CacheFileForIndexingCollectiveResponseElement/index.md) | The cache file for indexing array. |
| `indexing_elements[].full_path` | `string` | Receives the full path of the cached file. The caller owns the file. |
| `indexing_elements[].file_format` | [`FileFormat`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileFormat/index.md) | The actual file format received. Values: `FILE_FORMAT_NATIVE` (0), `FILE_FORMAT_PDF` (1), `FILE_FORMAT_DISPLAY_ONLY_PDF` (2), `FILE_FORMAT_PLAIN_TEXT` (3), `FILE_FORMAT_MARKDOWN` (4). |
## Related methods
- [CacheFileForIndexing](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/CacheFileForIndexing/index.md): Writes a file version, in the requested format, to a temporary folder on the server computer and returns its local path.
---
# IRPCIndexingDataSource.ConvertDestructionTimestampToLogical
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/ConvertDestructionTimestampToLogical/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Converts a destruction time (a Windows FILETIME value) to the vault's logical destruction
timestamp.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/ConvertDestructionTimestampToLogical`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/convert-destruction-timestamp-to-logical`
- **Request:** [`ConvertDestructionTimestampToLogicalRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/ConvertDestructionTimestampToLogical/index.md#request)
- **Response:** [`ConvertDestructionTimestampToLogicalResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/ConvertDestructionTimestampToLogical/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it. Applications should not call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`).
## Request: ConvertDestructionTimestampToLogicalRequest
> 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 |
|---|---|---|
| `timestamp_filetime` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The time as a Windows FILETIME value (100-nanosecond intervals since 1601-01-01 UTC), in a timestamp with a single integer value. |
| `timestamp_filetime.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `timestamp_filetime.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `timestamp_filetime.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `timestamp_filetime.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `timestamp_filetime.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
## Response: ConvertDestructionTimestampToLogicalResponse
> 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 |
|---|---|---|
| `timestamp_logical` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Receives the logical destruction timestamp that matches the given FILETIME timestamp. |
| `timestamp_logical.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `timestamp_logical.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `timestamp_logical.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `timestamp_logical.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `timestamp_logical.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
---
# IRPCIndexingDataSource.DownloadFile_BeginForFIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Begins downloading a file for file data indexing.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/download-file_-begin-for-fix`
- **Request:** [`DownloadFile_BeginForFIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/index.md#request)
- **Response:** [`DownloadFile_BeginForFIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it to read file content for indexing.
Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
- Read the content with
[DownloadFile_ReadBlockForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX/index.md)
and close the download with
[DownloadFile_EndForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX/index.md).
## Request: DownloadFile_BeginForFIXRequest
> 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 |
|---|---|---|
| `obj_file_ver` | [`ObjFileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjFileVer/index.md) | File version. |
| `obj_file_ver.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object that owns the file. |
| `obj_file_ver.obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `obj_file_ver.obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `obj_file_ver.file_ver` | [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | The specific file version, as in `File.file_ver`. |
| `obj_file_ver.file_ver.file_id` | [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The file. |
| `obj_file_ver.file_ver.type` | [`FileVerType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileVerType/index.md) | `FILE_VER_TYPE_SPECIFIC` for a file version number. Values: `FILE_VER_TYPE_UNINITIALIZED` (0), `FILE_VER_TYPE_LATEST` (1), `FILE_VER_TYPE_ANY` (2), `FILE_VER_TYPE_SPECIFIC` (3). |
| `obj_file_ver.file_ver.internal_version` | `int32` | The file version number. |
| `obj_file_ver.file_ver.external_repository_version` | `string` | Used only for files in external repositories. Leave empty. |
| `obj_file_ver.file_ver.external_repository_sort_key` | `int64` | Used only for files in external repositories. Leave 0. |
| `data_file_version` | `int32` | Data file version. |
## Response: DownloadFile_BeginForFIXResponse
> 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 |
|---|---|---|
| `download_id` | `int32` | Receives the identifier of the download session. |
| `outline` | [`FileOutline`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileOutline/index.md) | Receives outline information of the file. |
| `outline.size` | `int64` | The size of the content in bytes, in the downloaded format. |
| `outline.size_precision` | [`FileSizePrecision`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileSizePrecision/index.md) | The file size precision. If the file size precision is 'exact', the size can be used for reading the file content. If the precision is 'unknown', the size field should not be used at all. Values: `FILE_SIZE_PRECISION_EXACT` (0), `FILE_SIZE_PRECISION_ESTIMATE` (1), `FILE_SIZE_PRECISION_UNKNOWN` (2). |
| `outline.md5_checksum` | `string` | The MD5 checksum as 32 hexadecimal digits, if requested; 32 zeros otherwise. |
## Related methods
- [DownloadFile_ReadBlockForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX/index.md): Gets a specific block from a file from the server for file data indexing.
- [DownloadFile_EndForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX/index.md): Ends downloading a file for file data indexing.
---
# IRPCIndexingDataSource.DownloadFile_EndForFIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Ends downloading a file for file data indexing.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/download-file_-end-for-fix`
- **Request:** [`DownloadFile_EndForFIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX/index.md#request)
- **Response:** [`DownloadFile_EndForFIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it to close a download started with
[DownloadFile_BeginForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/index.md).
Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
## Request: DownloadFile_EndForFIXRequest
> 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 |
|---|---|---|
| `download_id` | `int32` | The download session to end. |
## Response: DownloadFile_EndForFIXResponse
No fields.
## Related methods
- [DownloadFile_BeginForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/index.md): Begins downloading a file for file data indexing.
- [DownloadFile_ReadBlockForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX/index.md): Gets a specific block from a file from the server for file data indexing.
---
# IRPCIndexingDataSource.DownloadFile_ReadBlockForFIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets a specific block from a file from the server for file data indexing.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/download-file_-read-block-for-fix`
- **Request:** [`DownloadFile_ReadBlockForFIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX/index.md#request)
- **Response:** [`DownloadFile_ReadBlockForFIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_ReadBlockForFIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it to read a block of a file opened with
[DownloadFile_BeginForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/index.md).
Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
## Request: DownloadFile_ReadBlockForFIXRequest
> 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 |
|---|---|---|
| `download_id` | `int32` | Download session identifier. |
| `block_size` | `uint32` | The number of bytes wanted. |
| `offset` | `int64` | The offset to start reading from. |
## Response: DownloadFile_ReadBlockForFIXResponse
> 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 |
|---|---|---|
| `data` | `bytes` | Block data. |
## Related methods
- [DownloadFile_BeginForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_BeginForFIX/index.md): Begins downloading a file for file data indexing.
- [DownloadFile_EndForFIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/DownloadFile_EndForFIX/index.md): Ends downloading a file for file data indexing.
---
# IRPCIndexingDataSource.GetEnabledIndexes
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetEnabledIndexes/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets the names of the enabled indexes.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetEnabledIndexes`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-enabled-indexes`
- **Request:** [`GetEnabledIndexesRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetEnabledIndexes/index.md#request)
- **Response:** [`GetEnabledIndexesResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetEnabledIndexes/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it to learn which indexes of the vault are
enabled. Applications should not call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`); a vault
administrator is denied.
## Request: GetEnabledIndexesRequest
No fields.
## Response: GetEnabledIndexesResponse
> 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 |
|---|---|---|
| `index_names[]` | repeated [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Index names. |
| `index_names[].configuration_name` | `string` | The name of the index configuration. |
| `index_names[].repository_connection` | `string` | Identifies the external repository connection. |
| `index_names[].configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
---
# IRPCIndexingDataSource.GetFacetSources
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetFacetSources/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets the facet definitions configured for the vault, as JSON.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetFacetSources`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-facet-sources`
- **Request:** [`GetFacetSourcesRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetFacetSources/index.md#request)
- **Response:** [`GetFacetSourcesResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetFacetSources/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it. Applications should not call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`).
## Request: GetFacetSourcesRequest
No fields.
## Response: GetFacetSourcesResponse
> 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 |
|---|---|---|
| `facet_sources_json` | `string` | Receives the facet sources object. |
---
# IRPCIndexingDataSource.GetFullTextSearchLanguage
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetFullTextSearchLanguage/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets the full-text search languages of the vault.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetFullTextSearchLanguage`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-full-text-search-language`
- **Request:** [`GetFullTextSearchLanguageRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetFullTextSearchLanguage/index.md#request)
- **Response:** [`GetFullTextSearchLanguageResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetFullTextSearchLanguage/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it. Applications should not call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`); a vault
administrator is denied.
## Request: GetFullTextSearchLanguageRequest
No fields.
## Response: GetFullTextSearchLanguageResponse
> 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 |
|---|---|---|
| `full_text_search_lang` | [`FullTextSearchLanguage`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FullTextSearchLanguage/index.md) | Receives the full-text search language of the vault. |
| `full_text_search_lang.primary_language` | `string` | The primary full-text search language. |
| `full_text_search_lang.additional_languages[]` | repeated `string` | Array of additional languages (String). |
---
# IRPCIndexingDataSource.GetIndexingOptions
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetIndexingOptions/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets the indexing options of one index, or of all indexes, as JSON.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetIndexingOptions`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-indexing-options`
- **Request:** [`GetIndexingOptionsRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetIndexingOptions/index.md#request)
- **Response:** [`GetIndexingOptionsResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetIndexingOptions/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it. Applications should not call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`).
## Request: GetIndexingOptionsRequest
> 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 |
|---|---|---|
| `index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | The target indexer. If empty, indexing options for all indexes are returned. |
| `index_name.configuration_name` | `string` | The name of the index configuration. |
| `index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
## Response: GetIndexingOptionsResponse
> 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 |
|---|---|---|
| `indexing_options_json` | `string` | Receives the indexing options object. Empty if the index is currently disabled. |
---
# IRPCIndexingDataSource.GetNextFilesForFIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextFilesForFIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets next object files for file data indexing.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetNextFilesForFIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-next-files-for-fix`
- **Request:** [`GetNextFilesForFIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextFilesForFIX/index.md#request)
- **Response:** [`GetNextFilesForFIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextFilesForFIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it to fetch the next batch of files for a
file data index. Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
## Request: GetNextFilesForFIXRequest
> 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 |
|---|---|---|
| `indexing_request` | [`IndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexingRequest/index.md) | General information about the request. |
| `indexing_request.options_obsolete` | `uint32` | Control flags for the request. |
| `indexing_request.options` | [`INDEXINGREQUESTFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.INDEXINGREQUESTFLAGS/index.md) | Control flags for the request. |
| `indexing_request.options.all` | `bool` | Specifies all flags set; Including any future flags. |
| `indexing_request.options.accept_modifications` | `bool` | The indexer accepts new and modified objects in the request. |
| `indexing_request.options.accept_destructions` | `bool` | The indexer accepts destructions of objects in the request. |
| `indexing_request.options.accept_acl_modifications` | `bool` | The indexer accepts ACL modifications of objects in the request. |
| `indexing_request.index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index. |
| `indexing_request.index_name.configuration_name` | `string` | The name of the index configuration. |
| `indexing_request.index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `indexing_request.index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `indexing_request.auxiliary_indexer_id` | `string` | If not null, identifies auxiliary indexer that consumes the data. |
| `indexing_request.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies how to partition the candidate objects for this caller. |
| `indexing_request.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `indexing_request.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `indexing_request.last_indexed_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The last indexed logical timestamp. Ignored if its type is `LOGICAL_TIMESTAMP_TYPE_IGNORED`. |
| `indexing_request.last_indexed_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_indexed_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.last_change_tracking_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Change Tracking version from last indexed logical timestamp. |
| `indexing_request.last_change_tracking_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_change_tracking_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.indexer_location` | [`IndexerLocation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerLocation/index.md) | Defines if indexer making the request is of type internal (legacy) or external. Values: `INDEXER_LOCATION_UNINITIALIZED` (0), `INDEXER_LOCATION_LEGACY` (1), `INDEXER_LOCATION_EXTERNAL` (2). |
| `count` | `uint32` | The number of files requested. Ignored when `file_ver_array` is set. |
| `include_full_set_of_file_ids` | `bool` | If true, the received FileInfoForFIX data will include the full set of file IDs that co-exist (on a particular object version) with the file to be indexed. |
| `file_ver_array` | [`FileVerArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVerArray/index.md) | If set, explicitly specifies the file versions to be retrieved. |
| `file_ver_array.value[]` | repeated [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | Items. |
| `file_ver_array.value[].file_id` | [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The file. |
| `file_ver_array.value[].type` | [`FileVerType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileVerType/index.md) | `FILE_VER_TYPE_SPECIFIC` for a file version number. Values: `FILE_VER_TYPE_UNINITIALIZED` (0), `FILE_VER_TYPE_LATEST` (1), `FILE_VER_TYPE_ANY` (2), `FILE_VER_TYPE_SPECIFIC` (3). |
| `file_ver_array.value[].internal_version` | `int32` | The file version number. |
| `file_ver_array.value[].external_repository_version` | `string` | Used only for files in external repositories. Leave empty. |
| `file_ver_array.value[].external_repository_sort_key` | `int64` | Used only for files in external repositories. Leave 0. |
## Response: GetNextFilesForFIXResponse
> 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 |
|---|---|---|
| `files[]` | repeated [`FileInfoForFIX`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileInfoForFIX/index.md) | Object files. |
| `files[].obj_file_ver` | [`ObjFileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjFileVer/index.md) | File version. |
| `files[].obj_file_ver.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object that owns the file. |
| `files[].obj_file_ver.file_ver` | [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | The specific file version, as in `File.file_ver`. |
| `files[].is_destroyed` | `bool` | True if the file has been destroyed and is no longer available. If true then only the objfilever member is valid. |
| `files[].data_file_version` | `int32` | Data file version if the file is an internal file. |
| `files[].size` | `int64` | The logical size of the file in bytes. |
| `files[].extension` | `string` | The file extension, not including the dot (e.g. "doc"). This unencoded extension may contain characters that are not allowed in file extensions in file systems. |
| `files[].relevance_score` | `float` | Relevance score of the object. |
| `files[].file_ids[]` | repeated [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | All file IDs of the object's LCI version. |
| `files[].file_ids[].type` | [`FileIDType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileIDType/index.md) | `FILE_IDTYPE_SPECIFIC` for one file. Values: `FILE_IDTYPE_UNINITIALIZED` (0), `FILE_IDTYPE_ALL` (1), `FILE_IDTYPE_ANY` (2), `FILE_IDTYPE_SPECIFIC` (3). |
| `files[].file_ids[].internal_id` | `int32` | The file ID. |
| `files[].file_ids[].external_repository_id` | `string` | Used only for files in external repositories. Leave empty. |
| `files[].timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Logical timestamp for indexing. |
| `files[].timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `files[].timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `files[].object_data` | [`ObjectVersionExWP`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionExWP/index.md) | If not null contains the basic object version information. The search results are returned from the server using this information with external content repositories. |
| `files[].object_data.object_version` | [`ObjectVersionEx`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionEx/index.md) | Object info. |
| `files[].object_data.properties[]` | repeated [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | Property values, or an empty array. |
| `files[].object_data.acl` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | If set, ACL. |
| `files[].object_data.current_user_permissions` | [`ObjectPermissionsForClient`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectPermissionsForClient/index.md) | If set, permissions of the object version. |
| `files[].last_modified_for_indexing` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The last modified timestamp for indexing. |
| `files[].repository_path` | [`FolderArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FolderArray/index.md) | If not null contains the array of folders describing the repository path to the object version location. The search results are returned from the server using this information with external content repositories. |
| `files[].repository_path.value[]` | repeated [`Folder`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Folder/index.md) | Array of Folder structures. |
| `last_seen_version_for_fix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Last seen logical timestamp within the returned files or the timestamp after trying to fetch the batch even if no files were returned (relevant for indexing external repositories). |
| `last_seen_version_for_fix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `last_seen_version_for_fix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `last_seen_version_for_fix.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `last_seen_version_for_fix.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `last_seen_version_for_fix.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
---
# IRPCIndexingDataSource.GetNextObjectsForIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets next objects and their data for indexing.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-next-objects-for-ix`
- **Request:** [`GetNextObjectsForIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md#request)
- **Response:** [`GetNextObjectsForIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it to fetch the next batch for a combined
index. Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
- To fetch one object by ID outside a crawl, indexers use
[GetObjectForIXById](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetObjectForIXById/index.md).
## Request: GetNextObjectsForIXRequest
> 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 |
|---|---|---|
| `indexing_request` | [`IndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexingRequest/index.md) | General information about the request. |
| `indexing_request.options_obsolete` | `uint32` | Control flags for the request. |
| `indexing_request.options` | [`INDEXINGREQUESTFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.INDEXINGREQUESTFLAGS/index.md) | Control flags for the request. |
| `indexing_request.options.all` | `bool` | Specifies all flags set; Including any future flags. |
| `indexing_request.options.accept_modifications` | `bool` | The indexer accepts new and modified objects in the request. |
| `indexing_request.options.accept_destructions` | `bool` | The indexer accepts destructions of objects in the request. |
| `indexing_request.options.accept_acl_modifications` | `bool` | The indexer accepts ACL modifications of objects in the request. |
| `indexing_request.index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index. |
| `indexing_request.index_name.configuration_name` | `string` | The name of the index configuration. |
| `indexing_request.index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `indexing_request.index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `indexing_request.auxiliary_indexer_id` | `string` | If not null, identifies auxiliary indexer that consumes the data. |
| `indexing_request.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies how to partition the candidate objects for this caller. |
| `indexing_request.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `indexing_request.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `indexing_request.last_indexed_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The last indexed logical timestamp. Ignored if its type is `LOGICAL_TIMESTAMP_TYPE_IGNORED`. |
| `indexing_request.last_indexed_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_indexed_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.last_change_tracking_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Change Tracking version from last indexed logical timestamp. |
| `indexing_request.last_change_tracking_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_change_tracking_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.indexer_location` | [`IndexerLocation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerLocation/index.md) | Defines if indexer making the request is of type internal (legacy) or external. Values: `INDEXER_LOCATION_UNINITIALIZED` (0), `INDEXER_LOCATION_LEGACY` (1), `INDEXER_LOCATION_EXTERNAL` (2). |
| `last_for_ix` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Last indexed object ID. If unset, ignored. |
| `last_for_ix.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `last_for_ix.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `last_for_ix.item_id.internal_id` | `int32` | The ID of the object or value list item. |
| `last_for_ix.item_id.external_repository_id` | [`ExternalRepositoryID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExternalRepositoryID/index.md) | Used only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault. |
| `count` | `uint32` | The number of objects requested. |
## Response: GetNextObjectsForIXResponse
> 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 |
|---|---|---|
| `data[]` | repeated [`ObjectDataForIX`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectDataForIX/index.md) | The data of the object versions for indexing. |
| `data[].primary_obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The primary identity of the object. Also valid when the object has been destroyed. |
| `data[].primary_obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `data[].primary_obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `data[].is_destroyed` | `bool` | True if the object has been destroyed and is no longer available. If true then only the objidPrimary and oim members are valid. |
| `data[].is_skipped` | `bool` | True if the object has been skipped and cannot be indexed. If true then only the objidPrimary and oim members are valid. |
| `data[].object_version` | [`ObjectVersionExWP`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionExWP/index.md) | Contains the basic object version information, always latest checked-in version. |
| `data[].object_version.object_version` | [`ObjectVersionEx`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionEx/index.md) | Object info. |
| `data[].object_version.properties[]` | repeated [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | Property values, or an empty array. |
| `data[].object_version.acl` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | If set, ACL. |
| `data[].object_version.current_user_permissions` | [`ObjectPermissionsForClient`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectPermissionsForClient/index.md) | If set, permissions of the object version. |
| `data[].version_comment` | [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | The version comment history of the object excluding checkedout version. |
| `data[].version_comment.property_def` | `int32` | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
| `data[].version_comment.value` | [`TypedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.TypedValue/index.md) | The value. Its `type` must match the data type of the property definition. |
| `data[].updated_files[]` | repeated [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | Identifies the files that have been updated. |
| `data[].updated_files[].type` | [`FileIDType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileIDType/index.md) | `FILE_IDTYPE_SPECIFIC` for one file. Values: `FILE_IDTYPE_UNINITIALIZED` (0), `FILE_IDTYPE_ALL` (1), `FILE_IDTYPE_ANY` (2), `FILE_IDTYPE_SPECIFIC` (3). |
| `data[].updated_files[].internal_id` | `int32` | The file ID. |
| `data[].updated_files[].external_repository_id` | `string` | Used only for files in external repositories. Leave empty. |
| `data[].alias_obj_ids[]` | repeated [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Additional ID aliases for the object such as the external object ID, if any, in some other system/repository/vault. |
| `data[].alias_obj_ids[].type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `data[].alias_obj_ids[].item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `data[].index_metadata` | [`ObjectIndexMetadata`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectIndexMetadata/index.md) | Metadata information for storing the object in the index. |
| `data[].index_metadata.relative_relevance_score` | `float` | Relevance score of the object. |
| `data[].index_metadata.last_modified_for_indexing_utc` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The last modified timestamp for indexing. |
| `data[].index_metadata.version_for_ix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Logical timestamp for indexing. |
| `data[].repository_path` | [`FolderArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FolderArray/index.md) | If not null contains the array of folders describing the repository path to the object version location. |
| `data[].repository_path.value[]` | repeated [`Folder`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Folder/index.md) | Array of Folder structures. |
| `data[].all_editors_history` | [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | Aggregated DISTINCT user IDs (VALUELIST_USERS) from PROPERTYDEF_LASTMODIFIEDBY and PROPERTYDEF_VERSION_EDITORS across every checked-in version, represented as MSLOOKUP from VALUELIST_USERS. Empty when the feature flag is off or for external-repository objects. |
| `data[].all_editors_history.property_def` | `int32` | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
| `data[].all_editors_history.value` | [`TypedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.TypedValue/index.md) | The value. Its `type` must match the data type of the property definition. |
| `data[].acl_for_indexing` | [`SimpleACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACL/index.md) | Pre-resolved read-permission projection of this object version's ACL: one entry per component (index 0 is the custom component, the rest are automatic components in stable order), each reduced to concrete allowed/denied actor IDs with additive components merged in, deleted components removed, and pseudo-users resolved. unset if not supplied by this server; set with zero entries if supplied and the ACL resolved to no components. On the checked-out version, the checked-out-to user has already been injected into every component's allowed array; the latest-checked-in version's projection never carries that injection. |
| `data[].acl_for_indexing.value[]` | repeated [`SimpleACLComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACLComponent/index.md) | Components. |
| `last_seen_obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Last seen object ID. |
| `last_seen_obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `last_seen_obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `last_seen_obj_id.item_id.internal_id` | `int32` | The ID of the object or value list item. |
| `last_seen_obj_id.item_id.external_repository_id` | [`ExternalRepositoryID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExternalRepositoryID/index.md) | Used only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault. |
| `last_seen_version_for_ix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Last seen logical timestamp within the returned objects or the timestamp after trying to fetch the batch even if no objects were returned (relevant for indexing external repositories). |
| `last_seen_version_for_ix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `last_seen_version_for_ix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `last_seen_version_for_ix.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `last_seen_version_for_ix.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `last_seen_version_for_ix.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
| `peida` | [`IndexerDataAvailability`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerDataAvailability/index.md) | Flags that tell which kinds of indexer data are available. Values: `INDEXER_DATA_AVAILABILITY_UNKNOWN` (0), `INDEXER_DATA_AVAILABILITY_AVAILABLE` (1), `INDEXER_DATA_AVAILABILITY_EXHAUSTED` (2), `INDEXER_DATA_AVAILABILITY_ABORTED` (3). |
## Related methods
- [IRPCIndexingDataSource2.GetObjectForIXById](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetObjectForIXById/index.md): Gets the index data of one object by its ID: the same data that [GetNextObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md) returns for the latest checked-in version and, if requested, the checked-out version.
---
# IRPCIndexingDataSource.GetNextObjectsForMIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForMIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets next objects and their data for metadata indexing.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetNextObjectsForMIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-next-objects-for-mix`
- **Request:** [`GetNextObjectsForMIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForMIX/index.md#request)
- **Response:** [`GetNextObjectsForMIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForMIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it to fetch the next batch for a metadata
index. Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
## Request: GetNextObjectsForMIXRequest
> 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 |
|---|---|---|
| `indexing_request` | [`IndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexingRequest/index.md) | General information about the request. |
| `indexing_request.options_obsolete` | `uint32` | Control flags for the request. |
| `indexing_request.options` | [`INDEXINGREQUESTFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.INDEXINGREQUESTFLAGS/index.md) | Control flags for the request. |
| `indexing_request.options.all` | `bool` | Specifies all flags set; Including any future flags. |
| `indexing_request.options.accept_modifications` | `bool` | The indexer accepts new and modified objects in the request. |
| `indexing_request.options.accept_destructions` | `bool` | The indexer accepts destructions of objects in the request. |
| `indexing_request.options.accept_acl_modifications` | `bool` | The indexer accepts ACL modifications of objects in the request. |
| `indexing_request.index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index. |
| `indexing_request.index_name.configuration_name` | `string` | The name of the index configuration. |
| `indexing_request.index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `indexing_request.index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `indexing_request.auxiliary_indexer_id` | `string` | If not null, identifies auxiliary indexer that consumes the data. |
| `indexing_request.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies how to partition the candidate objects for this caller. |
| `indexing_request.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `indexing_request.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `indexing_request.last_indexed_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The last indexed logical timestamp. Ignored if its type is `LOGICAL_TIMESTAMP_TYPE_IGNORED`. |
| `indexing_request.last_indexed_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_indexed_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.last_change_tracking_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Change Tracking version from last indexed logical timestamp. |
| `indexing_request.last_change_tracking_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_change_tracking_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.indexer_location` | [`IndexerLocation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerLocation/index.md) | Defines if indexer making the request is of type internal (legacy) or external. Values: `INDEXER_LOCATION_UNINITIALIZED` (0), `INDEXER_LOCATION_LEGACY` (1), `INDEXER_LOCATION_EXTERNAL` (2). |
| `last_for_mix` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Last indexed object ID. If unset, ignored. |
| `last_for_mix.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `last_for_mix.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `last_for_mix.item_id.internal_id` | `int32` | The ID of the object or value list item. |
| `last_for_mix.item_id.external_repository_id` | [`ExternalRepositoryID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExternalRepositoryID/index.md) | Used only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault. |
| `count` | `uint32` | The number of objects requested. |
## Response: GetNextObjectsForMIXResponse
> 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 |
|---|---|---|
| `objects[]` | repeated [`ObjIDInfoForMIX`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjIDInfoForMIX/index.md) | The ID information of the objects for metadata indexing. If an empty array is returned, no more objects are available. |
| `objects[].obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Object ID. |
| `objects[].obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `objects[].obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `objects[].is_destroyed` | `bool` | True if the object has been destroyed and is no longer available. If true then only the objid member is valid. |
| `objects[].relevance_score` | `float` | Relevance score of the object. |
| `objects[].checked_out_version` | [`ObjVerVersion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjVerVersion/index.md) | The version that is currently checked out, or uninitialized if the object is not checked out. |
| `objects[].checked_out_version.type` | [`ObjVerVersionType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ObjVerVersionType/index.md) | What `internal_version` means. `OBJ_VER_VERSION_TYPE_SPECIFIC` for a version number. Values: `OBJ_VER_VERSION_TYPE_UNINITIALIZED` (0), `OBJ_VER_VERSION_TYPE_LATEST` (1), `OBJ_VER_VERSION_TYPE_ANY` (2), `OBJ_VER_VERSION_TYPE_ALL` (3), `OBJ_VER_VERSION_TYPE_SPECIFIC` (4), `OBJ_VER_VERSION_TYPE_VALUE_LIST_ITEM` (6), `OBJ_VER_VERSION_TYPE_OBJECT_LEVEL_REFERENCE` (7). |
| `objects[].checked_out_version.internal_version` | `int32` | The version number, starting from 1, when `type` is `OBJ_VER_VERSION_TYPE_SPECIFIC`. The server returns -1 with `OBJ_VER_VERSION_TYPE_LATEST`. |
| `objects[].checked_out_version.external_repository_version` | `string` | Used only for objects in external repositories. Leave empty. |
| `objects[].checked_out_version.external_repository_sort_key` | `int64` | Used only for objects in external repositories. Leave 0. |
| `objects[].latest_checked_in_version` | [`ObjVerVersion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjVerVersion/index.md) | The latest version that is checked in, or uninitialized if the object has no checked-in version. |
| `objects[].latest_checked_in_version.type` | [`ObjVerVersionType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ObjVerVersionType/index.md) | What `internal_version` means. `OBJ_VER_VERSION_TYPE_SPECIFIC` for a version number. Values: `OBJ_VER_VERSION_TYPE_UNINITIALIZED` (0), `OBJ_VER_VERSION_TYPE_LATEST` (1), `OBJ_VER_VERSION_TYPE_ANY` (2), `OBJ_VER_VERSION_TYPE_ALL` (3), `OBJ_VER_VERSION_TYPE_SPECIFIC` (4), `OBJ_VER_VERSION_TYPE_VALUE_LIST_ITEM` (6), `OBJ_VER_VERSION_TYPE_OBJECT_LEVEL_REFERENCE` (7). |
| `objects[].latest_checked_in_version.internal_version` | `int32` | The version number, starting from 1, when `type` is `OBJ_VER_VERSION_TYPE_SPECIFIC`. The server returns -1 with `OBJ_VER_VERSION_TYPE_LATEST`. |
| `objects[].latest_checked_in_version.external_repository_version` | `string` | Used only for objects in external repositories. Leave empty. |
| `objects[].latest_checked_in_version.external_repository_sort_key` | `int64` | Used only for objects in external repositories. Leave 0. |
| `objects[].version_for_mix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Logical timestamp for indexing. |
| `objects[].version_for_mix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `objects[].version_for_mix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `objects[].checked_out_to` | `int32` | The user ID to which the object has been checked out. Zero if not checked out. |
| `objects[].checked_out_to_host_name` | `string` | The computer name to which the object has been checked out. Empty if not checked out. |
| `objects[].object_flags` | [`ITEMFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ITEMFLAGS/index.md) | Bit flags that provide additional information on the object (e.g. is the object deleted). |
| `objects[].object_flags.all` | `bool` | Specifies all flags set; Including any future flags. |
| `objects[].object_flags.is_shortcut` | `bool` | Is the item a stub (refers to a full object in another vault). This could be link object or symbolic link. |
| `objects[].object_flags.is_deleted` | `bool` | Is the item deleted. The flag is not persistent in the database. |
| `objects[].object_flags.is_accessed_by_valid` | `bool` | Is the Recently Accessed By field valid (field can be valid and zero if user hasn't accessed the object). The flag is not persistent in the database. |
| `objects[].object_flags.has_shared_files` | `bool` | Does the item have shared files. The flag is not persistent in the database. |
| `objects[].object_flags.is_conflict_object` | `bool` | Is the item a conflict object. |
| `objects[].object_flags.is_normal` | `bool` | Is a normal object i.e. no flags. This has the same meaning as ITEMFLAG_NONE (or actually no flags of ITEMFLAGS_BITMASK_SPECIALFLAGS). This flag allows us to combine all flags by using bitwise OR without losing information. The flag is not persistent in the database. |
| `objects[].object_flags.is_view` | `bool` | Is a view object? View objects are objects which represents view folders but can have metadata associated with. They act as shortucts to the actual views when found e.g. through quick search. |
| `objects[].object_flags.has_external_data` | `bool` | The object has external data associated with it, for example a promoted object. Not set for objects that are only linked with an external file source. |
| `objects[].object_flags.is_referred_external_object` | `bool` | Is an unmanaged reduced object type item. |
| `objects[].object_flags.is_external_origin` | `bool` | Is object type item from an external origin. The flag is not persistent in the database. |
| `objects[].object_flags.is_omitted_from_database` | `bool` | Is object omitted from database. For example, a basic tier object. |
| `objects[].object_flags.is_draft` | `bool` | Is the object a pending-upload draft (created checked out; file content not yet committed). Persisted. |
| `objects[].last_modified_for_indexing_at_utc` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The last modified timestamp for indexing. |
| `objects[].external_obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | An external object ID, if any, in some other system/repository/vault. Externality is seen quite widely, external to the object ID specified by objid. Useful e.g. when the objid member represents an unmanaged object ID because then objidExternal can represent the managed ID of the corresponding object in the vault. |
| `objects[].external_obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `objects[].external_obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `data[]` | repeated [`ObjVerDataForMIX`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjVerDataForMIX/index.md) | The data of the object versions. Can have more entries than `objects` (several versions per object); the versions of one object are consecutive. |
| `data[].object_info` | [`ObjVerInfoForMIX`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjVerInfoForMIX/index.md) | Object version info. |
| `data[].object_info.obj_ver` | [`ObjVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjVer/index.md) | Object version. |
| `data[].object_info.is_skipped` | `bool` | True if the object has been skipped and cannot be indexed. If true then only the objid inside objver is valid. |
| `data[].object_info.external_id_status` | [`ExtIDStatus`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ExtIDStatus/index.md) | The status of this object's external ID. Values: `EXT_IDSTATUS_UNKNOWN` (0), `EXT_IDSTATUS_EXTERNAL` (1), `EXT_IDSTATUS_INTERNAL` (2), `EXT_IDSTATUS_DISCARDED` (3), `EXT_IDSTATUS_NOT_AVAILABLE` (4), `EXT_IDSTATUS_EXTERNAL_REDUCED` (5). |
| `data[].object_info.external_id` | `string` | The external ID (display ID) of this object. unset means that the external ID is the same as the internal ID. |
| `data[].object_info.original_obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The original objid in the vault in which the object was originally created. |
| `data[].object_info.files[]` | repeated [`File`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.File/index.md) | Object files. |
| `data[].object_info.updated_files[]` | repeated [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The IDs of the updated object files. |
| `data[].object_info.acl` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | The version ACL. |
| `data[].object_version` | [`ObjectVersionEx`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionEx/index.md) | If not null contains the basic object version information. The search results are returned from the server using this information with external content repositories. |
| `data[].object_version.version_info` | [`ObjectVersion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersion/index.md) | Object Version information. |
| `data[].object_version.object_info` | [`ObjectLevelInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectLevelInfo/index.md) | Object-level information. |
| `data[].properties[]` | repeated [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | The property values of the object version. |
| `data[].properties[].property_def` | `int32` | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
| `data[].properties[].value` | [`TypedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.TypedValue/index.md) | The value. Its `type` must match the data type of the property definition. |
| `data[].version_comment` | [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | The version comment history of the object version. |
| `data[].version_comment.property_def` | `int32` | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
| `data[].version_comment.value` | [`TypedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.TypedValue/index.md) | The value. Its `type` must match the data type of the property definition. |
| `data[].repository_path` | [`FolderArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FolderArray/index.md) | If not null contains the array of folders describing the repository path to the object version location. |
| `data[].repository_path.value[]` | repeated [`Folder`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Folder/index.md) | Array of Folder structures. |
| `data[].all_editors_history` | [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | DISTINCT user IDs (VALUELIST_USERS) from PROPERTYDEF_LASTMODIFIEDBY and PROPERTYDEF_VERSION_EDITORS across every checked-in version of this object up to and including this version, represented as MSLOOKUP from VALUELIST_USERS. Empty when the AINO-246 feature flag is off, when this entry is a skipped/destroyed placeholder, or when this object version has no editors in the vault tables yet. |
| `data[].all_editors_history.property_def` | `int32` | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
| `data[].all_editors_history.value` | [`TypedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.TypedValue/index.md) | The value. Its `type` must match the data type of the property definition. |
| `last_seen_obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Last seen object ID. Currently relevant for combined indexer only. |
| `last_seen_obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `last_seen_obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `last_seen_obj_id.item_id.internal_id` | `int32` | The ID of the object or value list item. |
| `last_seen_obj_id.item_id.external_repository_id` | [`ExternalRepositoryID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExternalRepositoryID/index.md) | Used only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault. |
| `last_seen_version_for_mix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Last seen logical timestamp within the returned objects or the timestamp after trying to fetch the batch even if no objects were returned (relevant for indexing external repositories). |
| `last_seen_version_for_mix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `last_seen_version_for_mix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `last_seen_version_for_mix.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `last_seen_version_for_mix.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `last_seen_version_for_mix.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
---
# IRPCIndexingDataSource.GetObjectTypesWithPropertyDefs
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetObjectTypesWithPropertyDefs/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets object types with associated property defs.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetObjectTypesWithPropertyDefs`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-object-types-with-property-defs`
- **Request:** [`GetObjectTypesWithPropertyDefsRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetObjectTypesWithPropertyDefs/index.md#request)
- **Response:** [`GetObjectTypesWithPropertyDefsResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetObjectTypesWithPropertyDefs/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it to learn which properties to index per
object type. Applications should use [GetObjectTypes](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectTypes/GetObjectTypes/index.md)
and [GetPropertyDefs](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCPropertyDefs/GetPropertyDefs/index.md).
- Requires the system administrator server role (server right `log_in_to_any_vault`).
## Request: GetObjectTypesWithPropertyDefsRequest
No fields.
## Response: GetObjectTypesWithPropertyDefsResponse
> 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 |
|---|---|---|
| `items[]` | repeated [`ObjectTypeWithPropertyDefs`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectTypeWithPropertyDefs/index.md) | Items. |
| `items[].object_type` | `int32` | Object type ID. |
| `items[].property_defs[]` | repeated `int32` | The IDs of those propertydefs that are based on the object type. |
## Related methods
- [IRPCObjectTypes.GetObjectTypes](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectTypes/GetObjectTypes/index.md): Gets all object types (real object types only, not plain value lists), with their icons.
- [IRPCPropertyDefs.GetPropertyDefs](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCPropertyDefs/GetPropertyDefs/index.md): Gets all property definitions that the user is allowed to see.
---
# IRPCIndexingDataSource.GetSmallestTimestampForFiledataIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForFiledataIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets the smallest timestamp of a file that has been modified since specific Change Tracking version. Returns also the current Change Tracking version.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForFiledataIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-smallest-timestamp-for-filedata-ix`
- **Request:** [`GetSmallestTimestampForFiledataIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForFiledataIX/index.md#request)
- **Response:** [`GetSmallestTimestampForFiledataIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForFiledataIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it, like
[GetSmallestTimestampForMetadataIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForMetadataIX/index.md)
but for files. Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
## Request: GetSmallestTimestampForFiledataIXRequest
> 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 |
|---|---|---|
| `indexing_request` | [`IndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexingRequest/index.md) | General information about the request. |
| `indexing_request.options_obsolete` | `uint32` | Control flags for the request. |
| `indexing_request.options` | [`INDEXINGREQUESTFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.INDEXINGREQUESTFLAGS/index.md) | Control flags for the request. |
| `indexing_request.options.all` | `bool` | Specifies all flags set; Including any future flags. |
| `indexing_request.options.accept_modifications` | `bool` | The indexer accepts new and modified objects in the request. |
| `indexing_request.options.accept_destructions` | `bool` | The indexer accepts destructions of objects in the request. |
| `indexing_request.options.accept_acl_modifications` | `bool` | The indexer accepts ACL modifications of objects in the request. |
| `indexing_request.index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index. |
| `indexing_request.index_name.configuration_name` | `string` | The name of the index configuration. |
| `indexing_request.index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `indexing_request.index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `indexing_request.auxiliary_indexer_id` | `string` | If not null, identifies auxiliary indexer that consumes the data. |
| `indexing_request.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies how to partition the candidate objects for this caller. |
| `indexing_request.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `indexing_request.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `indexing_request.last_indexed_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The last indexed logical timestamp. Ignored if its type is `LOGICAL_TIMESTAMP_TYPE_IGNORED`. |
| `indexing_request.last_indexed_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_indexed_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.last_change_tracking_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Change Tracking version from last indexed logical timestamp. |
| `indexing_request.last_change_tracking_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_change_tracking_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.indexer_location` | [`IndexerLocation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerLocation/index.md) | Defines if indexer making the request is of type internal (legacy) or external. Values: `INDEXER_LOCATION_UNINITIALIZED` (0), `INDEXER_LOCATION_LEGACY` (1), `INDEXER_LOCATION_EXTERNAL` (2). |
## Response: GetSmallestTimestampForFiledataIXResponse
> 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 |
|---|---|---|
| `smallest_changed_version_for_fix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Receives the smallest file version that has changed since provided change tracking version. |
| `smallest_changed_version_for_fix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `smallest_changed_version_for_fix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `smallest_changed_version_for_fix.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `smallest_changed_version_for_fix.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `smallest_changed_version_for_fix.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
| `current_change_tracking_version` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Receives the current change tracking version. |
| `current_change_tracking_version.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `current_change_tracking_version.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `current_change_tracking_version.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `current_change_tracking_version.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `current_change_tracking_version.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
## Related methods
- [GetSmallestTimestampForMetadataIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForMetadataIX/index.md): Gets the smallest timestamp of an object that has been modified since specific Change Tracking version. Returns also the current Change Tracking version.
---
# IRPCIndexingDataSource.GetSmallestTimestampForMetadataIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForMetadataIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets the smallest timestamp of an object that has been modified since specific Change Tracking version. Returns also the current Change Tracking version.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForMetadataIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-smallest-timestamp-for-metadata-ix`
- **Request:** [`GetSmallestTimestampForMetadataIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForMetadataIX/index.md#request)
- **Response:** [`GetSmallestTimestampForMetadataIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForMetadataIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it to map the Change Tracking version of
their last position to the oldest change that they must still process. Applications should not
call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
## Request: GetSmallestTimestampForMetadataIXRequest
> 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 |
|---|---|---|
| `indexing_request` | [`IndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexingRequest/index.md) | General information about the request. |
| `indexing_request.options_obsolete` | `uint32` | Control flags for the request. |
| `indexing_request.options` | [`INDEXINGREQUESTFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.INDEXINGREQUESTFLAGS/index.md) | Control flags for the request. |
| `indexing_request.options.all` | `bool` | Specifies all flags set; Including any future flags. |
| `indexing_request.options.accept_modifications` | `bool` | The indexer accepts new and modified objects in the request. |
| `indexing_request.options.accept_destructions` | `bool` | The indexer accepts destructions of objects in the request. |
| `indexing_request.options.accept_acl_modifications` | `bool` | The indexer accepts ACL modifications of objects in the request. |
| `indexing_request.index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index. |
| `indexing_request.index_name.configuration_name` | `string` | The name of the index configuration. |
| `indexing_request.index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `indexing_request.index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `indexing_request.auxiliary_indexer_id` | `string` | If not null, identifies auxiliary indexer that consumes the data. |
| `indexing_request.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies how to partition the candidate objects for this caller. |
| `indexing_request.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `indexing_request.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `indexing_request.last_indexed_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The last indexed logical timestamp. Ignored if its type is `LOGICAL_TIMESTAMP_TYPE_IGNORED`. |
| `indexing_request.last_indexed_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_indexed_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.last_change_tracking_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Change Tracking version from last indexed logical timestamp. |
| `indexing_request.last_change_tracking_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_change_tracking_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.indexer_location` | [`IndexerLocation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerLocation/index.md) | Defines if indexer making the request is of type internal (legacy) or external. Values: `INDEXER_LOCATION_UNINITIALIZED` (0), `INDEXER_LOCATION_LEGACY` (1), `INDEXER_LOCATION_EXTERNAL` (2). |
## Response: GetSmallestTimestampForMetadataIXResponse
> 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 |
|---|---|---|
| `smallest_changed_version_for_mix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Receives the smallest object version that has changed since provided change tracking version. |
| `smallest_changed_version_for_mix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `smallest_changed_version_for_mix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `smallest_changed_version_for_mix.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `smallest_changed_version_for_mix.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `smallest_changed_version_for_mix.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
| `current_change_tracking_version` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Receives the current change tracking version. |
| `current_change_tracking_version.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `current_change_tracking_version.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `current_change_tracking_version.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `current_change_tracking_version.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `current_change_tracking_version.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
---
# IRPCIndexingDataSource.GetVaultTempFilePath
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetVaultTempFilePath/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Gets the local path of the vault's temporary file folder on the server computer.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/GetVaultTempFilePath`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-vault-temp-file-path`
- **Request:** [`GetVaultTempFilePathRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetVaultTempFilePath/index.md#request)
- **Response:** [`GetVaultTempFilePathResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetVaultTempFilePath/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files indexing service, which runs on the server
computer, calls it. Applications should not call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`); a vault
administrator is denied.
## Request: GetVaultTempFilePathRequest
No fields.
## Response: GetVaultTempFilePathResponse
> 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 |
|---|---|---|
| `vault_temp_file_path` | `string` | Receives the path to the root of vault-specific temporary files directory. |
---
# IRPCIndexingDataSource.HasMoreObjectsForFiledataIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForFiledataIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Checks whether object files are waiting for a file data index, and optionally how many.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/HasMoreObjectsForFiledataIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/has-more-objects-for-filedata-ix`
- **Request:** [`HasMoreObjectsForFiledataIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForFiledataIX/index.md#request)
- **Response:** [`HasMoreObjectsForFiledataIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForFiledataIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it. Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
## Request: HasMoreObjectsForFiledataIXRequest
> 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 |
|---|---|---|
| `indexing_request` | [`IndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexingRequest/index.md) | General information about the request. |
| `indexing_request.options_obsolete` | `uint32` | Control flags for the request. |
| `indexing_request.options` | [`INDEXINGREQUESTFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.INDEXINGREQUESTFLAGS/index.md) | Control flags for the request. |
| `indexing_request.options.all` | `bool` | Specifies all flags set; Including any future flags. |
| `indexing_request.options.accept_modifications` | `bool` | The indexer accepts new and modified objects in the request. |
| `indexing_request.options.accept_destructions` | `bool` | The indexer accepts destructions of objects in the request. |
| `indexing_request.options.accept_acl_modifications` | `bool` | The indexer accepts ACL modifications of objects in the request. |
| `indexing_request.index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index. |
| `indexing_request.index_name.configuration_name` | `string` | The name of the index configuration. |
| `indexing_request.index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `indexing_request.index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `indexing_request.auxiliary_indexer_id` | `string` | If not null, identifies auxiliary indexer that consumes the data. |
| `indexing_request.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies how to partition the candidate objects for this caller. |
| `indexing_request.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `indexing_request.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `indexing_request.last_indexed_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The last indexed logical timestamp. Ignored if its type is `LOGICAL_TIMESTAMP_TYPE_IGNORED`. |
| `indexing_request.last_indexed_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_indexed_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.last_change_tracking_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Change Tracking version from last indexed logical timestamp. |
| `indexing_request.last_change_tracking_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_change_tracking_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.indexer_location` | [`IndexerLocation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerLocation/index.md) | Defines if indexer making the request is of type internal (legacy) or external. Values: `INDEXER_LOCATION_UNINITIALIZED` (0), `INDEXER_LOCATION_LEGACY` (1), `INDEXER_LOCATION_EXTERNAL` (2). |
| `threshold` | `uint32` | If 0, mere existence is checked. Non-zero values trigger the threshold check for available objects. |
## Response: HasMoreObjectsForFiledataIXResponse
> 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 |
|---|---|---|
| `more_objects` | `uint32` | 0 if no files wait. If more than `threshold` files wait, 4294967295; otherwise the exact number. |
| `last_seen_version_for_fix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Last seen logical timestamp in case there are no object files to be indexed. Note that logical timestamp may go forward even when there are no matching object files to be indexed. |
| `last_seen_version_for_fix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `last_seen_version_for_fix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `last_seen_version_for_fix.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `last_seen_version_for_fix.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `last_seen_version_for_fix.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
---
# IRPCIndexingDataSource.HasMoreObjectsForIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Checks whether objects are waiting for a combined index, and optionally how many.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/HasMoreObjectsForIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/has-more-objects-for-ix`
- **Request:** [`HasMoreObjectsForIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForIX/index.md#request)
- **Response:** [`HasMoreObjectsForIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it. Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`; a
normal user is denied.
- `indexing_request.index_name` must name an index; an empty index name fails with "The
parameter is incorrect.".
## Request: HasMoreObjectsForIXRequest
> 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 |
|---|---|---|
| `indexing_request` | [`IndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexingRequest/index.md) | General information about the request. |
| `indexing_request.options_obsolete` | `uint32` | Control flags for the request. |
| `indexing_request.options` | [`INDEXINGREQUESTFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.INDEXINGREQUESTFLAGS/index.md) | Control flags for the request. |
| `indexing_request.options.all` | `bool` | Specifies all flags set; Including any future flags. |
| `indexing_request.options.accept_modifications` | `bool` | The indexer accepts new and modified objects in the request. |
| `indexing_request.options.accept_destructions` | `bool` | The indexer accepts destructions of objects in the request. |
| `indexing_request.options.accept_acl_modifications` | `bool` | The indexer accepts ACL modifications of objects in the request. |
| `indexing_request.index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index. |
| `indexing_request.index_name.configuration_name` | `string` | The name of the index configuration. |
| `indexing_request.index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `indexing_request.index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `indexing_request.auxiliary_indexer_id` | `string` | If not null, identifies auxiliary indexer that consumes the data. |
| `indexing_request.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies how to partition the candidate objects for this caller. |
| `indexing_request.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `indexing_request.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `indexing_request.last_indexed_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The last indexed logical timestamp. Ignored if its type is `LOGICAL_TIMESTAMP_TYPE_IGNORED`. |
| `indexing_request.last_indexed_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_indexed_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.last_change_tracking_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Change Tracking version from last indexed logical timestamp. |
| `indexing_request.last_change_tracking_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_change_tracking_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.indexer_location` | [`IndexerLocation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerLocation/index.md) | Defines if indexer making the request is of type internal (legacy) or external. Values: `INDEXER_LOCATION_UNINITIALIZED` (0), `INDEXER_LOCATION_LEGACY` (1), `INDEXER_LOCATION_EXTERNAL` (2). |
| `last_for_ix` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Last indexed object ID. If unset, ignored. |
| `last_for_ix.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `last_for_ix.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `last_for_ix.item_id.internal_id` | `int32` | The ID of the object or value list item. |
| `last_for_ix.item_id.external_repository_id` | [`ExternalRepositoryID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExternalRepositoryID/index.md) | Used only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault. |
| `threshold` | `uint32` | If 0, mere existence is checked. Non-zero values trigger the threshold check for available objects. |
## Response: HasMoreObjectsForIXResponse
> 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 |
|---|---|---|
| `more_objects` | `uint32` | 0 if no objects wait. If more than `threshold` objects wait, 4294967295; otherwise the exact number. |
| `last_seen_version_for_ix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Last seen logical timestamp in case there are no objects to be indexed. Note that logical timestamp may go forward even when there are no matching objects to be indexed. |
| `last_seen_version_for_ix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `last_seen_version_for_ix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `last_seen_version_for_ix.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `last_seen_version_for_ix.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `last_seen_version_for_ix.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
| `peida` | [`IndexerDataAvailability`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerDataAvailability/index.md) | Flags that tell which kinds of indexer data are available. Values: `INDEXER_DATA_AVAILABILITY_UNKNOWN` (0), `INDEXER_DATA_AVAILABILITY_AVAILABLE` (1), `INDEXER_DATA_AVAILABILITY_EXHAUSTED` (2), `INDEXER_DATA_AVAILABILITY_ABORTED` (3). |
---
# IRPCIndexingDataSource.HasMoreObjectsForMetadataIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForMetadataIX/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Checks whether objects are waiting for a metadata index, and optionally how many.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/HasMoreObjectsForMetadataIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/has-more-objects-for-metadata-ix`
- **Request:** [`HasMoreObjectsForMetadataIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForMetadataIX/index.md#request)
- **Response:** [`HasMoreObjectsForMetadataIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForMetadataIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it. Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
## Request: HasMoreObjectsForMetadataIXRequest
> 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 |
|---|---|---|
| `indexing_request` | [`IndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexingRequest/index.md) | General information about the request. |
| `indexing_request.options_obsolete` | `uint32` | Control flags for the request. |
| `indexing_request.options` | [`INDEXINGREQUESTFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.INDEXINGREQUESTFLAGS/index.md) | Control flags for the request. |
| `indexing_request.options.all` | `bool` | Specifies all flags set; Including any future flags. |
| `indexing_request.options.accept_modifications` | `bool` | The indexer accepts new and modified objects in the request. |
| `indexing_request.options.accept_destructions` | `bool` | The indexer accepts destructions of objects in the request. |
| `indexing_request.options.accept_acl_modifications` | `bool` | The indexer accepts ACL modifications of objects in the request. |
| `indexing_request.index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index. |
| `indexing_request.index_name.configuration_name` | `string` | The name of the index configuration. |
| `indexing_request.index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `indexing_request.index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `indexing_request.auxiliary_indexer_id` | `string` | If not null, identifies auxiliary indexer that consumes the data. |
| `indexing_request.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies how to partition the candidate objects for this caller. |
| `indexing_request.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `indexing_request.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `indexing_request.last_indexed_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The last indexed logical timestamp. Ignored if its type is `LOGICAL_TIMESTAMP_TYPE_IGNORED`. |
| `indexing_request.last_indexed_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_indexed_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.last_change_tracking_timestamp` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Change Tracking version from last indexed logical timestamp. |
| `indexing_request.last_change_tracking_timestamp.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `indexing_request.last_change_tracking_timestamp.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `indexing_request.indexer_location` | [`IndexerLocation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexerLocation/index.md) | Defines if indexer making the request is of type internal (legacy) or external. Values: `INDEXER_LOCATION_UNINITIALIZED` (0), `INDEXER_LOCATION_LEGACY` (1), `INDEXER_LOCATION_EXTERNAL` (2). |
| `last_for_mix` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Last indexed object ID. If unset, ignored. |
| `last_for_mix.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `last_for_mix.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `last_for_mix.item_id.internal_id` | `int32` | The ID of the object or value list item. |
| `last_for_mix.item_id.external_repository_id` | [`ExternalRepositoryID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExternalRepositoryID/index.md) | Used only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault. |
| `threshold` | `uint32` | If 0, mere existence is checked. Non-zero values trigger the threshold check for available objects. |
## Response: HasMoreObjectsForMetadataIXResponse
> 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 |
|---|---|---|
| `more_objects` | `uint32` | 0 if no objects wait. If more than `threshold` objects wait, 4294967295; otherwise the exact number. |
| `last_seen_version_for_mix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Last seen logical timestamp in case there are no objects to be indexed. Note that logical timestamp may go forward even when there are no matching objects to be indexed. |
| `last_seen_version_for_mix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `last_seen_version_for_mix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `last_seen_version_for_mix.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `last_seen_version_for_mix.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `last_seen_version_for_mix.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
---
# IRPCIndexingDataSource.NotifyObjectSkippedIndexing
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/NotifyObjectSkippedIndexing/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Reports objects or files that an indexer skipped, and why.
- **Service:** [Indexing data source](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md) `MFiles.IRPCIndexingDataSource`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource/NotifyObjectSkippedIndexing`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/notify-object-skipped-indexing`
- **Request:** [`NotifyObjectSkippedIndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/NotifyObjectSkippedIndexing/index.md#request)
- **Response:** [`NotifyObjectSkippedIndexingResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/NotifyObjectSkippedIndexing/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** Search indexers call it. Applications should not call it.
- The skipped-indexing feature behind this method is not enabled in production servers. There
the call does nothing and succeeds.
- Otherwise requires the system administrator server role (server right `log_in_to_any_vault`).
## Request: NotifyObjectSkippedIndexingRequest
> 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 |
|---|---|---|
| `object_skipped_indexing_state_array[]` | repeated [`ObjectSkippedIndexingState`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectSkippedIndexingState/index.md) | The object skipped indexing state array. |
| `object_skipped_indexing_state_array[].object_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object ID. |
| `object_skipped_indexing_state_array[].object_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `object_skipped_indexing_state_array[].object_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `object_skipped_indexing_state_array[].file_id` | [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The file ID or zero if not managed file. |
| `object_skipped_indexing_state_array[].file_id.type` | [`FileIDType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileIDType/index.md) | `FILE_IDTYPE_SPECIFIC` for one file. Values: `FILE_IDTYPE_UNINITIALIZED` (0), `FILE_IDTYPE_ALL` (1), `FILE_IDTYPE_ANY` (2), `FILE_IDTYPE_SPECIFIC` (3). |
| `object_skipped_indexing_state_array[].file_id.internal_id` | `int32` | The file ID. |
| `object_skipped_indexing_state_array[].file_id.external_repository_id` | `string` | Used only for files in external repositories. Leave empty. |
| `object_skipped_indexing_state_array[].index_name` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | The index name. |
| `object_skipped_indexing_state_array[].index_name.configuration_name` | `string` | The name of the index configuration. |
| `object_skipped_indexing_state_array[].index_name.repository_connection` | `string` | Identifies the external repository connection. |
| `object_skipped_indexing_state_array[].index_name.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `object_skipped_indexing_state_array[].skip_time` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | Time skipped (in UTC). |
| `object_skipped_indexing_state_array[].reason` | [`ObjectSkippedIndexingReason`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ObjectSkippedIndexingReason/index.md) | Skip reason. Values: `OBJECT_SKIPPED_INDEXING_REASON_UNSPECIFIED` (0), `OBJECT_SKIPPED_INDEXING_REASON_CONFIG_FILE_SIZE` (1), `OBJECT_SKIPPED_INDEXING_REASON_CONFIG_FILE_EXTENSION` (2), `OBJECT_SKIPPED_INDEXING_REASON_CONFIG_TIMEOUT_TEXT_EXTRACTION` (3), `OBJECT_SKIPPED_INDEXING_REASON_ERROR_FILE_NOT_FOUND` (4), `OBJECT_SKIPPED_INDEXING_REASON_ERROR_FILE_ACCESS_DENIED` (5), `OBJECT_SKIPPED_INDEXING_REASON_ERROR_FILE_DATA_NOT_AVAILABLE` (6), `OBJECT_SKIPPED_INDEXING_REASON_ERROR_FILE_IN_USE` (7), `OBJECT_SKIPPED_INDEXING_REASON_ERROR_FILE_SIZE_MISMATCH` (8), `OBJECT_SKIPPED_INDEXING_REASON_ERROR_METADATA` (9). |
## Response: NotifyObjectSkippedIndexingResponse
No fields.
---
# Indexing data source (version 2) (IRPCIndexingDataSource2)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/
More methods for search indexers, continuing
[IRPCIndexingDataSource](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/index.md).
- **gRPC service:** `MFiles.IRPCIndexingDataSource2`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 5
- **Proto file:** [`mfiles/IRPCIndexingDataSource2.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCIndexingDataSource2.proto)
## Overview
**For M-Files components only.** M-Files' cloud search indexing services use these methods
together with the combined enumerator of IRPCIndexingDataSource
([GetNextObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md)). Applications
should not call them; to search, use [IRPCSearch](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCSearch/index.md).
- **Rights:** a vault session with the vault rights `see_all_objects` and `see_deleted_objects`; no
server role is needed. A normal user is denied. The data is returned
regardless of the caller's object permissions; the objects' own permissions are included for
the index.
- **Tasks:** value list items for the index
([GetValueListItemsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetValueListItemsForIX/index.md)), one
object by ID ([GetObjectForIXById](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetObjectForIXById/index.md)),
the extracted text of a file
([GetTextContentForFileForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetTextContentForFileForIX/index.md)),
the index configuration
([GetIndexConfigurationsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetIndexConfigurationsForIX/index.md)),
and the current crawl position
([GetCurrentTimestampForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetCurrentTimestampForIX/index.md)).
- Only for vaults that the server hosts itself; external (unmanaged) objects and files are not
supported and fail with "Not implemented." (0x80004001).
## Methods
| Method | Summary | Facts |
|---|---|---|
| [GetCurrentTimestampForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetCurrentTimestampForIX/index.md) | Gets the vault's current crawl position for the combined enumerator: a crawl that starts there sees every change committed after the call and none committed before it. | `internal: not for applications` `read` `session` `idempotent` |
| [GetIndexConfigurationsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetIndexConfigurationsForIX/index.md) | Gets the vault's search index configuration as JSON, without secrets, plus the vault settings that an index built from it must agree on. | `internal: not for applications` `read` `session` `idempotent` |
| [GetObjectForIXById](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetObjectForIXById/index.md) | Gets the index data of one object by its ID: the same data that [GetNextObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md) returns for the latest checked-in version and, if requested, the checked-out version. | `internal: not for applications` `read` `session` `idempotent` |
| [GetTextContentForFileForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetTextContentForFileForIX/index.md) | Gets the text that the server extracts from a file version for indexing, in the response. | `internal: not for applications` `read` `session` `idempotent` |
| [GetValueListItemsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetValueListItemsForIX/index.md) | Gets the items of one value list for a search index: all items page by page, or the changes since a known version. | `internal: not for applications` `read` `session` `idempotent` |
---
# IRPCIndexingDataSource2.GetCurrentTimestampForIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetCurrentTimestampForIX/
Badges: `Server integration API / specialized` `internal: not for applications` `read` `session` `idempotent`
Gets the vault's current crawl position for the combined enumerator: a crawl that starts there
sees every change committed after the call and none committed before it.
- **Service:** [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md) `MFiles.IRPCIndexingDataSource2`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource2/GetCurrentTimestampForIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-current-timestamp-for-ix`
- **Request:** [`GetCurrentTimestampForIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetCurrentTimestampForIX/index.md#request)
- **Response:** [`GetCurrentTimestampForIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetCurrentTimestampForIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** read
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files' cloud search indexing services call it to start a crawl
from "now" instead of from the beginning of the vault's history. Applications should not call
it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`; a
normal user is denied. Read-only.
- Not available on all servers: it fails with "Not implemented." where the server does not offer
it. An older server answers with gRPC status `UNIMPLEMENTED`.
## Request: GetCurrentTimestampForIXRequest
No fields.
## Response: GetCurrentTimestampForIXResponse
Response for GetCurrentTimestampForIX. Carries the vault's current indexing head: the position from
which a ForIX crawl sees no change committed before the call and every change committed after it.
> 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 |
|---|---|---|
| `current_version_for_ix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The position as an integer timestamp, for starting a crawl with [GetNextObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md) and [HasMoreObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/HasMoreObjectsForIX/index.md). Each value is capped so that it never passes a change that is still being committed. |
| `current_version_for_ix.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `current_version_for_ix.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `current_version_for_ix.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `current_version_for_ix.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `current_version_for_ix.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
| `current_change_tracking_version` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | The current Change Tracking version, read before the position, in the form that [GetSmallestTimestampForMetadataIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetSmallestTimestampForMetadataIX/index.md) reports it; 1 when the vault does not use Change Tracking. |
| `current_change_tracking_version.type` | [`LogicalTimestampType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LogicalTimestampType/index.md) | Logical timestamp type. Values: `LOGICAL_TIMESTAMP_TYPE_UNINITIALIZED` (0), `LOGICAL_TIMESTAMP_TYPE_IGNORED` (1), `LOGICAL_TIMESTAMP_TYPE_INTEGER` (2), `LOGICAL_TIMESTAMP_TYPE_STRING` (3), `LOGICAL_TIMESTAMP_TYPE_INTEGER_AND_STRING` (4). |
| `current_change_tracking_version.data` | [`LogicalTimestampUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampUnion/index.md) | The data as a union. |
| `current_change_tracking_version.data.integer` | [`LogicalTimestampInteger`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampInteger/index.md) (oneof data) | Logical timestamp as an int64 vector. |
| `current_change_tracking_version.data.string` | [`LogicalTimestampString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampString/index.md) (oneof data) | String. |
| `current_change_tracking_version.data.integer_and_string` | [`LogicalTimestampIntegerAndString`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestampIntegerAndString/index.md) (oneof data) | Integer and string. |
---
# IRPCIndexingDataSource2.GetIndexConfigurationsForIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetIndexConfigurationsForIX/
Badges: `Server integration API / specialized` `internal: not for applications` `read` `session` `idempotent`
Gets the vault's search index configuration as JSON, without secrets, plus the vault settings
that an index built from it must agree on.
The result contains only the indexes of the engines that the cloud search indexing services
serve (Smart Search and Aino Search), only an allowed set of their settings, and no setting that
the vault settings mark as a password.
- **Service:** [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md) `MFiles.IRPCIndexingDataSource2`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource2/GetIndexConfigurationsForIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-index-configurations-for-ix`
- **Request:** [`GetIndexConfigurationsForIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetIndexConfigurationsForIX/index.md#request)
- **Response:** [`GetIndexConfigurationsForIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetIndexConfigurationsForIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** read
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files' cloud search indexing services call it. Applications
should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
Read-only.
## Request: GetIndexConfigurationsForIXRequest
No fields.
## Response: GetIndexConfigurationsForIXResponse
The response of GetIndexConfigurationsForIX: the vault's search index configuration without
secrets, plus the vault settings that an index built from it must agree on.
> 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 |
|---|---|---|
| `index_configurations_json` | `string` | A JSON object with `Indices` (the stored index settings) and the added members `FacetSources` (the vault's facet definitions), `SearchLanguages` (the full-text search languages as ISO codes, primary first) and `VaultTimeZone` (the vault's time zone, in the fields of the Windows time zone information structure). Members that are empty or cannot be resolved are left out. Example: `{"Indices":[],"SearchLanguages":["en"],"VaultTimeZone":{"bias":-120,...}}`. |
---
# IRPCIndexingDataSource2.GetObjectForIXById
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetObjectForIXById/
Badges: `Server integration API / specialized` `internal: not for applications` `read` `session` `idempotent`
Gets the index data of one object by its ID: the same data that
[GetNextObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md) returns for the
latest checked-in version and, if requested, the checked-out version.
The checked-out version is returned whoever has checked it out, and the index metadata (relevance
score, last-modified time for indexing) is computed as in the enumerator.
- **Service:** [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md) `MFiles.IRPCIndexingDataSource2`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource2/GetObjectForIXById`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-object-for-ixby-id`
- **Request:** [`GetObjectForIXByIdRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetObjectForIXById/index.md#request)
- **Response:** [`GetObjectForIXByIdResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetObjectForIXById/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** read
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files' cloud search indexing services call it to index an
object that a crawl has not delivered. Applications should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
- Read-only. An object that does not exist, is destroyed or has nothing to index fails with "Not
found.". External (unmanaged) objects fail with "Not implemented.".
- Both response fields are unset only for an object that has never been checked in, read with
`include_checked_out` false.
## Request: GetObjectForIXByIdRequest
> 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 |
|---|---|---|
| `obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object, by its internal ID. |
| `obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `obj_id.item_id.internal_id` | `int32` | The ID of the object or value list item. |
| `obj_id.item_id.external_repository_id` | [`ExternalRepositoryID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExternalRepositoryID/index.md) | Used only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault. |
| `include_checked_out` | `bool` | True to also return the checked-out version when the object is checked out. |
## Response: GetObjectForIXByIdResponse
The response of GetObjectForIXById: the index data of the latest checked-in version, of the
checked-out version, or of both. An object that does not exist fails the call with "Not found."
instead.
> 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 |
|---|---|---|
| `latest_checked_in` | [`ObjectDataForIX`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectDataForIX/index.md) | The index data of the latest checked-in version. Unset if the object has no checked-in version. |
| `latest_checked_in.primary_obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The primary identity of the object. Also valid when the object has been destroyed. |
| `latest_checked_in.primary_obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `latest_checked_in.primary_obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `latest_checked_in.is_destroyed` | `bool` | True if the object has been destroyed and is no longer available. If true then only the objidPrimary and oim members are valid. |
| `latest_checked_in.is_skipped` | `bool` | True if the object has been skipped and cannot be indexed. If true then only the objidPrimary and oim members are valid. |
| `latest_checked_in.object_version` | [`ObjectVersionExWP`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionExWP/index.md) | Contains the basic object version information, always latest checked-in version. |
| `latest_checked_in.object_version.object_version` | [`ObjectVersionEx`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionEx/index.md) | Object info. |
| `latest_checked_in.object_version.properties[]` | repeated [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | Property values, or an empty array. |
| `latest_checked_in.object_version.acl` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | If set, ACL. |
| `latest_checked_in.object_version.current_user_permissions` | [`ObjectPermissionsForClient`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectPermissionsForClient/index.md) | If set, permissions of the object version. |
| `latest_checked_in.version_comment` | [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | The version comment history of the object excluding checkedout version. |
| `latest_checked_in.version_comment.property_def` | `int32` | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
| `latest_checked_in.version_comment.value` | [`TypedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.TypedValue/index.md) | The value. Its `type` must match the data type of the property definition. |
| `latest_checked_in.updated_files[]` | repeated [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | Identifies the files that have been updated. |
| `latest_checked_in.updated_files[].type` | [`FileIDType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileIDType/index.md) | `FILE_IDTYPE_SPECIFIC` for one file. Values: `FILE_IDTYPE_UNINITIALIZED` (0), `FILE_IDTYPE_ALL` (1), `FILE_IDTYPE_ANY` (2), `FILE_IDTYPE_SPECIFIC` (3). |
| `latest_checked_in.updated_files[].internal_id` | `int32` | The file ID. |
| `latest_checked_in.updated_files[].external_repository_id` | `string` | Used only for files in external repositories. Leave empty. |
| `latest_checked_in.alias_obj_ids[]` | repeated [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Additional ID aliases for the object such as the external object ID, if any, in some other system/repository/vault. |
| `latest_checked_in.alias_obj_ids[].type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `latest_checked_in.alias_obj_ids[].item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `latest_checked_in.index_metadata` | [`ObjectIndexMetadata`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectIndexMetadata/index.md) | Metadata information for storing the object in the index. |
| `latest_checked_in.index_metadata.relative_relevance_score` | `float` | Relevance score of the object. |
| `latest_checked_in.index_metadata.last_modified_for_indexing_utc` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The last modified timestamp for indexing. |
| `latest_checked_in.index_metadata.version_for_ix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Logical timestamp for indexing. |
| `latest_checked_in.repository_path` | [`FolderArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FolderArray/index.md) | If not null contains the array of folders describing the repository path to the object version location. |
| `latest_checked_in.repository_path.value[]` | repeated [`Folder`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Folder/index.md) | Array of Folder structures. |
| `latest_checked_in.all_editors_history` | [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | Aggregated DISTINCT user IDs (VALUELIST_USERS) from PROPERTYDEF_LASTMODIFIEDBY and PROPERTYDEF_VERSION_EDITORS across every checked-in version, represented as MSLOOKUP from VALUELIST_USERS. Empty when the feature flag is off or for external-repository objects. |
| `latest_checked_in.all_editors_history.property_def` | `int32` | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
| `latest_checked_in.all_editors_history.value` | [`TypedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.TypedValue/index.md) | The value. Its `type` must match the data type of the property definition. |
| `latest_checked_in.acl_for_indexing` | [`SimpleACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACL/index.md) | Pre-resolved read-permission projection of this object version's ACL: one entry per component (index 0 is the custom component, the rest are automatic components in stable order), each reduced to concrete allowed/denied actor IDs with additive components merged in, deleted components removed, and pseudo-users resolved. unset if not supplied by this server; set with zero entries if supplied and the ACL resolved to no components. On the checked-out version, the checked-out-to user has already been injected into every component's allowed array; the latest-checked-in version's projection never carries that injection. |
| `latest_checked_in.acl_for_indexing.value[]` | repeated [`SimpleACLComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACLComponent/index.md) | Components. |
| `checked_out` | [`ObjectDataForIX`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectDataForIX/index.md) | The index data of the checked-out version. Unset unless `include_checked_out` is true and the object is checked out. |
| `checked_out.primary_obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The primary identity of the object. Also valid when the object has been destroyed. |
| `checked_out.primary_obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `checked_out.primary_obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `checked_out.is_destroyed` | `bool` | True if the object has been destroyed and is no longer available. If true then only the objidPrimary and oim members are valid. |
| `checked_out.is_skipped` | `bool` | True if the object has been skipped and cannot be indexed. If true then only the objidPrimary and oim members are valid. |
| `checked_out.object_version` | [`ObjectVersionExWP`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionExWP/index.md) | Contains the basic object version information, always latest checked-in version. |
| `checked_out.object_version.object_version` | [`ObjectVersionEx`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectVersionEx/index.md) | Object info. |
| `checked_out.object_version.properties[]` | repeated [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | Property values, or an empty array. |
| `checked_out.object_version.acl` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | If set, ACL. |
| `checked_out.object_version.current_user_permissions` | [`ObjectPermissionsForClient`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectPermissionsForClient/index.md) | If set, permissions of the object version. |
| `checked_out.version_comment` | [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | The version comment history of the object excluding checkedout version. |
| `checked_out.version_comment.property_def` | `int32` | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
| `checked_out.version_comment.value` | [`TypedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.TypedValue/index.md) | The value. Its `type` must match the data type of the property definition. |
| `checked_out.updated_files[]` | repeated [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | Identifies the files that have been updated. |
| `checked_out.updated_files[].type` | [`FileIDType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileIDType/index.md) | `FILE_IDTYPE_SPECIFIC` for one file. Values: `FILE_IDTYPE_UNINITIALIZED` (0), `FILE_IDTYPE_ALL` (1), `FILE_IDTYPE_ANY` (2), `FILE_IDTYPE_SPECIFIC` (3). |
| `checked_out.updated_files[].internal_id` | `int32` | The file ID. |
| `checked_out.updated_files[].external_repository_id` | `string` | Used only for files in external repositories. Leave empty. |
| `checked_out.alias_obj_ids[]` | repeated [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Additional ID aliases for the object such as the external object ID, if any, in some other system/repository/vault. |
| `checked_out.alias_obj_ids[].type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `checked_out.alias_obj_ids[].item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `checked_out.index_metadata` | [`ObjectIndexMetadata`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectIndexMetadata/index.md) | Metadata information for storing the object in the index. |
| `checked_out.index_metadata.relative_relevance_score` | `float` | Relevance score of the object. |
| `checked_out.index_metadata.last_modified_for_indexing_utc` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The last modified timestamp for indexing. |
| `checked_out.index_metadata.version_for_ix` | [`LogicalTimestamp`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.LogicalTimestamp/index.md) | Logical timestamp for indexing. |
| `checked_out.repository_path` | [`FolderArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FolderArray/index.md) | If not null contains the array of folders describing the repository path to the object version location. |
| `checked_out.repository_path.value[]` | repeated [`Folder`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Folder/index.md) | Array of Folder structures. |
| `checked_out.all_editors_history` | [`PropertyValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PropertyValue/index.md) | Aggregated DISTINCT user IDs (VALUELIST_USERS) from PROPERTYDEF_LASTMODIFIEDBY and PROPERTYDEF_VERSION_EDITORS across every checked-in version, represented as MSLOOKUP from VALUELIST_USERS. Empty when the feature flag is off or for external-repository objects. |
| `checked_out.all_editors_history.property_def` | `int32` | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
| `checked_out.all_editors_history.value` | [`TypedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.TypedValue/index.md) | The value. Its `type` must match the data type of the property definition. |
| `checked_out.acl_for_indexing` | [`SimpleACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACL/index.md) | Pre-resolved read-permission projection of this object version's ACL: one entry per component (index 0 is the custom component, the rest are automatic components in stable order), each reduced to concrete allowed/denied actor IDs with additive components merged in, deleted components removed, and pseudo-users resolved. unset if not supplied by this server; set with zero entries if supplied and the ACL resolved to no components. On the checked-out version, the checked-out-to user has already been injected into every component's allowed array; the latest-checked-in version's projection never carries that injection. |
| `checked_out.acl_for_indexing.value[]` | repeated [`SimpleACLComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACLComponent/index.md) | Components. |
## Related methods
- [IRPCIndexingDataSource.GetNextObjectsForIX](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource/GetNextObjectsForIX/index.md): Gets next objects and their data for indexing.
---
# IRPCIndexingDataSource2.GetTextContentForFileForIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetTextContentForFileForIX/
Badges: `Server integration API / specialized` `internal: not for applications` `read` `session` `idempotent`
Gets the text that the server extracts from a file version for indexing, in the response.
The text is the same that the search index receives: it is produced with the vault's full-text
extraction settings even when viewer files are disabled for users, and it is cached on the server
for later use.
- **Service:** [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md) `MFiles.IRPCIndexingDataSource2`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource2/GetTextContentForFileForIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-text-content-for-file-for-ix`
- **Request:** [`GetTextContentForFileForIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetTextContentForFileForIX/index.md#request)
- **Response:** [`GetTextContentForFileForIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetTextContentForFileForIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** read
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files' cloud search indexing services call it. Applications
should not call it.
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
- May create and cache the text extract of the file on the server.
- A file with no extractable text returns an empty `text_content`. A file whose extraction failed
returns `text_unavailable` true. External (unmanaged) files fail with "Not implemented.".
## Request: GetTextContentForFileForIXRequest
> 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 |
|---|---|---|
| `obj_file_ver` | [`ObjFileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjFileVer/index.md) | The object and file version. |
| `obj_file_ver.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object that owns the file. |
| `obj_file_ver.obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `obj_file_ver.obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `obj_file_ver.file_ver` | [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | The specific file version, as in `File.file_ver`. |
| `obj_file_ver.file_ver.file_id` | [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The file. |
| `obj_file_ver.file_ver.type` | [`FileVerType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileVerType/index.md) | `FILE_VER_TYPE_SPECIFIC` for a file version number. Values: `FILE_VER_TYPE_UNINITIALIZED` (0), `FILE_VER_TYPE_LATEST` (1), `FILE_VER_TYPE_ANY` (2), `FILE_VER_TYPE_SPECIFIC` (3). |
| `obj_file_ver.file_ver.internal_version` | `int32` | The file version number. |
| `obj_file_ver.file_ver.external_repository_version` | `string` | Used only for files in external repositories. Leave empty. |
| `obj_file_ver.file_ver.external_repository_sort_key` | `int64` | Used only for files in external repositories. Leave 0. |
| `file_format` | [`FileFormat`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileFormat/index.md) | `FILE_FORMAT_PLAIN_TEXT` or `FILE_FORMAT_MARKDOWN`; unset (`FILE_FORMAT_NATIVE`) means plain text. A Markdown request falls back to plain text when the server cannot produce Markdown. Values: `FILE_FORMAT_NATIVE` (0), `FILE_FORMAT_PDF` (1), `FILE_FORMAT_DISPLAY_ONLY_PDF` (2), `FILE_FORMAT_PLAIN_TEXT` (3), `FILE_FORMAT_MARKDOWN` (4). |
## Response: GetTextContentForFileForIXResponse
The response of GetTextContentForFileForIX: the extracted text in the response body and the
format actually produced.
> 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 |
|---|---|---|
| `text_content` | `string` | The extracted text (UTF-8). Empty when the file has no extractable text. |
| `file_format` | [`FileFormat`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileFormat/index.md) | The format actually produced. Values: `FILE_FORMAT_NATIVE` (0), `FILE_FORMAT_PDF` (1), `FILE_FORMAT_DISPLAY_ONLY_PDF` (2), `FILE_FORMAT_PLAIN_TEXT` (3), `FILE_FORMAT_MARKDOWN` (4). |
| `text_unavailable` | `bool` | True when no text could be produced for a non-empty file; `text_content` is then empty and says nothing about the file. |
---
# IRPCIndexingDataSource2.GetValueListItemsForIX
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetValueListItemsForIX/
Badges: `Server integration API / specialized` `internal: not for applications` `read` `session` `idempotent`
Gets the items of one value list for a search index: all items page by page, or the changes since
a known version.
Unlike [GetValueListItemsWithPermissions](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCValueLists/GetValueListItemsWithPermissions/index.md),
it does not refresh items from an external database, does not replace "(current user)"
placeholders with the caller's identity, can return each item's permissions as stored, and pages
through long lists with `after_item_id`.
- **Service:** [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md) `MFiles.IRPCIndexingDataSource2`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource2/GetValueListItemsForIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-value-list-items-for-ix`
- **Request:** [`GetValueListItemsForIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetValueListItemsForIX/index.md#request)
- **Response:** [`GetValueListItemsForIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetValueListItemsForIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** read
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files' cloud search indexing services call it. Applications
should use [GetValueListItemsWithPermissions](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCValueLists/GetValueListItemsWithPermissions/index.md).
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
- Read-only. With `results_limit` 0 the server applied a limit of 5000.
- Paging: pass `after_item_id` -1 on the first call, then the highest item ID of the previous
page, until `has_more_results` is false.
## Request: GetValueListItemsForIXRequest
> 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 |
|---|---|---|
| `value_list` | `int32` | The ID of the value list to fetch. |
| `known_version` | `int64` | The version of the list that the caller has. 0 returns the full list (first page). |
| `allow_delta` | `bool` | True if the caller can process a delta response. |
| `include_permissions` | `bool` | True to return `item_acls` and `item_acls_for_indexing`. |
| `include_deleted_items` | `bool` | True to include deleted items, so that the index can mark them deleted. |
| `after_item_id` | `int32` | Paging cursor of the full list: -1 on the first call, then the highest item ID of the previous page. |
| `results_limit` | `uint32` | The maximum number of items. 0 means the server default. |
## Response: GetValueListItemsForIXResponse
> 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` | `int64` | The current version of the list. If it equals `known_version`, no items are returned. |
| `is_delta` | `bool` | True if the response is a delta. False if it is a full-list page (or the unchanged-since-caller no-op case). |
| `has_more_results` | `bool` | True if more items follow; call again with `after_item_id`. |
| `results_limit` | `uint32` | The actual results limit the server applied. |
| `removed_items[]` | repeated `int32` | Removed item IDs (delta mode only). Empty otherwise. |
| `items[]` | repeated [`ValueListItem`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ValueListItem/index.md) | The changed items (delta) or one page of the full list. Deleted items have the deleted flag set. |
| `items[].item_info` | [`ItemInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemInfo/index.md) | The item's identity and name: `obj_id.type` is the value list ID, `obj_id.item_id.internal_id` the item ID (unique within the list only), plus `name`, `guid`, `external_id` and flags. `options.is_deleted` marks a deleted item. |
| `items[].item_info.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object id or value list item id. Includes the object type or value list id. |
| `items[].item_info.name` | `string` | The name of the item. |
| `items[].item_info.external_id_status` | [`ExtIDStatus`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ExtIDStatus/index.md) | The status of this item's external ID. Values: `EXT_IDSTATUS_UNKNOWN` (0), `EXT_IDSTATUS_EXTERNAL` (1), `EXT_IDSTATUS_INTERNAL` (2), `EXT_IDSTATUS_DISCARDED` (3), `EXT_IDSTATUS_NOT_AVAILABLE` (4), `EXT_IDSTATUS_EXTERNAL_REDUCED` (5). |
| `items[].item_info.external_id` | `string` | The external ID (display ID) of this item. unset means that the external ID is the same as the internal ID. |
| `items[].item_info.guid` | `string` | GUID for the item. |
| `items[].item_info.options` | [`ITEMFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ITEMFLAGS/index.md) | Bit flags that provide additional information on the item (e.g. is the object deleted). |
| `items[].item_info.external_repository_icon_id` | `string` | The ID of the item's icon. |
| `items[].has_parent` | `bool` | True if the item has a parent item in the same (hierarchical) list. |
| `items[].has_owner` | `bool` | True if the item belongs to an item of the owner list (`ValueList.owner_object_type`). |
| `items[].parent_id` | `int32` | With `has_parent`, the item ID of the parent item; otherwise ignored. |
| `items[].owner_id` | `int32` | With `has_owner`, the item ID of the owner item in the owner list. |
| `items[].owner_name` | `string` | The name of the owner item. |
| `items[].automatic_permissions` | [`AutomaticPermissions`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AutomaticPermissions/index.md) | If set, specifies the automatic permissions for an object for which the user selects this item. |
| `items[].automatic_permissions.permissions` | [`NamedACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedACL/index.md) | The automatic permissions for an object for which the user selects this item. |
| `items[].automatic_permissions.is_default` | `bool` | True if these automatic permissions are not private i.e. they are not directly specified for (owned by) this item but they come from somewhere else, e.g. from the default/common automatic permissions of the object type. |
| `items[].automatic_permissions.use_object_permissions` | `bool` | If true the object/item's own permissions are used as its automatic permissions. |
| `items[].icon` | [`Bytes`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Bytes/index.md) | If set, contains the icon of this item in .ICO format. |
| `items[].icon.value` | `bytes` | Array of bytes. |
| `item_acls[]` | repeated [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | The permissions of each item as stored, in the order of `items`. Empty if `include_permissions` was false. |
| `item_acls[].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. |
| `item_acls[].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. |
| `item_acls[].custom_component` | [`AccessControlListComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponent/index.md) | Accesses the custom component of this ACL. |
| `item_acls[].custom_component.named_acl_id` | `int32` | Specifies the named ACL link of this component. |
| `item_acls[].custom_component.has_named_acl` | `bool` | True if the component links to a named ACL (`named_acl_id`). |
| `item_acls[].custom_component.current_user_id` | `int32` | Specifies the current user binding of this component. |
| `item_acls[].custom_component.has_current_user` | `bool` | True if the component has an access control entry for the current user. |
| `item_acls[].custom_component.permissions[]` | repeated [`AccessControlEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlEntry/index.md) | The access control entry datas. The data belongs to the key in the corresponding index. |
| `item_acls[].custom_component.overridability_permissions[]` | repeated [`AccessControlEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlEntry/index.md) | Overridability permission data of this ACL component. |
| `item_acls[].custom_component.status` | [`ACCESSCONTROLLISTCOMPONENTSTATUSFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ACCESSCONTROLLISTCOMPONENTSTATUSFLAGS/index.md) | Modification status of this component. |
| `item_acls[].restrictive_components[]` | repeated [`AccessControlListComponentMapEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentMapEntry/index.md) | Accesses the restrictive automatic components of this ACL. |
| `item_acls[].restrictive_components[].key` | [`AccessControlListComponentKey`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentKey/index.md) | Access control list component. |
| `item_acls[].restrictive_components[].component` | [`AccessControlListComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponent/index.md) | Access control list component. |
| `item_acls[].secondary_access_control_list` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) (recursive) | Secondary ACL used for latest version ACL. Not used for access check if null. |
| `item_acls[].additive_components[]` | repeated [`AccessControlListComponentMapEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentMapEntry/index.md) | Accesses the additive automatic components of this ACL. |
| `item_acls[].additive_components[].key` | [`AccessControlListComponentKey`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentKey/index.md) | Access control list component. |
| `item_acls[].additive_components[].component` | [`AccessControlListComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponent/index.md) | Access control list component. |
| `item_acls_for_indexing[]` | repeated [`SimpleACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACL/index.md) | The read permissions of each item, resolved for the index, in the order of `items`. Empty if `include_permissions` was false or the server does not supply them. |
| `item_acls_for_indexing[].value[]` | repeated [`SimpleACLComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACLComponent/index.md) | Components. |
| `item_acls_for_indexing[].value[].allowed[]` | repeated `int32` | Users (positive IDs) and user groups (negative IDs) allowed read access by this component. |
| `item_acls_for_indexing[].value[].denied[]` | repeated `int32` | Users (positive IDs) and user groups (negative IDs) denied read access by this component. |
## Related methods
- [IRPCValueLists.GetValueListItemsWithPermissions](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCValueLists/GetValueListItemsWithPermissions/index.md): Gets the items of one value list or object type, or only the changes since a known version.
---
# Monitoring data points (IRPCMonitoringDatapointsSink)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/
Receives the progress and status data points that the M-Files indexing service reports about
each index of the vault.
This interface provides access for providing datapoints for the monitoring purposes.
- **gRPC service:** `MFiles.IRPCMonitoringDatapointsSink`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 4
- **Proto file:** [`mfiles/IRPCMonitoringDatapointsSink.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCMonitoringDatapointsSink.proto)
## Overview
**For M-Files components only.** The M-Files indexing service (the indexer process that M-Files
Server runs for the vault's search indexes) pushes data points here while it indexes.
Applications should not call it.
- **Caller and authentication:** the indexer logs in to the vault with Windows authentication as
an internal process of M-Files Server, under the server's own service account, and so has the
system administrator server role.
- **Rights:** every method requires a vault session whose login has the system administrator
server role (server right `log_in_to_any_vault`) and the vault rights
`change_metadata_structure`, `see_all_objects` and `license_allows_modifications`. A vault
administrator without the server role is denied.
- **Data:** the server stores the data points in the vault per index (`source`) and uses them for
the indexing indicators that
[GetIndicators](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringStatus/GetIndicators/index.md) reports.
Read indexing status through [IRPCMonitoringStatus](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringStatus/index.md).
- **Order of calls:** [PushDatapointsForIndexingCommon](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingCommon/index.md)
for index-level data, then for each indexing batch
[PushDatapointsForIndexingBegin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingBegin/index.md)
and [PushDatapointsForIndexingEnd](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd/index.md).
[ClearDatapointsForIndexing](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/ClearDatapointsForIndexing/index.md)
removes the stored data points of an index.
## Methods
| Method | Summary | Facts |
|---|---|---|
| [ClearDatapointsForIndexing](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/ClearDatapointsForIndexing/index.md) | Deletes the stored indexing data points of one index. | `internal: not for applications` `write` `session` |
| [PushDatapointsForIndexingBegin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingBegin/index.md) | Stores the data points of the start of an indexing batch: the indexing mode, the start position and the number of items to process. | `internal: not for applications` `write` `session` |
| [PushDatapointsForIndexingCommon](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingCommon/index.md) | Stores index-level data points of one index: data format capabilities, index size and the times of the last rebuild. | `internal: not for applications` `write` `session` |
| [PushDatapointsForIndexingEnd](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd/index.md) | Stores the data points of the end of an indexing batch: timing, item counts and failures. | `internal: not for applications` `write` `session` |
---
# IRPCMonitoringDatapointsSink.ClearDatapointsForIndexing
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/ClearDatapointsForIndexing/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Deletes the stored indexing data points of one index.
- **Service:** [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md) `MFiles.IRPCMonitoringDatapointsSink`
- **gRPC method:** `/MFiles.IRPCMonitoringDatapointsSink/ClearDatapointsForIndexing`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/clear-datapoints-for-indexing`
- **Request:** [`ClearDatapointsForIndexingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/ClearDatapointsForIndexing/index.md#request)
- **Response:** [`ClearDatapointsForIndexingResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/ClearDatapointsForIndexing/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files indexing service calls it. Applications should not
call it.
- Deletes the stored data points of the index.
- Requires the system administrator server role (server right `log_in_to_any_vault`) and the
vault rights `change_metadata_structure`, `see_all_objects` and `license_allows_modifications`.
## Request: ClearDatapointsForIndexingRequest
> 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 |
|---|---|---|
| `source` | [`MonitoringSourceForIndexing`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MonitoringSourceForIndexing/index.md) | The monitoring data source. |
| `source.index` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index associated with the monitoring data. |
| `source.index.configuration_name` | `string` | The name of the index configuration. |
| `source.index.repository_connection` | `string` | Identifies the external repository connection. |
| `source.index.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `source.auxiliary_indexer_id` | `string` | If set, identifies auxiliary indexer associated with the monitoring data. |
| `source.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies the partition associated with the monitoring data. |
| `source.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `source.partition.id` | `uint32` | Zero-based identifier of the partition. |
## Response: ClearDatapointsForIndexingResponse
No fields.
---
# IRPCMonitoringDatapointsSink.PushDatapointsForIndexingBegin
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingBegin/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Stores the data points of the start of an indexing batch: the indexing mode, the start position
and the number of items to process.
- **Service:** [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md) `MFiles.IRPCMonitoringDatapointsSink`
- **gRPC method:** `/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingBegin`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/push-datapoints-for-indexing-begin`
- **Request:** [`PushDatapointsForIndexingBeginRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingBegin/index.md#request)
- **Response:** [`PushDatapointsForIndexingBeginResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingBegin/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files indexing service calls it. Applications should not
call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`) and the
vault rights `change_metadata_structure`, `see_all_objects` and `license_allows_modifications`.
## Request: PushDatapointsForIndexingBeginRequest
> 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 |
|---|---|---|
| `source` | [`MonitoringSourceForIndexing`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MonitoringSourceForIndexing/index.md) | The monitoring data source. |
| `source.index` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index associated with the monitoring data. |
| `source.index.configuration_name` | `string` | The name of the index configuration. |
| `source.index.repository_connection` | `string` | Identifies the external repository connection. |
| `source.index.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `source.auxiliary_indexer_id` | `string` | If set, identifies auxiliary indexer associated with the monitoring data. |
| `source.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies the partition associated with the monitoring data. |
| `source.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `source.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `datapoints` | [`MonitoringDatapointsForIndexingBegin`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MonitoringDatapointsForIndexingBegin/index.md) | The monitoring datapoints. |
| `datapoints.batch_mode` | [`IndexingMode`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexingMode/index.md) | If not eimUnknown, identifies the current indexing mode. Values: `INDEXING_MODE_UNKNOWN` (0), `INDEXING_MODE_IDLE` (1), `INDEXING_MODE_NORMAL` (2), `INDEXING_MODE_DESTRUCTIONS` (3), `INDEXING_MODE_REBUILD_NORMAL` (4), `INDEXING_MODE_REBUILD_DESTRUCTIONS` (5), `INDEXING_MODE_RELEVANCE` (6), `INDEXING_MODE_ACL` (7). |
| `datapoints.start_position` | [`StringValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.StringValue/index.md) | If set, identifies the starting logical timestamp string. unset indicates "not applicable". |
| `datapoints.start_position.value` | `string` | String. |
| `datapoints.items_to_process_at` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the time (in UTC) of the counter of the items to process. |
| `datapoints.items_to_process_total` | `int32` | If not -1, specifies the total number of the items to be processed (partitioning ignored). |
| `datapoints.items_to_process` | `int32` | If not -1, specifies the possibly approximated number of the items to be processed partition-wise. |
## Response: PushDatapointsForIndexingBeginResponse
No fields.
---
# IRPCMonitoringDatapointsSink.PushDatapointsForIndexingCommon
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingCommon/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Stores index-level data points of one index: data format capabilities, index size and the times
of the last rebuild.
- **Service:** [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md) `MFiles.IRPCMonitoringDatapointsSink`
- **gRPC method:** `/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingCommon`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/push-datapoints-for-indexing-common`
- **Request:** [`PushDatapointsForIndexingCommonRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingCommon/index.md#request)
- **Response:** [`PushDatapointsForIndexingCommonResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingCommon/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files indexing service calls it. Applications should not
call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`) and the
vault rights `change_metadata_structure`, `see_all_objects` and `license_allows_modifications`.
## Request: PushDatapointsForIndexingCommonRequest
> 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 |
|---|---|---|
| `source` | [`MonitoringSourceForIndexing`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MonitoringSourceForIndexing/index.md) | The monitoring data source. |
| `source.index` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index associated with the monitoring data. |
| `source.index.configuration_name` | `string` | The name of the index configuration. |
| `source.index.repository_connection` | `string` | Identifies the external repository connection. |
| `source.index.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `source.auxiliary_indexer_id` | `string` | If set, identifies auxiliary indexer associated with the monitoring data. |
| `source.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies the partition associated with the monitoring data. |
| `source.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `source.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `datapoints` | [`MonitoringDatapointsForIndexingCommon`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MonitoringDatapointsForIndexingCommon/index.md) | The monitoring datapoints. |
| `datapoints.capabilities` | [`StringValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.StringValue/index.md) | If set, specifies the index data format capabilities. unset indicates "not applicable". |
| `datapoints.capabilities.value` | `string` | String. |
| `datapoints.index_size_as_items` | `int32` | If not -1, specifies the index size as item count. |
| `datapoints.index_size_as_megabytes` | `int32` | If not -1, specifies the index size as megabytes. |
| `datapoints.rebuild_started_at` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the start time (in UTC) of the previous rebuild. |
| `datapoints.rebuild_completed_at` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the completion time (in UTC) of the previous rebuild. Set indexingmode to eimRebuild to indicate an ongoing rebuild. |
## Response: PushDatapointsForIndexingCommonResponse
No fields.
---
# IRPCMonitoringDatapointsSink.PushDatapointsForIndexingEnd
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Stores the data points of the end of an indexing batch: timing, item counts and failures.
- **Service:** [Monitoring data points](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/index.md) `MFiles.IRPCMonitoringDatapointsSink`
- **gRPC method:** `/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/push-datapoints-for-indexing-end`
- **Request:** [`PushDatapointsForIndexingEndRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd/index.md#request)
- **Response:** [`PushDatapointsForIndexingEndResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCMonitoringDatapointsSink/PushDatapointsForIndexingEnd/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files indexing service calls it. Applications should not
call it.
- Requires the system administrator server role (server right `log_in_to_any_vault`) and the
vault rights `change_metadata_structure`, `see_all_objects` and `license_allows_modifications`.
## Request: PushDatapointsForIndexingEndRequest
> 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 |
|---|---|---|
| `source` | [`MonitoringSourceForIndexing`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MonitoringSourceForIndexing/index.md) | The monitoring data source. |
| `source.index` | [`IndexName`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexName/index.md) | Identifies the index associated with the monitoring data. |
| `source.index.configuration_name` | `string` | The name of the index configuration. |
| `source.index.repository_connection` | `string` | Identifies the external repository connection. |
| `source.index.configuration_type` | [`IndexConfigurationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexConfigurationType/index.md) | The index configuration type (e.g., Shared versus Legacy). Values: `INDEX_CONFIGURATION_TYPE_UNKNOWN` (0), `INDEX_CONFIGURATION_TYPE_LEGACY` (1), `INDEX_CONFIGURATION_TYPE_SHARED` (2), `INDEX_CONFIGURATION_TYPE_ANY` (3). |
| `source.auxiliary_indexer_id` | `string` | If set, identifies auxiliary indexer associated with the monitoring data. |
| `source.partition` | [`IndexerPartition`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartition/index.md) | If set, specifies the partition associated with the monitoring data. |
| `source.partition.rule` | [`IndexerPartitioningRule`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.IndexerPartitioningRule/index.md) | Specifies how the indexing is partitioned. |
| `source.partition.id` | `uint32` | Zero-based identifier of the partition. |
| `datapoints` | [`MonitoringDatapointsForIndexingEnd`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MonitoringDatapointsForIndexingEnd/index.md) | The monitoring datapoints. |
| `datapoints.batch_mode` | [`IndexingMode`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.IndexingMode/index.md) | If not eimUnknown, identifies the current indexing mode. Values: `INDEXING_MODE_UNKNOWN` (0), `INDEXING_MODE_IDLE` (1), `INDEXING_MODE_NORMAL` (2), `INDEXING_MODE_DESTRUCTIONS` (3), `INDEXING_MODE_REBUILD_NORMAL` (4), `INDEXING_MODE_REBUILD_DESTRUCTIONS` (5), `INDEXING_MODE_RELEVANCE` (6), `INDEXING_MODE_ACL` (7). |
| `datapoints.batch_number` | `int32` | If not -1, specifies the current batch number (starting from 1). |
| `datapoints.batch_started_at` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the start time (in UTC) of the current indexing request batch. |
| `datapoints.batch_aborted_at` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the abort time (in UTC) of the current indexing request batch. |
| `datapoints.batch_committed_at` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the commit time (in UTC) of the current indexing request batch. |
| `datapoints.batch_duration_as_seconds` | `double` | If not 0.0, specifies the successful indexing request batch duration as seconds. |
| `datapoints.batch_processed_items` | `int32` | If not -1, specifies the number of the items processed during the latest batch. |
| `datapoints.batch_processed_items_fi_fo` | `int32` | If not -1, specifies the number of the items processed in FiFo order during the latest batch. |
| `datapoints.batch_processed_items_li_fo` | `int32` | If not -1, specifies the number of the items processed in LiFo order during the latest batch. |
| `datapoints.batch_processed_subitems` | `int32` | If not -1, specifies the number of the subitems processed during the latest batch. |
| `datapoints.batch_failed_items` | `int32` | If not -1, specifies the number of the items failed during the latest batch. |
| `datapoints.batch_partial_items_with_failed_subitems` | `int32` | If not -1, specifies the number of the items with failed subitems during the latest batch. |
| `datapoints.batch_failed_subitems` | `int32` | If not -1, specifies the number of the subitems failed during the latest batch. |
| `datapoints.batch_excluded_items` | `int32` | If not -1, specifies the number of the items excluded during the latest batch. |
| `datapoints.batch_partial_items_with_excluded_subitems` | `int32` | If not -1, specifies the number of the items with excluded subitems during the latest batch. |
| `datapoints.batch_excluded_subitems` | `int32` | If not -1, specifies the number of the subitems excluded during the latest batch. |
| `datapoints.batch_latest_object_changed` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the latest ObjectChanged time (in UTC) of the current indexing request batch. |
| `datapoints.batch_earliest_object_changed` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | If not a zero timestamp, identifies the earliest ObjectChanged time (in UTC) of the current indexing request batch. |
## Response: PushDatapointsForIndexingEndResponse
No fields.
---
# Application task queue (IRPCApplicationTaskQueue)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/
Persistent task queues and broadcast messages that vault applications use to share background
work between the server instances of a vault.
This interface provides access to vault specific task queue for adding and managing the tasks.
- **gRPC service:** `MFiles.IRPCApplicationTaskQueue`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 12
- **Proto file:** [`mfiles/IRPCApplicationTaskQueue.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCApplicationTaskQueue.proto)
## Overview
This is the server side of the task queue API that vault applications use through the M-Files
API (`Vault.ApplicationTaskOperations`). A vault application opens named queues, adds tasks
with an opaque payload, and its instances on every server of the vault reserve, process and
update them. Queues also carry broadcast messages that every consumer reads.
**Who should call it.** Vault applications, through the M-Files API. An external application
normally should not: the queues belong to the vault applications that open them, and reserving
or updating their tasks takes work away from those applications. Use it only for queues that
your own code owns, or read-only for diagnostics
([GetTaskQueues](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskQueues/index.md),
[GetTaskIdentifiersFromQueue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskIdentifiersFromQueue/index.md),
[GetApplicationTasks](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetApplicationTasks/index.md)).
**Rights.** Every method needs a vault session of a user with an account in the vault and the
vault right `change_full_control_role`, which only users with full control of the vault have; a
normal user gets "Access denied.". The vault's internal queues, such as
`m-files.server.core.broadcast`, are refused with "Access denied." by the methods that open,
add to, reserve from, broadcast to or destroy a queue, but they are listed by
[GetTaskQueues](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskQueues/index.md).
**Task life cycle** ([ApplicationTaskState](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ApplicationTaskState/index.md)):
1. [OpenTaskQueue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/OpenTaskQueue/index.md) creates the queue if
it does not exist. Call it before adding or reserving.
2. [AddTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddTask/index.md) or
[AddScheduledTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddScheduledTask/index.md) adds a task in
state `APPLICATION_TASK_STATE_WAITING`.
3. [ReserveTasksForProcessing](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ReserveTasksForProcessing/index.md)
moves a waiting task to `APPLICATION_TASK_STATE_IN_PROGRESS` and returns it to one caller.
4. [UpdateTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/UpdateTask/index.md) reports progress and finally
sets `COMPLETED`, `FAILED` or `CANCELED`. An in-progress task that is not updated within its
restore timeout goes back to waiting and can be reserved again.
The server cleans up by itself: completed tasks are deleted; failed and cancelled tasks and
broadcast messages after a day; and queues that have not been used for seven days, together with
their tasks.
## Methods
| Method | Summary | Facts |
|---|---|---|
| [AddScheduledTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddScheduledTask/index.md) | Adds a task to a task queue that becomes available for processing at a given time. | `write` `session` |
| [AddTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddTask/index.md) | Adds a task to a task queue, ready to be reserved at once. | `write` `session` |
| [ClearAndDestroyTaskQueue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ClearAndDestroyTaskQueue/index.md) | Deletes a task queue and all of its tasks. | `write` `session` |
| [GetApplicationTasks](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetApplicationTasks/index.md) | Gets tasks by ID without reserving them. | `write` `session` |
| [GetLatestBroadcastMessageIdentifiers](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetLatestBroadcastMessageIdentifiers/index.md) | Gets the ID of the newest broadcast message of each given queue. | `write` `session` |
| [GetNewBroadcastMessages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetNewBroadcastMessages/index.md) | Gets the broadcast messages of a queue that are newer than the given message ID. | `write` `session` |
| [GetTaskIdentifiersFromQueue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskIdentifiersFromQueue/index.md) | Gets the IDs of the tasks of a queue that are in the given states. | `write` `session` |
| [GetTaskQueues](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskQueues/index.md) | Gets the IDs of all task queues of the vault. | `write` `session` |
| [OpenTaskQueue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/OpenTaskQueue/index.md) | Creates a task queue if it does not exist, or confirms an existing one. | `write` `session` |
| [ReserveTasksForProcessing](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ReserveTasksForProcessing/index.md) | Reserves the next waiting task from each of the given queues for the caller to process. | `write` `session` |
| [SendBroadcastMessage](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/SendBroadcastMessage/index.md) | Sends a broadcast message through a task queue to every consumer of that queue. | `write` `session` |
| [UpdateTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/UpdateTask/index.md) | Reports the progress or the final state of a task. | `write` `session` |
---
# IRPCApplicationTaskQueue.AddScheduledTask
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddScheduledTask/
Badges: `Server integration API / specialized` `write` `session`
Adds a task to a task queue that becomes available for processing at a given time.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/AddScheduledTask`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/add-scheduled-task`
- **Request:** [`AddScheduledTaskRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddScheduledTask/index.md#request)
- **Response:** [`AddScheduledTaskResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddScheduledTask/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- Same as [AddTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddTask/index.md), except that
[ReserveTasksForProcessing](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ReserveTasksForProcessing/index.md)
does not return the task before `activation_timestamp`.
- Requires a vault session and the vault right `change_full_control_role`.
## Request: AddScheduledTaskRequest
> 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 |
|---|---|---|
| `queue_id` | `string` | The ID of the queue. |
| `restore_to_waiting_timeout_in_minutes` | `int32` | As in [AddTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddTask/index.md); 0 or less means 5 minutes. |
| `task_type` | `string` | A free-form type name that tells the processor how to read `task_data`. |
| `task_data` | `bytes` | The payload of the task. |
| `activation_timestamp` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The earliest time (UTC) at which the task can be reserved. |
## Response: AddScheduledTaskResponse
> 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 |
|---|---|---|
| `task_id` | `string` | The ID of the new task, a decimal number as a string. |
## Related methods
- [AddTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddTask/index.md): Adds a task to a task queue, ready to be reserved at once.
- [ReserveTasksForProcessing](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ReserveTasksForProcessing/index.md): Reserves the next waiting task from each of the given queues for the caller to process.
---
# IRPCApplicationTaskQueue.AddTask
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddTask/
Badges: `Server integration API / specialized` `write` `session`
Adds a task to a task queue, ready to be reserved at once.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/AddTask`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/add-task`
- **Request:** [`AddTaskRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddTask/index.md#request)
- **Response:** [`AddTaskResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddTask/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- The queue must have been opened with
[OpenTaskQueue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/OpenTaskQueue/index.md); otherwise the call fails
with "The task queue is not open.".
- Requires a vault session and the vault right `change_full_control_role`.
## Request: AddTaskRequest
> 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 |
|---|---|---|
| `queue_id` | `string` | The ID of the queue. |
| `restore_to_waiting_timeout_in_minutes` | `int32` | How long the task may stay in progress without an [UpdateTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/UpdateTask/index.md) call before it goes back to waiting. 0 or less means 5 minutes. |
| `task_type` | `string` | A free-form type name that tells the processor how to read `task_data`. |
| `task_data` | `bytes` | The payload of the task. |
## Response: AddTaskResponse
> 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 |
|---|---|---|
| `task_id` | `string` | The ID of the new task, a decimal number as a string. |
## Related methods
- [OpenTaskQueue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/OpenTaskQueue/index.md): Creates a task queue if it does not exist, or confirms an existing one.
---
# IRPCApplicationTaskQueue.ClearAndDestroyTaskQueue
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ClearAndDestroyTaskQueue/
Badges: `Server integration API / specialized` `write` `session`
Deletes a task queue and all of its tasks.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/ClearAndDestroyTaskQueue`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/clear-and-destroy-task-queue`
- **Request:** [`ClearAndDestroyTaskQueueRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ClearAndDestroyTaskQueue/index.md#request)
- **Response:** [`ClearAndDestroyTaskQueueResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ClearAndDestroyTaskQueue/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- **Destructive.** Deletes the queue and its tasks, whatever their state; meant for development
and testing. Vault applications that still use the queue lose their work.
- Requires a vault session and the vault right `change_full_control_role`. Internal queue IDs
are refused with "Access denied.".
## Request: ClearAndDestroyTaskQueueRequest
> 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 |
|---|---|---|
| `queue_id` | `string` | The ID of the queue to delete. |
## Response: ClearAndDestroyTaskQueueResponse
No fields.
---
# IRPCApplicationTaskQueue.GetApplicationTasks
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetApplicationTasks/
Badges: `Server integration API / specialized` `write` `session`
Gets tasks by ID without reserving them.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/GetApplicationTasks`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-application-tasks`
- **Request:** [`GetApplicationTasksRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetApplicationTasks/index.md#request)
- **Response:** [`GetApplicationTasksResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetApplicationTasks/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- For diagnostics: the returned states can change at any time. Tasks that no longer exist are
left out, so the response can be shorter than the request.
- Requires a vault session and the vault right `change_full_control_role`.
## Request: GetApplicationTasksRequest
> 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 |
|---|---|---|
| `task_id_collection[]` | repeated `string` | The IDs of the tasks. |
## Response: GetApplicationTasksResponse
> 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 |
|---|---|---|
| `task_info_collection[]` | repeated [`ApplicationTaskInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ApplicationTaskInfo/index.md) | The tasks that still exist. |
| `task_info_collection[].queue_id` | `string` | ID of the task queue this task belongs to. |
| `task_info_collection[].task_id` | `string` | ID of this task. |
| `task_info_collection[].state` | [`ApplicationTaskState`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ApplicationTaskState/index.md) | Current state of this task. Values: `APPLICATION_TASK_STATE_WAITING` (0), `APPLICATION_TASK_STATE_IN_PROGRESS` (1), `APPLICATION_TASK_STATE_COMPLETED` (2), `APPLICATION_TASK_STATE_FAILED` (3), `APPLICATION_TASK_STATE_CANCELED` (4), `APPLICATION_TASK_STATE_NONE` (5). |
| `task_info_collection[].progress` | `string` | Current task specific progress amount. |
| `task_info_collection[].task_type` | `string` | Defines the task type. |
| `task_info_collection[].task_data` | `bytes` | Any type specific task payload data. |
| `task_info_collection[].activation_timestamp` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The earliest time this task can be reserved for processing. |
| `task_info_collection[].latest_activity_timestamp` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The last modified timestamp. |
---
# IRPCApplicationTaskQueue.GetLatestBroadcastMessageIdentifiers
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetLatestBroadcastMessageIdentifiers/
Badges: `Server integration API / specialized` `write` `session`
Gets the ID of the newest broadcast message of each given queue.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/GetLatestBroadcastMessageIdentifiers`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-latest-broadcast-message-identifiers`
- **Request:** [`GetLatestBroadcastMessageIdentifiersRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetLatestBroadcastMessageIdentifiers/index.md#request)
- **Response:** [`GetLatestBroadcastMessageIdentifiersResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetLatestBroadcastMessageIdentifiers/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- A consumer that starts calls this once and then passes the IDs to
[GetNewBroadcastMessages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetNewBroadcastMessages/index.md) to
receive only messages sent after that point.
- Requires a vault session and the vault right `change_full_control_role`.
## Request: GetLatestBroadcastMessageIdentifiersRequest
> 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 |
|---|---|---|
| `queue_id_collection[]` | repeated `string` | The IDs of the queues. |
## Response: GetLatestBroadcastMessageIdentifiersResponse
> 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 |
|---|---|---|
| `task_id_collection[]` | repeated `string` | The IDs of the newest broadcast messages. |
## Related methods
- [GetNewBroadcastMessages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetNewBroadcastMessages/index.md): Gets the broadcast messages of a queue that are newer than the given message ID.
---
# IRPCApplicationTaskQueue.GetNewBroadcastMessages
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetNewBroadcastMessages/
Badges: `Server integration API / specialized` `write` `session`
Gets the broadcast messages of a queue that are newer than the given message ID.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/GetNewBroadcastMessages`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-new-broadcast-messages`
- **Request:** [`GetNewBroadcastMessagesRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetNewBroadcastMessages/index.md#request)
- **Response:** [`GetNewBroadcastMessagesResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetNewBroadcastMessages/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- Pass the ID of the last message you processed; use `0` to get all messages that still exist.
An unknown queue returns an empty list.
- Requires a vault session and the vault right `change_full_control_role`.
## Request: GetNewBroadcastMessagesRequest
> 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 |
|---|---|---|
| `queue_id` | `string` | The ID of the queue. |
| `latest_broadcast_id` | `string` | The ID of the newest message already processed, as a decimal string. |
## Response: GetNewBroadcastMessagesResponse
> 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 |
|---|---|---|
| `broadcast_messages[]` | repeated [`ApplicationBroadcastMessage`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ApplicationBroadcastMessage/index.md) | The newer messages. |
| `broadcast_messages[].queue_id` | `string` | ID of the task queue where this message belongs to. |
| `broadcast_messages[].broadcast_message_id` | `string` | ID of this broadcast message. |
| `broadcast_messages[].broadcast_type` | `string` | Defines the type of this message. |
| `broadcast_messages[].broadcast_data` | `bytes` | Any type specific message payload data. |
---
# IRPCApplicationTaskQueue.GetTaskIdentifiersFromQueue
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskIdentifiersFromQueue/
Badges: `Server integration API / specialized` `write` `session`
Gets the IDs of the tasks of a queue that are in the given states.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/GetTaskIdentifiersFromQueue`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-task-identifiers-from-queue`
- **Request:** [`GetTaskIdentifiersFromQueueRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskIdentifiersFromQueue/index.md#request)
- **Response:** [`GetTaskIdentifiersFromQueueResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskIdentifiersFromQueue/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- For diagnostics; reserves nothing. An unknown queue returns an empty list.
- Requires a vault session and the vault right `change_full_control_role`.
## Request: GetTaskIdentifiersFromQueueRequest
> 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 |
|---|---|---|
| `queue_id` | `string` | The ID of the queue. |
| `included_states` | `string` | The states to include, as a comma-separated list of [ApplicationTaskState](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ApplicationTaskState/index.md) numbers, for example `0,1` for waiting and in progress. Must not be empty and must not repeat a state; otherwise the call fails with "The parameter is incorrect.". |
## Response: GetTaskIdentifiersFromQueueResponse
> 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 |
|---|---|---|
| `task_id_collection[]` | repeated `string` | The IDs of the matching tasks. |
---
# IRPCApplicationTaskQueue.GetTaskQueues
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskQueues/
Badges: `Server integration API / specialized` `write` `session`
Gets the IDs of all task queues of the vault.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/GetTaskQueues`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-task-queues`
- **Request:** [`GetTaskQueuesRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskQueues/index.md#request)
- **Response:** [`GetTaskQueuesResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetTaskQueues/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- For diagnostics. Includes the vault's internal queues.
- Requires a vault session and the vault right `change_full_control_role`.
## Request: GetTaskQueuesRequest
No fields.
## Response: GetTaskQueuesResponse
> 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 |
|---|---|---|
| `queue_id_collection[]` | repeated `string` | The queue IDs. |
---
# IRPCApplicationTaskQueue.OpenTaskQueue
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/OpenTaskQueue/
Badges: `Server integration API / specialized` `write` `session`
Creates a task queue if it does not exist, or confirms an existing one.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/OpenTaskQueue`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/open-task-queue`
- **Request:** [`OpenTaskQueueRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/OpenTaskQueue/index.md#request)
- **Response:** [`OpenTaskQueueResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/OpenTaskQueue/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- Safe to call repeatedly; there is no close call. Opening a queue that exists with a
different `queue_behavior` fails with "The parameter is incorrect.".
- Requires a vault session and the vault right `change_full_control_role`. Internal queue IDs
are refused with "Access denied.".
## Request: OpenTaskQueueRequest
> 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 |
|---|---|---|
| `queue_id` | `string` | The ID of the queue, chosen by the application; make it unique, for example prefixed with the application's name. Leading and trailing spaces are removed. |
| `queue_behavior` | [`ApplicationTaskQueueProcessingBehavior`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ApplicationTaskQueueProcessingBehavior/index.md) | `APPLICATION_TASK_QUEUE_PROCESSING_BEHAVIOR_SEQUENTIAL` to process the tasks one at a time in the order they were added, or `..._CONCURRENT` to process them in parallel. Values: `APPLICATION_TASK_QUEUE_PROCESSING_BEHAVIOR_SEQUENTIAL` (0), `APPLICATION_TASK_QUEUE_PROCESSING_BEHAVIOR_CONCURRENT` (1). |
## Response: OpenTaskQueueResponse
No fields.
---
# IRPCApplicationTaskQueue.ReserveTasksForProcessing
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ReserveTasksForProcessing/
Badges: `Server integration API / specialized` `write` `session`
Reserves the next waiting task from each of the given queues for the caller to process.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/ReserveTasksForProcessing`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/reserve-tasks-for-processing`
- **Request:** [`ReserveTasksForProcessingRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ReserveTasksForProcessing/index.md#request)
- **Response:** [`ReserveTasksForProcessingResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/ReserveTasksForProcessing/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- Returns at most one task per queue, already in state `APPLICATION_TASK_STATE_IN_PROGRESS`;
queues with nothing to do contribute nothing. Call it again to get more tasks.
- From a sequential queue, no task is returned while another task of that queue is in progress.
- Tasks added with [AddScheduledTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddScheduledTask/index.md)
are not returned before their activation time.
- Every queue must be open ("The task queue is not open." otherwise), and the same queue ID must
not appear twice. Requires a vault session and the vault right `change_full_control_role`.
## Request: ReserveTasksForProcessingRequest
> 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 |
|---|---|---|
| `queue_id_collection[]` | repeated `string` | The IDs of the queues to take tasks from. |
## Response: ReserveTasksForProcessingResponse
> 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 |
|---|---|---|
| `task_info_collection[]` | repeated [`ApplicationTaskInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ApplicationTaskInfo/index.md) | The reserved tasks, at most one per queue. |
| `task_info_collection[].queue_id` | `string` | ID of the task queue this task belongs to. |
| `task_info_collection[].task_id` | `string` | ID of this task. |
| `task_info_collection[].state` | [`ApplicationTaskState`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ApplicationTaskState/index.md) | Current state of this task. Values: `APPLICATION_TASK_STATE_WAITING` (0), `APPLICATION_TASK_STATE_IN_PROGRESS` (1), `APPLICATION_TASK_STATE_COMPLETED` (2), `APPLICATION_TASK_STATE_FAILED` (3), `APPLICATION_TASK_STATE_CANCELED` (4), `APPLICATION_TASK_STATE_NONE` (5). |
| `task_info_collection[].progress` | `string` | Current task specific progress amount. |
| `task_info_collection[].task_type` | `string` | Defines the task type. |
| `task_info_collection[].task_data` | `bytes` | Any type specific task payload data. |
| `task_info_collection[].activation_timestamp` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The earliest time this task can be reserved for processing. |
| `task_info_collection[].latest_activity_timestamp` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The last modified timestamp. |
## Related methods
- [AddScheduledTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/AddScheduledTask/index.md): Adds a task to a task queue that becomes available for processing at a given time.
---
# IRPCApplicationTaskQueue.SendBroadcastMessage
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/SendBroadcastMessage/
Badges: `Server integration API / specialized` `write` `session`
Sends a broadcast message through a task queue to every consumer of that queue.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/SendBroadcastMessage`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/send-broadcast-message`
- **Request:** [`SendBroadcastMessageRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/SendBroadcastMessage/index.md#request)
- **Response:** [`SendBroadcastMessageResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/SendBroadcastMessage/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- Consumers read new messages with
[GetNewBroadcastMessages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetNewBroadcastMessages/index.md).
Messages are removed by the server after a day.
- Requires a vault session and the vault right `change_full_control_role`. Internal queue IDs
are refused with "Access denied.".
## Request: SendBroadcastMessageRequest
> 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 |
|---|---|---|
| `queue_id` | `string` | The ID of the queue. |
| `broadcast_type` | `string` | A free-form type name that tells consumers how to read `broadcast_data`. |
| `broadcast_data` | `bytes` | The payload of the message. |
## Response: SendBroadcastMessageResponse
No fields.
## Related methods
- [GetNewBroadcastMessages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/GetNewBroadcastMessages/index.md): Gets the broadcast messages of a queue that are newer than the given message ID.
---
# IRPCApplicationTaskQueue.UpdateTask
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/UpdateTask/
Badges: `Server integration API / specialized` `write` `session`
Reports the progress or the final state of a task.
- **Service:** [Application task queue](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/index.md) `MFiles.IRPCApplicationTaskQueue`
- **gRPC method:** `/MFiles.IRPCApplicationTaskQueue/UpdateTask`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/update-task`
- **Request:** [`UpdateTaskRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/UpdateTask/index.md#request)
- **Response:** [`UpdateTaskResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCApplicationTaskQueue/UpdateTask/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
- Allowed changes: an in-progress task can stay in progress (progress update) or become
`COMPLETED`, `FAILED` or `CANCELED`; a waiting task can only be cancelled. A task in a final
state cannot change, and no call can set `WAITING` or `IN_PROGRESS`. Other changes fail with
"Invalid transition of application task ...".
- Update an in-progress task at least once within its restore timeout to keep it reserved.
- An unknown task ID fails with "Not found.". Requires a vault session and the vault right
`change_full_control_role`.
## Request: UpdateTaskRequest
> 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 |
|---|---|---|
| `task_id` | `string` | The ID of the task. |
| `state` | [`ApplicationTaskState`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ApplicationTaskState/index.md) | The new state of the task. Values: `APPLICATION_TASK_STATE_WAITING` (0), `APPLICATION_TASK_STATE_IN_PROGRESS` (1), `APPLICATION_TASK_STATE_COMPLETED` (2), `APPLICATION_TASK_STATE_FAILED` (3), `APPLICATION_TASK_STATE_CANCELED` (4), `APPLICATION_TASK_STATE_NONE` (5). |
| `progress` | `string` | Free-form progress information, at most 1,048,575 characters. |
## Response: UpdateTaskResponse
No fields.
---
# Replication packages (IRPCReplicationPackages)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/
Lists and deletes the content replication packages that wait in cloud storage for import into
the vault.
Use this interface to list and remove replication packages.
- **gRPC service:** `MFiles.IRPCReplicationPackages`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 2
- **Proto file:** [`mfiles/IRPCReplicationPackages.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCReplicationPackages.proto)
## Overview
**For M-Files components only.** M-Files Admin calls this service from the **Manage
Replication** dialog of a content export or import job that uses **replication via cloud
storage**. Applications should not call it.
- **Session and rights:** a vault session with the vault right `change_full_control_role` (the
vault role full control, or a system administrator with `full_control_of_vaults`).
- **Connection string:** both methods take the connection string of the cloud storage location
in the form M-Files Admin composes it from the job's replication settings (storage connection
string, folder name and encryption password). The server uses it to open the storage; it does
not read it from the vault.
- **Typical order:** [GetReplicationPackages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/GetReplicationPackages/index.md)
to list the waiting packages, then
[DeleteReplicationPackages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/DeleteReplicationPackages/index.md)
to remove the ones that should not be imported.
## Methods
| Method | Summary | Facts |
|---|---|---|
| [DeleteReplicationPackages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/DeleteReplicationPackages/index.md) | Deletes replication packages from the given cloud storage location. | `internal: not for applications` `write` `session` `idempotent` |
| [GetReplicationPackages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/GetReplicationPackages/index.md) | Lists the replication packages in the given cloud storage location that this vault has not imported yet. | `internal: not for applications` `read` `session` `idempotent` |
---
# IRPCReplicationPackages.DeleteReplicationPackages
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Replication packages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/DeleteReplicationPackages/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session` `idempotent`
Deletes replication packages from the given cloud storage location.
- **Service:** [Replication packages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/index.md) `MFiles.IRPCReplicationPackages`
- **gRPC method:** `/MFiles.IRPCReplicationPackages/DeleteReplicationPackages`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/delete-replication-packages`
- **Request:** [`DeleteReplicationPackagesRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/DeleteReplicationPackages/index.md#request)
- **Response:** [`DeleteReplicationPackagesResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/DeleteReplicationPackages/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Admin calls it from its Manage Replication dialog.
Applications should not call it.
- Deletes the packages from the cloud storage permanently; they can no longer be imported into
any vault.
- Requires a vault session and the vault right `change_full_control_role`.
## Request: DeleteReplicationPackagesRequest
> 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 |
|---|---|---|
| `connection_string` | `string` | The same connection string as in [GetReplicationPackages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/GetReplicationPackages/index.md). |
| `replication_packages[]` | repeated `string` | The `name`s of the packages to delete. |
## Response: DeleteReplicationPackagesResponse
No fields.
---
# IRPCReplicationPackages.GetReplicationPackages
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Replication packages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/GetReplicationPackages/
Badges: `Server integration API / specialized` `internal: not for applications` `read` `session` `idempotent`
Lists the replication packages in the given cloud storage location that this vault has not
imported yet.
- **Service:** [Replication packages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/index.md) `MFiles.IRPCReplicationPackages`
- **gRPC method:** `/MFiles.IRPCReplicationPackages/GetReplicationPackages`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-replication-packages`
- **Request:** [`GetReplicationPackagesRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/GetReplicationPackages/index.md#request)
- **Response:** [`GetReplicationPackagesResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCReplicationPackages/GetReplicationPackages/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** read
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Admin calls it to show the packages in its Manage
Replication dialog. Applications should not call it.
- Requires a vault session and the vault right `change_full_control_role`. Without it the call
fails with access denied.
- Packages already imported into the session's vault are left out.
- An empty or malformed `connection_string` fails with an "Invalid pointer." error.
## Request: GetReplicationPackagesRequest
> 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 |
|---|---|---|
| `connection_string` | `string` | The cloud storage connection string as M-Files Admin composes it from the job's replication settings. |
## Response: GetReplicationPackagesResponse
> 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 |
|---|---|---|
| `replication_packages[]` | repeated [`ReplicationPackageInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ReplicationPackageInfo/index.md) | One entry per package: `name` is the package folder name and `status` a display text in the server's language ("In queue", "Next in queue" or "Failed" in English). |
| `replication_packages[].name` | `string` | The display name of the item. |
| `replication_packages[].status` | `string` | The status of the item. |
---
# WOPI operations (IRPCWOPIOperations)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/
Creates the access tokens with which Office for the web (WOPI) opens vault files, and returns the
Office for the web actions that the vault can use.
- **gRPC service:** `MFiles.IRPCWOPIOperations`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 3
- **Proto file:** [`mfiles/IRPCWOPIOperations.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCWOPIOperations.proto)
## Overview
**For M-Files components only.** M-Files clients call this service with the user's own vault
session to hand a file over to Office for the web. Applications should not call it.
- **Callers:** M-Files Web and M-Files Desktop call
[CreateWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateWOPIUserSession/index.md) when the user
opens a file in Office for the web or starts co-authoring, and
[GetWOPIDiscoveryData](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/GetWOPIDiscoveryData/index.md) to learn which
file types and actions are available. The M-Files WOPI service (the WOPI host that Office for
the web talks to) calls
[CreateContainerAccessToken](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/index.md) for
the Office mobile apps.
- **Tokens:** a token is a Base64 string that holds the vault GUID and 64 random bytes. The server
stores it with the session ID of the caller, and the anonymous methods of
[IRPCWOPIOperationsPublic](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) act in that session. A token
therefore stops working when the session that created it ends, even before the token itself
expires.
- **Session and rights:** a vault session; no special vault rights. Access to the object is
checked when the token is created and again on every file operation made with it.
- On a server where the WOPI service is turned off, `CreateWOPIUserSession` fails with "Not
implemented." (0x80004001) and `GetWOPIDiscoveryData` returns an empty list.
## Methods
| Method | Summary | Facts |
|---|---|---|
| [CreateContainerAccessToken](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/index.md) | Creates, or returns the existing, container access token with which the Office mobile apps browse a vault location through the M-Files WOPI service. | `internal: not for applications` `write` `session` |
| [CreateWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateWOPIUserSession/index.md) | Creates a WOPI user session for one file version and returns its token (or a one-time token that can be exchanged for it). | `internal: not for applications` `write` `session` |
| [GetWOPIDiscoveryData](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/GetWOPIDiscoveryData/index.md) | Gets the Office for the web actions (action name and URL) that the vault's WOPI configuration provides. | `internal: not for applications` `read` `session` `idempotent` |
---
# IRPCWOPIOperations.CreateContainerAccessToken
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Creates, or returns the existing, container access token with which the Office mobile apps
browse a vault location through the M-Files WOPI service.
- **Service:** [WOPI operations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/index.md) `MFiles.IRPCWOPIOperations`
- **gRPC method:** `/MFiles.IRPCWOPIOperations/CreateContainerAccessToken`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/create-container-access-token`
- **Request:** [`CreateContainerAccessTokenRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/index.md#request)
- **Response:** [`CreateContainerAccessTokenResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it after it has logged in for an
Office mobile app user. Applications should not call it.
- Requires a vault session. If the same session already has an unexpired token for the same
path, that token is returned.
- The token expires 24 hours after it was created (the default; the server administrator can
change it). Use it with
[GetContainerInfo](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerInfo/index.md) and
[GetContainerContent](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerContent/index.md).
## Request: CreateContainerAccessTokenRequest
> 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 |
|---|---|---|
| `container_path` | `string` | The container path as the M-Files WOPI service forms it (at most 250 characters). |
## Response: CreateContainerAccessTokenResponse
> 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 |
|---|---|---|
| `wopi_container_token_info` | [`WOPIContainerTokenInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIContainerTokenInfo/index.md) | The token, the session's user ID, user name and email address, and the expiration time (UTC). |
| `wopi_container_token_info.container_access_token` | `string` | The container access token. |
| `wopi_container_token_info.user_id` | `string` | The user id. |
| `wopi_container_token_info.user_name` | `string` | The user name. |
| `wopi_container_token_info.email_id` | `string` | The user's email id. |
| `wopi_container_token_info.expiration_time` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The container access token expiration time in UTC. |
## Related methods
- [IRPCWOPIOperationsPublic.GetContainerInfo](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerInfo/index.md): Gets the name and path of the vault location (container) of a container access token.
- [IRPCWOPIOperationsPublic.GetContainerContent](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerContent/index.md): Lists the subcontainers and files of the vault location (container) of a container access token.
---
# IRPCWOPIOperations.CreateWOPIUserSession
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateWOPIUserSession/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Creates a WOPI user session for one file version and returns its token (or a one-time token that
can be exchanged for it).
- **Service:** [WOPI operations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/index.md) `MFiles.IRPCWOPIOperations`
- **gRPC method:** `/MFiles.IRPCWOPIOperations/CreateWOPIUserSession`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/create-wopiuser-session`
- **Request:** [`CreateWOPIUserSessionRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateWOPIUserSession/index.md#request)
- **Response:** [`CreateWOPIUserSessionResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateWOPIUserSession/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Web and M-Files Desktop call it before they open a file
in Office for the web. Applications should not call it.
- Requires a vault session. The caller needs read access to the object; for co-authoring of a
checked-out object, also edit access.
- Creates an internal shared link for the file (`SHARED_LINK_TYPE_WOPIREADONLY`,
`SHARED_LINK_TYPE_WOPIEDIT` or `SHARED_LINK_TYPE_CO_AUTHORING` by `action_type`; co-authoring
reuses an existing co-authoring link) and a WOPI user session that refers to it.
- The WOPI user session expires 30 minutes after it was created or last used (the default; the
server administrator can change it). A one-time token expires after 5 minutes and can be
exchanged only once, with
[GetWOPIUserSessionKey](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey/index.md).
- For `WOPIACTION_TYPE_VIEW` of a checked-out object, the latest checked-in version is shared; an
object that has never been checked in fails with access denied.
## Request: CreateWOPIUserSessionRequest
> 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 |
|---|---|---|
| `wopi_user_session` | [`WOPIUserSession`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIUserSession/index.md) | The file to open: `obj_ver`, `file_ver`, `action_type`, `user_account_id` (the session's own user ID), `external_username` (usually empty) and `additional_data` (the URLs and culture that the WOPI host passes on to Office for the web; the URLs are validated). The other fields are ignored. |
| `wopi_user_session.wopi_user_session_key` | `string` | The WOPI vault user session key. |
| `wopi_user_session.wopi_accesskey` | `string` | The access of the shared file. |
| `wopi_user_session.action_type` | [`WOPIActionType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.WOPIActionType/index.md) | The WOPI Action type. Values: `WOPIACTION_TYPE_VIEW` (0), `WOPIACTION_TYPE_EDIT` (1), `WOPIACTION_TYPE_COAUTHORING` (2). |
| `wopi_user_session.user_account_id` | `uint32` | The user ID. |
| `wopi_user_session.user_account_name` | `string` | The user Account Name. |
| `wopi_user_session.external_username` | `string` | The External user name. |
| `wopi_user_session.additional_data` | [`WOPIClientAdditionalData`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIClientAdditionalData/index.md) | WOPI Client Additional data. |
| `wopi_user_session.additional_data.return_uri` | `string` | The Return URL. |
| `wopi_user_session.additional_data.main_app_url` | `string` | The Main Appp URL. |
| `wopi_user_session.additional_data.wopi_end_point` | `string` | The WOPI Endpoint. |
| `wopi_user_session.additional_data.culture_identifier` | `string` | The Culture identifier. |
| `wopi_user_session.additional_data.action_url` | `string` | The action URL. |
| `wopi_user_session.additional_data.host_edit_url` | `string` | The Host edit URL. |
| `wopi_user_session.obj_ver` | [`ObjVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjVer/index.md) | The ObjVer of the object. |
| `wopi_user_session.obj_ver.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object. |
| `wopi_user_session.obj_ver.version` | [`ObjVerVersion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjVerVersion/index.md) | The version. Usually `OBJ_VER_VERSION_TYPE_SPECIFIC` with `internal_version`. |
| `wopi_user_session.file_ver` | [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | The FileVer of the object. |
| `wopi_user_session.file_ver.file_id` | [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The file. |
| `wopi_user_session.file_ver.type` | [`FileVerType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileVerType/index.md) | `FILE_VER_TYPE_SPECIFIC` for a file version number. Values: `FILE_VER_TYPE_UNINITIALIZED` (0), `FILE_VER_TYPE_LATEST` (1), `FILE_VER_TYPE_ANY` (2), `FILE_VER_TYPE_SPECIFIC` (3). |
| `wopi_user_session.file_ver.internal_version` | `int32` | The file version number. |
| `wopi_user_session.file_ver.external_repository_version` | `string` | Used only for files in external repositories. Leave empty. |
| `wopi_user_session.file_ver.external_repository_sort_key` | `int64` | Used only for files in external repositories. Leave 0. |
| `wopi_user_session.is_shared_file` | `bool` | Specifies the Shared file. |
| `wopi_user_session.is_coauthor` | `bool` | Specifies the Co-authored file. |
| `wopi_user_session.csrftoken` | `string` | The CSRF Token. |
| `wopi_user_session.onetimetoken` | `string` | The One Time Token. |
| `wopi_user_session.is_edit_allowed` | `bool` | Specifies whether the file can be edited or not. |
| `wopi_user_session.client_type` | [`ClientType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ClientType/index.md) | The client type (user agent) identifier. |
| `type` | [`WOPITokenType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.WOPITokenType/index.md) | `WOPITOKEN_TYPE_WOPIVAULT_USER_SESSION_TOKEN` (the default) returns the session token itself; `WOPITOKEN_TYPE_ONE_TIME_TOKEN` returns a one-time token, for passing in a URL. `WOPITOKEN_TYPE_WOPICONTAINER_TOKEN` is rejected. Values: `WOPITOKEN_TYPE_WOPIVAULT_USER_SESSION_TOKEN` (0), `WOPITOKEN_TYPE_ONE_TIME_TOKEN` (1), `WOPITOKEN_TYPE_WOPICONTAINER_TOKEN` (2). |
## Response: CreateWOPIUserSessionResponse
> 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 |
|---|---|---|
| `wopi_key` | `string` | The token of the requested type. |
## Related methods
- [IRPCWOPIOperationsPublic.GetWOPIUserSessionKey](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey/index.md): Exchanges a one-time token for the WOPI user session token it stands for.
---
# IRPCWOPIOperations.GetWOPIDiscoveryData
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/GetWOPIDiscoveryData/
Badges: `Server integration API / specialized` `internal: not for applications` `read` `session` `idempotent`
Gets the Office for the web actions (action name and URL) that the vault's WOPI configuration
provides.
- **Service:** [WOPI operations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/index.md) `MFiles.IRPCWOPIOperations`
- **gRPC method:** `/MFiles.IRPCWOPIOperations/GetWOPIDiscoveryData`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-wopidiscovery-data`
- **Request:** [`GetWOPIDiscoveryDataRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/GetWOPIDiscoveryData/index.md#request)
- **Response:** [`GetWOPIDiscoveryDataResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/GetWOPIDiscoveryData/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** read
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Web and M-Files Desktop call it to decide which files
can be opened in Office for the web. Applications should not call it.
- Requires a vault session. Read-only; the server serves the data from a cache that it fills
from the Office for the web discovery URL configured for the vault.
- Fails with "Not found. (Either WOPI is not enabled or the discovery URL is empty.)" when the
vault has no WOPI configuration.
- Returns an empty list on a server where the WOPI service is turned off.
## Request: GetWOPIDiscoveryDataRequest
A structure that specifies get WOPI discovery data request.
No fields.
## Response: GetWOPIDiscoveryDataResponse
Struct for WOPI discovery data response.
> 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 |
|---|---|---|
| `values[]` | repeated [`WOPIDiscovery`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIDiscovery/index.md) | One entry per action: `action_name` and the `action_url` template from the discovery data. |
| `values[].action_name` | `string` | The action name. |
| `values[].action_url` | `string` | The action URL. |
---
# WOPI operations (anonymous) (IRPCWOPIOperationsPublic)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/
File, lock and session operations for Office for the web (WOPI), authorized by a WOPI access token
instead of an M-Files session.
- **gRPC service:** `MFiles.IRPCWOPIOperationsPublic`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 15
- **Proto file:** [`mfiles/IRPCWOPIOperationsPublic.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCWOPIOperationsPublic.proto)
## Overview
**For M-Files components only.** The M-Files WOPI service, the WOPI host that Office for the web
and the Office mobile apps talk to, calls these methods with the access token it received from
Office. M-Files Web also calls a few of them. Applications should not call this service.
- **No session.** Every method is called without `mfiles-session-id-bin`. The token in the
request names the vault (it holds the vault GUID) and maps to the M-Files session that created
it with [CreateWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateWOPIUserSession/index.md) or
[CreateContainerAccessToken](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/index.md). The
method then runs in that session, with that user's permissions; it fails with access denied
when the token is malformed, unknown or expired, or when that session has ended.
- **Token kinds:** a WOPI user session token (most methods), a one-time token (only
[GetWOPIUserSessionKey](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey/index.md)), and a
container access token ([GetContainerInfo](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerInfo/index.md),
[GetContainerContent](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerContent/index.md), and
[GetWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSession/index.md) with
`WOPITOKEN_TYPE_WOPICONTAINER_TOKEN`).
- **Tasks:**
- Open the editor: [GetWOPIUserSessionKey](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey/index.md)
(M-Files Web exchanges a one-time token from the URL) and
[GetWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSession/index.md).
- File content: [WOPIDownloadFile_Begin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_Begin/index.md),
[WOPIDownloadFile_ReadBlock](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_ReadBlock/index.md),
[WOPIUploadFile](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFile/index.md),
[WOPIUploadFileCommit](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFileCommit/index.md).
- WOPI locks: [GetLockForWOPI](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetLockForWOPI/index.md),
[SetLockForWOPI](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/SetLockForWOPI/index.md),
[RemoveLockForWOPI](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/RemoveLockForWOPI/index.md).
- Check-out and check-in: [WOPIFileCheckOut](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckOut/index.md),
[WOPIFileCheckIn](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckIn/index.md).
- Co-authoring: [GetActiveParticipants](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetActiveParticipants/index.md).
- End: [EndWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/EndWOPIUserSession/index.md).
- Office mobile apps browsing: [GetContainerInfo](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerInfo/index.md),
[GetContainerContent](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerContent/index.md).
- **Errors:** invalid tokens fail with plain "Access denied." (0x800407E4); a token
for a vault that does not exist on the server answers after a delay of about 0.5 s.
- **Cloud:** an M-Files Cloud server answers these methods anonymously (a made-up token fails
with "Access denied.").
## Methods
| Method | Summary | Facts |
|---|---|---|
| [EndWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/EndWOPIUserSession/index.md) | Ends a WOPI user session: its token stops working at once. | `internal: not for applications` `write` `no session` |
| [GetActiveParticipants](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetActiveParticipants/index.md) | Lists the other users who currently have an open co-authoring session on the same file. | `internal: not for applications` `write` `no session` |
| [GetContainerContent](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerContent/index.md) | Lists the subcontainers and files of the vault location (container) of a container access token. | `internal: not for applications` `write` `no session` |
| [GetContainerInfo](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerInfo/index.md) | Gets the name and path of the vault location (container) of a container access token. | `internal: not for applications` `write` `no session` |
| [GetLockForWOPI](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetLockForWOPI/index.md) | Gets the WOPI lock string of the file of a WOPI user session. | `internal: not for applications` `write` `no session` |
| [GetWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSession/index.md) | Gets the details of a WOPI user session: the shared object and file version, the action, the user and whether editing is allowed. | `internal: not for applications` `write` `no session` |
| [GetWOPIUserSessionKey](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey/index.md) | Exchanges a one-time token for the WOPI user session token it stands for. | `internal: not for applications` `write` `no session` |
| [RemoveLockForWOPI](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/RemoveLockForWOPI/index.md) | Removes the WOPI lock string of the file of a WOPI user session. | `internal: not for applications` `write` `no session` |
| [SetLockForWOPI](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/SetLockForWOPI/index.md) | Sets the WOPI lock string of the file of a WOPI user session. | `internal: not for applications` `write` `no session` |
| [WOPIDownloadFile_Begin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_Begin/index.md) | Starts downloading the file of a WOPI user session and returns its size and MD5 checksum. | `internal: not for applications` `write` `no session` |
| [WOPIDownloadFile_ReadBlock](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_ReadBlock/index.md) | Reads a block of the file of a WOPI download session. | `internal: not for applications` `write` `no session` |
| [WOPIFileCheckIn](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckIn/index.md) | Checks in the object of a WOPI user session. | `internal: not for applications` `write` `no session` |
| [WOPIFileCheckOut](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckOut/index.md) | Checks out the object of a read-only WOPI user session and turns the session into an editing session. | `internal: not for applications` `write` `no session` |
| [WOPIUploadFile](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFile/index.md) | Uploads a block of the new content of the file of a WOPI editing or co-authoring session. | `internal: not for applications` `write` `no session` |
| [WOPIUploadFileCommit](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFileCommit/index.md) | Stores an upload made with WOPIUploadFile as the new content of the file of the WOPI session. | `internal: not for applications` `write` `no session` |
---
# IRPCWOPIOperationsPublic.EndWOPIUserSession
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/EndWOPIUserSession/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Ends a WOPI user session: its token stops working at once.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/EndWOPIUserSession`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/end-wopiuser-session`
- **Request:** [`EndWOPIUserSessionRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/EndWOPIUserSession/index.md#request)
- **Response:** [`EndWOPIUserSessionResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/EndWOPIUserSession/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files clients call it to end a WOPI user session that they
created. Applications should not call it.
- Sets the expiration time of the WOPI user session to now. It does not check the object in.
## Request: EndWOPIUserSessionRequest
> 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 |
|---|---|---|
| `key` | `string` | The WOPI user session token. |
## Response: EndWOPIUserSessionResponse
No fields.
---
# IRPCWOPIOperationsPublic.GetActiveParticipants
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetActiveParticipants/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Lists the other users who currently have an open co-authoring session on the same file.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/GetActiveParticipants`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-active-participants`
- **Request:** [`GetActiveParticipantsRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetActiveParticipants/index.md#request)
- **Response:** [`GetActiveParticipantsResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetActiveParticipants/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files clients call it during co-authoring. Applications should
not call it.
- Works only with a token of a co-authoring session; others fail with access denied.
- Lists the users of the unexpired WOPI user sessions on the same co-authoring link whose
creating M-Files session is still valid, leaving out the user who created the link.
## Request: GetActiveParticipantsRequest
> 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 |
|---|---|---|
| `wopi_user_session_key` | `string` | The WOPI user session token. |
## Response: GetActiveParticipantsResponse
> 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 |
|---|---|---|
| `wopi_active_users[]` | repeated [`WOPIActiveUsers`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIActiveUsers/index.md) | The user names (`username`) of the participants. |
| `wopi_active_users[].username` | `string` | The Username of the user. |
---
# IRPCWOPIOperationsPublic.GetContainerContent
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerContent/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Lists the subcontainers and files of the vault location (container) of a container access token.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/GetContainerContent`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-container-content`
- **Request:** [`GetContainerContentRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerContent/index.md#request)
- **Response:** [`GetContainerContentResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerContent/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it when an Office mobile app
browses the vault. Applications should not call it.
- Authorized by a container access token from
[CreateContainerAccessToken](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/index.md). The
content is listed with the permissions of the token's user.
## Request: GetContainerContentRequest
> 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 |
|---|---|---|
| `container_access_token` | `string` | The container access token. |
## Response: GetContainerContentResponse
> 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 |
|---|---|---|
| `wopi_container_content` | [`WOPIContainerContent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIContainerContent/index.md) | Receives the container content. |
| `wopi_container_content.containers[]` | repeated [`WOPIContainer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIContainer/index.md) | Array of containers. |
| `wopi_container_content.containers[].container_access_token` | `string` | The container access token. |
| `wopi_container_content.containers[].container_name` | `string` | The container name. |
| `wopi_container_content.containers[].obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Object ID. |
| `wopi_container_content.container_files[]` | repeated [`WOPIContainerFile`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIContainerFile/index.md) | Array of container object files. |
| `wopi_container_content.container_files[].container_access_token` | `string` | The container access token. |
| `wopi_container_content.container_files[].obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | Object ID. |
| `wopi_container_content.container_files[].file` | [`File`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.File/index.md) | Object file. |
## Related methods
- [IRPCWOPIOperations.CreateContainerAccessToken](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/index.md): Creates, or returns the existing, container access token with which the Office mobile apps browse a vault location through the M-Files WOPI service.
---
# IRPCWOPIOperationsPublic.GetContainerInfo
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerInfo/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Gets the name and path of the vault location (container) of a container access token.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/GetContainerInfo`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-container-info`
- **Request:** [`GetContainerInfoRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerInfo/index.md#request)
- **Response:** [`GetContainerInfoResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetContainerInfo/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it when an Office mobile app
browses the vault. Applications should not call it.
- Authorized by a container access token from
[CreateContainerAccessToken](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/index.md). A
container is a view (supported: the "Recently accessed by me" view) or an object that can have
files.
## Request: GetContainerInfoRequest
> 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 |
|---|---|---|
| `container_access_token` | `string` | The container access token. |
## Response: GetContainerInfoResponse
> 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 |
|---|---|---|
| `wopi_container_info` | [`WOPIContainerInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIContainerInfo/index.md) | Receives the container information. |
| `wopi_container_info.container_access_token` | `string` | The container access token. |
| `wopi_container_info.container_name` | `string` | The container name. |
| `wopi_container_info.container_path` | `string` | The container path. |
## Related methods
- [IRPCWOPIOperations.CreateContainerAccessToken](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateContainerAccessToken/index.md): Creates, or returns the existing, container access token with which the Office mobile apps browse a vault location through the M-Files WOPI service.
---
# IRPCWOPIOperationsPublic.GetLockForWOPI
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetLockForWOPI/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Gets the WOPI lock string of the file of a WOPI user session.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/GetLockForWOPI`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-lock-for-wopi`
- **Request:** [`GetLockForWOPIRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetLockForWOPI/index.md#request)
- **Response:** [`GetLockForWOPIResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetLockForWOPI/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it to implement the WOPI lock
operations. Applications should not call it.
- The token's user needs read and edit access to the object. Read-only.
- The WOPI lock is a string that Office for the web sets; it is separate from the M-Files
check-out state.
## Request: GetLockForWOPIRequest
> 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 |
|---|---|---|
| `wopi_user_session_key` | `string` | The WOPI user session token. |
## Response: GetLockForWOPIResponse
> 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 |
|---|---|---|
| `info` | [`WOPILock`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPILock/index.md) | The current lock string in `lock`; empty when there is no lock. |
| `info.lock` | `string` | The WOPI lock key. |
---
# IRPCWOPIOperationsPublic.GetWOPIUserSession
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSession/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Gets the details of a WOPI user session: the shared object and file version, the action, the
user and whether editing is allowed.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSession`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-wopiuser-session`
- **Request:** [`GetWOPIUserSessionRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSession/index.md#request)
- **Response:** [`GetWOPIUserSessionResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSession/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it to validate each request from
Office for the web, and M-Files Web calls it when it opens the editor page. Applications should
not call it.
- Extends the expiration of the WOPI user session to 30 minutes (the default) from now.
- With a container access token (`type` `WOPITOKEN_TYPE_WOPICONTAINER_TOKEN`) and `objid` and
`file_id`, it finds or creates a WOPI user session for that file; creating one checks the object
out to the token's user and fails if the object is checked out to another user or computer.
## Request: GetWOPIUserSessionRequest
> 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 |
|---|---|---|
| `pwszkey` | `string` | The token, of the kind that `type` names. |
| `type` | [`WOPITokenType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.WOPITokenType/index.md) | `WOPITOKEN_TYPE_WOPIVAULT_USER_SESSION_TOKEN` (the default) or `WOPITOKEN_TYPE_WOPICONTAINER_TOKEN`. Values: `WOPITOKEN_TYPE_WOPIVAULT_USER_SESSION_TOKEN` (0), `WOPITOKEN_TYPE_ONE_TIME_TOKEN` (1), `WOPITOKEN_TYPE_WOPICONTAINER_TOKEN` (2). |
| `objid` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object; used only with a container access token. |
| `objid.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `objid.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `objid.item_id.internal_id` | `int32` | The ID of the object or value list item. |
| `objid.item_id.external_repository_id` | [`ExternalRepositoryID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExternalRepositoryID/index.md) | Used only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault. |
| `file_id` | `int32` | The file ID; used only with a container access token. |
## Response: GetWOPIUserSessionResponse
> 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 |
|---|---|---|
| `wopi_user_session` | [`WOPIUserSession`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIUserSession/index.md) | The session. `is_edit_allowed` is false when the user's license is read-only, the user lacks edit access, the object is deleted or has no editable files, an older version is shared, or the object is checked out to someone else (except in co-authoring). `is_coauthor` is true for the user who started co-authoring; `is_shared_file` for the other co-authors. |
| `wopi_user_session.wopi_user_session_key` | `string` | The WOPI vault user session key. |
| `wopi_user_session.wopi_accesskey` | `string` | The access of the shared file. |
| `wopi_user_session.action_type` | [`WOPIActionType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.WOPIActionType/index.md) | The WOPI Action type. Values: `WOPIACTION_TYPE_VIEW` (0), `WOPIACTION_TYPE_EDIT` (1), `WOPIACTION_TYPE_COAUTHORING` (2). |
| `wopi_user_session.user_account_id` | `uint32` | The user ID. |
| `wopi_user_session.user_account_name` | `string` | The user Account Name. |
| `wopi_user_session.external_username` | `string` | The External user name. |
| `wopi_user_session.additional_data` | [`WOPIClientAdditionalData`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WOPIClientAdditionalData/index.md) | WOPI Client Additional data. |
| `wopi_user_session.additional_data.return_uri` | `string` | The Return URL. |
| `wopi_user_session.additional_data.main_app_url` | `string` | The Main Appp URL. |
| `wopi_user_session.additional_data.wopi_end_point` | `string` | The WOPI Endpoint. |
| `wopi_user_session.additional_data.culture_identifier` | `string` | The Culture identifier. |
| `wopi_user_session.additional_data.action_url` | `string` | The action URL. |
| `wopi_user_session.additional_data.host_edit_url` | `string` | The Host edit URL. |
| `wopi_user_session.obj_ver` | [`ObjVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjVer/index.md) | The ObjVer of the object. |
| `wopi_user_session.obj_ver.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object. |
| `wopi_user_session.obj_ver.version` | [`ObjVerVersion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjVerVersion/index.md) | The version. Usually `OBJ_VER_VERSION_TYPE_SPECIFIC` with `internal_version`. |
| `wopi_user_session.file_ver` | [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | The FileVer of the object. |
| `wopi_user_session.file_ver.file_id` | [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The file. |
| `wopi_user_session.file_ver.type` | [`FileVerType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileVerType/index.md) | `FILE_VER_TYPE_SPECIFIC` for a file version number. Values: `FILE_VER_TYPE_UNINITIALIZED` (0), `FILE_VER_TYPE_LATEST` (1), `FILE_VER_TYPE_ANY` (2), `FILE_VER_TYPE_SPECIFIC` (3). |
| `wopi_user_session.file_ver.internal_version` | `int32` | The file version number. |
| `wopi_user_session.file_ver.external_repository_version` | `string` | Used only for files in external repositories. Leave empty. |
| `wopi_user_session.file_ver.external_repository_sort_key` | `int64` | Used only for files in external repositories. Leave 0. |
| `wopi_user_session.is_shared_file` | `bool` | Specifies the Shared file. |
| `wopi_user_session.is_coauthor` | `bool` | Specifies the Co-authored file. |
| `wopi_user_session.csrftoken` | `string` | The CSRF Token. |
| `wopi_user_session.onetimetoken` | `string` | The One Time Token. |
| `wopi_user_session.is_edit_allowed` | `bool` | Specifies whether the file can be edited or not. |
| `wopi_user_session.client_type` | [`ClientType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ClientType/index.md) | The client type (user agent) identifier. |
## Related methods
- [GetWOPIUserSessionKey](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey/index.md): Exchanges a one-time token for the WOPI user session token it stands for.
---
# IRPCWOPIOperationsPublic.GetWOPIUserSessionKey
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Exchanges a one-time token for the WOPI user session token it stands for.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-wopiuser-session-key`
- **Request:** [`GetWOPIUserSessionKeyRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey/index.md#request)
- **Response:** [`GetWOPIUserSessionKeyResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSessionKey/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Web calls it when its WOPI page is opened with a
one-time token in the URL. Applications should not call it.
- Authorized by the one-time token, which expires 5 minutes after it was created. The token is
cleared after a successful exchange and cannot be used again.
## Request: GetWOPIUserSessionKeyRequest
> 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 |
|---|---|---|
| `pwszkey` | `string` | The one-time token from [CreateWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperations/CreateWOPIUserSession/index.md) with `WOPITOKEN_TYPE_ONE_TIME_TOKEN`. |
## Response: GetWOPIUserSessionKeyResponse
> 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 |
|---|---|---|
| `wopi_key` | `string` | The WOPI user session token. |
## Related methods
- [GetWOPIUserSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/GetWOPIUserSession/index.md): Gets the details of a WOPI user session: the shared object and file version, the action, the user and whether editing is allowed.
---
# IRPCWOPIOperationsPublic.RemoveLockForWOPI
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/RemoveLockForWOPI/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Removes the WOPI lock string of the file of a WOPI user session.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/RemoveLockForWOPI`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/remove-lock-for-wopi`
- **Request:** [`RemoveLockForWOPIRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/RemoveLockForWOPI/index.md#request)
- **Response:** [`RemoveLockForWOPIResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/RemoveLockForWOPI/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it for the WOPI Unlock operation.
Applications should not call it.
- The token's user needs read and edit access to the object. It does not check the object in.
## Request: RemoveLockForWOPIRequest
> 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 |
|---|---|---|
| `wopi_user_session_key` | `string` | The WOPI user session token. |
## Response: RemoveLockForWOPIResponse
No fields.
---
# IRPCWOPIOperationsPublic.SetLockForWOPI
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/SetLockForWOPI/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Sets the WOPI lock string of the file of a WOPI user session.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/SetLockForWOPI`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/set-lock-for-wopi`
- **Request:** [`SetLockForWOPIRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/SetLockForWOPI/index.md#request)
- **Response:** [`SetLockForWOPIResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/SetLockForWOPI/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it for the WOPI Lock, RefreshLock
and UnlockAndRelock operations. Applications should not call it.
- The token's user needs read and edit access to the object.
## Request: SetLockForWOPIRequest
> 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 |
|---|---|---|
| `wopi_user_session_key` | `string` | The WOPI user session token. |
| `lock` | `string` | The lock string that Office for the web sent. |
## Response: SetLockForWOPIResponse
No fields.
---
# IRPCWOPIOperationsPublic.WOPIDownloadFile_Begin
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_Begin/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Starts downloading the file of a WOPI user session and returns its size and MD5 checksum.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_Begin`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/wopidownload-file_-begin`
- **Request:** [`WOPIDownloadFile_BeginRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_Begin/index.md#request)
- **Response:** [`WOPIDownloadFile_BeginResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_Begin/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it when Office for the web
reads the file. Applications should not call it.
- The token's user needs read access to the object. Read the content with
[WOPIDownloadFile_ReadBlock](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_ReadBlock/index.md).
## Request: WOPIDownloadFile_BeginRequest
> 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 |
|---|---|---|
| `wopi_user_session_key` | `string` | The WOPI user session token. |
## Response: WOPIDownloadFile_BeginResponse
> 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 |
|---|---|---|
| `download_id` | `int32` | The download session for `WOPIDownloadFile_ReadBlock`. |
| `file_size` | `int64` | The size of the file. |
| `low_digest` | `int64` | The first 8 bytes of the MD5 checksum, as a little-endian integer. |
| `high_digest` | `int64` | The last 8 bytes of the MD5 checksum, as a little-endian integer. |
## Related methods
- [WOPIDownloadFile_ReadBlock](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_ReadBlock/index.md): Reads a block of the file of a WOPI download session.
---
# IRPCWOPIOperationsPublic.WOPIDownloadFile_ReadBlock
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_ReadBlock/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Reads a block of the file of a WOPI download session.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_ReadBlock`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/wopidownload-file_-read-block`
- **Request:** [`WOPIDownloadFile_ReadBlockRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_ReadBlock/index.md#request)
- **Response:** [`WOPIDownloadFile_ReadBlockResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_ReadBlock/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it. Applications should not
call it.
- `download_id` must belong to a download started with the same token's link; otherwise the call
fails with an invalid shared link error.
## Request: WOPIDownloadFile_ReadBlockRequest
> 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 |
|---|---|---|
| `wopi_user_session_key` | `string` | The WOPI user session token. |
| `download_id` | `int32` | The ID from [WOPIDownloadFile_Begin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_Begin/index.md). |
| `block_size` | `uint32` | The number of bytes wanted. |
| `offset` | `int64` | The offset to start reading from. |
## Response: WOPIDownloadFile_ReadBlockResponse
> 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 |
|---|---|---|
| `data` | `bytes` | Receives the data block. |
## Related methods
- [WOPIDownloadFile_Begin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIDownloadFile_Begin/index.md): Starts downloading the file of a WOPI user session and returns its size and MD5 checksum.
---
# IRPCWOPIOperationsPublic.WOPIFileCheckIn
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckIn/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Checks in the object of a WOPI user session.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckIn`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/wopifile-check-in`
- **Request:** [`WOPIFileCheckInRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckIn/index.md#request)
- **Response:** [`WOPIFileCheckInResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckIn/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it when Office for the web
unlocks a file it edited. Applications should not call it.
- Changes the object: checks in the shared object version, as the user of the session that
created the token.
## Request: WOPIFileCheckInRequest
> 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 |
|---|---|---|
| `key` | `string` | The WOPI user session token. |
## Response: WOPIFileCheckInResponse
No fields.
---
# IRPCWOPIOperationsPublic.WOPIFileCheckOut
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckOut/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Checks out the object of a read-only WOPI user session and turns the session into an editing
session.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckOut`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/wopifile-check-out`
- **Request:** [`WOPIFileCheckOutRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckOut/index.md#request)
- **Response:** [`WOPIFileCheckOutResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIFileCheckOut/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files clients call it when the user switches from viewing to
editing in Office for the web. Applications should not call it.
- Changes the object: checks it out to the user of the session that created the token, creates a
`SHARED_LINK_TYPE_WOPIEDIT` link to the new version and points the WOPI user session at it.
- Works only for a session created with `WOPIACTION_TYPE_VIEW`; other sessions fail with access
denied.
## Request: WOPIFileCheckOutRequest
> 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 |
|---|---|---|
| `key` | `string` | The WOPI user session token. |
## Response: WOPIFileCheckOutResponse
No fields.
---
# IRPCWOPIOperationsPublic.WOPIUploadFile
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFile/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Uploads a block of the new content of the file of a WOPI editing or co-authoring session.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFile`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/wopiupload-file`
- **Request:** [`WOPIUploadFileRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFile/index.md#request)
- **Response:** [`WOPIUploadFileResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFile/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it when Office for the web saves
the file. Applications should not call it.
- Works only with a token whose link is for editing or co-authoring; others fail with "The
parameter is incorrect.". The token's user needs read and edit access to the object.
- The first call has `upload_id` 0 and `offset` 0 and returns the upload ID; later calls pass
it. Complete the upload with
[WOPIUploadFileCommit](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFileCommit/index.md). A failed
call deletes the upload.
## Request: WOPIUploadFileRequest
> 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 |
|---|---|---|
| `wopi_user_session_key` | `string` | The WOPI user session token. |
| `upload_id` | `int32` | 0 to start a new upload, otherwise the ID returned by the first call. |
| `total_size_in_bytes` | `int64` | The total size of the file in bytes. Used only when `offset` is 0. |
| `offset` | `int64` | The position of `data` in the file. Use multiples of 4096 bytes. |
| `data` | `bytes` | The block. Use multiples of 4096 bytes, except for the last block. |
## Response: WOPIUploadFileResponse
> 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 |
|---|---|---|
| `upload_id` | `int32` | Receives the identifier of this upload operation. |
## Related methods
- [WOPIUploadFileCommit](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFileCommit/index.md): Stores an upload made with WOPIUploadFile as the new content of the file of the WOPI session.
---
# IRPCWOPIOperationsPublic.WOPIUploadFileCommit
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFileCommit/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Stores an upload made with WOPIUploadFile as the new content of the file of the WOPI session.
- **Service:** [WOPI operations (anonymous)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/index.md) `MFiles.IRPCWOPIOperationsPublic`
- **gRPC method:** `/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFileCommit`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/wopiupload-file-commit`
- **Request:** [`WOPIUploadFileCommitRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFileCommit/index.md#request)
- **Response:** [`WOPIUploadFileCommitResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFileCommit/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** The M-Files WOPI service calls it at the end of a save from
Office for the web. Applications should not call it.
- Changes the file content of the object. The object must be checked out, the token's link must
be for editing or co-authoring, and the token's user needs read and edit access.
- Fails with "File size mismatch." when the uploaded byte count differs from
`total_size_in_bytes` of the first upload call. The upload is deleted after the commit, also
when the commit fails.
## Request: WOPIUploadFileCommitRequest
> 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 |
|---|---|---|
| `wopi_user_session_key` | `string` | The WOPI user session token. |
| `upload_id` | `int32` | The ID from [WOPIUploadFile](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFile/index.md). |
| `low_digest` | `int64` | If not zero, the first 8 bytes of the MD5 checksum of the uploaded file, as a little-endian integer. |
| `high_digest` | `int64` | If not zero, the last 8 bytes of the MD5 checksum, as a little-endian integer. |
## Response: WOPIUploadFileCommitResponse
No fields.
## Related methods
- [WOPIUploadFile](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWOPIOperationsPublic/WOPIUploadFile/index.md): Uploads a block of the new content of the file of a WOPI editing or co-authoring session.
---
# Web companion (IRPCWebCompanionOperation)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionOperation/
Registers an M-Files Web Companion installation with a vault.
- **gRPC service:** `MFiles.IRPCWebCompanionOperation`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 1
- **Proto file:** [`mfiles/IRPCWebCompanionOperation.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCWebCompanionOperation.proto)
## Overview
**For M-Files components only.** M-Files Web calls this service when it pairs with the M-Files
Web Companion app that runs on the user's computer. Applications should not call it.
## Methods
| Method | Summary | Facts |
|---|---|---|
| [RegisterWebCompanion](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionOperation/RegisterWebCompanion/index.md) | Registers an M-Files Web Companion installation with the vault for the calling user. | `internal: not for applications` `write` `session` |
---
# IRPCWebCompanionOperation.RegisterWebCompanion
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Web companion](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionOperation/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionOperation/RegisterWebCompanion/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Registers an M-Files Web Companion installation with the vault for the calling user.
- **Service:** [Web companion](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionOperation/index.md) `MFiles.IRPCWebCompanionOperation`
- **gRPC method:** `/MFiles.IRPCWebCompanionOperation/RegisterWebCompanion`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/register-web-companion`
- **Request:** [`RegisterWebCompanionRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionOperation/RegisterWebCompanion/index.md#request)
- **Response:** [`RegisterWebCompanionResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionOperation/RegisterWebCompanion/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Web calls it when it pairs with M-Files Web Companion.
Applications should not call it.
## Request: RegisterWebCompanionRequest
> 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 |
|---|---|---|
| `app_id` | `string` | The app ID of the Web Companion installation, at most 125 characters. |
## Response: RegisterWebCompanionResponse
> 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 |
|---|---|---|
| `secret_key` | `string` | For M-Files Web Companion. |
---
# Web companion tasks (IRPCWebCompanionTaskOperation)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/
Passes "open this file in a desktop application" tasks from M-Files Web to M-Files Web Companion.
This interface provides ability to store task for web companion.
- **gRPC service:** `MFiles.IRPCWebCompanionTaskOperation`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 2
- **Proto file:** [`mfiles/IRPCWebCompanionTaskOperation.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCWebCompanionTaskOperation.proto)
## Overview
**For M-Files components only.** M-Files Web and M-Files Web Companion use this service to open
vault files in native desktop applications. Applications should not call it.
## Methods
| Method | Summary | Facts |
|---|---|---|
| [AddWebCompanionTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/AddWebCompanionTask/index.md) | Stores a task for M-Files Web Companion and returns the task ID. | `internal: not for applications` `write` `session` |
| [GetWebCompanionTask](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/GetWebCompanionTask/index.md) | Gets a task that M-Files Web stored for M-Files Web Companion. | `internal: not for applications` `write` `no session` |
---
# IRPCWebCompanionTaskOperation.AddWebCompanionTask
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Web companion tasks](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/AddWebCompanionTask/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session`
Stores a task for M-Files Web Companion and returns the task ID.
- **Service:** [Web companion tasks](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/index.md) `MFiles.IRPCWebCompanionTaskOperation`
- **gRPC method:** `/MFiles.IRPCWebCompanionTaskOperation/AddWebCompanionTask`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/add-web-companion-task`
- **Request:** [`AddWebCompanionTaskRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/AddWebCompanionTask/index.md#request)
- **Response:** [`AddWebCompanionTaskResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/AddWebCompanionTask/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Web calls it before handing a file over to M-Files Web
Companion. Applications should not call it.
## Request: AddWebCompanionTaskRequest
> 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 |
|---|---|---|
| `add_web_companion_request` | [`WebCompanionTask`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WebCompanionTask/index.md) | The Web Companion Task information. |
| `add_web_companion_request.app_id` | `string` | Web Companion App ID. |
| `add_web_companion_request.data` | `string` | Display string of the task data. |
| `add_web_companion_request.action_type` | [`WebCompanionActionType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.WebCompanionActionType/index.md) | Web Companion Action type. Values: `WEB_COMPANION_ACTION_TYPE_VIEW` (0), `WEB_COMPANION_ACTION_TYPE_EDIT` (1), `WEB_COMPANION_ACTION_TYPE_CHECKIN` (2), `WEB_COMPANION_ACTION_TYPE_SAVE_FILE_EXTENSION` (3), `WEB_COMPANION_ACTION_TYPE_CO_AUTHOR` (4). |
## Response: AddWebCompanionTaskResponse
> 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 |
|---|---|---|
| `id` | `int64` | The ID of the stored task. |
---
# IRPCWebCompanionTaskOperation.GetWebCompanionTask
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Web companion tasks](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/GetWebCompanionTask/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session`
Gets a task that M-Files Web stored for M-Files Web Companion.
- **Service:** [Web companion tasks](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/index.md) `MFiles.IRPCWebCompanionTaskOperation`
- **gRPC method:** `/MFiles.IRPCWebCompanionTaskOperation/GetWebCompanionTask`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-web-companion-task`
- **Request:** [`GetWebCompanionTaskRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/GetWebCompanionTask/index.md#request)
- **Response:** [`GetWebCompanionTaskResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCWebCompanionTaskOperation/GetWebCompanionTask/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Web Companion calls it to pick up a task that M-Files
Web stored. Applications should not call it.
## Request: GetWebCompanionTaskRequest
> 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 |
|---|---|---|
| `get_web_companion_request` | [`WebCompanionFetchTask`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WebCompanionFetchTask/index.md) | Web Companion Task information. |
| `get_web_companion_request.id` | `int64` | ID of the web companion task record. |
| `get_web_companion_request.guid` | `string` | Vault GUID (uniquely identifies the vault). |
| `get_web_companion_request.app_id` | `string` | Web Companion App ID. |
| `get_web_companion_request.secret_key` | `string` | App secret key. |
## Response: GetWebCompanionTaskResponse
> 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 |
|---|---|---|
| `id` | `bytes` | For M-Files Web Companion. |
| `web_companion_task_info` | [`WebCompanionTaskInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.WebCompanionTaskInfo/index.md) | The stored task. |
| `web_companion_task_info.data` | `string` | The Web Companion task data. |
| `web_companion_task_info.action_type` | [`WebCompanionActionType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.WebCompanionActionType/index.md) | Web Companion Task Action type. Values: `WEB_COMPANION_ACTION_TYPE_VIEW` (0), `WEB_COMPANION_ACTION_TYPE_EDIT` (1), `WEB_COMPANION_ACTION_TYPE_CHECKIN` (2), `WEB_COMPANION_ACTION_TYPE_SAVE_FILE_EXTENSION` (3), `WEB_COMPANION_ACTION_TYPE_CO_AUTHOR` (4). |
---
# Document file I/O for server components (IRPCDocumentOperationsFileIOInternal)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/
Server-to-server variants of file upload commit and file size checks.
- **gRPC service:** `MFiles.IRPCDocumentOperationsFileIOInternal`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 2
- **Proto file:** [`mfiles/IRPCDocumentOperationsFileIOInternal.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCDocumentOperationsFileIOInternal.proto)
## Overview
**For M-Files components only.** M-Files Server calls these methods on another M-Files Server
when it forwards a file operation of a session that it relays to that server. No M-Files client
calls them. Applications should use the public equivalents in
[IRPCObjectOperations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/index.md) instead:
| Internal method | Use instead |
|---|---|
| [UploadFileCommit2](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/UploadFileCommit2/index.md) | [UploadFileCommit](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/UploadFileCommit/index.md) |
| [GetFileOutline](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/GetFileOutline/index.md) | [GetFileSize](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/GetFileSize/index.md), or `file_outline` of [DownloadFile_Begin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/DownloadFile_Begin/index.md) |
Both methods need a vault session of a login that has a user account in the vault. They return
the vault's metadata structure version in the `mfiles-metadata-version-bin` trailer.
## Methods
| Method | Summary | Facts |
|---|---|---|
| [GetFileOutline](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/GetFileOutline/index.md) | Gets the size and MD5 checksum of a file version. | `internal: not for applications` `write` `session or assertion` `returns metadata structure version` |
| [UploadFileCommit2](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/UploadFileCommit2/index.md) | Completes an upload made with UploadFile and stores it as the new content of the file; returns only the data file version. | `internal: not for applications` `write` `session or assertion` `returns metadata structure version` |
---
# IRPCDocumentOperationsFileIOInternal.GetFileOutline
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Document file I/O for server components](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/GetFileOutline/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session or assertion` `returns metadata structure version`
Gets the size and MD5 checksum of a file version.
- **Service:** [Document file I/O for server components](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/index.md) `MFiles.IRPCDocumentOperationsFileIOInternal`
- **gRPC method:** `/MFiles.IRPCDocumentOperationsFileIOInternal/GetFileOutline`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-file-outline`
- **Request:** [`GetFileOutlineRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/GetFileOutline/index.md#request)
- **Response:** [`GetFileOutlineResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/GetFileOutline/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata).
- **Idempotent:** no
- **Returns metadata structure version:** yes (in the mfiles-metadata-version-bin trailer)
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Server calls it on another M-Files Server. Applications
should use [GetFileSize](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/GetFileSize/index.md), or the `file_outline` of
[DownloadFile_Begin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/DownloadFile_Begin/index.md) with `need_checksum`.
- Read-only. Requires a vault session of a login that has a user account in the vault and read
access to the object; works for a normal user.
- `obj_file_ver.file_ver` must name a specific file version; `FILE_VER_TYPE_LATEST` fails with
"Not found. (File -0 not found.)". Files of external (unmanaged) objects
are not supported.
## Request: GetFileOutlineRequest
> 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 |
|---|---|---|
| `obj_file_ver` | [`ObjFileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjFileVer/index.md) | The object and the specific file version. |
| `obj_file_ver.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object that owns the file. |
| `obj_file_ver.obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `obj_file_ver.obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `obj_file_ver.file_ver` | [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | The specific file version, as in `File.file_ver`. |
| `obj_file_ver.file_ver.file_id` | [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The file. |
| `obj_file_ver.file_ver.type` | [`FileVerType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileVerType/index.md) | `FILE_VER_TYPE_SPECIFIC` for a file version number. Values: `FILE_VER_TYPE_UNINITIALIZED` (0), `FILE_VER_TYPE_LATEST` (1), `FILE_VER_TYPE_ANY` (2), `FILE_VER_TYPE_SPECIFIC` (3). |
| `obj_file_ver.file_ver.internal_version` | `int32` | The file version number. |
| `obj_file_ver.file_ver.external_repository_version` | `string` | Used only for files in external repositories. Leave empty. |
| `obj_file_ver.file_ver.external_repository_sort_key` | `int64` | Used only for files in external repositories. Leave 0. |
## Response: GetFileOutlineResponse
> 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 |
|---|---|---|
| `data_file_version` | `int32` | The version of the stored data file of this file version. |
| `file_outline` | [`FileOutline`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileOutline/index.md) | `size` in bytes (`size_precision` is `FILE_SIZE_PRECISION_EXACT`) and `md5_checksum` as 32 hexadecimal digits. |
| `file_outline.size` | `int64` | The size of the content in bytes, in the downloaded format. |
| `file_outline.size_precision` | [`FileSizePrecision`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileSizePrecision/index.md) | The file size precision. If the file size precision is 'exact', the size can be used for reading the file content. If the precision is 'unknown', the size field should not be used at all. Values: `FILE_SIZE_PRECISION_EXACT` (0), `FILE_SIZE_PRECISION_ESTIMATE` (1), `FILE_SIZE_PRECISION_UNKNOWN` (2). |
| `file_outline.md5_checksum` | `string` | The MD5 checksum as 32 hexadecimal digits, if requested; 32 zeros otherwise. |
## Related methods
- [IRPCObjectOperations.GetFileSize](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/GetFileSize/index.md): Gets the size of a specific file version in bytes.
- [IRPCObjectOperations.DownloadFile_Begin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/DownloadFile_Begin/index.md): Opens a download session for a file version and returns its ID, the content size and, on request, its MD5 checksum.
---
# IRPCDocumentOperationsFileIOInternal.UploadFileCommit2
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Document file I/O for server components](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/UploadFileCommit2/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `session or assertion` `returns metadata structure version`
Completes an upload made with UploadFile and stores it as the new content of the file; returns
only the data file version.
- **Service:** [Document file I/O for server components](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/index.md) `MFiles.IRPCDocumentOperationsFileIOInternal`
- **gRPC method:** `/MFiles.IRPCDocumentOperationsFileIOInternal/UploadFileCommit2`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/upload-file-commit2`
- **Request:** [`UploadFileCommit2Request`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/UploadFileCommit2/index.md#request)
- **Response:** [`UploadFileCommit2Response`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/UploadFileCommit2/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Required: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata).
- **Idempotent:** no
- **Returns metadata structure version:** yes (in the mfiles-metadata-version-bin trailer)
- **Streaming:** none (unary)
## Remarks
**For M-Files components only.** M-Files Server calls it on another M-Files Server to forward
[UploadFileCommit](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/UploadFileCommit/index.md). Applications should call
`UploadFileCommit`.
- Changes the file content of the object. The checks are those of `UploadFileCommit`: the object
must be checked out to the caller, and the caller needs edit access to it.
- Unlike `UploadFileCommit`, it does not fill in unset file times and returns no object version
information.
- Requires a vault session of a login that has a user account in the vault.
## Request: UploadFileCommit2Request
> 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 |
|---|---|---|
| `upload_id` | `int32` | The ID from [UploadFile](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/UploadFile/index.md). |
| `obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object that owns the file. |
| `obj_id.type` | `int32` | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
| `obj_id.item_id` | [`ItemID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemID/index.md) | The ID of the object within its type, in `item_id.internal_id`. |
| `obj_id.item_id.internal_id` | `int32` | The ID of the object or value list item. |
| `obj_id.item_id.external_repository_id` | [`ExternalRepositoryID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExternalRepositoryID/index.md) | Used only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault. |
| `file` | [`File`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.File/index.md) | The file and its new size. `title`, `extension` and `allocation_size` are ignored. |
| `file.file_ver` | [`FileVer`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileVer/index.md) | The file and its version. Pass it unchanged in an `ObjFileVer` to download the file. |
| `file.file_ver.file_id` | [`FileID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.FileID/index.md) | The file. |
| `file.file_ver.type` | [`FileVerType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileVerType/index.md) | `FILE_VER_TYPE_SPECIFIC` for a file version number. Values: `FILE_VER_TYPE_UNINITIALIZED` (0), `FILE_VER_TYPE_LATEST` (1), `FILE_VER_TYPE_ANY` (2), `FILE_VER_TYPE_SPECIFIC` (3). |
| `file.file_ver.internal_version` | `int32` | The file version number. |
| `file.file_ver.external_repository_version` | `string` | Used only for files in external repositories. Leave empty. |
| `file.file_ver.external_repository_sort_key` | `int64` | Used only for files in external repositories. Leave 0. |
| `file.title` | `string` | The file name without the extension. |
| `file.extension` | `string` | The file name extension without the dot, for example "pdf". |
| `file.size` | `int64` | The size of the file in bytes. Exact when `size_precision` is `FILE_SIZE_PRECISION_EXACT`. |
| `file.size_precision` | [`FileSizePrecision`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileSizePrecision/index.md) | How exact `size` is. Do not rely on `size` if it is `FILE_SIZE_PRECISION_UNKNOWN`. Values: `FILE_SIZE_PRECISION_EXACT` (0), `FILE_SIZE_PRECISION_ESTIMATE` (1), `FILE_SIZE_PRECISION_UNKNOWN` (2). |
| `file.created_at_utc` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The time in UTC the file was originally created. |
| `file.accessed_at_utc` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The time in UTC the file was last accessed (e.g. read). |
| `file.written_at_utc` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The time in UTC the file was last written to. |
| `file.changed_at_utc` | [`google.protobuf.Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) | The time in UTC the file was last written to or its attributes were changed. |
| `file.guid` | `string` | GUID of the file. |
| `file.md5_checksum` | `string` | The MD5 checksum of the file as 32 lowercase hexadecimal digits, if available. |
| `file.is_missing` | `bool` | True, if the file is missing. |
| `file.is_content_volatile` | `bool` | True, if the file physical content is volatile. I.e. the physical content can change without the version number change, as long as the logical content is same. The file content is guaranteed to stay physically consistent within single download session only. |
| `file.flags` | [`OBJECTFILEFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.OBJECTFILEFLAGS/index.md) | Object file flags. |
| `file.flags.all` | `bool` | Specifies all flags set; Including any future flags. |
| `file.flags.can_be_edited_externally` | `bool` | Next available value. |
| `file.master_storage_file_ref` | `string` | An optional File reference (GUID) to external Master Storage API. Only used with Master Storage, otherwise empty. |
| `low_digest` | `int64` | If not zero, specifies the low-order part of the MD5 checksum of the uploaded file. |
| `high_digest` | `int64` | If not zero, specifies the high-order part of the MD5 checksum of the uploaded file. |
## Response: UploadFileCommit2Response
> 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 |
|---|---|---|
| `data_file_version` | `int32` | The version of the stored data file of the new file content. |
## Related methods
- [IRPCObjectOperations.UploadFileCommit](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/UploadFileCommit/index.md): Completes an upload made with UploadFile and stores it as the new content of the file.
---
# Ground Link channel (IRPCGroundLink)
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/
The M-Files Ground Link channel: a long-lived two-way stream between a Ground Link proxy and the
M-Files Server that hosts the vault, typically in M-Files Cloud.
- **gRPC service:** `MFiles.IRPCGroundLink`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 1
- **Proto file:** [`mfiles/IRPCGroundLink.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCGroundLink.proto)
## Overview
**For M-Files components only.** M-Files Ground Link connects a vault, typically in M-Files Cloud,
to external repositories (connectors) that run on premises. The on-premises side, a Ground Link
proxy on an M-Files Server, opens the channel to the server that hosts the vault. Applications
should not call this service.
- **Who opens it and in which direction:** the Ground Link proxy calls
[OpenGroundLinkChannel](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/OpenGroundLinkChannel/index.md), a connection
from the premises to the vault's server. Over the open stream each side can send calls and
returns; typically the vault side calls the connector services on the premises.
- **What flows over it:** [GroundLinkMessage](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/OpenGroundLinkChannel/index.md#request)s that wrap .NET
remoting calls and their returns of the M-Files external connector framework. A response
carries the `id` of its request. The server does not interpret the messages; it hands them to
the vault's Ground Link application.
- **Authentication:** no M-Files session. The call metadata names the target vault and carries a
secret that the vault's Ground Link application checks.
- **Lifetime:** the channel stays open until either side closes it. The server closes all channels
of a vault when the vault stops accepting Ground Link connections, for example when it goes
offline.
## Methods
| Method | Summary | Facts |
|---|---|---|
| [OpenGroundLinkChannel](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/OpenGroundLinkChannel/index.md) | Opens a bi-directional Ground Link channel between the client and server. | `internal: not for applications` `write` `no session` `client streaming` `server streaming` |
---
# IRPCGroundLink.OpenGroundLinkChannel
Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Ground Link channel](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/index.md)
HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/OpenGroundLinkChannel/
Badges: `Server integration API / specialized` `internal: not for applications` `write` `no session` `client streaming` `server streaming`
Opens a bi-directional Ground Link channel between the client and server.
- **Service:** [Ground Link channel](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/index.md) `MFiles.IRPCGroundLink`
- **gRPC method:** `/MFiles.IRPCGroundLink/OpenGroundLinkChannel`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/open-ground-link-channel`
- **Request:** [`GroundLinkMessage`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/OpenGroundLinkChannel/index.md#request)
- **Response:** [`GroundLinkMessage`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCGroundLink/OpenGroundLinkChannel/index.md#request)
- **Book and level:** Server integration API, specialized
- **Kind:** write
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** client, server
## Remarks
**For M-Files components only.** The Ground Link proxy of M-Files Ground Link opens it.
Applications should not call it.
- Bidirectional streaming call without a session; see the service overview for the required
metadata. Missing vault or service metadata fails with "Vault and/or service headers are
missing."; a vault that does not accept Ground Link connections (its Ground Link application
is not running) fails with "Vault does not exist or is not accepting Ground Link connections.";
another service name fails with "Unknown Ground Link service."; an offline vault fails with a
vault-offline error.
- The server's initial response metadata carries `mfiles-max-message-size` (the largest message
the server accepts; a larger message makes gRPC close the stream) and
`mfiles-groundlink-split-message-support` = `1` (the vault side accepts a large message split
into parts), plus headers from the vault's Ground Link application.
## Request: GroundLinkMessage
Wrapper for passing .NET remoting messages over gRPC.
> 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 |
|---|---|---|
| `type` | [`GroundLinkMessageType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.GroundLinkMessageType/index.md) | Whether the message is a call (`REQUEST`) or the return of a call (`RESPONSE`). Values: `REQUEST` (0), `RESPONSE` (1). |
| `id` | `string` | The ID of the call. A response carries the ID of its request. |
| `uri` | `string` | The URI of the call, if any. Can be empty. |
| `headers` | `bytes` | The serialized .NET remoting message headers. |
| `data` | `bytes` | The serialized .NET remoting message. |
## Response: GroundLinkMessage
Wrapper for passing .NET remoting messages over gRPC.
> 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 |
|---|---|---|
| `type` | [`GroundLinkMessageType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.GroundLinkMessageType/index.md) | Whether the message is a call (`REQUEST`) or the return of a call (`RESPONSE`). Values: `REQUEST` (0), `RESPONSE` (1). |
| `id` | `string` | The ID of the call. A response carries the ID of its request. |
| `uri` | `string` | The URI of the call, if any. Can be empty. |
| `headers` | `bytes` | The serialized .NET remoting message headers. |
| `data` | `bytes` | The serialized .NET remoting message. |