System API

Dashboard analytics, menu management, recycle bin, file management, system settings, and health checks.

The System API covers platform-level operations including dashboard analytics, dynamic menu management, soft-delete recycle bin, file uploads, system settings, and infrastructure health checks.

Dashboard Analytics

The dashboard endpoints provide real-time KPI summaries, login activity trends, security event monitoring, and audit event distribution. All data is tenant-scoped based on the authenticated admin's context.

MethodEndpointDescriptionAuth
GET/api/v1/dashboard/summaryGet KPI summary with admin/user/tenant counts, today's logins, and storage usage.🔒 Required
GET/api/v1/dashboard/login-activityGet login activity over time (successful vs failed logins per day).🔒 Required
GET/api/v1/dashboard/recent-changesGet recent entity changes across the system (creates, updates, deletes).🔒 Required
GET/api/v1/dashboard/event-distributionGet audit event type distribution for pie/bar charts.🔒 Required
GET/api/v1/dashboard/security-eventsGet security events including brute-force attempts, locked accounts, and blocked IPs.🔒 Required
GET/api/v1/dashboard/top-blocked-ipsGet the top blocked IP addresses with attempt counts.🔒 Required
GET /dashboard/summary — ResponseJSON
{
  "totalAdmins": 25,
  "activeAdmins": 22,
  "totalUsers": 1500,
  "activeUsers": 1340,
  "totalTenants": 8,
  "activeTenants": 7,
  "totalRoles": 12,
  "todayLogins": 45,
  "failedLoginsToday": 3,
  "storageUsedMB": 2400,
  "pendingNotifications": 12
}

Dashboard Export

MethodEndpointDescriptionAuth
GET/api/v1/dashboard/export/overviewExport the overview dashboard as CSV, Excel, or PDF.🔒 Required
GET/api/v1/dashboard/export/analyticsExport analytics data with optional chart images (PDF).🔒 Required
GET/api/v1/dashboard/export/securityExport security event data for compliance reporting.🔒 Required
ParameterValuesDescription
formatcsv, excel, pdfExport file format
period7d, 30d, 90d, 1yDate range for data
includeChartstrue/falseInclude chart images (PDF only)
MethodEndpointDescriptionAuth
GET/api/v1/menusList all menu items in tree structure.🔒 Required
GET/api/v1/menus/my-menuGet the personalized menu tree for the current admin (filtered by role visibility).🔒 Required
POST/api/v1/menusCreate a new menu item with title, icon, path, and parent.🔒 Required
PUT/api/v1/menus/{id}Update a menu item's title, icon, path, or parent.🔒 Required
DELETE/api/v1/menus/{id}Delete a menu item and all its children.🔒 Required
PUT/api/v1/menus/reorderReorder menu items by providing an array of {id, order} pairs.🔒 Required
PUT/api/v1/menus/{id}/role-visibilitySet which roles can see a specific menu item.🔒 Required
PUT/api/v1/menus/{id}/tenant-overrideOverride a menu item's visibility or order for a specific tenant.🔒 Required
GET/api/v1/menus/my-overridesGet the current tenant's menu overrides.🔒 Required
GET /menus/my-menu — Personalized Menu TreeJSON
[
  {
    "id": "menu-1",
    "title": "Dashboard",
    "icon": "LayoutDashboard",
    "path": "/dashboard",
    "order": 1,
    "children": []
  },
  {
    "id": "menu-2",
    "title": "User Management",
    "icon": "Users",
    "path": null,
    "order": 2,
    "children": [
      { "id": "menu-3", "title": "Users", "path": "/users", "order": 1 },
      { "id": "menu-4", "title": "Roles", "path": "/roles", "order": 2 }
    ]
  }
]

Recycle Bin

MethodEndpointDescriptionAuth
GET/api/v1/recycle-binList soft-deleted entities with type, name, deleted date, and restore eligibility.🔒 Required
POST/api/v1/recycle-bin/{id}/restoreRestore a soft-deleted entity back to active state.🔒 Required
DELETE/api/v1/recycle-bin/{id}Permanently delete an entity from the recycle bin (irreversible).🔒 Required
GET /recycle-bin — Deleted ItemsJSON
{
  "items": [
    {
      "id": "entity-uuid",
      "entityType": "Admin",
      "displayName": "John Doe (john@acme.com)",
      "deletedBy": "SuperAdmin",
      "deletedAt": "2026-02-19T14:30:00Z",
      "canRestore": true
    }
  ],
  "totalCount": 5
}

File Management

MethodEndpointDescriptionAuth
POST/api/v1/files/uploadUpload a file (image, document). Returns file metadata with access URL.🔒 Required
GET/api/v1/files/{id}Download or stream a file by ID.🔒 Required
DELETE/api/v1/files/{id}Delete an uploaded file from storage.🔒 Required
ConstraintValue
Max file size10 MB (configurable)
Max image dimensions4096 x 4096 px
Allowed image typesjpg, jpeg, png, gif, webp, svg
Allowed document typespdf, doc, docx, xls, xlsx, csv
Avatar max size2 MB
Tenant logo max size5 MB
Storage providersLocal, Azure Blob, AWS S3, MinIO

System Settings

MethodEndpointDescriptionAuth
GET/api/v1/settingsGet global system settings (email config, security policies, feature flags).🔒 Required
PUT/api/v1/settingsUpdate system settings. Changes take effect immediately.🔒 Required
POST/api/v1/settings/resetReset all settings to factory defaults.🔒 Required

System Health & Diagnostic Probes

MethodEndpointDescriptionAuth
GET/healthService liveness probe returning system operational status and timestamp.🔒 Required
GET/health/readyReadiness probe — checks database, cache, blob storage, and background jobs.🔒 Required
GET /health — ResponseJSON
{
  "status": "Healthy",
  "totalDuration": "00:00:00.1234567",
  "entries": {
    "database": { "status": "Healthy", "duration": "00:00:00.0521" },
    "cache": { "status": "Healthy", "duration": "00:00:00.0012" },
    "blob-storage": { "status": "Healthy", "duration": "00:00:00.0345" },
    "hangfire": { "status": "Healthy", "duration": "00:00:00.0089" }
  }
}