Scan timing: clone 1.65s · analysis 11.79s · 0.6 MB · GitHub preflight 459ms
https://github.com/Maher-Amara/Fail2BanEntreprise
· scanned 2026-06-04 04:06 UTC (1 day, 12 hours ago)
· 10 languages
131 findings (71 legacy + 60 scanner) 0th percentile · Typescript · small (2-20K LoC) Scanner says 93 (lower by 63)
Last scanned 1 day, 12 hours ago · v3 · 91 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
55.0 | 0.15 | 8.25 |
security_score |
0.8 | 0.25 | 0.20 |
testing_score |
0.0 | 0.20 | 0.00 |
documentation_score |
41.0 | 0.15 | 6.15 |
practices_score |
50.0 | 0.15 | 7.50 |
code_quality |
78.4 | 0.10 | 7.84 |
| Overall | 1.00 | 29.9 |
All 280 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
_setup_logging |
software | healthy | agent/agent.py:53 |
_parse_conf |
software | healthy | agent/agent.py:81 |
load_config |
software | healthy | agent/agent.py:107 |
_api_post |
software | healthy | agent/agent.py:122 |
_api_get |
software | healthy | agent/agent.py:152 |
_run |
software | healthy | agent/agent.py:179 |
_ipset |
software | healthy | agent/agent.py:189 |
_ipset_sets |
software | healthy | agent/agent.py:195 |
_fail2ban_unban |
software | healthy | agent/agent.py:203 |
_ipset_members |
software | healthy | agent/agent.py:210 |
_ipset_exists |
software | healthy | agent/agent.py:226 |
_parse_sets_cfg |
software | healthy | agent/agent.py:231 |
_allowed_target_sets |
software | healthy | agent/agent.py:236 |
ip_in_entry |
software | healthy | agent/agent.py:253 |
_normalize_entry |
software | healthy | agent/agent.py:264 |
action_ban |
software | healthy | agent/agent.py:279 |
action_notify_unban |
software | healthy | agent/agent.py:301 |
action_sync |
software | healthy | agent/agent.py:316 |
action_sync_loop |
software | healthy | agent/agent.py:402 |
main |
software | healthy | agent/agent.py:451 |
register |
software | healthy | web/instrumentation.ts:register |
matchesGroup |
software | healthy | web/proxy.ts:matchesGroup |
buildCSP |
software | healthy | web/proxy.ts:buildCSP |
setSecurityHeaders |
software | healthy | web/proxy.ts:setSecurityHeaders |
proxy |
software | healthy | web/proxy.ts:proxy |
ago |
software | healthy | web/app/page.tsx:ago |
expiry |
software | healthy | web/app/page.tsx:expiry |
actionColor |
software | healthy | web/app/page.tsx:actionColor |
PieChart |
software | healthy | web/app/page.tsx:PieChart |
sweep |
software | healthy | web/app/page.tsx:sweep |
Timeline |
software | healthy | web/app/page.tsx:Timeline |
x |
software | healthy | web/app/page.tsx:x |
BanModal |
software | healthy | web/app/page.tsx:BanModal |
submit |
software | healthy | web/app/page.tsx:submit |
DashboardPage |
software | healthy | web/app/page.tsx:DashboardPage |
handleBan |
software | healthy | web/app/page.tsx:handleBan |
handleUnban |
software | healthy | web/app/page.tsx:handleUnban |
handleAddWhitelist |
software | healthy | web/app/page.tsx:handleAddWhitelist |
handleRemoveWhitelist |
software | healthy | web/app/page.tsx:handleRemoveWhitelist |
filteredBans |
software | healthy | web/app/page.tsx:filteredBans |
RootLayout |
software | healthy | web/app/layout.tsx:RootLayout |
nonce |
software | healthy | web/app/layout.tsx:nonce |
UsersPage |
software | healthy | web/app/users/page.tsx:UsersPage |
handleCreateInvite |
software | healthy | web/app/users/page.tsx:handleCreateInvite |
handleRevokeInvite |
software | healthy | web/app/users/page.tsx:handleRevokeInvite |
InvitePage |
software | healthy | web/app/invite/[token]/page.tsx:InvitePage |
handleSubmit |
software | healthy | web/app/invite/[token]/page.tsx:handleSubmit |
LoginPage |
software | healthy | web/app/login/page.tsx:LoginPage |
handleSubmit |
software | healthy | web/app/login/page.tsx:handleSubmit |
GET |
software | healthy | web/app/api/invitations/route.ts:GET |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
Fail2Ban.md |
software | healthy | Fail2Ban.md |
README.md |
software | healthy | README.md |
Fail2BanDefaults.md |
software | healthy | Fail2BanDefaults.md |
.env.example |
software | healthy | .env.example |
docker-compose.yml |
software | healthy | docker-compose.yml |
README.md |
software | healthy | agent/README.md |
agent.py |
software | healthy | agent/agent.py |
security.md |
software | healthy | web/security.md |
instrumentation.ts |
software | healthy | web/instrumentation.ts |
README.md |
software | healthy | web/README.md |
package.json |
software | healthy | web/package.json |
Dockerfile |
software | healthy | web/Dockerfile |
next-env.d.ts |
software | warning | web/next-env.d.ts |
package-lock.json |
software | healthy | web/package-lock.json |
tsconfig.json |
software | healthy | web/tsconfig.json |
proxy.ts |
software | healthy | web/proxy.ts |
next.config.ts |
software | warning | web/next.config.ts |
globals.css |
software | healthy | web/app/globals.css |
page.tsx |
software | healthy | web/app/page.tsx |
layout.tsx |
software | healthy | web/app/layout.tsx |
page.tsx |
software | healthy | web/app/users/page.tsx |
page.tsx |
software | healthy | web/app/invite/[token]/page.tsx |
page.tsx |
software | healthy | web/app/login/page.tsx |
route.ts |
software | healthy | web/app/api/invitations/route.ts |
route.ts |
software | healthy | web/app/api/invitations/[token]/route.ts |
route.ts |
software | healthy | web/app/api/sync/route.ts |
route.ts |
software | healthy | web/app/api/auth/users/route.ts |
route.ts |
software | healthy | web/app/api/auth/logout/route.ts |
route.ts |
software | healthy | web/app/api/auth/login/route.ts |
route.ts |
software | healthy | web/app/api/auth/change-password/route.ts |
route.ts |
software | healthy | web/app/api/auth/setup/route.ts |
route.ts |
software | healthy | web/app/api/geoip/route.ts |
route.ts |
software | healthy | web/app/api/ban/route.ts |
route.ts |
software | healthy | web/app/api/dashboard/route.ts |
route.ts |
software | healthy | web/app/api/intel/route.ts |
route.ts |
software | healthy | web/app/api/unban/route.ts |
route.ts |
software | healthy | web/app/api/servers/route.ts |
route.ts |
software | healthy | web/app/api/servers/[id]/rotate/route.ts |
route.ts |
software | healthy | web/app/api/me/route.ts |
route.ts |
software | healthy | web/app/api/whitelist/route.ts |
route.ts |
software | healthy | web/app/api/unban-me/route.ts |
route.ts |
software | healthy | web/app/api/stats/timeline/route.ts |
NavHeader.tsx |
software | healthy | web/app/components/NavHeader.tsx |
page.tsx |
software | healthy | web/app/servers/page.tsx |
page.tsx |
software | healthy | web/app/profile/page.tsx |
page.tsx |
software | healthy | web/app/setup/page.tsx |
page.tsx |
software | healthy | web/app/unban-me/page.tsx |
auth.ts |
software | healthy | web/lib/auth.ts |
redis.ts |
software | healthy | web/lib/redis.ts |
intel.ts |
software | healthy | web/lib/intel.ts |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
agent |
software | healthy | agent |
web |
software | healthy | web |
app |
software | healthy | web/app |
users |
software | healthy | web/app/users |
invite |
software | healthy | web/app/invite |
[token] |
software | healthy | web/app/invite/[token] |
login |
software | healthy | web/app/login |
api |
software | healthy | web/app/api |
invitations |
software | healthy | web/app/api/invitations |
[token] |
software | healthy | web/app/api/invitations/[token] |
sync |
software | healthy | web/app/api/sync |
auth |
software | healthy | web/app/api/auth |
users |
software | healthy | web/app/api/auth/users |
logout |
software | healthy | web/app/api/auth/logout |
login |
software | healthy | web/app/api/auth/login |
change-password |
software | healthy | web/app/api/auth/change-password |
setup |
software | healthy | web/app/api/auth/setup |
geoip |
software | healthy | web/app/api/geoip |
ban |
software | healthy | web/app/api/ban |
dashboard |
software | healthy | web/app/api/dashboard |
intel |
software | healthy | web/app/api/intel |
unban |
software | healthy | web/app/api/unban |
servers |
software | healthy | web/app/api/servers |
[id] |
software | healthy | web/app/api/servers/[id] |
rotate |
software | healthy | web/app/api/servers/[id]/rotate |
me |
software | healthy | web/app/api/me |
whitelist |
software | healthy | web/app/api/whitelist |
unban-me |
software | healthy | web/app/api/unban-me |
stats |
software | healthy | web/app/api/stats |
timeline |
software | healthy | web/app/api/stats/timeline |
components |
software | healthy | web/app/components |
servers |
software | healthy | web/app/servers |
profile |
software | healthy | web/app/profile |
setup |
software | healthy | web/app/setup |
unban-me |
software | healthy | web/app/unban-me |
lib |
software | healthy | web/lib |
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | web/app/page.tsx |
/users |
frontend | healthy | web/app/users/page.tsx |
/invite/[token] |
frontend | healthy | web/app/invite/[token]/page.tsx |
/login |
frontend | healthy | web/app/login/page.tsx |
/servers |
frontend | healthy | web/app/servers/page.tsx |
/profile |
frontend | healthy | web/app/profile/page.tsx |
/setup |
frontend | healthy | web/app/setup/page.tsx |
/unban-me |
frontend | healthy | web/app/unban-me/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
DashboardPage |
frontend | healthy | web/app/page.tsx |
UsersPage |
frontend | healthy | web/app/users/page.tsx |
InvitePage |
frontend | healthy | web/app/invite/[token]/page.tsx |
LoginPage |
frontend | healthy | web/app/login/page.tsx |
ServersPage |
frontend | healthy | web/app/servers/page.tsx |
ProfilePage |
frontend | healthy | web/app/profile/page.tsx |
SetupPage |
frontend | healthy | web/app/setup/page.tsx |
UnbanMePage |
frontend | healthy | web/app/unban-me/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::web/app/api/ban/route.ts |
security | healthy | web/app/api/ban/route.ts |
auth::web/app/api/unban/route.ts |
security | healthy | web/app/api/unban/route.ts |
auth::agent/agent.py |
security | healthy | agent/agent.py |
auth::web/proxy.ts |
security | healthy | web/proxy.ts |
auth::web/lib/auth.ts |
security | healthy | web/lib/auth.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
image::web/Dockerfile |
hardware | healthy | web/Dockerfile |
redis |
hardware | healthy | docker-compose.yml |
web |
hardware | healthy | docker-compose.yml |
cloudflared |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
1.2.3.4 |
network | healthy | web/app/page.tsx |
10.0.0.0 |
network | healthy | web/app/page.tsx |
127.0.0.1 |
network | healthy | web/lib/geoip.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | .env.example |
sqlite |
data | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-ncisjv_3 |
software | healthy | /tmp/repobility-clone-ncisjv_3 |
| Label | Layer | Status | Path |
|---|---|---|---|
port:3000 |
network | healthy | web/Dockerfile |
This page is publicly accessible at:
https://repobility.com/scan/22571c91-55ad-4884-818b-d252be90b564/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/22571c91-55ad-4884-818b-d252be90b564/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.