https://github.com/B0bTheSkull/sentinel
· scanned 2026-06-17 01:19 UTC (1 month, 2 weeks ago)
8 raw signals (0 security + 8 graph)
Last scanned 1 month, 2 weeks ago · v2 · last Δ +20.4 (diff) · 8 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 185 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 |
|---|---|---|---|
test_no_command_prints_help |
software | healthy | tests/test_cli.py:6 |
test_adrecon_live_mode_exits_5 |
software | healthy | tests/test_cli.py:13 |
test_recon_subcommand_json |
software | healthy | tests/test_cli.py:21 |
test_loot_subcommand_json |
software | healthy | tests/test_cli.py:42 |
fake_run |
software | healthy | tests/test_cli.py:60 |
test_builtin_scanners_register |
software | healthy | tests/test_scanner_registry.py:12 |
test_get_unknown_raises |
software | healthy | tests/test_scanner_registry.py:17 |
test_all_scanners_returns_copy |
software | healthy | tests/test_scanner_registry.py:23 |
test_recon_missing_subscope_raises |
software | healthy | tests/test_scanner_registry.py:30 |
test_adrecon_live_mode_not_implemented |
software | healthy | tests/test_scanner_registry.py:49 |
test_scanner_subclass_contract |
software | healthy | tests/test_scanner_registry.py:60 |
client |
software | healthy | tests/test_web_api.py:12 |
_fake_findings |
software | healthy | tests/test_web_api.py:21 |
test_list_scanners |
software | healthy | tests/test_web_api.py:30 |
test_dashboard_html |
software | healthy | tests/test_web_api.py:37 |
test_scan_persists_and_returns_run_id |
software | healthy | tests/test_web_api.py:44 |
test_scan_unknown_scanner_404 |
software | healthy | tests/test_web_api.py:66 |
test_scan_not_implemented_501 |
software | healthy | tests/test_web_api.py:71 |
boom |
software | healthy | tests/test_web_api.py:83 |
test_scan_scanner_error_400 |
software | healthy | tests/test_web_api.py:80 |
test_findings_severity_filter |
software | healthy | tests/test_web_api.py:91 |
test_findings_bad_severity_400 |
software | healthy | tests/test_web_api.py:106 |
test_run_findings_unknown_run_404 |
software | healthy | tests/test_web_api.py:111 |
test_web_layer_cannot_enable_show_secrets |
software | healthy | tests/test_web_api.py:116 |
scan |
software | healthy | tests/test_web_api.py:127 |
_args |
software | healthy | tests/test_secrets_adapter.py:36 |
test_rejects_missing_path |
software | healthy | tests/test_secrets_adapter.py:44 |
test_rejects_file_target |
software | healthy | tests/test_secrets_adapter.py:50 |
test_normalizes_vault_scan_json |
software | healthy | tests/test_secrets_adapter.py:58 |
fake_run |
software | healthy | tests/test_secrets_adapter.py:133 |
test_redaction_is_preserved |
software | healthy | tests/test_secrets_adapter.py:87 |
test_show_secrets_flag_passed_through |
software | healthy | tests/test_secrets_adapter.py:107 |
test_usage_error_raises_scannererror |
software | healthy | tests/test_secrets_adapter.py:130 |
test_end_to_end_against_real_vault_scan |
software | healthy | tests/test_secrets_adapter.py:164 |
__init__ |
software | healthy | tests/test_adrecon_adapter.py:15 |
_args |
software | healthy | tests/test_adrecon_adapter.py:44 |
test_live_mode_is_not_implemented |
software | healthy | tests/test_adrecon_adapter.py:52 |
test_rejects_missing_records |
software | healthy | tests/test_adrecon_adapter.py:58 |
test_rejects_non_array_records |
software | healthy | tests/test_adrecon_adapter.py:64 |
test_normalizes_offline_findings |
software | healthy | tests/test_adrecon_adapter.py:72 |
test_end_to_end_against_real_adrecon |
software | healthy | tests/test_adrecon_adapter.py:113 |
_findings |
software | healthy | tests/test_storage.py:5 |
test_init_creates_tables |
software | healthy | tests/test_storage.py:16 |
test_record_and_read_back |
software | healthy | tests/test_storage.py:25 |
test_get_run_missing |
software | healthy | tests/test_storage.py:43 |
test_runs_ordered_newest_first |
software | healthy | tests/test_storage.py:48 |
test_severity_filter |
software | healthy | tests/test_storage.py:56 |
test_in_memory_store_persists_within_instance |
software | healthy | tests/test_storage.py:71 |
test_severity_ordering_and_from_name |
software | healthy | tests/test_finding.py:6 |
test_finding_to_dict_normalizes_severity_and_mitre |
software | healthy | tests/test_finding.py:12 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
pyproject.toml |
software | healthy | pyproject.toml |
.pre-commit-config.yaml |
software | healthy | .pre-commit-config.yaml |
test_cli.py |
software | healthy | tests/test_cli.py |
test_scanner_registry.py |
software | healthy | tests/test_scanner_registry.py |
test_web_api.py |
software | healthy | tests/test_web_api.py |
test_secrets_adapter.py |
software | healthy | tests/test_secrets_adapter.py |
__init__.py |
software | healthy | tests/__init__.py |
test_adrecon_adapter.py |
software | healthy | tests/test_adrecon_adapter.py |
test_storage.py |
software | healthy | tests/test_storage.py |
test_finding.py |
software | healthy | tests/test_finding.py |
test_loot_adapter.py |
software | healthy | tests/test_loot_adapter.py |
test_recon_adapter.py |
software | healthy | tests/test_recon_adapter.py |
cli.py |
software | healthy | sentinel/cli.py |
finding.py |
software | healthy | sentinel/finding.py |
__init__.py |
software | healthy | sentinel/__init__.py |
__main__.py |
software | healthy | sentinel/__main__.py |
scanner.py |
software | healthy | sentinel/scanner.py |
output.py |
software | healthy | sentinel/output.py |
adrecon.py |
software | healthy | sentinel/adapters/adrecon.py |
secrets.py |
software | healthy | sentinel/adapters/secrets.py |
__init__.py |
software | healthy | sentinel/adapters/__init__.py |
loot.py |
software | healthy | sentinel/adapters/loot.py |
recon.py |
software | healthy | sentinel/adapters/recon.py |
__init__.py |
software | healthy | sentinel/web/__init__.py |
app.py |
software | healthy | sentinel/web/app.py |
storage.py |
software | healthy | sentinel/web/storage.py |
ci.yml |
software | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
FakeScanner |
software | healthy | tests/test_web_api.py:124 |
_FakeFinding |
software | healthy | tests/test_adrecon_adapter.py:12 |
Severity |
software | healthy | sentinel/finding.py:15 |
Finding |
software | healthy | sentinel/finding.py:34 |
ScannerError |
software | healthy | sentinel/scanner.py:17 |
Scanner |
software | healthy | sentinel/scanner.py:21 |
ADReconScanner |
software | healthy | sentinel/adapters/adrecon.py:91 |
SecretsScanner |
software | healthy | sentinel/adapters/secrets.py:67 |
LootScanner |
software | healthy | sentinel/adapters/loot.py:49 |
ReconScanner |
software | healthy | sentinel/adapters/recon.py:83 |
ScanRequest |
software | healthy | sentinel/web/app.py:60 |
Storage |
software | healthy | sentinel/web/storage.py:52 |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
sentinel |
software | healthy | sentinel |
adapters |
software | healthy | sentinel/adapters |
web |
software | healthy | sentinel/web |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /api/scanners |
api | healthy | sentinel/web/app.py |
POST /api/scanners/{name}/scan |
api | healthy | sentinel/web/app.py |
GET /api/runs |
api | healthy | sentinel/web/app.py |
GET /api/runs/{run_id}/findings |
api | healthy | sentinel/web/app.py |
GET /api/findings |
api | healthy | sentinel/web/app.py |
GET / |
api | healthy | sentinel/web/app.py |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | README.md |
93.184.216.34 |
network | healthy | tests/test_recon_adapter.py |
93.184.216.35 |
network | healthy | tests/test_recon_adapter.py |
| Label | Layer | Status | Path |
|---|---|---|---|
runs |
data | healthy | sentinel/web/storage.py |
findings |
data | healthy | sentinel/web/storage.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | tests/test_secrets_adapter.py |
vps::azure |
hardware | healthy | tests/test_recon_adapter.py |
| Label | Layer | Status | Path |
|---|---|---|---|
B0bTheSkull__sentinel |
software | healthy | /data/fable5_failed_archive/B0bTheSkull__sentinel |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | tests/test_recon_adapter.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
test |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/a2445988-a846-4534-916e-5db746bcea25/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/a2445988-a846-4534-916e-5db746bcea25/
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.