Repository navigation
docs(adr): propose rendering security and selective Symfony adoption - #8436
Open
somethingwithproof wants to merge 3 commits into
Open
somethingwithproof wants to merge 3 commits into
somethingwithproof wants to merge 3 commits into
Conversation
github-actions
Bot
force-pushed
the
docs/rendering-security-components
branch
3 times, most recently
from
October 22, 2026 20:46
e962503 to
fd10e7b
Compare
github-actions
Bot
force-pushed
the
docs/rendering-security-components
branch
2 times, most recently
from
October 26, 2026 20:51
51404d1 to
95dfb7c
Compare
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
github-actions
Bot
force-pushed
the
docs/rendering-security-components
branch
from
October 28, 2026 20:46
95dfb7c to
5f548f5
Compare
|
This branch has not been deployed
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.



This change proposes a common approach to safely rendering text, attributes, URLs, script data and formatted HTML in Cacti. The architecture document describes how existing helpers and selected Symfony components could support that work, with compatibility and testing requirements. It gives maintainers a reviewable implementation plan; it does not implement the migration or resolve security findings.
Summary
Cacti's renderers mix plain text, attributes, URLs, script data, and intentional HTML. Add proposed ADR 0003 with an implementation plan and an assessment of the Symfony components already available.
Reuse
CactiValidator::validate()orisValid()for established option contracts where needed, keeping session-writing validation out of renderers. Continue using Cacti's context-specific output helpers. HttpFoundation has a limited role at dedicated JSON response boundaries; OptionsResolver is currently development-only. HTML Sanitizer, Twig, and Symfony Form require separate dependency decisions.The plan starts with a caller inventory and hidden-field pilot, followed by shared text/attribute helpers and filter script data. Optional formatted-HTML and Twig pilots follow separately. It defines caller compatibility, maintenance-branch propagation, dependency requirements, and regression/rescan acceptance criteria.
Scope
Targets
developand updates the ADR index. This is a documentation proposal for maintainer review; it changes no runtime behavior or dependencies and claims no security finding resolved. Necessary1.2.xfixes remain independent of framework migration. Finding-specific evidence stays in the private security-reporting process.Validation
git diff --checkpassed.At head
65aaf8e, locked integration failed before checkout because ECR rejected the MariaDB image download withtoomanyrequests: Data limit exceeded. Other checks were still running when inspected. This is an infrastructure failure, not a passing integration result: https://github.com/Cacti/cacti/actions/runs/39393378436/job/118530036126No release-note fragment is added because this records a proposed approach rather than a shipped behavior change.
Revision and checks
Description scope: target
develop, 2 changed files, headfd10e7b4a. Checked 2026-10-23 03:06:04 UTC.GitHub check snapshot: 2 passed. Local test figures and earlier CI runs above are recorded evidence for their stated revisions and environments; they do not assert that every check passes at this head.