Egnyte enables users to create custom apps to support tailored actions and workflows. The UI Integration Framework allows these apps to integrate with the Egnyte Web UI and expose custom actions.
Skip Ahead To...
How to get started
Acessing the Custom Integration
Modify Custom App
How it works
Limitation
How to get started
An Admin can add their own app from the Apps & Integrations page.
- Scroll to the bottom and click on Create in the Create custom app tile.
-
Click on Select file and select a manifest .json file.
Here is a sample manifest file for testing:{ "appId": "exampleuint", "name": "Example UI Integration", "company": { "name": "Partner Integrations team" }, "support": { "web": "https://cc.sj-cdn.net" }, "categories": [], "userSettings": "https://egnyte.egnyte.com/exampleuint/staticapp/settings.html", "appLogo": "https://egnyte.egnyte.com/exampleuint/staticapp/tool.png", "type": "egnyte_u", "industries": [], "description": "Example UI Integration for Custom Application.", "screenshots": { "images": [ "https://cc.sj-cdn.net/instructor/253npnay2ssjj-egnyte/catalog_page/v14j0lmy0lzh/tile-image.1767722292.png", "https://cc.sj-cdn.net/instructor/253npnay2ssjj-egnyte/catalog_page/2ow7drugt1rov/tile-image.1767724053.png", "https://cc.sj-cdn.net/instructor/253npnay2ssjj-egnyte/catalog_page/v7swl4fjeky8/tile-image.1767728140.png" ] }, "apiKey": "cabb83n7yqgy35qq8q44g65h", "integrations": { "myAllAction": { "entryPoint": "context_menu", "types": ["file", "folder"], "accessLevel": "selection", "serviceUrl": "https://egnyte.egnyte.com/exampleuint/service", "selectionQuantity": "single", "invocationMethod": "post_to_tab", "icon": "https://egnyte.egnyte.com/exampleuint/staticapp/tool.png", "text": "hello, I'm here", "scope": ["Egnyte.filesystem", "Egnyte.permission", "Egnyte.user", "Egnyte.launchwebsession"] }, "myShareAction": { "entryPoint": "context_menu", "types": ["file", "folder"], "actionType": "share", "accessLevel": "selection", "serviceUrl": "https://egnyte.egnyte.com/exampleuint/service", "selectionQuantity": "single", "invocationMethod": "post_to_tab", "icon": "https://egnyte.egnyte.com/exampleuint/staticapp/tool.png", "text": "sharing is caring" }, "myOpenAction": { "entryPoint": "context_menu", "types": ["file", "folder"], "actionType": "open", "accessLevel": "selection", "serviceUrl": "https://egnyte.egnyte.com/exampleuint/service", "selectionQuantity": "single", "invocationMethod": "post_to_tab", "icon": "https://egnyte.egnyte.com/exampleuint/staticapp/tool.png", "text": "choose me!" }, "myEditAction": { "entryPoint": "context_menu", "allowedPaths": ["/Shared/*"], "types": ["file"], "accessLevel": "selection", "serviceUrl": "https://egnyte.egnyte.com/exampleuint/service", "extensions": ["png", "jpg"], "permissionLevels": ["Owner", "full"], "selectionQuantity": "single", "invocationMethod": "post_to_tab", "icon": "https://egnyte.egnyte.com/exampleuint/staticapp/tool.png", "text": "edit a single image (custom icon)" }, "myEditActionFAIcon": { "entryPoint": "context_menu", "allowedPaths": ["/Shared/*"], "types": ["file"], "accessLevel": "selection", "serviceUrl": "https://egnyte.egnyte.com/exampleuint/service", "extensions": ["png", "jpg"], "permissionLevels": ["Owner", "full"], "selectionQuantity": "single", "invocationMethod": "post_to_tab", "icon": "plus-circle", "text": "edit a single image (fontawesome icon)" }, "myViewAction": { "entryPoint": "context_menu", "serviceUrl": "https://egnyte.egnyte.com/exampleuint/service", "types": ["file", "folder"], "selectionQuantity": [2, 5], "invocationMethod": "post_to_tab", "text": "open multiple items", "icon": "https://egnyte.egnyte.com/exampleuint/staticapp/tool.png", "tooltip": "hello, I'm a tooltip" }, "myMoreAction": { "entryPoint": "more_menu", "serviceUrl": "https://egnyte.egnyte.com/exampleuint/service", "types": ["folder"], "selectionQuantity": "single", "invocationMethod": "post_to_tab", "text": "perform a folder action from more menu", "icon": "https://egnyte.egnyte.com/exampleuint/staticapp/tool.png", "tooltip": "hello, I'm a tooltip" }, "myNewAction": { "entryPoint": "new_menu", "serviceUrl": "https://egnyte.egnyte.com/exampleuint/service", "types": ["folder"], "invocationMethod": "post_to_tab", "text": "perform a folder action from new menu", "icon": "https://egnyte.egnyte.com/exampleuint/staticapp/tool.png", "tooltip": "hello, I'm a tooltip" } } } - Click on Create.
- App manifest will be successfully added. Click on Enable Integration to enable the integration.
- Select the desired option and click on Save.
The application settings will be updated accordingly and the user will be notified.
Once the Custom Application is loaded it will show in the Apps & Integrations page with a Custom Banner.
Back to Top...
Acessing the Custom Integration
Users can access these integrations from the context menu or from the three-dots icon -> Integrations in the top menu bar.
Back to Top...
Modify Custom App
Editing Custom App
- Admins can re-upload a new manifest file if needed by clicking the Custom App Configuration button inside of the Application.
- Click on Select File and select a new file. Click on confirm to make changes to the app configuration.
Deleting Custom App
Click on the Delete App option within the app configuration.
Click on Delete to confirm.
The user will be notified of the deletion.
Back to Top...
How it works
Basic Concepts
App definition: A json file with metadata about the app necessary to register a Custom Application.
Invocation: The process of calling the custom app from Egnyte UI.
Invocation's access token: The token sent with the invocation is scoped to allow access to the FS API, Users API, and Permissions API. A different scope can be requested by specifying it in the API definition. See the App Definition documentation for details.
Public API Key: This is a key that can be registered for a Egnyte domain from developers.egnyte.com
UI Integration Framework: This is the framework that allows Custom Applications to be shown in the Egnyte UI.
Detailed Documentation
- UI Invocation flow
- App definition docs
- For the app definition, only the integrations field needs to be entered manually; all other fields are provided separately in the App Definition form.
- User and domain Settings - Settings are available if needed; however, it is recommended to design UI integrations without a dedicated settings screen and instead prompt for settings during the first invocation.
- API Keys can be found in developers.egnyte.com
Back to Top...
Limitation
- Admins can create up to 5 custom applications. They will get an error message if the limit is reached.