Signals
Static analysis, dependency resolution, live API probing, and imported third-party results.
One input among several — not the product.
APPLICATION SECURITY DECISION PLATFORM
Fendix connects code, APIs, runtime behavior, ownership, and fix verification to give every release an evidence-backed security decision—and enforce the policies your team approves.
Release
payments-api · 2.14.0 · commit 9f3c1ab
Recommendation
WARNBecause: 1 reachable HIGH finding · dependency scan incomplete
Read the full recordEngineering teams already receive findings from code scanners, dependency tools, API tests, and penetration tests. The hard part is knowing what is reachable, what violates policy, who owns the fix, and whether the release can move forward.
What you already have
What nobody can answer
Scanning is one source of signals. The decision is the product.
Static analysis, dependency resolution, live API probing, and imported third-party results.
One input among several — not the product.
Findings are linked to the route, handler, data flow, and runtime behavior behind them.
Your committed policy decides what blocks, what warns, and what is informational.
One recommendation per release: PASS, WARN, BLOCK, or INCOMPLETE — with its reasons.
Each remaining risk gets an owner, a status, and a remediation deadline.
Re-run the exact check that found it and record whether the fix held.
See what changed, what was tested, which policies were triggered, and why the release received its decision.
Release
payments-api · 2.14.0 · commit 9f3c1ab
Policy: .fendix.yaml v1 — blocks at CRITICAL
Recommendation
WARNWildcard CORS origin on /public/status
Accepted by Security Lead · expires 2026-08-04
SQL injection in refund handler
@payments-team · due 2026-07-29
Missing rate limit on /api/v2/login
@platform-security · due 2026-08-07
A finding on its own is a guess. Fendix links what it observed at runtime to the route, the handler, and the data flow behind it — then to the person accountable for fixing it.
API endpoint
POST /api/v2/payments/refund
Runtime behavior
401 without a token · 200 with a member token
Application route
payments.urls → refund_view
Code handler
payments/views.py:88
Data flow
request.data["account"] → build_query() → cursor.execute()
Risk
HIGH · SQL injection · CWE-89
Owner
@payments-team · due 2026-07-29
Verified fix
Re-checked after the fix — resolved
When evidence is available. Not every finding has a complete chain — Fendix shows the links it can support and marks the rest as unverified.
The same decision, read the way each team needs to read it.
Know what to fix, why it matters, and how to verify the fix.
Define policy, review exceptions, and track risk to closure.
Understand whether a release can move forward and what risk remains.
Access a documented history of testing, decisions, exceptions, and remediation.
Arabic is a first-class experience, not a translation layer — and the same deployment and evidence controls apply wherever your team runs.
Both languages are complete product experiences, not partial translations.
Right-to-left layout, mirrored navigation, and Arabic type shaping throughout.
Run scans on your own infrastructure so target traffic and source never leave it.
Append-only records of security-relevant actions, exportable as CSV.
HTML and SARIF outputs for engineers; decision summaries for leadership.
One binary in your pipeline, a pre-commit hook, or a GitHub Actions step.
No telemetry in the engine, and deployment options that keep scan data in your environment.
If we can't show you how to verify it, it isn't here.
Every tagged release is signed with cosign keyless (Sigstore) and ships an SBOM. Unsigned tags fail the release pipeline.
See releasesThe engine has no phone-home code. Confirm it yourself with tcpdump, or read the source.
Privacy and data handlingAccuracy and performance numbers are published with the version, date, run count, and the command to reproduce them.
Accuracy methodologyEach scanner reports completed, skipped, or failed per run — so a partial scan reads as INCOMPLETE instead of green.
CapabilitiesEnforcement rules live in a committed .fendix.yaml, reviewed like any other change. No hidden server-side thresholds.
CLI referenceA single static binary with no agents to install, runnable entirely inside your own network.
ArchitectureThe full check library, each check's technique, and its known limits are documented in public.
Check libraryThe engine is MIT-licensed. Audit how a decision is reached instead of taking our word for it.
LicenseSee how Fendix turns code and runtime evidence into a decision your engineering and security teams can understand, review, and act on.