th0masso/ssacc-bundle
Symfony bundle for SSACC, providing a lightweight integration with Symfony’s service container and security layer. It makes defining and enforcing access rules for routes, controllers, and services straightforward with minimal configuration.
security.yaml access_control rules against its routes, so it answers a question executives actually ask — "is every endpoint covered by an authorization rule?" That number becomes the input to a hardening roadmap item rather than a guess.security.yaml model; Laravel expresses authorization through route middleware, Gate, and Policy. For a Laravel roadmap this informs a decision to port the check rather than adopt the artifact.security_requirement parameter lets a team declare what "covered" means for their service instead of accepting the tool's default. That turns the report from a generic scan into evidence of our standard — the difference between a number and a control.Consider it when:
security.yaml access_control, and you want a static check with no runtime overhead.exclude_all_routes_that_start_with and exclude_full_routes, which is the difference between a usable signal and a noisy one — a coverage number inflated by known-public endpoints gets ignored after the first sprint.project_path and controllers_path, so multiple services can share one runner with separate configs.Look elsewhere (or build) when:
artisan route:list, assert each route resolves to expected middleware or Gate/Policy coverage, and fail the build on gaps. A custom PHPStan/Larastan rule is the natural home.#[IsGranted] attributes and Voters. A config-based checker may not see those paths, giving false confidence — the worst outcome for a security tool. Exclusions config does not fix this; it only suppresses noise on routes the tool can see.If you do trial it: pin the version, keep it in require-dev, commit a config file with explicit exclusions and security_requirement, wrap it in CI, and confirm the MIT license lets you fork when maintenance stops.
To executives: This is a small, free, developer-only check that tells us whether every application endpoint has an access rule — the kind of evidence auditors and pen-testers ask for. There is no runtime risk and no vendor commitment. The new 1.0 release adds the configurability that makes the output credible: we define what counts as "covered" and exclude endpoints we've deliberately left public, so the report reflects our policy rather than a tool default. The caveat is unchanged — it's a one-person, low-adoption project, so we treat it as an internal utility we can fork, not a platform bet. Ask: approve a one-quarter CI pilot with a named owner.
To engineering: Two paths. If we have Symfony services, trial the bundle as a dev dependency and measure what it catches; the v1.0.0 config surface (project_path, controllers_path, route exclusions, security_requirement) is enough to wire it up without forking. For our Laravel services — the bulk of the estate — we implement the same check internally against route:list and middleware/Gate resolution, roughly one to two sprints, and it becomes a permanent build gate. Either way the deliverable is the same: a failing build when a route ships without an authorization rule.
The decision: fund the Laravel equivalent as the real product; treat the Symfony bundle as reference material and an optional tool for Symfony services only. The 1.0 tag makes the Symfony trial cheaper to justify but does not change its scope.
How can I help you explore Laravel packages today?