Media library
The Media library screen lets you upload images, audio, video and PDF files, see how they were classified and
filtered by the DLP, and delete them. Portal path: /multimodal/media. Developers use it to prepare the media of
multimodal jobs; security officers use it to remove a media.
What the screen shows
Two tabs:
- Library: the media of the tenant, with their number on the tab. Columns: Id, Media type, Operation, MIME type, Size (bytes), Classification, DLP action, Created. Above the table, a Media id field and the Open button add a media to the list by its id. Without any media, the screen shows "No media yet" with an Upload button that opens the other tab.
- Upload media: a File field (images, audio, video, PDF), an Operation selector and the Upload button; the answer appears as JSON after the upload. Files are scanned, classified, checked by the DLP and stored encrypted.
The operations are Document extraction (default), OCR, Vision understanding, Image generation, Image edit, Video processing, Video generation, Speech to text, Diarization, Text to speech and Live voice.
The list comes from the API (the 100 first media). When the API cannot list (404 or 405 from an older version), the portal falls back on the ids remembered by this browser; in that mode the row menu also offers Hide, which only removes the id from the local list.
Actions
| Button or action | What it does | API call | Roles |
|---|---|---|---|
| Opening Library | Lists the media | GET /v1/media | any tenant user |
| Open | Adds the id to the list; in fallback mode, reads the media | GET /v1/media/{media_id} | any tenant user |
| Upload | Sends the file as multipart with the operation | POST /v1/media | any tenant user |
| Hide (row menu, fallback mode only) | Removes the id from the list of this browser | none | any user |
| Delete (row menu) | Asks a confirmation, then deletes the media | DELETE /v1/media/{media_id} | the creator, tenant_admin or security_officer |
Roles
The portal hides no button. In services/control-plane/src/eai/domains/multimodal/__init__.py any user of the tenant
uploads and lists; a media is deleted by its creator, a tenant_admin or a security_officer, and never while a legal
hold covers it. Every upload goes through the file security chain before storage.
Typical tasks
Upload a document for extraction
-
Choose the file. The operation tells the platform what the media is for. Open Upload media, choose the File and keep Operation on Document extraction.
Expected result: the Upload button is enabled.
If it fails: the button stays disabled until a file is chosen.
-
Upload it. Click Upload.
Expected result: the toast "Media uploaded" and the JSON answer with the id, the classification and the DLP block.
If it fails:
media_too_largegives the size limit inmax_bytes;file_blockedmeans the scan refused it. -
Reuse the id. Copy the Id from Library into the Media id field of a job in Multimodal jobs.
Expected result: the job reads the media.
If it fails:
unsupported_mediameans the media type does not fit the job (an image for vision, audio for speech).
Delete a media
-
Delete it. Open the row menu, choose Delete and confirm.
Expected result: the row disappears.
If it fails:
legal_holdmeans a hold protects it;forbiddenmeans you are not its creator.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
media_too_large (413) | The file is above the media size limit | Upload a smaller file |
file_blocked (422) | The antivirus, YARA or validation step refused the file | See File security |
invalid_request (400) with required file | The multipart body has no file part | Choose a file again |
forbidden (403) on Delete | You are not the creator, nor tenant_admin or security_officer | Ask a security officer |
legal_hold (409) on Delete | A legal hold covers the media | Release it in Retention |
A media opened by id shows the status error | The id does not exist or you cannot read it (fallback mode) | Check the id, then Hide it |