https://github.com/tanjirkhan3229-cmyk/ForgeCMS
· scanned 2026-06-16 00:29 UTC (2 months, 2 weeks ago)
112 raw signals (0 security + 112 graph)
Last scanned 2 months, 2 weeks ago · v1 · 102 actionable findings from 1 signal source. 10 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 318 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 |
|---|---|---|---|
ModuleIndexRedirect |
software | healthy | frontend/src/App.tsx:ModuleIndexRedirect |
RequireAuth |
software | healthy | frontend/src/App.tsx:RequireAuth |
App |
software | healthy | frontend/src/App.tsx:App |
PublicLayout |
software | healthy | frontend/src/components/PublicLayout.tsx:PublicLayout |
StatusBadge |
software | healthy | frontend/src/components/StatusBadge.tsx:StatusBadge |
TiptapEditor |
software | healthy | frontend/src/components/TiptapEditor.tsx:TiptapEditor |
Toolbar |
software | healthy | frontend/src/components/TiptapEditor.tsx:Toolbar |
onImagePicked |
software | healthy | frontend/src/components/TiptapEditor.tsx:onImagePicked |
Btn |
software | healthy | frontend/src/components/TiptapEditor.tsx:Btn |
Divider |
software | healthy | frontend/src/components/TiptapEditor.tsx:Divider |
TextBtn |
software | healthy | frontend/src/components/TiptapEditor.tsx:TextBtn |
AiWriterPanel |
software | healthy | frontend/src/components/AiWriterPanel.tsx:AiWriterPanel |
generate |
software | healthy | frontend/src/components/AiWriterPanel.tsx:generate |
AdminLayout |
software | healthy | frontend/src/components/AdminLayout.tsx:AdminLayout |
logout |
software | healthy | frontend/src/components/AdminLayout.tsx:logout |
SubLink |
software | healthy | frontend/src/components/AdminLayout.tsx:SubLink |
getToken |
software | healthy | frontend/src/lib/api.ts:getToken |
setToken |
software | healthy | frontend/src/lib/api.ts:setToken |
clearToken |
software | healthy | frontend/src/lib/api.ts:clearToken |
request |
software | healthy | frontend/src/lib/api.ts:request |
localInputToUtc |
software | healthy | frontend/src/lib/api.ts:localInputToUtc |
utcToLocalInput |
software | healthy | frontend/src/lib/api.ts:utcToLocalInput |
formatDate |
software | healthy | frontend/src/lib/api.ts:formatDate |
formatBytes |
software | healthy | frontend/src/lib/api.ts:formatBytes |
uploadFile |
software | healthy | frontend/src/lib/api.ts:uploadFile |
LoginPage |
software | healthy | frontend/src/pages/LoginPage.tsx:LoginPage |
onSubmit |
software | healthy | frontend/src/pages/LoginPage.tsx:onSubmit |
StatusTilePage |
software | healthy | frontend/src/pages/admin/StatusTilePage.tsx:StatusTilePage |
act |
software | healthy | frontend/src/pages/admin/StatusTilePage.tsx:act |
TileBtn |
software | healthy | frontend/src/pages/admin/StatusTilePage.tsx:TileBtn |
PageBtn |
software | healthy | frontend/src/pages/admin/StatusTilePage.tsx:PageBtn |
EditorPage |
software | healthy | frontend/src/pages/admin/EditorPage.tsx:EditorPage |
set |
software | healthy | frontend/src/pages/admin/EditorPage.tsx:set |
buildPayload |
software | healthy | frontend/src/pages/admin/EditorPage.tsx:buildPayload |
save |
software | healthy | frontend/src/pages/admin/EditorPage.tsx:save |
onCoverPicked |
software | healthy | frontend/src/pages/admin/EditorPage.tsx:onCoverPicked |
applyDraft |
software | healthy | frontend/src/pages/admin/EditorPage.tsx:applyDraft |
onResourcePicked |
software | healthy | frontend/src/pages/admin/EditorPage.tsx:onResourcePicked |
schemaInvalid |
software | healthy | frontend/src/pages/admin/EditorPage.tsx:schemaInvalid |
Field |
software | healthy | frontend/src/pages/admin/EditorPage.tsx:Field |
SettingsPage |
software | healthy | frontend/src/pages/admin/SettingsPage.tsx:SettingsPage |
setTab |
software | healthy | frontend/src/pages/admin/SettingsPage.tsx:setTab |
ProfileSettings |
software | healthy | frontend/src/pages/admin/SettingsPage.tsx:ProfileSettings |
set |
software | healthy | frontend/src/pages/admin/SettingsPage.tsx:set |
save |
software | healthy | frontend/src/pages/admin/SettingsPage.tsx:save |
onAvatarPicked |
software | healthy | frontend/src/pages/admin/SettingsPage.tsx:onAvatarPicked |
Field |
software | healthy | frontend/src/pages/admin/SettingsPage.tsx:Field |
KnowledgeBasePage |
software | healthy | frontend/src/pages/admin/KnowledgeBasePage.tsx:KnowledgeBas… |
load |
software | healthy | frontend/src/pages/admin/KnowledgeBasePage.tsx:load |
onUpload |
software | healthy | frontend/src/pages/admin/KnowledgeBasePage.tsx:onUpload |
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 |
Dockerfile |
software | healthy | Dockerfile |
railway.json |
software | healthy | railway.json |
tsconfig.app.json |
software | healthy | frontend/tsconfig.app.json |
vite.config.ts |
software | healthy | frontend/vite.config.ts |
README.md |
software | healthy | frontend/README.md |
package.json |
software | healthy | frontend/package.json |
tsconfig.node.json |
software | healthy | frontend/tsconfig.node.json |
index.html |
software | healthy | frontend/index.html |
Dockerfile |
software | healthy | frontend/Dockerfile |
package-lock.json |
software | healthy | frontend/package-lock.json |
eslint.config.js |
software | healthy | frontend/eslint.config.js |
tsconfig.json |
software | healthy | frontend/tsconfig.json |
railway.json |
software | healthy | frontend/railway.json |
index.css |
software | healthy | frontend/src/index.css |
main.tsx |
software | healthy | frontend/src/main.tsx |
App.tsx |
software | healthy | frontend/src/App.tsx |
PublicLayout.tsx |
software | healthy | frontend/src/components/PublicLayout.tsx |
StatusBadge.tsx |
software | healthy | frontend/src/components/StatusBadge.tsx |
TiptapEditor.tsx |
software | healthy | frontend/src/components/TiptapEditor.tsx |
AiWriterPanel.tsx |
software | healthy | frontend/src/components/AiWriterPanel.tsx |
AdminLayout.tsx |
software | healthy | frontend/src/components/AdminLayout.tsx |
api.ts |
software | healthy | frontend/src/lib/api.ts |
LoginPage.tsx |
software | healthy | frontend/src/pages/LoginPage.tsx |
StatusTilePage.tsx |
software | healthy | frontend/src/pages/admin/StatusTilePage.tsx |
EditorPage.tsx |
software | healthy | frontend/src/pages/admin/EditorPage.tsx |
SettingsPage.tsx |
software | healthy | frontend/src/pages/admin/SettingsPage.tsx |
KnowledgeBasePage.tsx |
software | healthy | frontend/src/pages/admin/KnowledgeBasePage.tsx |
DashboardPage.tsx |
software | healthy | frontend/src/pages/admin/DashboardPage.tsx |
MediaLibraryPage.tsx |
software | healthy | frontend/src/pages/admin/MediaLibraryPage.tsx |
UserManagement.tsx |
software | healthy | frontend/src/pages/admin/UserManagement.tsx |
FaqPage.tsx |
software | healthy | frontend/src/pages/public/FaqPage.tsx |
ContentDetailPage.tsx |
software | healthy | frontend/src/pages/public/ContentDetailPage.tsx |
ContentListPage.tsx |
software | healthy | frontend/src/pages/public/ContentListPage.tsx |
ResourcesPage.tsx |
software | healthy | frontend/src/pages/public/ResourcesPage.tsx |
Dockerfile |
software | healthy | backend/Dockerfile |
.env.example |
software | healthy | backend/.env.example |
requirements.txt |
software | healthy | backend/requirements.txt |
railway.json |
software | healthy | backend/railway.json |
database.py |
software | healthy | backend/app/database.py |
schemas.py |
software | healthy | backend/app/schemas.py |
__init__.py |
software | healthy | backend/app/__init__.py |
scheduler.py |
software | healthy | backend/app/scheduler.py |
models.py |
software | healthy | backend/app/models.py |
openrouter.py |
software | healthy | backend/app/openrouter.py |
main.py |
software | healthy | backend/app/main.py |
__init__.py |
software | healthy | backend/app/routers/__init__.py |
knowledge.py |
software | healthy | backend/app/routers/knowledge.py |
auth.py |
software | healthy | backend/app/routers/auth.py |
public.py |
software | healthy | backend/app/routers/public.py |
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/health |
api | healthy | backend/app/main.py |
GET /{full_path:path} |
api | healthy | backend/app/main.py |
POST / |
api | healthy | backend/app/routers/knowledge.py |
GET / |
api | healthy | backend/app/routers/knowledge.py |
GET /{doc_id} |
api | healthy | backend/app/routers/knowledge.py |
POST /{doc_id}/reanalyze |
api | healthy | backend/app/routers/knowledge.py |
DELETE /{doc_id} |
api | healthy | backend/app/routers/knowledge.py |
POST /login |
api | healthy | backend/app/routers/auth.py |
GET /me |
api | healthy | backend/app/routers/auth.py |
GET /{module} |
api | healthy | backend/app/routers/public.py |
GET /{module}/categories |
api | healthy | backend/app/routers/public.py |
GET /{module}/slug/{slug} |
api | healthy | backend/app/routers/public.py |
GET /resources/{item_id}/download |
api | healthy | backend/app/routers/public.py |
GET /stats |
api | healthy | backend/app/routers/admin.py |
GET /{module}/stats |
api | healthy | backend/app/routers/admin.py |
POST /{module} |
api | healthy | backend/app/routers/admin.py |
GET /{module}/{item_id} |
api | healthy | backend/app/routers/admin.py |
PUT /{module}/{item_id} |
api | healthy | backend/app/routers/admin.py |
DELETE /{module}/{item_id} |
api | healthy | backend/app/routers/admin.py |
POST /{module}/{item_id}/publish |
api | healthy | backend/app/routers/admin.py |
POST /{module}/{item_id}/unpublish |
api | healthy | backend/app/routers/admin.py |
POST /{module}/{item_id}/schedule |
api | healthy | backend/app/routers/admin.py |
POST /{module}/{item_id}/duplicate |
api | healthy | backend/app/routers/admin.py |
POST /generate |
api | healthy | backend/app/routers/ai.py |
GET /profile |
api | healthy | backend/app/routers/settings.py |
PUT /profile |
api | healthy | backend/app/routers/settings.py |
GET /users |
api | healthy | backend/app/routers/settings.py |
POST /users |
api | healthy | backend/app/routers/settings.py |
PUT /users/{user_id} |
api | healthy | backend/app/routers/settings.py |
DELETE /users/{user_id} |
api | healthy | backend/app/routers/settings.py |
DELETE /{name} |
api | healthy | backend/app/routers/media.py |
| Label | Layer | Status | Path |
|---|---|---|---|
/LoginPage |
frontend | healthy | frontend/src/pages/LoginPage.tsx |
/admin/StatusTilePage |
frontend | healthy | frontend/src/pages/admin/StatusTilePage.tsx |
/admin/EditorPage |
frontend | healthy | frontend/src/pages/admin/EditorPage.tsx |
/admin/SettingsPage |
frontend | healthy | frontend/src/pages/admin/SettingsPage.tsx |
/admin/KnowledgeBasePage |
frontend | healthy | frontend/src/pages/admin/KnowledgeBasePage.tsx |
/admin/DashboardPage |
frontend | healthy | frontend/src/pages/admin/DashboardPage.tsx |
/admin/MediaLibraryPage |
frontend | healthy | frontend/src/pages/admin/MediaLibraryPage.tsx |
/admin/UserManagement |
frontend | healthy | frontend/src/pages/admin/UserManagement.tsx |
/public/FaqPage |
frontend | healthy | frontend/src/pages/public/FaqPage.tsx |
/public/ContentDetailPage |
frontend | healthy | frontend/src/pages/public/ContentDetailPage.tsx |
/public/ContentListPage |
frontend | healthy | frontend/src/pages/public/ContentListPage.tsx |
/public/ResourcesPage |
frontend | healthy | frontend/src/pages/public/ResourcesPage.tsx |
/ |
frontend | healthy | frontend/src/App.tsx |
/login |
frontend | healthy | frontend/src/App.tsx |
/blogs |
frontend | healthy | frontend/src/App.tsx |
/blogs/:slug |
frontend | healthy | frontend/src/App.tsx |
/news |
frontend | healthy | frontend/src/App.tsx |
/news/:slug |
frontend | healthy | frontend/src/App.tsx |
/faqs |
frontend | healthy | frontend/src/App.tsx |
/resources |
frontend | healthy | frontend/src/App.tsx |
/admin |
frontend | healthy | frontend/src/App.tsx |
media |
frontend | healthy | frontend/src/App.tsx |
knowledge |
frontend | healthy | frontend/src/App.tsx |
settings |
frontend | healthy | frontend/src/App.tsx |
:module |
frontend | healthy | frontend/src/App.tsx |
:module/drafts |
frontend | healthy | frontend/src/App.tsx |
:module/published |
frontend | healthy | frontend/src/App.tsx |
:module/scheduled |
frontend | healthy | frontend/src/App.tsx |
:module/new |
frontend | healthy | frontend/src/App.tsx |
:module/:id/edit |
frontend | healthy | frontend/src/App.tsx |
* |
frontend | healthy | frontend/src/App.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
Base |
software | healthy | backend/app/database.py:20 |
ContentBase |
software | healthy | backend/app/schemas.py:7 |
ContentCreate |
software | healthy | backend/app/schemas.py:26 |
ContentUpdate |
software | healthy | backend/app/schemas.py:31 |
ContentOut |
software | healthy | backend/app/schemas.py:36 |
ContentList |
software | healthy | backend/app/schemas.py:49 |
ScheduleIn |
software | healthy | backend/app/schemas.py:56 |
StatsOut |
software | healthy | backend/app/schemas.py:60 |
ContentItem |
software | healthy | backend/app/models.py:13 |
KnowledgeDoc |
software | healthy | backend/app/models.py:55 |
User |
software | healthy | backend/app/models.py:73 |
Profile |
software | healthy | backend/app/models.py:88 |
KnowledgeOut |
software | healthy | backend/app/routers/knowledge.py:28 |
KnowledgeDetail |
software | healthy | backend/app/routers/knowledge.py:39 |
LoginIn |
software | healthy | backend/app/routers/auth.py:104 |
UserOut |
software | healthy | backend/app/routers/auth.py:109 |
LoginOut |
software | healthy | backend/app/routers/auth.py:120 |
GenerateIn |
software | healthy | backend/app/routers/ai.py:53 |
GenerateOut |
software | healthy | backend/app/routers/ai.py:61 |
ProfileIn |
software | healthy | backend/app/routers/settings.py:14 |
ProfileOut |
software | healthy | backend/app/routers/settings.py:22 |
UserIn |
software | healthy | backend/app/routers/settings.py:57 |
UserUpdate |
software | healthy | backend/app/routers/settings.py:65 |
UserOut |
software | healthy | backend/app/routers/settings.py:73 |
MediaFile |
software | healthy | backend/app/routers/media.py:14 |
MediaList |
software | healthy | backend/app/routers/media.py:23 |
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | frontend/src/App.tsx |
PublicLayout |
frontend | healthy | frontend/src/components/PublicLayout.tsx |
StatusBadge |
frontend | healthy | frontend/src/components/StatusBadge.tsx |
TiptapEditor |
frontend | healthy | frontend/src/components/TiptapEditor.tsx |
AiWriterPanel |
frontend | healthy | frontend/src/components/AiWriterPanel.tsx |
AdminLayout |
frontend | healthy | frontend/src/components/AdminLayout.tsx |
LoginPage |
frontend | healthy | frontend/src/pages/LoginPage.tsx |
StatusTilePage |
frontend | healthy | frontend/src/pages/admin/StatusTilePage.tsx |
EditorPage |
frontend | healthy | frontend/src/pages/admin/EditorPage.tsx |
SettingsPage |
frontend | healthy | frontend/src/pages/admin/SettingsPage.tsx |
KnowledgeBasePage |
frontend | healthy | frontend/src/pages/admin/KnowledgeBasePage.tsx |
DashboardPage |
frontend | healthy | frontend/src/pages/admin/DashboardPage.tsx |
MediaLibraryPage |
frontend | healthy | frontend/src/pages/admin/MediaLibraryPage.tsx |
UserManagement |
frontend | healthy | frontend/src/pages/admin/UserManagement.tsx |
FaqPage |
frontend | healthy | frontend/src/pages/public/FaqPage.tsx |
ContentDetailPage |
frontend | healthy | frontend/src/pages/public/ContentDetailPage.tsx |
ContentListPage |
frontend | healthy | frontend/src/pages/public/ContentListPage.tsx |
ResourcesPage |
frontend | healthy | frontend/src/pages/public/ResourcesPage.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
frontend |
software | healthy | frontend |
src |
software | healthy | frontend/src |
components |
software | healthy | frontend/src/components |
lib |
software | healthy | frontend/src/lib |
pages |
software | healthy | frontend/src/pages |
admin |
software | healthy | frontend/src/pages/admin |
public |
software | healthy | frontend/src/pages/public |
backend |
software | healthy | backend |
app |
software | healthy | backend/app |
routers |
software | healthy | backend/app/routers |
| Label | Layer | Status | Path |
|---|---|---|---|
Base |
data | healthy | backend/app/database.py |
ContentItem |
data | healthy | backend/app/models.py |
KnowledgeDoc |
data | healthy | backend/app/models.py |
User |
data | healthy | backend/app/models.py |
Profile |
data | healthy | backend/app/models.py |
content_items |
data | healthy | backend/app/models.py |
knowledge_docs |
data | healthy | backend/app/models.py |
users |
data | healthy | backend/app/models.py |
profile |
data | healthy | backend/app/models.py |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | README.md |
postgres |
data | healthy | README.md |
postgresql |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
image::frontend/Dockerfile |
hardware | healthy | frontend/Dockerfile |
image::backend/Dockerfile |
hardware | healthy | backend/Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | Dockerfile |
port:8080 |
network | healthy | frontend/Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-jtlm6ojl |
software | healthy | /tmp/repobility-clone-jtlm6ojl |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | frontend/Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | backend/app/main.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | README.md |
This page is publicly accessible at:
https://repobility.com/scan/a7a2b7f6-b49f-4484-8429-9af02ac28691/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/a7a2b7f6-b49f-4484-8429-9af02ac28691/
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.