github xiao-villamor/PrintStash v0.6.0
0.6.0 — NAS External Libraries

latest releases: v0.13.0, v0.12.1, v0.12.0...
3 months ago

0.6.0 - NAS External Libraries

Mirror a folder you already have — typically on a NAS — into PrintStash without
copying it. The folder stays the source of truth; PrintStash indexes files
where they live and stores only thumbnails and metadata.

Highlights

  • External libraries (NAS folder mirroring). Point PrintStash at a folder
    and it indexes every supported file in place (File.is_external), storing
    only the generated thumbnail + metadata. Opt-in and OFF by default
    (SystemConfig.external_libraries_enabled). Manage libraries in Settings
    (superuser only).
  • Two-way sync. A scan reconciles the index with the folder — new files
    indexed, removed files trashed, edited files re-hashed and refreshed — while
    web uploads/revisions write back into the folder so it stays complete.
    Revisions follow their model's library automatically; new uploads pick a
    destination in the upload modal.
  • Folder hierarchy → collections. In MIRROR mode a file's subfolder chain
    becomes its collection path; SINGLE mode routes everything into one chosen
    collection.
  • Your bytes are never touched. PrintStash only ever adds files to the
    folder (collision-safe naming), never overwrites. Trash hard-delete and the
    orphan-blob GC skip external files entirely — removing a model or a library
    drops the index rows but leaves the originals on the NAS.
  • Unmount safety. A scan aborts without deleting anything when the root is
    missing/unreadable, or empty while indexed files still exist — an unmounted
    share can never trigger mass deletion.
  • Periodic background scans. Enabled libraries are rescanned on their
    configured interval; manual scan available via the API and UI.

Reliability

  • Fixed: the periodic scan scheduler crashed on a naive/aware datetime
    comparison (last_scanned_at reads back from the DB without tzinfo), which
    the scan loop swallowed — silently stopping scheduled scans after each
    library's first run. Normalised via core.time.ensure_utc.
  • Fixed: the frontend e2e suite broke once the upload modal began probing
    /api/v1/config for the NAS feature flag — the mock API now serves the vault
    config (and /libraries), and a new e2e case covers the upload modal's NAS
    write-back destination selector.
  • Real-use-case test suites for NAS mirroring (safety invariants, write-back,
    reconcile, scheduler, full API round trip) and for ingestion/revisions driven
    by real STL/3MF/g-code fixtures. Frontend unit tests pin the External
    Libraries API client and the external_libraries_enabled config flag.

Don't miss a new PrintStash release

NewReleases is sending notifications on new releases.