OpenSite/Reference/Features/Document files: Difference between revisions
BathAfrica (talk | contribs) Reorganize OpenSite reference with shared scope and related workflows |
BathAfrica (talk | contribs) Link adjacent OpenSite reference pages in reading order |
||
| Line 28: | Line 28: | ||
[[Category:OpenSite documentation]] | [[Category:OpenSite documentation]] | ||
<div class="os-page-nav">{{Docnav|OpenSite/ | <div class="os-page-nav">{{Docnav|OpenSite/Reference/Features/Dependency bootstrap|OpenSite/Reference/Features/Extension platform|OpenSite/Guides|All guides}}</div> | ||
Latest revision as of 14:15, 29 October 2026
Save and reopen a document without losing object identity.
- Stable identifier
document.persistence
Status reported by source
Implemented in the reviewed development source. Historical test evidence is recorded by the repository; no test rerun or product release is claimed by this publication.
Units
Quantities in the file are canonical SI values plus dimension, kind, unit id, and unit version.
Behavior
Writers emit opensite-document format version 4. Formats 1, 2 and 3 have in-memory migration paths; loading does not rewrite the source file. Unknown/unavailable objects preserve read-only raw payloads. Plugin identity, schema and payload remain stored. Save writes and flushes a temporary file, retains one .bak, then replaces the destination. recover_backup copies a backup to a new path and refuses an existing destination.
Errors
corrupt_document, unsupported_version, migration_unavailable, and io_failure. A failed load leaves memory and the file unchanged.
Limitations
Undo history is not persisted; parent-directory fsync is not claimed. Unknown root keys are not a general preservation contract. Python expression source is retained, but is not silently executed when opening a file. Autosave is not implemented. An unavailable extension object stays a placeholder rather than becoming a working provider.
Available hosts
Document library, CLI and embedded Python, plus the Windows desktop document workspace. Saving uses the shared persistence implementation.
Licensing and access
Save and close stay available as recovery operations. They do not grant document.edit.
Verification evidence
Repository evidence references (not rerun for this publication): CTest document.persistence. ADR-0013.
Try this workflow
First document — a worked lesson with expected results.
Documentation basis
Source-reviewed against development commit 77c3fee13944bcc4b5d487c77eb1f82fbe4c6ea7, branch feature/phase-13c-properties-python-expressions. This review inspected the implementation and repository evidence; it did not run the Windows application or repeat CTest.
include/opensite/limits.hsrc/document/persistence.cppdocs/verification/Phase-13C-Integration.md