https://github.com/tonylchang/janus-mcp
· scanned 2026-06-16 00:40 UTC (2 months, 1 week ago)
20 raw signals (0 security + 20 graph)
Last scanned 2 months, 1 week ago · v1 · 9 actionable findings from 1 signal source. 11 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 366 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 |
|---|---|---|---|
anyio_backend |
software | healthy | tests/conftest.py:11 |
settings |
software | healthy | tests/conftest.py:16 |
fake_kube |
software | healthy | tests/conftest.py:21 |
stats |
software | healthy | tests/conftest.py:26 |
server |
software | healthy | tests/conftest.py:31 |
load_fixture |
software | healthy | tests/support.py:54 |
make_settings |
software | healthy | tests/support.py:61 |
make_audit |
software | healthy | tests/support.py:87 |
__init__ |
software | healthy | tests/support.py:95 |
_record |
software | healthy | tests/support.py:110 |
list_namespaces |
software | healthy | tests/support.py:113 |
get_namespace |
software | healthy | tests/support.py:117 |
list_pods |
software | healthy | tests/support.py:124 |
list_events |
software | healthy | tests/support.py:142 |
get_object |
software | healthy | tests/support.py:160 |
read_pod_log |
software | healthy | tests/support.py:176 |
list_deployments |
software | healthy | tests/support.py:200 |
list_nodes |
software | healthy | tests/support.py:206 |
server_version |
software | healthy | tests/support.py:210 |
get_scale |
software | healthy | tests/support.py:214 |
scale |
software | healthy | tests/support.py:220 |
rollout_restart |
software | healthy | tests/support.py:243 |
calls_for |
software | healthy | tests/support.py:252 |
anyio_backend |
software | healthy | tests/security/test_approval.py:19 |
_responder |
software | healthy | tests/security/test_approval.py:23 |
callback |
software | healthy | tests/security/test_approval.py:24 |
test_elicitation_accept_executes |
software | healthy | tests/security/test_approval.py:34 |
test_elicitation_accept_without_confirm_is_denied |
software | healthy | tests/security/test_approval.py:47 |
test_elicitation_decline_and_cancel_are_noops |
software | healthy | tests/security/test_approval.py:58 |
test_elicitation_timeout_is_denied |
software | healthy | tests/security/test_approval.py:69 |
answers_too_late |
software | healthy | tests/security/test_approval.py:72 |
test_oob_flow_pending_then_approved |
software | healthy | tests/security/test_approval.py:92 |
test_oob_bait_and_switch_rejected |
software | healthy | tests/security/test_approval.py:126 |
test_stale_resource_version_conflicts_safely |
software | healthy | tests/security/test_approval.py:147 |
stale_get_scale |
software | healthy | tests/security/test_approval.py:156 |
test_rollout_restart_approved_path |
software | healthy | tests/security/test_approval.py:176 |
anyio_backend |
software | healthy | tests/security/test_probes.py:18 |
_call |
software | healthy | tests/security/test_probes.py:22 |
test_secret_kind_refused_with_zero_api_calls |
software | healthy | tests/security/test_probes.py:27 |
test_out_of_scope_namespace_refused |
software | healthy | tests/security/test_probes.py:38 |
test_unlisted_namespace_refused |
software | healthy | tests/security/test_probes.py:45 |
test_selector_injection_treated_as_data |
software | healthy | tests/security/test_probes.py:52 |
test_path_traversal_name_rejected |
software | healthy | tests/security/test_probes.py:60 |
test_huge_replicas_refused_before_approval |
software | healthy | tests/security/test_probes.py:67 |
test_grep_runs_post_redaction |
software | healthy | tests/security/test_probes.py:80 |
test_unknown_pod_is_typed_not_found |
software | healthy | tests/security/test_probes.py:111 |
test_node_describe_blocked_when_cluster_scope_disabled |
software | healthy | tests/security/test_probes.py:119 |
test_log_output_is_framed_as_untrusted |
software | healthy | tests/security/test_probes.py:126 |
test_read_only_config_hides_write_tools |
software | healthy | tests/security/test_probes.py:139 |
test_tool_descriptions_are_static |
software | healthy | tests/security/test_probes.py:149 |
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 |
CLAUDE.md |
software | healthy | CLAUDE.md |
.gitleaks.toml |
software | healthy | .gitleaks.toml |
pyproject.toml |
software | healthy | pyproject.toml |
LICENSE |
software | healthy | LICENSE |
SECURITY.md |
software | healthy | SECURITY.md |
conftest.py |
software | healthy | tests/conftest.py |
support.py |
software | healthy | tests/support.py |
test_approval.py |
software | healthy | tests/security/test_approval.py |
test_probes.py |
software | healthy | tests/security/test_probes.py |
capture.py |
software | healthy | tests/security/capture.py |
test_frame_capture.py |
software | healthy | tests/security/test_frame_capture.py |
test_kind.py |
software | healthy | tests/integration/test_kind.py |
janus-it.yaml |
software | healthy | tests/integration/manifests/janus-it.yaml |
test_config_audit.py |
software | healthy | tests/unit/test_config_audit.py |
test_structural.py |
software | healthy | tests/unit/test_structural.py |
test_render.py |
software | healthy | tests/unit/test_render.py |
test_validation_policy.py |
software | healthy | tests/unit/test_validation_policy.py |
test_goldens.py |
software | healthy | tests/unit/test_goldens.py |
test_patterns.py |
software | healthy | tests/unit/test_patterns.py |
pod.json |
software | healthy | tests/fixtures/pod.json |
configmap.json |
software | healthy | tests/fixtures/configmap.json |
service.json |
software | healthy | tests/fixtures/service.json |
README.md |
software | healthy | tests/fixtures/README.md |
pods.json |
software | healthy | tests/fixtures/pods.json |
deployment.json |
software | healthy | tests/fixtures/deployment.json |
node.json |
software | healthy | tests/fixtures/node.json |
events.json |
software | healthy | tests/fixtures/events.json |
namespaces.json |
software | healthy | tests/fixtures/namespaces.json |
threat-model.md |
software | healthy | docs/threat-model.md |
runbook.md |
software | healthy | docs/runbook.md |
quickstart.md |
software | healthy | docs/quickstart.md |
config.yaml |
software | healthy | examples/config.yaml |
janus-mcp-rbac.yaml |
software | healthy | rbac/janus-mcp-rbac.yaml |
ci.yml |
software | healthy | .github/workflows/ci.yml |
release.yml |
software | healthy | .github/workflows/release.yml |
__init__.py |
software | healthy | src/janus_mcp/__init__.py |
config.py |
software | healthy | src/janus_mcp/config.py |
kube.py |
software | healthy | src/janus_mcp/kube.py |
validation.py |
software | healthy | src/janus_mcp/validation.py |
policy.py |
software | healthy | src/janus_mcp/policy.py |
cli.py |
software | healthy | src/janus_mcp/cli.py |
server.py |
software | healthy | src/janus_mcp/server.py |
audit.py |
software | healthy | src/janus_mcp/audit.py |
__init__.py |
software | healthy | src/janus_mcp/redaction/__init__.py |
render.py |
software | healthy | src/janus_mcp/redaction/render.py |
patterns.py |
software | healthy | src/janus_mcp/redaction/patterns.py |
structural.py |
software | healthy | src/janus_mcp/redaction/structural.py |
CLAUDE.md |
quality | healthy | CLAUDE.md |
| Label | Layer | Status | Path |
|---|---|---|---|
FakeKube |
software | healthy | tests/support.py:91 |
StrictModel |
software | healthy | src/janus_mcp/config.py:21 |
ScopeSettings |
software | healthy | src/janus_mcp/config.py:25 |
RatePerMinute |
software | healthy | src/janus_mcp/config.py:31 |
LimitsSettings |
software | healthy | src/janus_mcp/config.py:37 |
WriteToolsSettings |
software | healthy | src/janus_mcp/config.py:45 |
RedactionSettings |
software | healthy | src/janus_mcp/config.py:52 |
Settings |
software | healthy | src/janus_mcp/config.py:62 |
KubeError |
software | healthy | src/janus_mcp/kube.py:58 |
ScaleInfo |
software | healthy | src/janus_mcp/kube.py:67 |
KubeApi |
software | healthy | src/janus_mcp/kube.py:81 |
KubeClient |
software | healthy | src/janus_mcp/kube.py:135 |
ScopeGuard |
software | healthy | src/janus_mcp/policy.py:27 |
_TokenBucket |
software | healthy | src/janus_mcp/policy.py:49 |
RateLimiter |
software | healthy | src/janus_mcp/policy.py:66 |
Decision |
software | healthy | src/janus_mcp/policy.py:89 |
ApprovalStore |
software | healthy | src/janus_mcp/policy.py:96 |
ApprovalSchema |
software | healthy | src/janus_mcp/policy.py:171 |
ApprovalGate |
software | healthy | src/janus_mcp/policy.py:175 |
AuditLog |
software | healthy | src/janus_mcp/audit.py:20 |
RedactionStats |
software | healthy | src/janus_mcp/redaction/patterns.py:22 |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
security |
software | healthy | tests/security |
integration |
software | healthy | tests/integration |
manifests |
software | healthy | tests/integration/manifests |
unit |
software | healthy | tests/unit |
fixtures |
software | healthy | tests/fixtures |
docs |
software | healthy | docs |
examples |
software | healthy | examples |
rbac |
software | healthy | rbac |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
janus_mcp |
software | healthy | src/janus_mcp |
redaction |
software | healthy | src/janus_mcp/redaction |
| Label | Layer | Status | Path |
|---|---|---|---|
10.93.77.2 |
network | healthy | tests/support.py |
10.0.1.23 |
network | healthy | tests/unit/test_structural.py |
203.0.113.99 |
network | healthy | tests/unit/test_patterns.py |
10.244.1.5 |
network | healthy | tests/unit/test_patterns.py |
192.168.0.4 |
network | healthy | tests/unit/test_patterns.py |
172.20.3.9 |
network | healthy | tests/unit/test_patterns.py |
10.0.0.0 |
network | healthy | src/janus_mcp/redaction/patterns.py |
172.16.0.0 |
network | healthy | src/janus_mcp/redaction/patterns.py |
192.168.0.0 |
network | healthy | src/janus_mcp/redaction/patterns.py |
127.0.0.0 |
network | healthy | src/janus_mcp/redaction/patterns.py |
169.254.0.0 |
network | healthy | src/janus_mcp/redaction/patterns.py |
| Label | Layer | Status | Path |
|---|---|---|---|
k8s::Namespace::tests/integration/manifests/janus-it.yaml |
hardware | healthy | tests/integration/manifests/janus-it.yaml |
k8s::ConfigMap::tests/integration/manifests/janus-it.yaml |
hardware | healthy | tests/integration/manifests/janus-it.yaml |
k8s::Secret::tests/integration/manifests/janus-it.yaml |
hardware | healthy | tests/integration/manifests/janus-it.yaml |
k8s::Role::rbac/janus-mcp-rbac.yaml |
hardware | healthy | rbac/janus-mcp-rbac.yaml |
k8s::ServiceAccount::rbac/janus-mcp-rbac.yaml |
hardware | healthy | rbac/janus-mcp-rbac.yaml |
k8s::ClusterRoleBinding::rbac/janus-mcp-rbac.yaml |
hardware | healthy | rbac/janus-mcp-rbac.yaml |
k8s::RoleBinding::rbac/janus-mcp-rbac.yaml |
hardware | healthy | rbac/janus-mcp-rbac.yaml |
k8s::ClusterRole::rbac/janus-mcp-rbac.yaml |
hardware | healthy | rbac/janus-mcp-rbac.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::.github/workflows/release.yml |
security | healthy | .github/workflows/release.yml |
auth::src/janus_mcp/redaction/patterns.py |
security | healthy | src/janus_mcp/redaction/patterns.py |
auth::tests/unit/test_patterns.py |
security | healthy | tests/unit/test_patterns.py |
auth::tests/unit/test_render.py |
security | healthy | tests/unit/test_render.py |
auth::CLAUDE.md |
security | healthy | CLAUDE.md |
auth::tests/integration/test_kind.py |
security | healthy | tests/integration/test_kind.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | .gitleaks.toml |
vps::ec2 |
hardware | healthy | tests/unit/test_structural.py |
vps::gcp |
hardware | healthy | tests/unit/test_patterns.py |
vps::azure |
hardware | healthy | src/janus_mcp/redaction/structural.py |
| Label | Layer | Status | Path |
|---|---|---|---|
checks |
cicd | healthy | .github/workflows/ci.yml |
kind-integration |
cicd | healthy | .github/workflows/ci.yml |
build |
cicd | healthy | .github/workflows/release.yml |
publish |
cicd | healthy | .github/workflows/release.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::tests/support.py |
security | healthy | tests/support.py |
password_literal::tests/support.py |
security | healthy | tests/support.py |
password_literal::tests/integration/manifests/janus-it.yaml |
security | healthy | tests/integration/manifests/janus-it.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | tests/support.py |
redis |
data | healthy | tests/fixtures/pods.json |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
gha::release |
cicd | healthy | .github/workflows/release.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-ibuteulc |
software | healthy | /tmp/repobility-clone-ibuteulc |
| Label | Layer | Status | Path |
|---|---|---|---|
loadbalancer |
network | healthy | tests/unit/test_structural.py |
| Label | Layer | Status | Path |
|---|---|---|---|
k8s::Pod::tests/integration/manifests/janus-it.yaml |
hardware | healthy | tests/integration/manifests/janus-it.yaml |
This page is publicly accessible at:
https://repobility.com/scan/f90b4d04-1533-46f0-bb46-3ae17f5d2b0a/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/f90b4d04-1533-46f0-bb46-3ae17f5d2b0a/
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.