Scan timing: clone 2.79s · analysis 0.4s · 0.1 MB · GitHub preflight 419ms
https://github.com/smartqa-api/smartqa-api.git
· scanned 2026-05-28 05:37 UTC (1 week, 1 day ago)
· 10 languages
118 findings (50 legacy + 68 scanner) 25th percentile · Python · tiny (<2K LoC) Scanner says 65 (lower by 16)
Last scanned 1 week, 1 day ago · v2 · 84 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 |
80.0 | 0.15 | 12.00 |
security_score |
75.4 | 0.25 | 18.85 |
testing_score |
0.0 | 0.20 | 0.00 |
documentation_score |
22.0 | 0.15 | 3.30 |
practices_score |
52.0 | 0.15 | 7.80 |
code_quality |
78.0 | 0.10 | 7.80 |
| Overall | 1.00 | 49.8 |
All 156 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 |
|---|---|---|---|
clean_md_text |
software | healthy | convert_docs.py:17 |
_extract_docx_images |
software | healthy | convert_docs.py:36 |
_replace_data_uri_images |
software | healthy | convert_docs.py:62 |
convert_docx_to_md |
software | healthy | convert_docs.py:83 |
convert_doc_to_md |
software | healthy | convert_docs.py:117 |
main |
software | healthy | convert_docs.py:156 |
get_settings |
software | healthy | app/config.py:62 |
lifespan |
software | healthy | app/main.py:22 |
health_check |
software | healthy | app/main.py:59 |
parse_embedding |
software | healthy | app/models/database.py:16 |
cosine_similarity |
software | healthy | app/models/database.py:30 |
create_knowledge_base |
software | healthy | app/api/knowledge.py:24 |
list_knowledge_bases |
software | healthy | app/api/knowledge.py:42 |
get_knowledge_base |
software | healthy | app/api/knowledge.py:59 |
update_knowledge_base |
software | healthy | app/api/knowledge.py:73 |
delete_knowledge_base |
software | healthy | app/api/knowledge.py:98 |
upload_document |
software | healthy | app/api/knowledge.py:122 |
list_documents |
software | healthy | app/api/knowledge.py:196 |
delete_document |
software | healthy | app/api/knowledge.py:212 |
wechat_login |
software | healthy | app/api/auth.py:21 |
dev_login |
software | healthy | app/api/auth.py:82 |
get_my_info |
software | healthy | app/api/auth.py:114 |
update_my_info |
software | healthy | app/api/auth.py:120 |
format_sse |
software | healthy | app/api/chat.py:15 |
list_categories |
software | healthy | app/api/chat.py:21 |
chat_send |
software | healthy | app/api/chat.py:28 |
event_generator |
software | healthy | app/api/chat.py:54 |
chat_send_sync |
software | healthy | app/api/chat.py:80 |
_get_kb_dir |
software | healthy | app/services/kb_search.py:13 |
get_categories |
software | healthy | app/services/kb_search.py:28 |
_load_category |
software | healthy | app/services/kb_search.py:60 |
_split_content |
software | healthy | app/services/kb_search.py:96 |
_extract_image_paths |
software | healthy | app/services/kb_search.py:140 |
_split_long_text |
software | healthy | app/services/kb_search.py:146 |
_tokenize |
software | healthy | app/services/kb_search.py:180 |
search |
software | healthy | app/services/kb_search.py:195 |
get_llm_client |
software | healthy | app/services/llm_service.py:13 |
chat_stream |
software | healthy | app/services/llm_service.py:35 |
chat_completion |
software | healthy | app/services/llm_service.py:58 |
build_system_prompt |
software | healthy | app/services/llm_service.py:78 |
get_embedding_client |
software | healthy | app/services/embedding_service.py:11 |
get_embedding |
software | healthy | app/services/embedding_service.py:19 |
get_embeddings |
software | healthy | app/services/embedding_service.py:29 |
split_text |
software | healthy | app/services/chunk_service.py:8 |
parse_pdf |
software | dead | app/services/doc_parser.py:13 |
parse_docx |
software | dead | app/services/doc_parser.py:27 |
parse_txt |
software | dead | app/services/doc_parser.py:39 |
parse_markdown |
software | dead | app/services/doc_parser.py:53 |
parse_document |
software | healthy | app/services/doc_parser.py:64 |
rag_query |
software | dead | app/services/rag_service.py:18 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
convert_docs.py |
software | healthy | convert_docs.py |
Dockerfile |
software | healthy | Dockerfile |
render.yaml |
software | healthy | render.yaml |
.env.example |
software | healthy | .env.example |
requirements.txt |
software | healthy | requirements.txt |
docker-compose.yml |
software | healthy | docker-compose.yml |
__init__.py |
software | healthy | app/__init__.py |
config.py |
software | healthy | app/config.py |
main.py |
software | healthy | app/main.py |
database.py |
software | healthy | app/models/database.py |
schemas.py |
software | healthy | app/models/schemas.py |
__init__.py |
software | healthy | app/models/__init__.py |
__init__.py |
software | healthy | app/api/__init__.py |
knowledge.py |
software | healthy | app/api/knowledge.py |
auth.py |
software | healthy | app/api/auth.py |
chat.py |
software | healthy | app/api/chat.py |
kb_search.py |
software | healthy | app/services/kb_search.py |
__init__.py |
software | healthy | app/services/__init__.py |
llm_service.py |
software | healthy | app/services/llm_service.py |
embedding_service.py |
software | healthy | app/services/embedding_service.py |
chunk_service.py |
software | healthy | app/services/chunk_service.py |
doc_parser.py |
software | healthy | app/services/doc_parser.py |
rag_service.py |
software | healthy | app/services/rag_service.py |
database.py |
software | healthy | app/core/database.py |
__init__.py |
software | healthy | app/core/__init__.py |
security.py |
software | healthy | app/core/security.py |
| Label | Layer | Status | Path |
|---|---|---|---|
Settings |
software | healthy | app/config.py:10 |
Config |
software | healthy | app/config.py:56 |
Base |
software | healthy | app/models/database.py:42 |
User |
software | healthy | app/models/database.py:46 |
Conversation |
software | healthy | app/models/database.py:63 |
Message |
software | healthy | app/models/database.py:79 |
KnowledgeBase |
software | healthy | app/models/database.py:94 |
Document |
software | healthy | app/models/database.py:111 |
DocumentChunk |
software | healthy | app/models/database.py:130 |
WechatLoginRequest |
software | healthy | app/models/schemas.py:11 |
LoginResponse |
software | healthy | app/models/schemas.py:17 |
UserInfo |
software | healthy | app/models/schemas.py:24 |
Config |
software | healthy | app/models/schemas.py:112 |
ChatRequest |
software | healthy | app/models/schemas.py:38 |
ChatMessageOut |
software | healthy | app/models/schemas.py:45 |
ConversationOut |
software | healthy | app/models/schemas.py:57 |
ConversationDetail |
software | healthy | app/models/schemas.py:69 |
KBCreateRequest |
software | healthy | app/models/schemas.py:76 |
KBUpdateRequest |
software | healthy | app/models/schemas.py:81 |
KBOut |
software | healthy | app/models/schemas.py:87 |
DocumentOut |
software | healthy | app/models/schemas.py:101 |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /api/health |
api | healthy | app/main.py |
POST /create |
api | healthy | app/api/knowledge.py |
GET /list |
api | healthy | app/api/knowledge.py |
GET /{kb_id} |
api | healthy | app/api/knowledge.py |
PUT /{kb_id} |
api | healthy | app/api/knowledge.py |
DELETE /{kb_id} |
api | healthy | app/api/knowledge.py |
POST /{kb_id}/upload |
api | healthy | app/api/knowledge.py |
GET /{kb_id}/documents |
api | healthy | app/api/knowledge.py |
DELETE /documents/{doc_id} |
api | healthy | app/api/knowledge.py |
POST /api/auth/login |
api | healthy | app/api/auth.py |
POST /api/auth/dev-login |
api | healthy | app/api/auth.py |
GET /api/auth/me |
api | healthy | app/api/auth.py |
PUT /api/auth/me |
api | healthy | app/api/auth.py |
GET /api/chat/categories |
api | healthy | app/api/chat.py |
POST /api/chat/send |
api | healthy | app/api/chat.py |
POST /api/chat/send-sync |
api | healthy | app/api/chat.py |
| Label | Layer | Status | Path |
|---|---|---|---|
Base |
data | healthy | app/models/database.py |
User |
data | healthy | app/models/database.py |
Conversation |
data | healthy | app/models/database.py |
Message |
data | healthy | app/models/database.py |
KnowledgeBase |
data | healthy | app/models/database.py |
Document |
data | healthy | app/models/database.py |
DocumentChunk |
data | healthy | app/models/database.py |
users |
data | healthy | app/models/database.py |
conversations |
data | healthy | app/models/database.py |
messages |
data | healthy | app/models/database.py |
knowledge_bases |
data | healthy | app/models/database.py |
documents |
data | healthy | app/models/database.py |
document_chunks |
data | healthy | app/models/database.py |
| Label | Layer | Status | Path |
|---|---|---|---|
app |
software | healthy | app |
models |
software | healthy | app/models |
api |
software | healthy | app/api |
services |
software | healthy | app/services |
core |
software | healthy | app/core |
| Label | Layer | Status | Path |
|---|---|---|---|
postgresql |
data | healthy | .env.example |
redis |
data | healthy | .env.example |
postgres |
data | healthy | docker-compose.yml |
sqlite |
data | healthy | app/config.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
app |
hardware | healthy | docker-compose.yml |
postgres |
hardware | healthy | docker-compose.yml |
redis |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::app/config.py |
security | healthy | app/config.py |
auth::app/core/security.py |
security | healthy | app/core/security.py |
auth::.env.example |
security | healthy | .env.example |
auth::app/api/auth.py |
security | healthy | app/api/auth.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | Dockerfile |
port:5432 |
network | healthy | docker-compose.yml |
port:6379 |
network | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-kmuan6cx |
software | healthy | /tmp/repobility-clone-kmuan6cx |
This page is publicly accessible at:
https://repobility.com/scan/c0c32f91-de68-4edd-b837-1420c0881687/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/c0c32f91-de68-4edd-b837-1420c0881687/
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.