---
title: "dmp.egnyte"
canonical: "https://docs.devo.com/space/latest/714833929/dmp.egnyte"
format: markdown
---
> Macro (toc)

## Introduction

The tags beginning with `dmp.egnyte` identify events generated by [Egnyte](https://www.egnyte.com/).

## Valid tags and data tables 

The full tag must have 4 levels. The first two are fixed as** **`dmp.egnyte`. The third level identifies the type of events sent. The fourth level indicates the event subtype.

These are the valid tags and corresponding data tables that will receive the parsers' data:

| **Product / Service** | **Tags** | **Data tables** |
| --- | --- | --- |
| Egnyte | `dmp.egnyte.object_storage.comment` | `dmp.egnyte.object_storage.comment` |
| `dmp.egnyte.object_storage.file_system` | `dmp.egnyte.object_storage.file_system` |
| `dmp.egnyte.object_storage.link` | `dmp.egnyte.object_storage.link` |
| `dmp.egnyte.object_storage.permission` | `dmp.egnyte.object_storage.permission` |

For more information, read more [About Devo tags](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95126204).

## How is the data sent to Devo?

You can send events to the `dmp.egnyte` tables via webhook. Follow these steps to create the required webhook creation request:

> Macro (rw-ui-steps-macro)
> 
> > Macro (rw-step)
> 
> First, you need to create a token in Egnyte following [this documentation](https://developers.egnyte.com/docs/read/Public_API_Authentication). This is an example using cURL:
> 
> ```
> curl -v --request POST -H "Content-Type: application/x-www-form-urlencoded" -d grant_type=password -d username=<USERNAME> -d password=<PASSWORD> -d scope=Egnyte.webhooks -d client_id=<ID> -d client_secret=<SECRET> https://<domain>.egnyte.com/puboauth/token
> ```
> 
> > Macro (rw-step)
> 
> Then, generate an HTTP token in Devo following the instructions in [this article](https://docs.devo.com/space/latest/94658823). This is also required for the webhook.
> 
> > ⚠️ You must select the `event` mode when you create your Devo HTTP endpoint.
> 
> > Macro (rw-step)
> 
> Generate the required webhook creation request for each `dmp.egnyte` table. Find below an example for each one:
> 
> #### dmp.egnyte.object_storage.comment
> 
> ```
> curl --location 'https://<domain-name>.egnyte.com/pubapi/v1/webhooks' \
> --header 'Content-Type: application/json' \
> --header 'Authorization: Bearer ••••••' \
> --data '{
>   "eventType": ["comment:*"],
>   "url": "https://http-us.devo.io/event/<DOMAIN>/token!<TOKEN>/webhook_egnyte/dmp.egnyte.object_storage.comment"
> }'
> ```
> 
> #### dmp.egnyte.object_storage.file_system
> 
> ```
> curl --location 'https://<domain-name>.egnyte.com/pubapi/v1/webhooks' \
> --header 'Content-Type: application/json' \
> --header 'Authorization: Bearer ••••••' \
> --data '{
>   "eventType": ["fs:*"],
>   "url": "https://http-us.devo.io/event/<DOMAIN>/token!<TOKEN>/webhook_egnyte/dmp.egnyte.object_storage.file_system"
> }'
> ```
> 
> #### dmp.egnyte.object_storage.link
> 
> ```
> curl --location 'https://<domain-name>.egnyte.com/pubapi/v1/webhooks' \
> --header 'Content-Type: application/json' \
> --header 'Authorization: Bearer ••••••' \
> --data '{
>   "eventType": ["link:*"],
>   "url": "https://http-us.devo.io/event/<DOMAIN>/token!<TOKEN>/webhook_egnyte/dmp.egnyte.object_storage.link"
> }'
> ```
> 
> #### dmp.egnyte.object_storage.permission
> 
> ```
> curl --location 'https://<domain-name>.egnyte.com/pubapi/v1/webhooks' \
> --header 'Content-Type: application/json' \
> --header 'Authorization: Bearer ••••••' \
> --data '{
>   "eventType": ["permission:*"],
>   "url": "https://http-us.devo.io/event/<DOMAIN>/token!<TOKEN>/webhook_egnyte/dmp.egnyte.object_storage.permission"
> }'
> ```

If everything went fine, you would get a response similar to this one:

```
{
    "webhookId": "e253dea5-5b0e-4e7c-b812-231d3663b9ae",
    "expires": 2100000000,
    "status": "enabled"
}
```

Otherwise, you would get the corresponding error, for instance:

- Error in the Egnyte domain:

```
{"message":"Authorization didn't match Egnyte domain","code":"auth_processing_error"}
```

- Scope `Egnyte.webhook` is not provided:

```
{"message": "Missing scope. Scopes to access this API: Egnyte.webhooks","code":"scope_error"}
```

## Table structure

These are the fields displayed in these tables:

- [dmp.egnyte.object_storage.comment](#tag1)
- [dmp.egnyte.object_storage.file_system](#tag2)
- [dmp.egnyte.object_storage.link](#tag3)
- [dmp.egnyte.object_storage.permission](#tag4)

### > Macro (anchor)

dmp.egnyte.object_storage.comment

| **Field** | **Type** | ***Extra***** fields** |
| --- | --- | --- |
| *eventdate* | `timestamp` |  |
| *machine* | `str` |  |
| *event_id* | `str` |  |
| *domain* | `str` |  |
| *timestamp* | `timestamp` |  |
| *id* | `str` |  |
| *client_id_hash* | `str` |  |
| *display_name* | `str` |  |
| *username* | `str` |  |
| *email* | `str` |  |
| *impersonated_by* | `str` |  |
| *action_source* | `str` |  |
| *webhook_id* | `str` |  |
| *event_type* | `str` |  |
| *target_path* | `str` |  |
| *comment* | `str` |  |
| *hostchain* | `str` | **✓** |
| *tag* | `str` | **✓** |
| *rawMessage* | `str` | **✓** |

### > Macro (anchor)

dmp.egnyte.object_storage.file_system

| **Field** | **Type** | ***Extra***** fields** |
| --- | --- | --- |
| *eventdate* | `timestamp` |  |
| *machine* | `str` |  |
| *event_id* | `str` |  |
| *domain* | `str` |  |
| *timestamp* | `timestamp` |  |
| *id* | `str` |  |
| *client_id_hash* | `str` |  |
| *display_name* | `str` |  |
| *username* | `str` |  |
| *email* | `str` |  |
| *impersonated_by* | `str` |  |
| *action_source* | `str` |  |
| *webhook_id* | `str` |  |
| *event_type* | `str` |  |
| *target_entry_id* | `str` |  |
| *target_group_id* | `str` |  |
| *target_file_checksum* | `str` |  |
| *target_path* | `str` |  |
| *source_path* | `str` |  |
| *hostchain* | `str` | **✓** |
| *tag* | `str` | **✓** |
| *rawMessage* | `str` | **✓** |

### > Macro (anchor)

dmp.egnyte.object_storage.link

| **Field** | **Type** | ***Extra***** fields** |
| --- | --- | --- |
| *eventdate* | `timestamp` |  |
| *machine* | `str` |  |
| *event_id* | `str` |  |
| *domain* | `str` |  |
| *timestamp* | `timestamp` |  |
| *id* | `str` |  |
| *client_id_hash* | `str` |  |
| *display_name* | `str` |  |
| *username* | `str` |  |
| *email* | `str` |  |
| *impersonated_by* | `str` |  |
| *action_source* | `str` |  |
| *webhook_id* | `str` |  |
| *event_type* | `str` |  |
| *source_path* | `str` |  |
| *link_id* | `str` |  |
| *link_type* | `str` |  |
| *link_url* | `str` |  |
| *hostchain* | `str` | **✓** |
| *tag* | `str` | **✓** |
| *rawMessage* | `str` | **✓** |

### > Macro (anchor)

dmp.egnyte.object_storage.permission

| **Field** | **Type** | ***Extra***** fields** |
| --- | --- | --- |
| *eventdate* | `timestamp` |  |
| *machine* | `str` |  |
| *event_id* | `str` |  |
| *domain* | `str` |  |
| *timestamp* | `timestamp` |  |
| *client_id_hash* | `str` |  |
| *impersonated_by* | `str` |  |
| *webhook_id* | `str` |  |
| *event_type* | `str` |  |
| *assigner* | `str` |  |
| *assignee_id* | `int4` |  |
| *folder_path* | `str` |  |
| *new_privilege* | `str` |  |
| *group_name* | `str` |  |
| *old_privilege* | `str` |  |
| *assignee* | `str` |  |
| *assigner_id* | `int4` |  |
| *hostchain* | `str` | **✓** |
| *tag* | `str` | **✓** |
| *rawMessage* | `str` | **✓** |