DocShell.Generate.Collection.ArtifactTree (DocShell v0.4.0)

Copy Markdown View Source

Reads a manifested collection tree with bounded, path-checked filesystem I/O.

Every path component is inspected before reading, including root spellings ending in / or /.. Existing ancestors of the current working directory and system temporary directory are trusted anchors, allowing platform aliases such as macOS /var. Symlinks at or below the requested root are never allowed. Other symlink components are rejected. Parent traversal is not accepted.

The caller must own a stable tree: portable path-based checks and reads cannot defeat a hostile concurrent directory replacement. No working-directory changes, source fetching, or authentication happen here. Bytes, aggregate bytes, manifest entries and nesting are checked before costly provenance work.

Summary

Functions

Loads all validated envelopes from a stable tree within the admitted budgets.

Functions

load(root, limits)

@spec load(String.t(), DocShell.Generate.Collection.Limits.t()) ::
  {:ok, String.t(), map()} | {:error, term()}

Loads all validated envelopes from a stable tree within the admitted budgets.