Scan timing: clone 4.31s · analysis 4.22s · 28.5 MB · GitHub API rate-limit (preflight)
https://github.com/RatLoopz/sahidawa-india
· scanned 2026-06-05 16:47 UTC (5 days ago)
· 10 languages
675 raw signals (221 security + 454 graph) 11/13 scanners ran 99th percentile · Typescript · medium (20-100K LoC) System graph score 53 (higher by 40)
Last scanned 5 days ago · v2 · 265 actionable findings from 2 signal sources. 179 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
85.0 | 0.15 | 12.75 |
security_score |
100.0 | 0.25 | 25.00 |
testing_score |
95.0 | 0.20 | 19.00 |
documentation_score |
92.0 | 0.15 | 13.80 |
practices_score |
98.0 | 0.15 | 14.70 |
code_quality |
72.0 | 0.10 | 7.20 |
| Overall | 1.00 | 92.5 |
All 1958 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 |
|---|---|---|---|
replace_classes |
software | healthy | fix_vaccine_components.py:22 |
get_git_file |
software | healthy | resolve_json_conflicts.py:5 |
deep_merge |
software | healthy | resolve_json_conflicts.py:15 |
load_model |
software | healthy | ml_model_dev_pipeline/fine_tune_cloud.py:4 |
fine_tune_model |
software | healthy | ml_model_dev_pipeline/fine_tune_cloud.py:7 |
save_model |
software | healthy | ml_model_dev_pipeline/fine_tune_cloud.py:10 |
main |
software | healthy | ml_model_dev_pipeline/fine_tune_cloud.py:14 |
createServerMock |
software | healthy | apps/api/tests/gracefulShutdown.test.ts:createServerMock |
resolveOrigin |
software | healthy | apps/api/tests/cors.test.ts:resolveOrigin |
buildApp |
software | healthy | apps/api/tests/ml.test.ts:buildApp |
createResponse |
software | healthy | apps/api/tests/auth.test.ts:createResponse |
createClient |
software | healthy | apps/api/tests/auth.test.ts:createClient |
inside |
software | healthy | apps/api/tests/alertsPagination.test.ts:inside |
buildAlerts |
software | healthy | apps/api/tests/alertsPagination.test.ts:buildAlerts |
mockSupabase |
software | healthy | apps/api/tests/alertsPagination.test.ts:mockSupabase |
mockDatabaseResponse |
software | healthy | apps/api/tests/lasa.service.test.ts:mockDatabaseResponse |
getErrorDetails |
software | healthy | apps/api/src/gracefulShutdown.ts:getErrorDetails |
closeServer |
software | healthy | apps/api/src/gracefulShutdown.ts:closeServer |
releaseDatabaseResources |
software | healthy | apps/api/src/gracefulShutdown.ts:releaseDatabaseResources |
createGracefulShutdown |
software | healthy | apps/api/src/gracefulShutdown.ts:createGracefulShutdown |
parseAllowedOrigins |
software | healthy | apps/api/src/config/cors.ts:parseAllowedOrigins |
getAllowedOrigins |
software | healthy | apps/api/src/config/cors.ts:getAllowedOrigins |
createCorsOptions |
software | healthy | apps/api/src/config/cors.ts:createCorsOptions |
isAllowedHostname |
software | healthy | apps/api/src/config/mlService.ts:isAllowedHostname |
validateMlServiceUrl |
software | healthy | apps/api/src/config/mlService.ts:validateMlServiceUrl |
getMlServiceUrl |
software | healthy | apps/api/src/config/mlService.ts:getMlServiceUrl |
validateMlServiceConfig |
software | healthy | apps/api/src/config/mlService.ts:validateMlServiceConfig |
getUserRole |
software | healthy | apps/api/src/middleware/auth.ts:getUserRole |
extractToken |
software | healthy | apps/api/src/middleware/auth.ts:extractToken |
createAuthMiddleware |
software | healthy | apps/api/src/middleware/auth.ts:createAuthMiddleware |
createOptionalAuthMiddleware |
software | healthy | apps/api/src/middleware/auth.ts:createOptionalAuthMiddleware |
requireRole |
software | healthy | apps/api/src/middleware/auth.ts:requireRole |
sanitize |
software | healthy | apps/api/src/middleware/errorHandler.ts:sanitize |
errorHandler |
software | healthy | apps/api/src/middleware/errorHandler.ts:errorHandler |
validateUploadSize |
software | healthy | apps/api/src/middleware/uploadSizeValidator.ts:validateUplo… |
getDbErrorStatus |
software | healthy | apps/api/src/utils/dbErrors.ts:getDbErrorStatus |
isPublicImageUrl |
software | healthy | apps/api/src/routes/reports.ts:isPublicImageUrl |
buildReportLocation |
software | healthy | apps/api/src/routes/reports.ts:buildReportLocation |
offset |
software | healthy | apps/api/src/routes/alerts.ts:offset |
calculateDistanceKM |
software | healthy | apps/api/src/routes/pharmacies.ts:calculateDistanceKM |
dLat |
software | healthy | apps/api/src/routes/pharmacies.ts:dLat |
dLon |
software | healthy | apps/api/src/routes/pharmacies.ts:dLon |
extractCoordinates |
software | healthy | apps/api/src/routes/pharmacies.ts:extractCoordinates |
formatPharmacy |
software | healthy | apps/api/src/routes/pharmacies.ts:formatPharmacy |
handleFetchError |
software | healthy | apps/api/src/routes/pharmacies.ts:handleFetchError |
centerLat |
software | healthy | apps/api/src/routes/pharmacies.ts:centerLat |
centerLng |
software | healthy | apps/api/src/routes/pharmacies.ts:centerLng |
body |
software | healthy | apps/api/src/routes/ml.ts:body |
escapeIlike |
software | healthy | apps/api/src/routes/scan.ts:escapeIlike |
calculateAdvancedMatchScore |
software | healthy | apps/api/src/routes/scan.ts:calculateAdvancedMatchScore |
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 |
fix_vaccine_components.py |
software | healthy | fix_vaccine_components.py |
package.json |
software | healthy | package.json |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
fix_requirements.py |
software | warning | fix_requirements.py |
package-lock.json |
software | healthy | package-lock.json |
docker-compose.prod.yml |
software | healthy | docker-compose.prod.yml |
.env.example |
software | healthy | .env.example |
resolve_json_conflicts.py |
software | healthy | resolve_json_conflicts.py |
CODE_OF_CONDUCT.md |
software | healthy | CODE_OF_CONDUCT.md |
SECURITY.md |
software | healthy | SECURITY.md |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
docker-compose.yml |
software | healthy | docker-compose.yml |
README.md |
software | healthy | ml_model_dev_pipeline/README.md |
fine_tune_cloud.py |
software | healthy | ml_model_dev_pipeline/fine_tune_cloud.py |
requirements.txt |
software | healthy | ml_model_dev_pipeline/requirements.txt |
jest.config.js |
software | warning | apps/api/jest.config.js |
README.md |
software | healthy | apps/api/README.md |
package.json |
software | healthy | apps/api/package.json |
ws-setup.js |
software | warning | apps/api/ws-setup.js |
Dockerfile |
software | healthy | apps/api/Dockerfile |
tsconfig.json |
software | healthy | apps/api/tsconfig.json |
tsconfig.test.json |
software | healthy | apps/api/tsconfig.test.json |
gracefulShutdown.test.ts |
software | healthy | apps/api/tests/gracefulShutdown.test.ts |
cors.test.ts |
software | healthy | apps/api/tests/cors.test.ts |
pharmacies.test.ts |
software | warning | apps/api/tests/pharmacies.test.ts |
ml.test.ts |
software | healthy | apps/api/tests/ml.test.ts |
reports.test.ts |
software | warning | apps/api/tests/reports.test.ts |
adminLogs.test.ts |
software | warning | apps/api/tests/adminLogs.test.ts |
auth.test.ts |
software | healthy | apps/api/tests/auth.test.ts |
setup.ts |
software | warning | apps/api/tests/setup.ts |
verify.test.ts |
software | warning | apps/api/tests/verify.test.ts |
alertsPagination.test.ts |
software | healthy | apps/api/tests/alertsPagination.test.ts |
lasa.service.test.ts |
software | healthy | apps/api/tests/lasa.service.test.ts |
gracefulShutdown.ts |
software | healthy | apps/api/src/gracefulShutdown.ts |
index.ts |
software | healthy | apps/api/src/index.ts |
app.ts |
software | warning | apps/api/src/app.ts |
cors.ts |
software | healthy | apps/api/src/config/cors.ts |
mlService.ts |
software | healthy | apps/api/src/config/mlService.ts |
auth.ts |
software | healthy | apps/api/src/middleware/auth.ts |
rateLimit.ts |
software | warning | apps/api/src/middleware/rateLimit.ts |
errorHandler.ts |
software | healthy | apps/api/src/middleware/errorHandler.ts |
uploadRateLimit.ts |
software | warning | apps/api/src/middleware/uploadRateLimit.ts |
uploadSizeValidator.ts |
software | healthy | apps/api/src/middleware/uploadSizeValidator.ts |
swagger.ts |
software | warning | apps/api/src/utils/swagger.ts |
dbErrors.ts |
software | healthy | apps/api/src/utils/dbErrors.ts |
logger.ts |
software | warning | apps/api/src/utils/logger.ts |
analytics.ts |
software | warning | apps/api/src/routes/analytics.ts |
notifications.ts |
software | warning | apps/api/src/routes/notifications.ts |
admin.routes.ts |
software | warning | apps/api/src/routes/admin.routes.ts |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
ml_model_dev_pipeline |
software | healthy | ml_model_dev_pipeline |
apps |
software | healthy | apps |
api |
software | healthy | apps/api |
tests |
software | healthy | apps/api/tests |
src |
software | healthy | apps/api/src |
config |
software | healthy | apps/api/src/config |
middleware |
software | healthy | apps/api/src/middleware |
utils |
software | healthy | apps/api/src/utils |
routes |
software | healthy | apps/api/src/routes |
controllers |
software | healthy | apps/api/src/controllers |
services |
software | healthy | apps/api/src/services |
db |
software | healthy | apps/api/src/db |
migrations |
software | healthy | apps/api/src/db/migrations |
validators |
software | healthy | apps/api/src/validators |
ml |
software | healthy | apps/ml |
scrapers |
software | healthy | apps/ml/scrapers |
tests |
software | healthy | apps/ml/tests |
agent |
software | healthy | apps/ml/agent |
services |
software | healthy | apps/ml/services |
routers |
software | healthy | apps/ml/routers |
etl |
software | healthy | apps/etl |
tests |
software | healthy | apps/etl/tests |
scripts |
software | healthy | apps/etl/scripts |
src |
software | healthy | apps/etl/src |
loaders |
software | healthy | apps/etl/src/loaders |
scrapers |
software | healthy | apps/etl/src/scrapers |
utils |
software | healthy | apps/etl/src/utils |
validators |
software | healthy | apps/etl/src/validators |
web |
software | healthy | apps/web |
i18n |
software | healthy | apps/web/i18n |
tests |
software | healthy | apps/web/tests |
mocks |
software | healthy | apps/web/tests/mocks |
components |
software | healthy | apps/web/components |
vaccine |
software | healthy | apps/web/components/vaccine |
ui |
software | healthy | apps/web/components/ui |
alerts |
software | healthy | apps/web/components/alerts |
scanner |
software | healthy | apps/web/components/scanner |
reports |
software | healthy | apps/web/components/reports |
medicine |
software | healthy | apps/web/components/medicine |
map |
software | healthy | apps/web/components/map |
app |
software | healthy | apps/web/app |
api |
software | healthy | apps/web/app/api |
upload |
software | healthy | apps/web/app/api/upload |
chat |
software | healthy | apps/web/app/api/chat |
overpass |
software | healthy | apps/web/app/api/overpass |
voice |
software | healthy | apps/web/app/api/voice |
tts |
software | healthy | apps/web/app/api/voice/tts |
transcribe |
software | healthy | apps/web/app/api/voice/transcribe |
components |
software | healthy | apps/web/app/components |
health |
software | healthy | apps/web/app/components/health |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
ConnectionPool |
software | healthy | apps/api/src/db/client.ts:ConnectionPool |
CommercialMRPScraper |
software | healthy | apps/ml/scrapers/commercial_mrp.py:188 |
FakeDecoder |
software | healthy | apps/ml/tests/test_asr_stream.py:19 |
FakeModel |
software | healthy | apps/ml/tests/test_asr_stream.py:40 |
FakeStreamingSession |
software | healthy | apps/ml/tests/test_asr_stream.py:52 |
FakeWebSocket |
software | healthy | apps/ml/tests/test_asr_stream.py:142 |
BrokenModel |
software | healthy | apps/ml/tests/test_asr_stream.py:173 |
FakeStdIn |
software | healthy | apps/ml/tests/test_asr_stream.py:311 |
FakeThread |
software | healthy | apps/ml/tests/test_asr_stream.py:318 |
FakeProcess |
software | healthy | apps/ml/tests/test_asr_stream.py:325 |
DummyTranscriber |
software | healthy | apps/ml/tests/test_asr_language_hint.py:18 |
FakeModel |
software | healthy | apps/ml/tests/test_asr.py:131 |
ASRTranscriptionUser |
software | healthy | apps/ml/tests/locustfile.py:19 |
AlertInfo |
software | healthy | apps/ml/services/alert_extractor.py:16 |
AlertList |
software | healthy | apps/ml/services/alert_extractor.py:25 |
ProcessMemoryCounters |
software | healthy | apps/ml/services/telemetry.py:43 |
MatchResult |
software | healthy | apps/ml/services/matcher.py:6 |
AnalyzeImageRequest |
software | healthy | apps/ml/routers/analyze.py:23 |
AnalyzeImageResponse |
software | healthy | apps/ml/routers/analyze.py:27 |
MatchRequest |
software | healthy | apps/ml/routers/ocr.py:62 |
MatchResponse |
software | healthy | apps/ml/routers/ocr.py:67 |
BatchVerifyRequest |
software | healthy | apps/ml/routers/verify.py:22 |
BatchVerifyResponse |
software | healthy | apps/ml/routers/verify.py:27 |
StreamingAudioDecoder |
software | healthy | apps/ml/routers/asr.py:388 |
StreamingAsrSession |
software | healthy | apps/ml/routers/asr.py:524 |
TTSRequest |
software | healthy | apps/ml/routers/tts.py:79 |
TTSResponse |
software | healthy | apps/ml/routers/tts.py:86 |
FakeExecuteResponse |
software | healthy | apps/etl/tests/test_loader.py:13 |
FakeTable |
software | healthy | apps/etl/tests/test_loader.py:18 |
FakeSupabaseClient |
software | healthy | apps/etl/tests/test_loader.py:99 |
MergeFakeTable |
software | healthy | apps/etl/tests/test_loader.py:166 |
MergeFakeSupabaseClient |
software | healthy | apps/etl/tests/test_loader.py:207 |
SupabaseLoader |
software | healthy | apps/etl/src/loaders/supabase_loader.py:92 |
CDSCOScraper |
software | healthy | apps/etl/src/scrapers/cdsco.py:36 |
JanAushadhiScraper |
software | healthy | apps/etl/src/scrapers/jan_aushadhi.py:119 |
JanAushadhiNormalizer |
software | healthy | apps/etl/src/scrapers/jan_aushadhi.py:180 |
CommercialMedicineScraper |
software | healthy | apps/etl/src/scrapers/commercial_medicine.py:20 |
CommercialMedicineNormalizer |
software | healthy | apps/etl/src/scrapers/commercial_medicine.py:49 |
CDSCOValidator |
software | healthy | apps/etl/src/validators/cdsco_validator.py:69 |
MockImage |
software | healthy | apps/web/tests/image-enhancer.test.ts:MockImage |
MockWorker |
software | healthy | apps/web/tests/image-enhancer.test.ts:MockWorker |
ThrowingWorker |
software | healthy | apps/web/tests/image-enhancer.test.ts:ThrowingWorker |
MockXHR |
software | healthy | apps/web/tests/useUpload.test.ts:MockXHR |
CloseEvent |
software | healthy | apps/web/tests/voice-streaming.test.ts:CloseEvent |
OfflineErrorBoundary |
software | healthy | apps/web/components/OfflineErrorBoundary.tsx:OfflineErrorBo… |
MockRateLimit |
software | healthy | apps/web/lib/rateLimit.ts:MockRateLimit |
OfflineRequestQueue |
software | healthy | apps/web/lib/apiWithRetry.ts:OfflineRequestQueue |
LFUNode |
software | healthy | src/services/distributed_lock_manager_5.py:12 |
LFUDoublyLinkedList |
software | healthy | src/services/distributed_lock_manager_5.py:20 |
MultiTierCacheManager |
software | healthy | src/services/distributed_lock_manager_5.py:47 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
LazyImage |
frontend | healthy | apps/web/components/LazyImage.tsx |
SafetyStatsBanner |
frontend | healthy | apps/web/components/SafetyStatsBanner.tsx |
Card |
frontend | healthy | apps/web/components/Card.tsx |
SearchSuggestions |
frontend | healthy | apps/web/components/SearchSuggestions.tsx |
RecallPushSubscriber |
frontend | healthy | apps/web/components/alerts/RecallPushSubscriber.tsx |
LasaConfirmation |
frontend | healthy | apps/web/components/scanner/LasaConfirmation.tsx |
ReportWizard |
frontend | healthy | apps/web/components/reports/ReportWizard.tsx |
MapView |
frontend | healthy | apps/web/components/map/MapView.tsx |
Loading |
frontend | healthy | apps/web/app/loading.tsx |
GlobalError |
frontend | healthy | apps/web/app/global-error.tsx |
Map |
frontend | healthy | apps/web/app/components/Map.tsx |
ChatUI |
frontend | healthy | apps/web/app/components/health/ChatUI.tsx |
NotFound |
frontend | healthy | apps/web/app/[locale]/not-found.tsx |
LanguageSwitcher |
frontend | healthy | apps/web/app/[locale]/LanguageSwitcher.tsx |
SahiDawaHome |
frontend | healthy | apps/web/app/[locale]/page.tsx |
Error |
frontend | healthy | apps/web/app/[locale]/error.tsx |
ExpiryTrackerPage |
frontend | healthy | apps/web/app/[locale]/expiry-tracker/page.tsx |
AboutPage |
frontend | healthy | apps/web/app/[locale]/about/page.tsx |
OfflinePage |
frontend | healthy | apps/web/app/[locale]/offline/page.tsx |
ContactPage |
frontend | healthy | apps/web/app/[locale]/contact/page.tsx |
HealthPage |
frontend | healthy | apps/web/app/[locale]/health/page.tsx |
LoginPage |
frontend | healthy | apps/web/app/[locale]/login/page.tsx |
BackToTopButton |
frontend | healthy | apps/web/app/[locale]/components/BackToTopButton.tsx |
Chatbot |
frontend | healthy | apps/web/app/[locale]/components/Chatbot.tsx |
Footer |
frontend | healthy | apps/web/app/[locale]/components/Footer.tsx |
SearchBar |
frontend | healthy | apps/web/app/[locale]/components/SearchBar.tsx |
Navbar |
frontend | healthy | apps/web/app/[locale]/components/Navbar.tsx |
VoiceLoading |
frontend | healthy | apps/web/app/[locale]/voice/loading.tsx |
VoiceTriagePage |
frontend | healthy | apps/web/app/[locale]/voice/page.tsx |
FullAlertsLogPage |
frontend | healthy | apps/web/app/[locale]/alerts/page.tsx |
AnalyticsDashboard |
frontend | healthy | apps/web/app/[locale]/admin/analytics/page.tsx |
AdminDashboard |
frontend | healthy | apps/web/app/[locale]/admin/dashboard/page.tsx |
HowItWorksPage |
frontend | healthy | apps/web/app/[locale]/how-it-works/page.tsx |
ReportInfoPanel |
frontend | healthy | apps/web/app/[locale]/report/ReportInfoPanel.tsx |
ReportPage |
frontend | healthy | apps/web/app/[locale]/report/page.tsx |
ReportLayout |
frontend | healthy | apps/web/app/[locale]/report/layout.tsx |
ProfileLoading |
frontend | healthy | apps/web/app/[locale]/profile/loading.tsx |
ProfilePage |
frontend | healthy | apps/web/app/[locale]/profile/page.tsx |
ScanLoading |
frontend | healthy | apps/web/app/[locale]/scan/loading.tsx |
ScanPage |
frontend | healthy | apps/web/app/[locale]/scan/page.tsx |
ScanLayout |
frontend | healthy | apps/web/app/[locale]/scan/layout.tsx |
VaccineHubPage |
frontend | healthy | apps/web/app/[locale]/vaccine-hub/page.tsx |
MyReportsPage |
frontend | healthy | apps/web/app/[locale]/reports/me/page.tsx |
PrivacyPolicyPage |
frontend | healthy | apps/web/app/[locale]/privacy/page.tsx |
CompareLoading |
frontend | healthy | apps/web/app/[locale]/compare/loading.tsx |
ComparePage |
frontend | healthy | apps/web/app/[locale]/compare/page.tsx |
CompareLayout |
frontend | healthy | apps/web/app/[locale]/compare/layout.tsx |
PharmacyPanels |
frontend | healthy | apps/web/app/[locale]/map/PharmacyPanels.tsx |
MapLoading |
frontend | healthy | apps/web/app/[locale]/map/loading.tsx |
MapHeaderLoadingIndicator |
frontend | healthy | apps/web/app/[locale]/map/MapHeaderLoadingIndicator.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET / |
api | healthy | apps/ml/main.py |
GET /health |
api | healthy | apps/ml/main.py |
POST / |
api | healthy | apps/ml/routers/analyze.py |
POST /extract |
api | healthy | apps/ml/routers/ocr.py |
POST /match |
api | healthy | apps/ml/routers/ocr.py |
POST /batch |
api | healthy | apps/ml/routers/verify.py |
POST /transcribe |
api | healthy | apps/ml/routers/asr.py |
POST /generate |
api | healthy | apps/ml/routers/tts.py |
GET /api/csrf-token |
api | healthy | apps/api/src/app.ts |
USE /api/v1/admin |
api | healthy | apps/api/src/app.ts |
USE /api/reports |
api | healthy | apps/api/src/app.ts |
USE /reports |
api | healthy | apps/api/src/app.ts |
USE /api/pharmacies |
api | healthy | apps/api/src/app.ts |
USE /api/verify/batch |
api | healthy | apps/api/src/app.ts |
USE /api/verify |
api | healthy | apps/api/src/app.ts |
USE /api/analytics |
api | healthy | apps/api/src/app.ts |
USE /api/notifications |
api | healthy | apps/api/src/app.ts |
USE /api/v1/scan |
api | healthy | apps/api/src/app.ts |
USE /api/v1/lasa |
api | healthy | apps/api/src/app.ts |
USE /api/v1/alerts |
api | healthy | apps/api/src/app.ts |
USE /api/ml |
api | healthy | apps/api/src/app.ts |
USE /api/map |
api | healthy | apps/api/src/app.ts |
USE /api/docs |
api | healthy | apps/api/src/app.ts |
GET /api/docs.json |
api | healthy | apps/api/src/app.ts |
GET /heatmap |
api | healthy | apps/api/src/routes/analytics.ts |
GET /vapid-public-key |
api | healthy | apps/api/src/routes/notifications.ts |
POST /subscriptions |
api | healthy | apps/api/src/routes/notifications.ts |
DELETE /subscriptions |
api | healthy | apps/api/src/routes/notifications.ts |
GET /recalls/mock |
api | healthy | apps/api/src/routes/notifications.ts |
POST /recalls/mock/trigger |
api | healthy | apps/api/src/routes/notifications.ts |
GET /reports |
api | healthy | apps/api/src/routes/admin.routes.ts |
PATCH /reports/:id/status |
api | healthy | apps/api/src/routes/admin.routes.ts |
GET /medicines |
api | healthy | apps/api/src/routes/admin.routes.ts |
POST /medicines |
api | healthy | apps/api/src/routes/admin.routes.ts |
GET /logs |
api | healthy | apps/api/src/routes/admin.routes.ts |
GET /mine |
api | healthy | apps/api/src/routes/reports.ts |
PATCH /:id/status |
api | healthy | apps/api/src/routes/reports.ts |
POST /ingest |
api | healthy | apps/api/src/routes/alerts.ts |
GET /nearest |
api | healthy | apps/api/src/routes/pharmacies.ts |
GET /in-bounds |
api | healthy | apps/api/src/routes/pharmacies.ts |
GET /nearby |
api | healthy | apps/api/src/routes/map.ts |
POST /analyze |
api | healthy | apps/api/src/routes/ml.ts |
POST /verify-brand |
api | healthy | apps/api/src/routes/scan.ts |
GET /:batchNumber |
api | healthy | apps/api/src/routes/batch.ts |
POST /report |
api | healthy | apps/api/src/routes/batch.ts |
POST /check |
api | healthy | apps/api/src/routes/lasa.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
/[locale] |
frontend | healthy | apps/web/app/[locale]/page.tsx |
/[locale]/expiry-tracker |
frontend | healthy | apps/web/app/[locale]/expiry-tracker/page.tsx |
/[locale]/about |
frontend | healthy | apps/web/app/[locale]/about/page.tsx |
/[locale]/offline |
frontend | healthy | apps/web/app/[locale]/offline/page.tsx |
/[locale]/contact |
frontend | healthy | apps/web/app/[locale]/contact/page.tsx |
/[locale]/health |
frontend | healthy | apps/web/app/[locale]/health/page.tsx |
/[locale]/login |
frontend | healthy | apps/web/app/[locale]/login/page.tsx |
/[locale]/voice |
frontend | healthy | apps/web/app/[locale]/voice/page.tsx |
/[locale]/alerts |
frontend | healthy | apps/web/app/[locale]/alerts/page.tsx |
/[locale]/admin/analytics |
frontend | healthy | apps/web/app/[locale]/admin/analytics/page.tsx |
/[locale]/admin/dashboard |
frontend | healthy | apps/web/app/[locale]/admin/dashboard/page.tsx |
/[locale]/how-it-works |
frontend | healthy | apps/web/app/[locale]/how-it-works/page.tsx |
/[locale]/report |
frontend | healthy | apps/web/app/[locale]/report/page.tsx |
/[locale]/profile |
frontend | healthy | apps/web/app/[locale]/profile/page.tsx |
/[locale]/scan |
frontend | healthy | apps/web/app/[locale]/scan/page.tsx |
/[locale]/vaccine-hub |
frontend | healthy | apps/web/app/[locale]/vaccine-hub/page.tsx |
/[locale]/reports/me |
frontend | healthy | apps/web/app/[locale]/reports/me/page.tsx |
/[locale]/privacy |
frontend | healthy | apps/web/app/[locale]/privacy/page.tsx |
/[locale]/compare |
frontend | healthy | apps/web/app/[locale]/compare/page.tsx |
/[locale]/map |
frontend | healthy | apps/web/app/[locale]/map/page.tsx |
/[locale]/faq |
frontend | healthy | apps/web/app/[locale]/faq/page.tsx |
/ |
frontend | healthy | apps/api/src/app.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
analyze |
cicd | healthy | .github/workflows/codeql.yml |
auto-unassign |
cicd | healthy | .github/workflows/auto-unassign.yml |
test-node-apps |
cicd | healthy | .github/workflows/test.yml |
test-ml-service |
cicd | healthy | .github/workflows/test.yml |
auto-assign-and-onboard |
cicd | healthy | .github/workflows/issue-opened-autoflow.yml |
label-enforcer |
cicd | healthy | .github/workflows/label-guard.yml |
enforce |
cicd | healthy | .github/workflows/enforce-assignment.yml |
quality-check |
cicd | healthy | .github/workflows/pr-quality-check.yml |
detect-ping-spam |
cicd | healthy | .github/workflows/anti-ping-spam.yml |
close-stale-items |
cicd | healthy | .github/workflows/close-stale.yml |
validate-issue |
cicd | healthy | .github/workflows/detect-duplicate-issue.yml |
update_release_draft |
cicd | healthy | .github/workflows/release-drafter.yml |
auto-label-pr-files |
cicd | healthy | .github/workflows/labeler.yml |
apply-gssoc-label |
cicd | healthy | .github/workflows/labeler.yml |
apply-gssoc-approved |
cicd | healthy | .github/workflows/labeler.yml |
check-conflicts |
cicd | healthy | .github/workflows/close-conflicting-prs.yml |
welcome-onboard |
cicd | healthy | .github/workflows/welcome-onboarding.yml |
manage-issues |
cicd | healthy | .github/workflows/auto-assign.yml |
analyze-and-document |
cicd | healthy | .github/workflows/devtrack.yml |
comment-on-pr-close |
cicd | healthy | .github/workflows/autocomment-pr-merge.yml |
linkedin-shoutout |
cicd | healthy | .github/workflows/linkedin-shoutout.yml |
check-pr-size |
cicd | healthy | .github/workflows/pr-size-checker.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
001_map_tables.sql |
data | healthy | apps/api/src/db/migrations/001_map_tables.sql |
check-migrations.js |
data | healthy | scripts/check-migrations.js |
20260518000000_create_push_subscriptions.sql |
data | healthy | supabase/migrations/20260518000000_create_push_subscription… |
20260529000001_seed_real_medicines.sql |
data | healthy | supabase/migrations/20260529000001_seed_real_medicines.sql |
20260529000002_add_medicine_search_indexes.sql |
data | healthy | supabase/migrations/20260529000002_add_medicine_search_inde… |
20260529000000_add_rls_policies.sql |
data | healthy | supabase/migrations/20260529000000_add_rls_policies.sql |
20260603000000_add_license_id_to_pharmacies.sql |
data | healthy | supabase/migrations/20260603000000_add_license_id_to_pharma… |
20260529000003_fix_medicines_unique_variant.sql |
data | healthy | supabase/migrations/20260529000003_fix_medicines_unique_var… |
20260519000000_add_batch_number_index.sql |
data | healthy | supabase/migrations/20260519000000_add_batch_number_index.s… |
20260527000000_add_batches_manufacturers.sql |
data | healthy | supabase/migrations/20260527000000_add_batches_manufacturer… |
20260601000000_add_push_subscriptions_user_id_and_rls.sql |
data | healthy | supabase/migrations/20260601000000_add_push_subscriptions_u… |
20260511000000_initial_schema.sql |
data | healthy | supabase/migrations/20260511000000_initial_schema.sql |
20260525000000_create_lasa_rpc.sql |
data | healthy | supabase/migrations/20260525000000_create_lasa_rpc.sql |
20260520000000_create_etl_failed_rows.sql |
data | healthy | supabase/migrations/20260520000000_create_etl_failed_rows.s… |
20260516000000_add_reporter_id_to_reports.sql |
data | healthy | supabase/migrations/20260516000000_add_reporter_id_to_repor… |
20260521000000_add_medicine_pricing_columns.sql |
data | healthy | supabase/migrations/20260521000000_add_medicine_pricing_col… |
20260530000000_create_pharmacy_rpc_functions.sql |
data | healthy | supabase/migrations/20260530000000_create_pharmacy_rpc_func… |
20260602000000_create_scan_history.sql |
data | healthy | supabase/migrations/20260602000000_create_scan_history.sql |
20260530000001_seed_jan_aushadhi_pharmacies.sql |
data | healthy | supabase/migrations/20260530000001_seed_jan_aushadhi_pharma… |
20260517000000_extend_counterfeit_reports_fields.sql |
data | healthy | supabase/migrations/20260517000000_extend_counterfeit_repor… |
20260531000000_drop_mrp_gte_jan_aushadhi_price_constraint.s… |
data | healthy | supabase/migrations/20260531000000_drop_mrp_gte_jan_aushadh… |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::codeql |
cicd | healthy | .github/workflows/codeql.yml |
gha::auto-unassign |
cicd | healthy | .github/workflows/auto-unassign.yml |
gha::test |
cicd | healthy | .github/workflows/test.yml |
gha::issue-opened-autoflow |
cicd | healthy | .github/workflows/issue-opened-autoflow.yml |
gha::label-guard |
cicd | healthy | .github/workflows/label-guard.yml |
gha::enforce-assignment |
cicd | healthy | .github/workflows/enforce-assignment.yml |
gha::pr-quality-check |
cicd | healthy | .github/workflows/pr-quality-check.yml |
gha::anti-ping-spam |
cicd | healthy | .github/workflows/anti-ping-spam.yml |
gha::close-stale |
cicd | healthy | .github/workflows/close-stale.yml |
gha::detect-duplicate-issue |
cicd | healthy | .github/workflows/detect-duplicate-issue.yml |
gha::release-drafter |
cicd | healthy | .github/workflows/release-drafter.yml |
gha::labeler |
cicd | healthy | .github/workflows/labeler.yml |
gha::close-conflicting-prs |
cicd | healthy | .github/workflows/close-conflicting-prs.yml |
gha::welcome-onboarding |
cicd | healthy | .github/workflows/welcome-onboarding.yml |
gha::auto-assign |
cicd | healthy | .github/workflows/auto-assign.yml |
gha::devtrack |
cicd | healthy | .github/workflows/devtrack.yml |
gha::autocomment-pr-merge |
cicd | healthy | .github/workflows/autocomment-pr-merge.yml |
gha::linkedin-shoutout |
cicd | healthy | .github/workflows/linkedin-shoutout.yml |
gha::pr-size-checker |
cicd | healthy | .github/workflows/pr-size-checker.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
medicines |
data | healthy | apps/api/src/db/schema.sql |
pharmacies |
data | healthy | apps/api/src/db/schema.sql |
counterfeit_reports |
data | healthy | apps/api/src/db/schema.sql |
audit_logs |
data | healthy | apps/api/src/db/schema.sql |
district_alerts |
data | healthy | apps/api/src/db/schema.sql |
barcode_mappings |
data | healthy | apps/api/src/db/schema.sql |
scan_history |
data | healthy | apps/api/src/db/schema.sql |
drug_alerts |
data | healthy | apps/api/src/db/schema.sql |
push_subscriptions |
data | healthy | apps/api/src/db/schema.sql |
etl_failed_rows |
data | healthy | apps/api/src/db/schema.sql |
asha_workers |
data | healthy | apps/api/src/db/migrations/001_map_tables.sql |
manufacturers |
data | healthy | supabase/migrations/20260527000000_add_batches_manufacturer… |
batches |
data | healthy | supabase/migrations/20260527000000_add_batches_manufacturer… |
| Label | Layer | Status | Path |
|---|---|---|---|
image::apps/api/Dockerfile |
hardware | healthy | apps/api/Dockerfile |
image::apps/ml/Dockerfile |
hardware | healthy | apps/ml/Dockerfile |
image::apps/web/Dockerfile |
hardware | healthy | apps/web/Dockerfile |
web |
hardware | healthy | docker-compose.yml |
api |
hardware | healthy | docker-compose.yml |
ml |
hardware | healthy | docker-compose.yml |
redis |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
port:3000 |
network | healthy | docker-compose.prod.yml |
port:4000 |
network | healthy | docker-compose.prod.yml |
port:80 |
network | healthy | docker-compose.prod.yml |
port:8000 |
network | healthy | docker-compose.yml |
port:6379 |
network | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | package.json |
mongodb |
data | healthy | package-lock.json |
postgres |
data | healthy | package-lock.json |
postgresql |
data | healthy | apps/api/src/utils/dbErrors.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | docker-compose.prod.yml |
120.0.0.0 |
network | healthy | apps/ml/scratch_test.py |
1.3.65.65 |
network | healthy | apps/web/components/reports/ReportWizard.tsx |
19.13.39.26 |
network | healthy | apps/web/app/components/health/components/ChatBubble.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::apps/web/tests/profile-auth-status.test.tsx |
security | healthy | apps/web/tests/profile-auth-status.test.tsx |
auth::apps/web/src/components/AuthSync.tsx |
security | healthy | apps/web/src/components/AuthSync.tsx |
auth::supabase/config.toml |
security | healthy | supabase/config.toml |
auth::apps/api/src/routes/pharmacies.ts |
security | healthy | apps/api/src/routes/pharmacies.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::gcp |
hardware | healthy | package-lock.json |
vps::aws |
hardware | healthy | package-lock.json |
vps::azure |
hardware | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
GITHUB_TOKEN |
cicd | healthy | — |
MAKE_WEBHOOK_URL |
cicd | healthy | — |
GEMINI_API_KEY |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-qr9re2v7 |
software | healthy | /tmp/repobility-clone-qr9re2v7 |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | docker-compose.prod.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | apps/web/app/[locale]/page.tsx |
This page is publicly accessible at:
https://repobility.com/scan/4c48c577-63cb-4638-9527-779d7e52f1c2/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/4c48c577-63cb-4638-9527-779d7e52f1c2/
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.