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
fix: no seeding or token secret in --no-auth mode; atomic no-clobber; jss 0.0.212
Review follow-ups on top of the skip-if-exists seeding fix:
- Gate seedPodFiles() and the token secret on options.auth. In
--no-auth mode jspod runs JSS with --public, where WAC is bypassed
(seeded .acl files are never consulted) and a publicly served tree
must not be written into — the same rationale as JSS's public-mode
landing-page seeding skip (JSS#578).
- Use COPYFILE_EXCL so the no-clobber guarantee holds even against a
concurrent writer (Copilot review).
- Update docs.html, which still described the old overwrite-every-start
behaviour (Copilot review).
- Bump javascript-solid-server to >=0.0.212 <0.0.213 to pick up the
public-mode seeding skip (JSS#578) and the WAC sidecar fix (JSS#580).
<p>jspod creates <code>pod-data/</code> in the current working directory on first start (or wherever you pass via <code>--root</code>). Everything the pod is, including identities and signing keys, lives under that single tree.</p>
53
53
54
54
<preclass="tree"><spanclass="label">pod-data/</span><spanclass="note">your pod root</span>
55
-
├── <spanclass="label">index.html</span><spanclass="note">welcome page — jspod overwrites every start</span>
<strong>Overwrite warning.</strong><code>index.html</code>, <code>signin.html</code>, <code>account.html</code>, and <code>docs.html</code> are owned by jspod and overwritten on every <em>start</em>. Edits won't survive a restart. To customize, fork jspod or run JSS directly instead. The <code>public/links.jsonld</code> and <code>public/apps/pilot/</code> bundles are <em>skip-if-exists</em>, so user edits there <em>do</em> survive.
76
+
<strong>Seeding.</strong><code>index.html</code>, <code>signin.html</code>, <code>account.html</code>, and <code>docs.html</code> are seeded by jspod on first start and never overwritten — edits survive restarts, same as <code>public/links.jsonld</code> and <code>public/apps/pilot/</code>. The trade-off: upgrading jspod won't refresh a page you already have; delete the file and restart to re-seed the current stock copy. In <code>--no-auth</code> mode nothing is seeded at all — the served directory is left untouched.
77
77
</div>
78
78
79
79
<h2id="idp">Where the IDP data lives</h2>
@@ -91,12 +91,7 @@ <h2 id="idp">Where the IDP data lives</h2>
91
91
<p>The account record contains a bcrypt hash of the password — not the plaintext. The signing keys are sensitive (anyone with these can mint valid tokens against your pod). JSS manages file modes on these; jspod doesn't touch them.</p>
92
92
93
93
<h2id="customize">Customize the landing page</h2>
94
-
<p>The default landing page (<code>pod-data/index.html</code>) is owned by jspod. Edits to it are overwritten on the next start. To genuinely customize, the options are, in increasing order of effort:</p>
95
-
<ul>
96
-
<li>Fork jspod (clone the repo, edit <code>welcome.html</code>, run <code>./index.js</code> from the fork). All overwrites use <em>your</em> templates.</li>
97
-
<li>Run JSS directly with your own <code>pod-data/index.html</code> pre-seeded. JSS does skip-if-exists for its own seed, so your file wins. You lose jspod's account dashboard / signin app / data browser, but you can copy any of them out of the npm package and adapt.</li>
98
-
<li>Track <ahref="https://github.com/JavaScriptSolidServer/JavaScriptSolidServer/issues/459">JSS#459</a> for a future <code>--landing-page <file></code> option that would make this cleaner.</li>
99
-
</ul>
94
+
<p>The default landing page (<code>pod-data/index.html</code>) is seeded on first start only — just edit it, and your version survives restarts. To return to the stock page, delete <code>pod-data/index.html</code> and restart. To change the template used for <em>new</em> pods, fork jspod and edit <code>welcome.html</code>.</p>
100
95
101
96
<h2id="auth-ladder">Auth ladder</h2>
102
97
<p>jspod ships you onto rung 1 (default <code>me</code>/<code>me</code>) and makes climbing visible. The dashboard at <code>/account.html</code> exposes a Change password form (rung 2). Passkey support (rung 3) is on the roadmap. See <ahref="https://github.com/JavaScriptSolidServer/jspod/issues/6">jspod#6</a> for the full ladder framing.</p>
0 commit comments