Repository navigation
State the support position, and document what compliance evidence Sendan provides - #332
Merged
Merged
Conversation
Two related additions, both about what an organisation can rely on. SECURITY.md now says there is no declared support period, instead of leaving it to be inferred from "the supported version is the latest release". A date would be a number picked to look reassuring, and a support commitment that is not kept is worse than an absent one: it is the difference between an organisation knowing it carries a risk and believing somebody else carries it. What replaces the absent date is the part that is durable - releases are never withdrawn, fixes go to the newest release and are disclosed as advisories, the licence guarantees a fork, and abandonment will be announced by archiving the repository rather than by the project quietly looking active. docs/compliance.md is new. Sendan is outside the scope of the Cyber Resilience Act - Art. 2(1) reaches products "made available on the market", Art. 3(22) defines that as supply in the course of a commercial activity, and Recital 18 says unmonetised free and open-source software is not such an activity - and the document exists anyway, because the evidence the Regulation asks a manufacturer to produce is worth producing either way. The section that matters most to a reader is who the manufacturer is. Upstream being out of scope does not move the obligation; it means nobody has discharged it. Anyone running Sendan commercially for other people, or shipping it inside a commercial offering, is the manufacturer of what they ship, and this project cannot sign their declaration or carry their support period. The Annex I mapping is honest rather than a table of ticks. It records four places where Sendan does less than a literal reading would want, each for a stated reason: - no in-product auto-update, because a server that replaces its own code silently is a worse property when the client is the trust anchor - no uploader authentication - the link is the credential, and uploading is bounded by rate and retention limits rather than by identity - deliberately reduced logging, because a file identifier in a log defeats the deletion guarantee. An organisation needing per-object audit trails should know about that tension before deploying - the released binaries carry no SBOM, which is the one real gap; the image does, and #313 covers the rest Claims were checked rather than written from memory. The CSP the demo instance serves is hash-based with no unsafe-inline and with object-src, form-action and frame-ancestors all 'none'; Referrer-Policy is no-referrer, which is what the link-fragment property rests on. Signed-off-by: Serraniel <mail@serraniel.dev> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Serraniel <mail@serraniel.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two related additions about what an organisation can actually rely on.
The support period: an honest absence
SECURITY.mdleft it to be inferred from "the supported version is the latest release." It now says it outright: no end-of-support date is promised, and none should be relied upon.A date would be a number picked to look reassuring. A support commitment that is not kept is worse than an absent one — it is the difference between an organisation knowing it carries a risk and believing somebody else carries it.
What replaces the absent date is the part that is durable:
That last row is the one most projects skip, and it is the one an adopter most needs.
docs/compliance.mdSendan is outside the CRA's scope — Art. 2(1) reaches products "made available on the market", Art. 3(22) defines that as supply in the course of a commercial activity, and Recital 18 says unmonetised FOSS is not such an activity. The maintainer is also not an Art. 3(14) steward, which requires a legal person supporting products intended for commercial activities.
The document exists anyway, because the evidence the Regulation asks a manufacturer to produce is worth producing either way, and because organisations that are in scope need to know what they can use.
The section that matters most
Who the manufacturer is. Upstream being out of scope does not move the obligation — it means nobody has discharged it. Anyone running Sendan commercially for other people, or shipping it inside a commercial offering, is the manufacturer of what they ship. This project cannot sign their declaration of conformity or carry their support period, and saying so prevents a false sense of compliance that silence would allow.
The Annex I mapping is honest, not a table of ticks
It records four places where Sendan does less than a literal reading would want, each with the reason:
It also notes that Recital 77 does not oblige a manufacturer to publish an SBOM at all — it is technical documentation shown on request. Sendan publishes one because an SBOM you cannot obtain is not evidence you can use.
Claims were checked, not written from memory
The CSP the demo actually serves is hash-based with no
unsafe-inline, andobject-src,form-actionandframe-ancestorsall'none';Referrer-Policy: no-referreris what the link-fragment property rests on:Note
Adds one row to the README documentation table, in the same file #331 edits elsewhere. Whichever merges second may want a trivial rebase.
🤖 Generated with Claude Code