File connector
Limited access
What it is
Every organization has a file space on the platform: a directory tree of its own that the file connector manages over HTTP, and that the AI services see as a mounted volume. It is where a trainer’s input file lives, where the time series export writes its Parquet file, where the image plan reads its photographs and writes its heat maps. Nothing outside the organization can reach it.
| To | Call |
|---|---|
| Upload a file or an archive | POST /fileConnector/organizations/{organizationId}/upload |
| List a directory | GET /fileConnector/organizations/{organizationId}/list?path=… |
| Download a file | GET /fileConnector/organizations/{organizationId}/download?path=… |
| Delete a file or a directory | POST /fileConnector/organizations/{organizationId}/delete |
All paths are relative to the organization’s root. Wildcards are not supported. Authentication is the
X-ApiKey header.
Uploading
A multipart request with two parts:
| Part | Content |
|---|---|
meta |
JSON with destinyPath, the directory to write into (created if missing), and overwriteFiles, whether existing files may be replaced. Default true |
file |
The file itself |
Archives are unpacked, not stored. A .zip, .tar, .tar.gz or .tar.bz2 — recognised by its MIME type —
is extracted into destinyPath, which is how the image plan’s correct/ and incorrect/ folders are uploaded in
one request. Any other file is stored as it is.
204 means everything was written. 200 with an error list means a partial upload: overwriteFiles was
false and some files already existed; the list names them.
Listing
For a directory, the first entry named . is the directory itself, followed by its children. For a file, just
that file. A path that matches nothing is a 400.
Downloading
Returns the file’s bytes. This is how you retrieve a heat map the image plan wrote next to a photograph.
Deleting
With fileName, deletes that file inside destinyPath. With fileName omitted or null, deletes the whole
destinyPath directory. 204 on success, 404 if there was nothing to delete.
How the AI services see it
| Service | Sees the file space as |
|---|---|
| A training job | /data. A trainer’s source.path of radius/sessions.parquet becomes dataSourcePath=/data/radius/sessions.parquet |
| A time-series trainer | The export writes <model>-<plan>-<time series>.parquet at the root, and the job reads it from /data/ |
| An inferencer | /data. The image plan’s image_route is resolved against it, and the heat map is written beside the image |
So the console’s file browser in the trainer wizard, the list endpoint and the paths a rule sends to an
inferencer all name the same files.