How can we help? 👋

Storage Providers

Storage providers connect XEOX to your own file storage.

Storage providers connect XEOX to your own file storage. Once a provider is configured you can use it in automations to download files (for example installers or config files) onto managed devices and to upload files (for example logs or reports) from devices into your storage.

Files are transferred directly between the device and the storage provider. They never pass through XEOX, and the device never sees the provider's credentials. XEOX only hands the device a short-lived, pre-authorised link.

Supported provider types:

Type
Typical use
Amazon S3 / S3 compatible
Amazon S3, MinIO, DigitalOcean Spaces, Wasabi, Ceph and other S3 compatible services
SharePoint / OneDrive (Microsoft Graph)
A document library of a SharePoint site in your Microsoft 365 tenant
Nextcloud
A self-hosted or hosted Nextcloud instance
Note: Plain WebDAV servers are not supported. The Nextcloud provider needs the Nextcloud sharing API to create download and upload links.

Requirements

  • You need the Organisation administrator role to manage storage providers.
  • The Upload to storage provider action requires XEOX agent version 2.4.0.90 or newer on the device.
  • The storage backend must be reachable from the XEOX servers (for the connection test and file browser) and from your managed devices (for the actual file transfer).

Where to find storage providers

  1. Open Administration - Integrations.
  1. Click the Storage Providers card.
Notion image

The list shows all configured providers with their type, whether they are the default provider, and whether they are enabled.

Notion image

The  menu of each row offers Test connectionOpen file browser and Delete.

Notion image

How to create a storage provider

  1. In the storage provider list click Create.
  1. Select the Provider type. The type cannot be changed after the provider has been saved.
  1. Enter a Name. This name is shown in automations and file pickers.
  1. Fill in the Connection fields of the selected type (see the sections below).
  1. Click Test connection to verify the configuration. The result is shown directly below the connection fields.
  1. Click Save.
Notion image
Notion image
Notion image

Options

  • Use as default storage provider - uploads and automations use this provider unless another one is selected explicitly. Only one provider can be the default, and a disabled provider cannot be the default.
  • Enabled - disabled providers are kept but no longer offered in automations and file pickers. Automation actions that still reference a disabled provider fail until it is enabled again or a different provider is chosen.
Tip: When editing an existing provider, secret fields (secret key, client secret, app password) are shown empty. Leave them blank to keep the current value.

Amazon S3 / S3 compatible

Notion image

Prerequisites

  1. Create a bucket (or choose an existing one).
  1. Create an access key for a user that may access the bucket. The key needs the following permissions on the bucket:
      • s3:ListBucket
      • s3:GetObject
      • s3:PutObject
      • s3:DeleteObject

Example IAM policy for Amazon S3 (replace my-bucket):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": "arn:aws:s3:::my-bucket"
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}

Connection settings

Field
Description
Region
The region of the bucket, e.g. eu-central-1. For S3 compatible services enter the region name the service uses (e.g. fra1 for DigitalOcean Spaces, us-east-1 for most MinIO setups).
Bucket
Name of the bucket.
Endpoint (optional)
Leave empty for Amazon S3. For S3 compatible services enter the service URL, e.g. https://fra1.digitaloceanspaces.com or https://minio.example.com.
Key prefix (optional)
Folder inside the bucket that XEOX uses, e.g. xeox. All files are stored below this prefix.
Path style access
Enable for MinIO and most self-hosted S3 compatible services. Leave disabled for Amazon S3, DigitalOcean Spaces and Wasabi.
Access key
The access key ID.
Secret key
The secret access key.

Good to know

  • Download and upload links for S3 are valid for at most 7 days. Longer automation runtimes are capped at this limit.
  • A single upload from a device is limited to 5 GB per file.

Troubleshooting

Message
What to check
Signature mismatch (HTTP 403)
The secret key is wrong, or the Region does not match the service. For S3 compatible services the region must be the service's own region (e.g. fra1), not an AWS region.
Access denied (HTTP 403)
The access key is not allowed to list the bucket. Check the permissions above, and for S3 compatible services also check region, endpoint and Path style access.
Bucket not found (HTTP 404)
The bucket name or the endpoint is wrong.
Could not resolve the host
The endpoint URL contains a typo or is not reachable from XEOX.

SharePoint / OneDrive (Microsoft Graph)

XEOX stores files in the default document library of a SharePoint site. Access is granted through an app registration in Microsoft Entra ID (Azure AD) using application permissions, so no user account is needed.

Notion image

Prerequisites: create an app registration

  1. Sign in to the Azure portal as a global administrator.
  1. Open Microsoft Entra ID - App registrations - New registration.
  1. Enter a name (e.g. XEOX Storage), keep Accounts in this organizational directory only and click Register.
  1. On the overview page note the Application (client) ID and the Directory (tenant) ID.
  1. Open Certificates & secrets - New client secret. Choose an expiry and click Add. Copy the secret Value immediately, it is only shown once.
  1. Open API permissions - Add a permission - Microsoft Graph - Application permissions.
  1. Select Sites.ReadWrite.All and click Add permissions.
  1. Click Grant admin consent for <your tenant> and confirm.
Note: Without admin consent the connection test fails with an authorisation error.

Connection settings

Field
Description
Tenant ID
The Directory (tenant) ID from the app registration, or your tenant domain, e.g. contoso.onmicrosoft.com.
Application (client) ID
The Application (client) ID from the app registration.
Site URL
The full URL of the SharePoint site, e.g. https://contoso.sharepoint.com/sites/Team. Files are stored in the site's default document library (usually "Documents").
Folder (optional)
Folder inside the document library that XEOX uses, e.g. xeox.
Client secret
The client secret value from the app registration.

Good to know

  • A single upload from a device is limited to 60 MB per file.
  • Download links are valid for about one hour.
  • Client secrets expire. Create a new secret before the old one expires and update the provider, otherwise transfers stop working.

Troubleshooting

Message
What to check
Authentication failed / token error
Tenant ID, client ID or client secret is wrong, or the secret has expired.
Insufficient privileges / access denied
The application permission Sites.ReadWrite.All is missing or admin consent has not been granted. Make sure it is an application permission, not a delegated one.
Site not found
The Site URL is wrong. Use the URL of the site itself, not of a document library or folder.

Nextcloud

XEOX stores files in the files area of a Nextcloud user and creates public share links for downloads and uploads.

Notion image

Prerequisites

  1. Sharing via link must be allowed on the Nextcloud instance: Administration settings - Sharing - Allow users to share via link. For uploads from devices, Allow public uploads must be enabled as well.
  1. Create an app password for the Nextcloud user XEOX should use:
    1. Log in to Nextcloud as that user.
    2. Open Settings - Security.
    3. Under Devices & sessions enter a name (e.g. XEOX) and click Create new app password.
    4. Copy the generated password.
    5. App passwords also work when two-factor authentication is enabled for the user.

Connection settings

Field
Description
Nextcloud server URL
Base URL of the instance, e.g. https://cloud.example.com.
Nextcloud user
Login name of the user.
Folder (optional)
Folder inside the user's files that XEOX uses, e.g. xeox. It is created automatically if it does not exist.
App password
The app password created above.
Recommendation: Set a Folder. Nextcloud cannot create upload links for the root folder of a user, so uploads from devices only work into a folder. If no folder is configured, a folder has to be picked in the upload action.

Good to know

  • Share links created by XEOX expire automatically. If your Nextcloud administrator enforces a maximum link lifetime, XEOX uses that limit.
  • The maximum upload size is limited by the free quota of the Nextcloud user.
  • Only real Nextcloud instances are supported. A plain WebDAV server is rejected by the connection test.

Troubleshooting

Message
What to check
Authentication failed (check username / app password)
The user name or app password is wrong.
The server does not offer the Nextcloud sharing API (OCS)
The URL does not point at a Nextcloud instance, or it points at a sub path (e.g. the WebDAV endpoint) instead of the base URL.
Share creation rejected
Sharing via link is disabled for the user or the instance. Check the sharing settings above.
Cannot create an upload link in the root folder
Set a Folder on the provider or pick a folder in the upload action.

Browsing files

Click Open file browser (in the row menu or on the provider page) to see the files XEOX can access. The browser is read-only: files are managed in the storage backend itself. Click the link icon next to a file to generate a temporary download link.

Notion image

Using storage providers in automations

Two automation actions use storage providers:

  • Download from storage provider - downloads a file from the provider onto the target device. Pick the provider, choose the file in the file browser and optionally set a destination directory. Without a destination the file is downloaded to the task's working directory.
  • Upload to storage provider - uploads a file from the target device into a folder of the provider. Enter the full path of the file on the device (e.g. C:\logs\report.zip), pick the provider and the destination folder, and optionally a new file name.

The results of these actions are shown in the task result under Download results and Upload results, including the storage provider, the file key, transfer size, speed and checksum. Generate download link creates a temporary link (15 minutes to 24 hours) to fetch an uploaded file.

Managing storage providers

  • Edit - click the provider name in the list. The provider type cannot be changed; create a new provider instead.
  • Disable - untick Enabled on the provider page. The provider is kept but no longer offered in automations and file pickers.
  • Delete - choose Delete from the row menu. Files that were stored through the provider are not deleted in the backend, but they are no longer accessible from XEOX.
 
Did this answer your question?
😞
😐
🤩