Generated from cat-harness/skills/library/large-datasets/sample-import.md — do not edit here.

✎ Edit this page’s source

Sample import

The SDLC for trying out a remote source before committing to it: take a sample, land it, import it into the store you care about, and find out what breaks. The process is cat-harness/processes/library/sample-import.bpmn. IRIS is the worked instance (the IRIS replica); nothing here is WHO-specific.

The gates are not here

Size, restrictions, copyright, retention and source loss are asked once, by materialize-remote, and this process only reads the outcome. Bean hpax: “neither has its own copy of the four gates.” A second copy would be a second answer free to disagree with the first.

What each gate refuses on is in that skill. What this skill adds is what happens around it.

1. Scope — three answers before anything is fetched

questionwhy it is asked first
Which items? By the source’s identifiers, or a subset strategy its descriptor (in the owning instance’s declared sources/, e.g. The IRIS replica’s sources/) supports.the size gate needs a request to measure
Which store? The graph or database the import is tested against.the test in step 4 is against this store’s schema
Permanent or trial?it decides where the copy lands, and moving a landed copy later means moving it under the wrong obligations

There is no default for the third. An unscoped sample goes back to the person who proposed it.

2. Materialize — call, and branch on the outcome

Call Process_MaterializeRemote. referenced (any gate refused or unknown) ends the sample: nothing is imported, and the refusing gate’s reason is recorded so the next attempt does not re-litigate it.

3. Land it where its permanence says

Owner, 2026-09-23: “if sample-import is not intended to be permanent, materialise to fsh-guts”.

permanenttrial
destinationlibrary/fsh-guts/
publishedyes, with the libraryno — kept, addressable, exported, never rendered
refreshedyes, by refresh-materializedno — it records what the source looked like when tried
provenancethe materialization record$schema: folio-fsh-guts/v1, plus the bean or issue it was written under. Never a movedFrom: it was not moved from anywhere, and inventing one is false provenance.

Promoting a trial means running the process again with permanent. The gates are asked afresh; a trial’s answers were given for a trial.

4. Import and test

Load the landed sample into the store and check:

  • completeness — every requested item arrived (count against the request);
  • identifiers — the descriptor’s authoritative identifiers survived;
  • structure — each node validates against the store’s schema;
  • provenance — source, revision and fixity are attached to each node.

A check that could not run is a failure, not a pass. That is the whole reason the gateway is labelled “no, or could not run”.

5. Record the outcome — every path

  • passed → where it landed and what was checked;
  • failed → which check, on which items, with the evidence. The landed copy stays: a failed import is information about the source or the store, and removing the copy destroys it (deletion-requires-confirmation).

Why bootstrap does not call this

Bean hpax asked that bootstrap’s initialisation call the shared subprocesses, “or a bean records exactly why it cannot yet.” It cannot: bootstrap is the floor (needs: []) and these processes live in cat-harness, which needs bootstrap. A call from bootstrap up to cat-harness is an edge layer-direction.ts reports as wrong-direction. The reason is now a checkable fact, not an argument.

Processes that run this skill

This skill has its own process: Sample import into a structured data store.

BPMN diagram: Sample import into a structured data store

processstep(s) that name it
Sample import into a structured data storeScope the sample: which items, which store, and is it PERMANENT?; Materialize remote content (the five gates) (calls a sub-process); Land it in library/; Keep it as a trial: the unpublished trashcan; Import into the store, and test the import; Record what failed; Refresh materialized content (calls a sub-process)

folio-assistant — code under the Apache License 2.0, documentation under CC BY 3.0. Generated schema and API references are rebuilt from source on every push to main.

deployed b08c961 · 2026-10-23T23:11:09Z