Import report
Understand evidence, dispositions, blocking findings, review drafts, and explicit approval.
Every automatic conversion produces import-report.json and a readable
import-report.md. Each item cites source evidence and has one disposition:
- exact: preserved without a material change;
- converted: mapped to a named native SnabbSajt feature;
- merged: combined with another page or section;
- redirect: an old URL receives a proposed target;
- skipped or unsafe: intentionally left inert, with the reason;
- missing or manual: source facts or operator work are required;
- ai_proposed: an optional evidence-cited suggestion that still needs human approval.
ready means the deterministic report found no unresolved review item.
review_required means you must inspect and resolve findings. blocked means
known content loss or an input safety limit prevents normal approval.
A review item is one whose disposition is manual, missing, unsafe or
ai_proposed — the four the adapter could not decide on its own. Resolving one
means writing a resolution onto it:
{
"status": "accepted",
"note": "Reviewed and intentionally omitted",
"resolvedAt": "2026-07-14T10:00:00.000Z"
}accepted keeps the adapter's outcome (including "this was correctly
dropped"); rejected says the outcome is wrong. Validation enforces both
directions: a report cannot call itself ready while any review item is
unresolved, and an item the adapter already decided for itself — exact,
converted, merged, skipped, redirect — cannot carry a resolution at
all, so a report can never look reviewed while the items that needed a person
went untouched.
Approval is explicit and provenance-bound:
snabbsajt site import approve ./converted --yesThe CLI verifies that site.json and the original deterministic report have
not drifted unexpectedly. A blocked import cannot be approved. Use
site pack --review-draft only to share evidence for review; that archive has
no root site.json and cannot be imported as a normal site.
Merge outcomes
A merge import (into an existing site via mergeIntoWebsiteId) additionally
returns one outcome per externalKey:
- added: the key did not exist and its page or section was inserted;
- updated: the key matched a section untouched since the last import and was updated in place;
- unchanged: the incoming content is identical to what is already there;
- conflict: the owner edited the matched section in the app, so it was
skipped — pass the key in
forceKeysto overwrite it deliberately.
A merge never deletes anything and never touches site settings, theme, or fonts. A restore point is taken before the first write, so a bad merge can be rolled back from version history.
Hittade du inte svaret, eller stämmer något inte? Berätta det för oss.
Senast uppdaterad