interface ApplicationCreationLimit { bronze: 5; silver: 20; gold: 100000; }
interface User { // Unique username: string; password: string; // Unique email?: string; // Default value is "bronze" type: "bronze" | "silver" | "gold"; }
interface Application { name: string; description?: string; // Reference to User collection createdBy: string; createdAt: Date; // Embeded object // By default createdBy will be inserted with admin role collaborators: [{ userId: string; role: 'admin' | 'viewer' }]; storeLogs: boolean; accessKey: string; }
interface Log { // Reference to Application collection appId: string; type: 'error' | 'info' | 'warning' | 'other'; title: string; message?: string; body?: string; createdAt: Date; clientSystemInfo?: { ip?: string; interface?: string; [key in string]: any; } }
app *
auth-service
- POST /auth/register
- POST /auth/login
- POST /auth/referesh-token
- POST /auth/change-password
log-service
-
GET /applications
-
GET /applications/:id
-
POST /application/
-
PATCH /application/:id/add-collaborator
-
DELETE /application/:id/remove-collaborator
-
DELETE /application/:id
-
GET /logs
-
GET /logs/:id
-
POST /log
-
DELETE /log/:id
-
DELETE /clearLogs/:appId