# IRPCServerDataPush.OpenServerDataPush

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Vault API](https://developer.m-files.com/APIs/gRPC-API/vault/index.md) > [Server push](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCServerDataPush/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCServerDataPush/OpenServerDataPush/

Badges: `Vault API / standard` `write` `session` `server streaming`

Opens the session's push channel: a stream of requests and notifications from the server.

- **Service:** [Server push](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCServerDataPush/index.md) `MFiles.IRPCServerDataPush`
- **gRPC method:** `/MFiles.IRPCServerDataPush/OpenServerDataPush`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/open-server-data-push`
- **Request:** [`OpenServerDataPushRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCServerDataPush/OpenServerDataPush/index.md#request)
- **Response:** [`ServerDataPushItem`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCServerDataPush/OpenServerDataPush/index.md#response)
- **Book and level:** Vault API, standard
- **Kind:** write
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** server

<a id="remarks"></a>

## Remarks

- Requires a vault session in `mfiles-session-id-bin`; without one the call fails with
  `UNAUTHENTICATED`. No special vault rights are needed.
- The stream has no deadline on the server side and sends nothing while there is nothing to
  push. It ends with status `OK` when another stream is opened for the same session or when
  the session logs out.
- Requests queued while no stream was open are sent first. A queued request whose waiting call
  has already given up arrives with `response_id` 0.
- See the service overview for the message types and the timing rules.

<a id="request"></a>

## Request: OpenServerDataPushRequest

Request to open the server data push channel.

No fields.

<a id="response"></a>

## Response: ServerDataPushItem

One push message from the server: a request or a notification for the client.

> 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 |
|---|---|---|
| `activity_id` | `string` | The activity ID of the client call that caused the request, as a GUID string in braces. Use it to tie the request to the call that is waiting for it. A GUID of zeros for notifications that no call is waiting for. |
| `response_id` | `int32` | The ID to send back in [SendDataPushResponse](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCServerDataPush/SendDataPushResponse/index.md). Respond only to request types that need a response, and never when the ID is 0. |
| `request_data` | [`ServerDataPushRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ServerDataPushRequest/index.md) | What the server asks for or tells. See [ServerDataPushRequest](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ServerDataPushRequest/index.md). |
| `request_data.type` | [`ServerDataPushRequestType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ServerDataPushRequestType/index.md) | Request type. Values: `SERVER_DATA_PUSH_REQUEST_TYPE_UNINITIALIZED` (0), `SERVER_DATA_PUSH_REQUEST_TYPE_ELECTRONIC_SIGNATURE_REQUEST` (1), `SERVER_DATA_PUSH_REQUEST_TYPE_EXTENSION_AUTHENTICATION_REQUEST` (2), `SERVER_DATA_PUSH_REQUEST_TYPE_OBJECTS_CHANGED_NOTIFICATION` (3). |
| `request_data.data` | [`ServerDataPushRequestUnion`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ServerDataPushRequestUnion/index.md) | The actual message data. |
| `request_data.data.electronic_signature_request` | [`ElectronicSignatureRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ElectronicSignatureRequest/index.md) (oneof data) | Electronic signature request. |
| `request_data.data.extension_authentication_request` | [`ExtensionAuthenticationRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ExtensionAuthenticationRequest/index.md) (oneof data) | Extension authentication request. |
| `request_data.data.objects_changed_notification` | [`ObjectsChangedNotification`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjectsChangedNotification/index.md) (oneof data) | Objects changed notification. |
