Repository navigation
chore: relicense to Apache-2.0, add security policy, clear dependency alerts - #187
Merged
bluejeans117 merged 1 commit intoSep 21, 2026
Merged
Conversation
… alerts Relicense the embedded surface from AGPL-3.0-or-later to Apache-2.0. FlexDoc is designed to be linked into a proprietary backend that serves users over a network, which is the situation AGPL section 13 addresses. The ambiguity that creates is itself the adoption cost: evaluators compare against Apache-2.0 and MIT alternatives and do not open a legal question to try a documentation library. The copyleft also protected a renderer and a set of adapters rather than the aggregation and governance surface where the defensible value sits. Every declaration moves together: LICENSE and the three adapter copies, the JavaScript, Rust, Python, PHP, Ruby, Elixir and .NET manifests, all three Maven POMs, the .NET workflow license assertions, the showcase OpenAPI documents and the basic-usage footer. Lockfile entries describing the published 3.4.0 artifact keep their AGPL metadata because that is what was published; they change when the next release publishes. Adopt the Developer Certificate of Origin and require Signed-off-by, with inbound matching outbound. The README now states that the embedded surface stays permissive and that any future control plane is separate code under its own license. Add SECURITY.md with a private reporting path, response and fix targets by severity, per-line supported versions, coordinated disclosure terms and safe harbour. It names the design boundaries that are not vulnerabilities: API Client scripts are trusted local JavaScript rather than a sandbox, host execution is privileged by construction with the destination policy as the control, and credential scopes cover explicit auth fields only. Clear the open dependency advisories. All were third-party transitive dependencies outside shipped product code: bump the go-gin example to golang.org/x/crypto 0.52.0, golang.org/x/net 0.55.0 and quic-go 0.59.1, and the JAX-RS adapter to jackson-databind 2.18.9. Signed-off-by: Vishnu R <vishnurajesh45@gmail.com>
bluejeans117
force-pushed
the
chore/apache-2.0-relicense-and-security-policy
branch
from
September 21, 2026 17:26
2340a71 to
cd5be1b
Compare
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.
Three related pieces of credibility work, kept in one commit because the licence change and the security policy are the same argument: FlexDoc asks to be installed inside a production backend, and everything a stranger checks before agreeing to that currently fails.
Relicense to Apache-2.0
FlexDoc is designed to be linked into a proprietary application that serves users over a network, which is the situation AGPL section 13 addresses. Whether the copyleft actually reaches the host application is arguable — and the argument is the problem. Nobody opens a legal question to try a documentation library when the alternatives are Apache-2.0 and MIT, so the evaluation ends at the licence field and leaves no trace.
The copyleft was also protecting a renderer and a set of adapters, rather than the fleet aggregation and governance surface where the defensible value actually sits. That surface is separate code and keeps its own licensing options.
Every declaration moves together:
LICENSEand the three adapter copies, the JavaScript, Rust, Python, PHP, Ruby, Elixir and .NET manifests, all three Maven POMs, the .NET workflow licence assertions, both showcase OpenAPI documents and the basic-usage footer. The licence text is the canonical Apache text verbatim, with the copyright in a header block rather than edited into the licence body.Lockfile entries describing the published 3.4.0 artifact keep their AGPL metadata, because that is what was published. They change when the next release publishes — which is also when the relicense first reaches users.
DCO
Signed-off-byis now required, with inbound matching outbound. The README states that the embedded surface stays permissive and that any future control plane is separate code under its own licence.SECURITY.md
Private reporting path, acknowledgement and fix targets by severity, supported versions per package line, coordinated disclosure and safe harbour. GitHub private vulnerability reporting is enabled, so the advisory link resolves.
It also names the design boundaries that are not vulnerabilities, so the policy does not invite reports it will reject: API Client scripts are trusted local JavaScript rather than a sandbox, host execution is privileged by construction with the operator's destination policy as the control, and credential scopes cover explicit auth fields only.
Dependency advisories
All twenty open advisories were third-party transitive dependencies outside shipped product code — eighteen in the
go-ginexample, five in the JAX-RS adapter's build dependencies. Bumpedgolang.org/x/cryptoto 0.52.0,golang.org/x/netto 0.55.0,quic-goto 0.59.1 andjackson-databindto 2.18.9.Worth stating plainly: this was never a product security problem, but it was always a credibility problem, since an evaluator seeing seven criticals had no way to know they were example dependencies.
Verification
go buildandgo vetclean on the updated examplenpm auditreports zero vulnerabilitiescheck:example-versionspasses — no published-artifact pins are disturbedNo renderer assets are touched, so no capture workflow run is required.