# ASL/SYSTEMRESCUE-OVERLAY/1 - Intake Overlay Layout Status: Draft Owner: Architecture Version: 0.1.0 SoT: No Last Updated: 2026-01-17 Tags: [ops, rescue, overlay] **Document ID:** `ASL/SYSTEMRESCUE-OVERLAY/1` **Layer:** O3 - Rescue overlay profile **Depends on (normative):** * `ASL/HOST/1` **Informative references:** * `ASL/RESCUE-NODE/1` --- ## 0. Conventions The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHOULD**, and **MAY** are to be interpreted as in RFC 2119. --- ## 1. Purpose and Scope This overlay defines what exists at boot for a rescue intake environment. It separates immutable tools from mutable runtime state and defines mount points for local or remote ASL stores. --- ## 2. Overlay Layout ``` overlay/ ├── usr/ │ └── local/ │ ├── bin/ │ │ ├── asl-intake │ │ ├── asl-admin │ │ └── asl-debug │ └── lib/ │ └── libasl.so ├── etc/ │ └── asl/ │ ├── asl.conf │ ├── federation.conf │ └── logging.conf ├── etc/systemd/system/ │ ├── asl-intake.service │ └── asl-preflight.service ├── var/ │ └── lib/ │ └── asl/ │ ├── runtime/ │ ├── cache/ │ └── locks/ ├── run/ │ └── asl/ │ └── sockets/ └── mnt/ └── asl/ ├── local/ └── remote/ ``` --- ## 3. Directory Semantics * `/usr/local/bin` is immutable and MUST NOT be written at runtime. * `/etc/asl` contains declarative configuration only. * `/var/lib/asl` contains all mutable state for the rescue session. * `/mnt/asl/local` is the mount target for a local ASL store. * `/mnt/asl/remote` is an optional remote mount. --- ## 4. Local Store Layout (Informative) When mounted, a local store typically exposes: ``` /mnt/asl/local/ ├── blocks/ ├── segments/ ├── snapshots/ └── logs/ ``` This internal layout is backend-defined and not mandated by this overlay. --- ## 5. Services ### 5.1 asl-preflight.service Responsibilities: * Detect storage backends * Detect importable pools * Write mode decisions to `/run/asl/mode` ### 5.2 asl-intake.service Responsibilities: * Read `/run/asl/mode` * Start `asl-intake` with the selected backend --- ## 6. Configuration Defaults `/etc/asl/asl.conf` SHOULD include at minimum: ``` mode = auto local.mount = /mnt/asl/local remote.endpoint = none ``` --- ## 7. Versioning Backward-incompatible overlay changes MUST bump the major version.