docs(security): localize shipped doc self-link

This commit is contained in:
rcourtman 2026-03-28 19:48:32 +00:00
parent 48554917b9
commit 0c4f7b3d43
5 changed files with 12 additions and 2 deletions

View file

@ -111,7 +111,7 @@ Verify temperature collection is agent-based:
journalctl -u pulse-agent -n 200 --no-pager
```
**Documentation:** <https://github.com/rcourtman/Pulse/blob/main/SECURITY.md#critical-security-notice-for-container-deployments>
**Documentation:** [Critical security notice for container deployments](#critical-security-notice-for-container-deployments)
**Issues:** <https://github.com/rcourtman/pulse/issues>
**Private disclosures:** <security@pulseapp.io>

View file

@ -125,6 +125,10 @@ owner for privacy-document URLs, while `frontend-modern/public/docs/PRIVACY.md`
is the version-matched asset served by the running build. Privacy disclosures
must not drift back to GitHub `main` links that can describe a different
revision than the installed runtime.
That same rule also applies inside shipped security guidance itself:
`SECURITY.md` and the synced `frontend-modern/public/docs/SECURITY.md` copy may
not bounce the operator back to GitHub `main` for section references that the
running build already owns locally.
That same governed settings trust boundary now also includes
`frontend-modern/src/components/Settings/QuickSecuritySetup.tsx`,
`frontend-modern/src/components/Settings/SecurityPostureSummary.tsx`,

View file

@ -111,7 +111,7 @@ Verify temperature collection is agent-based:
journalctl -u pulse-agent -n 200 --no-pager
```
**Documentation:** <https://github.com/rcourtman/Pulse/blob/main/SECURITY.md#critical-security-notice-for-container-deployments>
**Documentation:** [Critical security notice for container deployments](#critical-security-notice-for-container-deployments)
**Issues:** <https://github.com/rcourtman/pulse/issues>
**Private disclosures:** <security@pulseapp.io>

View file

@ -1,4 +1,5 @@
import { beforeEach, describe, expect, it } from 'vitest';
import { PRIVACY_DOC_URL } from '@/utils/docsLinks';
import {
areSystemSettingsLoaded,
markSystemSettingsLoadedWithDefaults,
@ -51,4 +52,8 @@ describe('systemSettings store', () => {
expect(shouldDisableLocalUpgradeMetrics()).toBe(false);
});
it('keeps the telemetry disclosure on the shipped local privacy doc', () => {
expect(PRIVACY_DOC_URL).toBe('/docs/PRIVACY.md');
});
});

View file

@ -47,6 +47,7 @@ describe('docsLinks', () => {
const rootDoc = readFileSync(source, 'utf8');
const publicDoc = readFileSync(path.join(frontendRoot, 'public', 'docs', target), 'utf8');
expect(publicDoc).toBe(rootDoc);
expect(publicDoc).not.toContain('https://github.com/rcourtman/Pulse/blob/main/');
}
});