33 lines
860 B
Markdown
33 lines
860 B
Markdown
# Bundle Archive v1
|
|
|
|
Downloaded updates are bundle archives rather than installer executables.
|
|
|
|
Archive requirements:
|
|
|
|
- top-level `bundle.json`
|
|
- payload files stored relative to the install root
|
|
- no absolute paths
|
|
- no `..` path traversal
|
|
- provider checksum must match the downloaded archive before staging
|
|
|
|
`bundle.json`:
|
|
|
|
```json
|
|
{
|
|
"schemaVersion": 1,
|
|
"entrypoint": "MyApp.exe",
|
|
"files": [
|
|
{ "path": "MyApp.exe", "mode": "0755" },
|
|
{ "path": "resources/config.json", "mode": "0644" }
|
|
]
|
|
}
|
|
```
|
|
|
|
Install roots:
|
|
|
|
- macOS: the `.app` bundle directory
|
|
- Windows: the directory containing the running `.exe`
|
|
- Linux: the directory containing the running binary
|
|
|
|
The helper-mode apply flow stages the archive, validates `bundle.json`, backs up existing files, copies payload files into the install root, and relaunches the app using `entrypoint`.
|