Build the read side of the unified distribution primitive from docs/roadmap/updates-and-distribution.md: one team-signed catalog (index.json) on the same channel as latest.json, listing type-tagged artifact envelopes. A hotfix is the first artifact type; apps/themes/ components are future envelope rows through the SAME pipe — the marketplace seam is just the `type` + `payload.kind` fields. Phase 1 is fetch + verify + parse only (NO mutation; the snapshot → ops → rollback → History apply verb is Phase 2): - Factor `lpVerifyMinisig` out of `lpFetchRelease` (scripts/source/ fetch.sh) — one trust anchor (the root-owned footprint key) now shared by releases and the index; refactor `lpFetchRelease` to use it (behaviour-preserving, still fail-closed). - scripts/source/artifacts.sh: `lpFetchIndex` — download → verify-before-parse → `valid_until` freshness (anti-withholding) → `index_serial` monotonic high-water (anti-rollback, TUF-lite) → emit verified JSON. Trust core is jq-free; parsing accessors prefer jq with a grep fallback. - `libreportal artifact index` (scripts/cli/commands/artifact/) — read-only front door that fetches, verifies and lists. Runs directly like `updater check` (no task; no mutation). - Regenerate the source arrays + lazy-load function manifest for the new files. Doc: promote the format from vision to spec (§8) — 3 layers (INDEX/ENVELOPE/PIPELINE), the bounded declarative op vocabulary (no run-script, ever), the apply pipeline mapped onto existing functions, the marketplace seam, and resolutions for all five open forks. Self-tested 12/12: trust core fails closed (real key + no minisign → refuse), happy path, stale-refused, rollback-refused, signature-refused, jq + grep parsing. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: librelad <librelad@digitalangels.vip>
38 lines
1.3 KiB
Bash
Executable File
38 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This file is auto-generated by generate_arrays.sh
|
|
# Do not edit manually - run './scripts/source/files/generate_arrays.sh run' to regenerate
|
|
|
|
source_scripts=(
|
|
"source/artifacts.sh"
|
|
"source/fetch.sh"
|
|
"source/files/arrays/files_app.sh"
|
|
"source/files/arrays/files_backup.sh"
|
|
"source/files/arrays/files_checks.sh"
|
|
"source/files/arrays/files_cli.sh"
|
|
"source/files/arrays/files_config.sh"
|
|
"source/files/arrays/files_crontab.sh"
|
|
"source/files/arrays/files_database.sh"
|
|
"source/files/arrays/files_docker.sh"
|
|
"source/files/arrays/files_function.sh"
|
|
"source/files/arrays/files_install.sh"
|
|
"source/files/arrays/files_logs.sh"
|
|
"source/files/arrays/files_menu.sh"
|
|
"source/files/arrays/files_migrate.sh"
|
|
"source/files/arrays/files_network.sh"
|
|
"source/files/arrays/files_os.sh"
|
|
"source/files/arrays/files_peer.sh"
|
|
"source/files/arrays/files_restore.sh"
|
|
"source/files/arrays/files_setup.sh"
|
|
"source/files/arrays/files_source.sh"
|
|
"source/files/arrays/files_ssh.sh"
|
|
"source/files/arrays/files_start.sh"
|
|
"source/files/arrays/files_task.sh"
|
|
"source/files/arrays/files_update.sh"
|
|
"source/files/arrays/files_webui.sh"
|
|
"source/files/arrays/function_manifest.sh"
|
|
"source/files/generate_function_manifest.sh"
|
|
"source/verify.sh"
|
|
|
|
)
|