Skip to content

release: app 2.5.1 — security advisory feed (/security.json) and docs - #33

Merged
jp1337 merged 7 commits into
mainfrom
docs/security-advisory-notice
Nov 4, 2026
Merged

jp1337 merged 7 commits into
mainfrom
docs/security-advisory-notice

Conversation

@jp1337

@jp1337 jp1337 commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Publishes /security.json, the one file every OpenWhistle installation fetches daily from 2.5.0 on, and
documents the changed update check. App PR: openwhistle/OpenWhistle#226. Feed format (schema 1):
docs-tech/security-feed.md
in the app repo.

Part Where
Generator: GitHub advisories (state=published) + releases/latest → schema 1; fails on anything the app would drop scripts/security_feed.py
Written into the build scripts/build_site.py write_security_feed() → /security.json
Fetched once with the token, passed to the image website-image.yml (both jobs), Dockerfile ARG OW_SECURITY_FEED
Served application/json, ETag, no log line website/nginx.conf location = /security.json { access_log off; }
Tests: fixture feed, no network tests/fixtures/security.json, tests/conftest.py

Mapping: vulnerabilities[0].vulnerable_version_range → affected, patched_versions → fixed,
cve_id → cve_ids, tag v2.4.2 → 2.4.2.

Docs: settings reference (default now true), outbound requests (openwhistle.net, on by default), admin
guide, upgrade note; the architecture diagram (re-rendered) and two blog posts per language still said
"GitHub update check, opt-in".

Checks

Check Result
Unit suite 1907 passed (SEO node test deselected locally: no npm)
Container suite against a locally built image 76 passed
ruff, mypy --strict scripts/ clean
Mutation audit v2.5.0-site-security-feed.json 6/6 RED
Live generator run against GitHub 0 advisories, latest 2.4.1, valid

The docs describe 2.5.0 behaviour (default on, openwhistle.net); the tests do not compare defaults, so nothing
turns red early. Merge with the app release; the feed itself can go live before it (2.4.x never reads it).

After publishing a GitHub security advisory, run this workflow by hand (workflow_dispatch): the feed is
rebuilt only with the site.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FKEGX9RGdDXHv8qJap41YM

@jp1337 jp1337 changed the title docs: the update check also reads the published security advisories feat: publish /security.json for the update check; docs for 2.5.0 Nov 4, 2026
jp1337 and others added 2 commits November 4, 2026 22:24
UPDATE_CHECK_ENABLED now also fetches openwhistle/OpenWhistle's
published GitHub security advisories. Documented in the settings
reference, the outbound-requests table, the System page section of the
admin guide and the upgrade page's "Stay up to date" note.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKEGX9RGdDXHv8qJap41YM
OpenWhistle 2.5.0's update check (on by default) fetches one file a day:
/security.json, schema 1 of the app's docs-tech/security-feed.md. The
build writes it from the GitHub API (published repository advisories and
the latest release), via scripts/security_feed.py; the workflow fetches
it once with its token and hands it to the image build
(OW_SECURITY_FEED). Anything the app would drop fails the build: a broken
feed is never published. nginx serves it as application/json with no
log line, so "the site logs nothing" holds.

Docs follow: the update check now names openwhistle.net and is on by
default (settings reference, outbound requests, admin guide, upgrade
note, the architecture diagram and the two blog posts that said
"GitHub, opt-in").

Mutations: docs-tech/mutations/v2.5.0-site-security-feed.json, 6/6 red.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKEGX9RGdDXHv8qJap41YM
The planned "Multi-Channel Intake" release was numbered 2.5.0, the
number the advisory notice shipped under: the plan moves to 2.6.0,
end-to-end encryption to 2.7.0, compliance expansion to 2.8.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKEGX9RGdDXHv8qJap41YM
@jp1337
jp1337 marked this pull request as ready for review November 4, 2026 22:35
@jp1337 jp1337 changed the title feat: publish /security.json for the update check; docs for 2.5.0 release: app 2.5.1 — security advisory feed (/security.json) and docs Nov 4, 2026
jp1337 and others added 4 commits November 4, 2026 23:50
/en/changelog/older/ reached 103 KB at 2.5.1, over the 100 KB
first-view budget: three releases in a day pushed 2.3.0..2.0.0 onto it.
An archived series may now be a closed minor; 2.0.x moves to
/en/changelog/2.0.x/ and /older/ is 53 KB again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKEGX9RGdDXHv8qJap41YM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKEGX9RGdDXHv8qJap41YM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKEGX9RGdDXHv8qJap41YM
@jp1337
jp1337 merged commit 8e845b2 into main Nov 4, 2026
10 checks passed
@jp1337
jp1337 deleted the docs/security-advisory-notice branch November 4, 2026 23:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant