Contextator
ENTR

Sources

Upload Source

Dropping files, folders and archives onto the dashboard for documentation that has no other home, and the limits that apply to it.

Updated:

Documentation that is not on the server and not in a repository: drop it onto the dashboard. Files, whole folders with their structure, and archives are unpacked and stored server-side.

This is the right source for a zip someone emailed you, an export from another tool, or a folder on your laptop that has no other home.

Adding one

Add source → Upload files

Field Notes
Name The mount prefix. Immutable
Content type Plain Markdown / text, Notion export for a Notion Export → Markdown & CSV zip, or OpenAPI / Swagger for uploaded specifications
File types .md and .mdx by default; .txt, .html/.htm, .csv, .docx and .pdf can be selected too — anything else in the upload is dropped

Then drop files onto the dropzone, or use Choose folder / Choose files. Folders keep their structure. Progress is shown per file, and large folders are split across several requests automatically.

Finally choose how the upload is applied:

Mode Effect
Add to existing files Merges into what the source already holds; same-path files are overwritten
Replace all files The source’s contents become exactly what you uploaded

Saving commits the upload and queues an index run.

Archives

.zip, .tar, .tar.gz / .tgz and .rar are unpacked on the server. Extraction is deliberately strict:

  • entries that would escape the destination are rejected;
  • dot-directories (.git/, .obsidian/, …) are dropped;
  • names that are not portable across platforms are rejected;
  • files whose extension the source does not index are skipped;
  • the entry count and total size are capped (ARCHIVE_MAX_ENTRIES, ARCHIVE_MAX_TOTAL_BYTES);
  • archives inside the archive are unpacked one level deep — which is what a Notion export needs, since it ships Part-1.zip inside the zip.

Anything skipped is reported back to you rather than silently dropped, so you can see exactly what was and was not taken.

Managing the files

Files on an upload source row lists what the source currently holds. Individual files can be deleted from there, which re-indexes the project.

The files live under DATA_DIR inside the container (/data by default), in a directory belonging to that source. They are deleted with the source and with the project — see Backup and Data for how to back them up.

An upload source is the only copy of its content. Unlike a git source (re-clonable) or a Notion source (re-pullable), a deleted upload source’s files are gone. Include the contextator-data volume in your backups.

Keeping it up to date

There is nothing to sync — upload again when the content changes, choosing Add or Replace.

If the same content also lives in a repository or on the server, prefer a git source or a local directory instead: both update themselves.

Limits

Setting Default
UPLOAD_MAX_FILE_BYTES 50 MB per file
UPLOAD_MAX_FILES_PER_REQUEST 500 files per request (the dashboard splits larger folders)
UPLOAD_MAX_ARCHIVE_BYTES 256 MB per archive
ARCHIVE_MAX_ENTRIES 20 000 entries
ARCHIVE_MAX_TOTAL_BYTES 1 GB extracted

All of them are configurable — see Configuration.

Uploading a vault or an export

  • Obsidian vault — use the dedicated Obsidian vault tab; it is an upload source with the right content type already selected. See Obsidian Vaults.
  • Notion export zip — use Upload files with content type Notion export, which strips the 32-character page ids Notion appends to every file and folder name. See Content Types.

Arrow keys to move, Enter to open.