You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Phase 6 of the phased install plan (#464 comment). The atom (`jss install `, shipped in #479) makes single-app installs cheap; `--bundle` is the composition primitive that turns that atom into "install my entire stack from one URL."
CLI
```
jss install --bundle # install everything in the bundle
jss install --bundle chrome vellum # bundle + ad-hoc additions
jss install --bundle media --pod http://other:4443 # same auth + target flags as bare install
jss install --bundle media --nostr-privkey # NIP-98 auth works too
```
`` resolution
Mirrors the install spec parser, plus local paths:
Partial failure (3/4 apps install) → still prints all results, exit 1
Followups (not this PR)
Phase 6.5: pod-self-recording. After each `jss install X`, write/update `/.installed.jsonld` (a bundle of what's installed). `jss install --restore ` re-installs from another pod's `.installed.jsonld` for cross-server migration or post-wipe recovery. ~50 more LoC, separate issue once Phase 6 lands.
Phase 6 of the phased install plan (#464 comment). The atom (`jss install `, shipped in #479) makes single-app installs cheap; `--bundle` is the composition primitive that turns that atom into "install my entire stack from one URL."
CLI
``` # install everything in the bundle chrome vellum # bundle + ad-hoc additions
jss install --bundle
jss install --bundle
jss install --bundle media --pod http://other:4443 # same auth + target flags as bare install
jss install --bundle media --nostr-privkey # NIP-98 auth works too
```
`` resolution
Mirrors the install spec parser, plus local paths:
Bundle JSON-LD shape
```json
{
"@context": {
"schema": "https://schema.org/",
"app": "urn:jss:app:"
},
"@id": "#bundle",
"@type": "schema:ItemList",
"schema:name": "Media stack",
"schema:description": "Audio, video, PDF apps",
"schema:itemListElement": [
"playlist",
"pdf",
"mp3url",
{ "app:spec": "JavaScriptSolidServer/git", "app:label": "Git viewer" }
]
}
```
Each item is either:
Behavior
Scope (~50 LoC)
Acceptance criteria
```bash
Suppose solid-apps/bundles/main has a media.jsonld file
$ jss install --bundle media
Installing 3 apps from bundle "Media stack" → http://localhost:4443
✓ playlist → http://localhost:4443/public/apps/playlist/
✓ pdf → http://localhost:4443/public/apps/pdf/
✓ mp3url → http://localhost:4443/public/apps/mp3url/
3/3 installed.
```
Tests
Followups (not this PR)
Parent
#464 — phased plan in the comment thread