{ "info": { "_postman_id": "royal-enfield-workflow-api", "name": "Royal Enfield Workflow API", "description": "Complete API collection for Royal Enfield Workflow Management System with prefilled payloads and detailed comments.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "royal-enfield-api-v1" }, "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{accessToken}}", "type": "string" } ] }, "variable": [ { "key": "baseUrl", "value": "http://localhost:3000/api/v1", "type": "string" }, { "key": "accessToken", "value": "", "type": "string" } ], "item": [ { "name": "Health Check", "item": [ { "name": "Health Check", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/health", "host": ["{{baseUrl}}"], "path": ["health"] }, "description": "Check if the API service is running and healthy" } } ] }, { "name": "Authentication", "item": [ { "name": "Token Exchange (Development)", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Email of the user for development token exchange\n \"email\": \"user@example.com\",\n \n // User's full name\n \"name\": \"John Doe\"\n}" }, "url": { "raw": "{{baseUrl}}/auth/token-exchange", "host": ["{{baseUrl}}"], "path": ["auth", "token-exchange"] }, "description": "Development endpoint to exchange user credentials for JWT token (localhost only)" } }, { "name": "SSO Callback", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Okta authorization code received from SSO redirect\n \"code\": \"authorization_code_from_okta\",\n \n // State parameter for CSRF protection\n \"state\": \"random_state_string\"\n}" }, "url": { "raw": "{{baseUrl}}/auth/sso-callback", "host": ["{{baseUrl}}"], "path": ["auth", "sso-callback"] }, "description": "Handle SSO callback from Okta and exchange authorization code for tokens" } }, { "name": "Refresh Token", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Refresh token received during login\n \"refreshToken\": \"your_refresh_token_here\"\n}" }, "url": { "raw": "{{baseUrl}}/auth/refresh", "host": ["{{baseUrl}}"], "path": ["auth", "refresh"] }, "description": "Get a new access token using refresh token" } }, { "name": "Get Current User", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/auth/me", "host": ["{{baseUrl}}"], "path": ["auth", "me"] }, "description": "Get current authenticated user details" } }, { "name": "Validate Token", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/auth/validate", "host": ["{{baseUrl}}"], "path": ["auth", "validate"] }, "description": "Validate current access token" } }, { "name": "Logout", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/auth/logout", "host": ["{{baseUrl}}"], "path": ["auth", "logout"] }, "description": "Logout current user and clear tokens" } } ] }, { "name": "Configuration", "item": [ { "name": "Get Public Config", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/config", "host": ["{{baseUrl}}"], "path": ["config"] }, "description": "Get public system configuration (no auth required)" } } ] }, { "name": "Users", "item": [ { "name": "Search Users", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/users/search?q=john", "host": ["{{baseUrl}}"], "path": ["users", "search"], "query": [ { "key": "q", "value": "john", "description": "Search query - can search by email or name" } ] }, "description": "Search for users by email or name" } }, { "name": "Ensure User Exists", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // User's email address\n \"email\": \"user@example.com\",\n \n // User's full name\n \"name\": \"John Doe\"\n}" }, "url": { "raw": "{{baseUrl}}/users/ensure", "host": ["{{baseUrl}}"], "path": ["users", "ensure"] }, "description": "Ensure user exists in database - creates if not exists" } }, { "name": "Get Public Configurations", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/users/configurations", "host": ["{{baseUrl}}"], "path": ["users", "configurations"] }, "description": "Get public configurations (document policy, workflow sharing, TAT settings)" } } ] }, { "name": "Workflows", "item": [ { "name": "List All Workflows", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows", "host": ["{{baseUrl}}"], "path": ["workflows"] }, "description": "Get list of all workflows accessible to current user" } }, { "name": "List My Requests (DEPRECATED)", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/my", "host": ["{{baseUrl}}"], "path": ["workflows", "my"] }, "description": "DEPRECATED - Use /participant-requests instead. Get workflows where user is participant" } }, { "name": "List Participant Requests", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/participant-requests?page=1&limit=10", "host": ["{{baseUrl}}"], "path": ["workflows", "participant-requests"], "query": [ { "key": "page", "value": "1", "description": "Page number" }, { "key": "limit", "value": "10", "description": "Items per page" }, { "key": "status", "value": "", "description": "Filter by status (optional)", "disabled": true }, { "key": "priority", "value": "", "description": "Filter by priority (optional)", "disabled": true } ] }, "description": "Get all requests where user is initiator OR participant (approver/spectator) - for regular users' All Requests page" } }, { "name": "List My Initiated Requests", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/my-initiated?page=1&limit=10", "host": ["{{baseUrl}}"], "path": ["workflows", "my-initiated"], "query": [ { "key": "page", "value": "1", "description": "Page number" }, { "key": "limit", "value": "10", "description": "Items per page" }, { "key": "status", "value": "", "description": "Filter by status (optional)", "disabled": true } ] }, "description": "Get only requests where current user is the initiator - for My Requests page" } }, { "name": "List Open For Me", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/open-for-me", "host": ["{{baseUrl}}"], "path": ["workflows", "open-for-me"] }, "description": "Get workflows that are open and require action from current user" } }, { "name": "List Closed By Me", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/closed-by-me", "host": ["{{baseUrl}}"], "path": ["workflows", "closed-by-me"] }, "description": "Get workflows closed by current user" } }, { "name": "Create Workflow (JSON) - Simplified", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"templateType\": \"CUSTOM\",\n \"title\": \"Purchase Order Approval for Office Equipment\",\n \"description\": \"Approval needed for purchasing new office equipment including laptops, monitors, and office furniture. Total budget: $50,000\",\n \"priority\": \"STANDARD\",\n \"approvalLevels\": [\n {\n \"email\": \"manager@royalenfield.com\",\n \"tatHours\": 24\n },\n {\n \"email\": \"director@royalenfield.com\",\n \"tatHours\": 48\n },\n {\n \"email\": \"cfo@royalenfield.com\",\n \"tatHours\": 72\n }\n ],\n \"spectators\": [\n {\n \"email\": \"hr@royalenfield.com\"\n },\n {\n \"email\": \"finance@royalenfield.com\"\n }\n ]\n}" }, "url": { "raw": "{{baseUrl}}/workflows", "host": ["{{baseUrl}}"], "path": ["workflows"] }, "description": "Create new workflow request with JSON payload. Backend automatically:\n- Finds/creates users from Okta/AD\n- Generates level names from designation/department\n- Auto-detects final approver (last level)\n- Sets proper permissions\n\nOnly email and tatHours required per approver!" } }, { "name": "Create Workflow (Multipart with Files) - Simplified", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "payload", "value": "{\"templateType\":\"CUSTOM\",\"title\":\"Purchase Order Approval with Documents\",\"description\":\"Approval needed for office equipment purchase with supporting documents\",\"priority\":\"STANDARD\",\"approvalLevels\":[{\"email\":\"manager@royalenfield.com\",\"tatHours\":24},{\"email\":\"director@royalenfield.com\",\"tatHours\":48}],\"spectators\":[{\"email\":\"hr@royalenfield.com\"}]}", "type": "text", "description": "JSON payload with simplified format (email + tatHours only)" }, { "key": "files", "type": "file", "src": [], "description": "Upload files (multiple files supported)" }, { "key": "category", "value": "SUPPORTING", "type": "text", "description": "Document category: SUPPORTING | APPROVAL | REFERENCE | FINAL | OTHER" } ] }, "url": { "raw": "{{baseUrl}}/workflows/multipart", "host": ["{{baseUrl}}"], "path": ["workflows", "multipart"] }, "description": "Create workflow with file uploads. Backend automatically:\n- Finds/creates users from Okta/AD\n- Generates level names\n- Auto-detects final approver\n- Uploads and attaches documents\n\nOnly email and tatHours required per approver!" } }, { "name": "Get Workflow Details", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/:id", "host": ["{{baseUrl}}"], "path": ["workflows", ":id"], "variable": [ { "key": "id", "value": "REQ-2024-0001", "description": "Workflow ID or Request Number" } ] }, "description": "Get basic workflow details by ID or request number" } }, { "name": "Get Workflow Full Details", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/:id/details", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "details"], "variable": [ { "key": "id", "value": "REQ-2024-0001", "description": "Workflow ID or Request Number" } ] }, "description": "Get full workflow details with all related data (approvals, documents, participants)" } }, { "name": "Update Workflow (JSON)", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Updated request title (optional)\n \"requestTitle\": \"Updated Purchase Order for Office Equipment\",\n \n // Updated description (optional)\n \"requestDescription\": \"Modified requirements for office equipment purchase\",\n \n // Updated priority (optional)\n \"priority\": \"EXPRESS\",\n \n // Updated department (optional)\n \"requestingDepartment\": \"IT\"\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id", "host": ["{{baseUrl}}"], "path": ["workflows", ":id"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Update workflow details (only allowed in DRAFT status)" } }, { "name": "Update Workflow (Multipart)", "request": { "method": "PUT", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "requestTitle", "value": "Updated Title", "type": "text" }, { "key": "requestDescription", "value": "Updated Description", "type": "text" }, { "key": "files", "type": "file", "src": [] } ] }, "url": { "raw": "{{baseUrl}}/workflows/:id/multipart", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "multipart"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Update workflow with file uploads" } }, { "name": "Submit Workflow", "request": { "method": "PATCH", "header": [], "url": { "raw": "{{baseUrl}}/workflows/:id/submit", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "submit"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Submit workflow for approval (changes status from DRAFT to OPEN)" } }, { "name": "Add Approver at Level - Simplified", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"email\": \"newapprover@royalenfield.com\",\n \"tatHours\": 24,\n \"level\": 2\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/approvers/at-level", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "approvers", "at-level"], "variable": [ { "key": "id", "value": "REQ-2024-0001", "description": "Workflow ID or Request Number" } ] }, "description": "Add a new approver at specific level. Backend automatically:\n- Finds/creates user from Okta/AD\n- Generates level name from designation/department\n- Shifts existing levels if needed\n- Updates final approver flag\n- Sends notifications\n\nOnly email, tatHours, and level required!" } }, { "name": "Add Spectator - Simplified", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"email\": \"spectator@royalenfield.com\"\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/participants/spectator", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "participants", "spectator"], "variable": [ { "key": "id", "value": "REQ-2024-0001", "description": "Workflow ID or Request Number" } ] }, "description": "Add a spectator to request. Backend automatically:\n- Finds/creates user from Okta/AD\n- Sets spectator permissions (view + comment, no download)\n- Sends notification\n\nOnly email required!" } }, { "name": "Get Workflow Activity", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/:id/activity", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "activity"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Get activity log/history for a workflow" } }, { "name": "Pause Workflow", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Reason for pausing the workflow\n \"reason\": \"Waiting for additional documentation from vendor\",\n \n // Expected resume date (optional)\n \"expectedResumeDate\": \"2024-12-30T00:00:00Z\"\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/pause", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "pause"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Pause a workflow (approver only). Sets status to PAUSED." } }, { "name": "Resume Workflow", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Reason for resuming (optional)\n \"reason\": \"Documentation received, continuing approval process\"\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/resume", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "resume"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Resume a paused workflow (approver who paused or initiator)" } }, { "name": "Retrigger Pause", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Message to approver requesting resume\n \"message\": \"Documents have been uploaded. Please review and resume the workflow.\"\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/pause/retrigger", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "pause", "retrigger"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Initiator requests approver to resume paused workflow (sends notification)" } }, { "name": "Get Pause Details", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/:id/pause", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "pause"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Get pause details for a workflow (pause history, current pause status)" } } ] }, { "name": "Approvals", "item": [ { "name": "Get Approval Levels", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/:id/approvals", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "approvals"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Get all approval levels for a workflow" } }, { "name": "Get Current Approval Level", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/:id/approvals/current", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "approvals", "current"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Get current active approval level" } }, { "name": "Approve Level", "request": { "method": "PATCH", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Approval remark/comment\n \"remark\": \"Approved. Budget allocation confirmed and all requirements are justified.\",\n \n // Whether to use AI-generated remark (optional)\n \"useAiRemark\": false\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/approvals/:levelId/approve", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "approvals", ":levelId", "approve"], "variable": [ { "key": "id", "value": "REQ-2024-0001" }, { "key": "levelId", "value": "level-uuid-here" } ] }, "description": "Approve an approval level" } }, { "name": "Reject Level", "request": { "method": "PATCH", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Rejection reason/remark (required)\n \"remark\": \"Rejected due to insufficient budget justification. Please provide more details on cost breakdown.\",\n \n // Action: REJECT to reject\n \"action\": \"REJECT\",\n \n // Whether to use AI-generated remark (optional)\n \"useAiRemark\": false\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/approvals/:levelId/reject", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "approvals", ":levelId", "reject"], "variable": [ { "key": "id", "value": "REQ-2024-0001" }, { "key": "levelId", "value": "level-uuid-here" } ] }, "description": "Reject an approval level with reason" } }, { "name": "Skip Approver", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Reason for skipping approver\n \"reason\": \"Approver is on leave. Moving to next level.\"\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/approvals/:levelId/skip", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "approvals", ":levelId", "skip"], "variable": [ { "key": "id", "value": "REQ-2024-0001" }, { "key": "levelId", "value": "level-uuid-here" } ] }, "description": "Skip an approver level (only initiator or other approvers)" } } ] }, { "name": "Participants", "item": [ { "name": "Add Approver", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Email of new approver to add\n \"email\": \"new.approver@example.com\"\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/participants/approver", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "participants", "approver"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Add an approver to the workflow" } }, { "name": "Add Spectator", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Email of spectator to add\n \"email\": \"spectator@example.com\"\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/participants/spectator", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "participants", "spectator"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Add a spectator (view-only participant) to the workflow" } }, { "name": "Add Approver At Specific Level", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Email of approver\n \"email\": \"new.approver@example.com\",\n \n // TAT hours for this approver\n \"tatHours\": 24,\n \n // Level number where to insert (existing levels will shift)\n \"level\": 2\n}" }, "url": { "raw": "{{baseUrl}}/workflows/:id/approvers/at-level", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "approvers", "at-level"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Add approver at specific level with level shifting" } } ] }, { "name": "Documents", "item": [ { "name": "Upload Document", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "file", "type": "file", "src": [], "description": "File to upload" }, { "key": "requestId", "value": "request-uuid-here", "type": "text", "description": "Request/Workflow ID" }, { "key": "category", "value": "SUPPORTING_DOCUMENT", "type": "text", "description": "Document category (optional)" } ] }, "url": { "raw": "{{baseUrl}}/documents", "host": ["{{baseUrl}}"], "path": ["documents"] }, "description": "Upload a document/file" } }, { "name": "Preview Document", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/documents/:documentId/preview", "host": ["{{baseUrl}}"], "path": ["workflows", "documents", ":documentId", "preview"], "variable": [ { "key": "documentId", "value": "document-uuid-here" } ] }, "description": "Preview document (inline viewing for images/PDFs)" } }, { "name": "Download Document", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/documents/:documentId/download", "host": ["{{baseUrl}}"], "path": ["workflows", "documents", ":documentId", "download"], "variable": [ { "key": "documentId", "value": "document-uuid-here" } ] }, "description": "Download document as attachment" } } ] }, { "name": "Work Notes", "item": [ { "name": "List Work Notes", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/:id/work-notes", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "work-notes"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Get all work notes for a workflow" } }, { "name": "Create Work Note", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "content", "value": "This is a work note discussing the current status and next steps for approval.", "type": "text", "description": "Work note content/text" }, { "key": "files", "type": "file", "src": [], "description": "Attachments (optional, multiple files)" } ] }, "url": { "raw": "{{baseUrl}}/workflows/:id/work-notes", "host": ["{{baseUrl}}"], "path": ["workflows", ":id", "work-notes"], "variable": [ { "key": "id", "value": "REQ-2024-0001" } ] }, "description": "Create a work note with optional file attachments" } }, { "name": "Preview Work Note Attachment", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/work-notes/attachments/:attachmentId/preview", "host": ["{{baseUrl}}"], "path": ["workflows", "work-notes", "attachments", ":attachmentId", "preview"], "variable": [ { "key": "attachmentId", "value": "attachment-uuid-here" } ] }, "description": "Preview work note attachment" } }, { "name": "Download Work Note Attachment", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/workflows/work-notes/attachments/:attachmentId/download", "host": ["{{baseUrl}}"], "path": ["workflows", "work-notes", "attachments", ":attachmentId", "download"], "variable": [ { "key": "attachmentId", "value": "attachment-uuid-here" } ] }, "description": "Download work note attachment" } } ] }, { "name": "Conclusions", "item": [ { "name": "Generate Conclusion", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/conclusions/:requestId/generate", "host": ["{{baseUrl}}"], "path": ["conclusions", ":requestId", "generate"], "variable": [ { "key": "requestId", "value": "REQ-2024-0001" } ] }, "description": "Generate AI-powered conclusion remark for workflow (initiator only)" } }, { "name": "Update Conclusion", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Updated conclusion text\n \"conclusionRemark\": \"Project has been approved with all requirements met. Implementation will begin next quarter.\"\n}" }, "url": { "raw": "{{baseUrl}}/conclusions/:requestId", "host": ["{{baseUrl}}"], "path": ["conclusions", ":requestId"], "variable": [ { "key": "requestId", "value": "REQ-2024-0001" } ] }, "description": "Update conclusion remark (edit by initiator)" } }, { "name": "Finalize Conclusion", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/conclusions/:requestId/finalize", "host": ["{{baseUrl}}"], "path": ["conclusions", ":requestId", "finalize"], "variable": [ { "key": "requestId", "value": "REQ-2024-0001" } ] }, "description": "Finalize conclusion and close the workflow (initiator only)" } }, { "name": "Get Conclusion", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/conclusions/:requestId", "host": ["{{baseUrl}}"], "path": ["conclusions", ":requestId"], "variable": [ { "key": "requestId", "value": "REQ-2024-0001" } ] }, "description": "Get conclusion for a workflow" } } ] }, { "name": "Notifications", "item": [ { "name": "Get User Notifications", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/notifications?page=1&limit=20&unreadOnly=false", "host": ["{{baseUrl}}"], "path": ["notifications"], "query": [ { "key": "page", "value": "1", "description": "Page number (default: 1)" }, { "key": "limit", "value": "20", "description": "Items per page (default: 20)" }, { "key": "unreadOnly", "value": "false", "description": "Show only unread notifications" } ] }, "description": "Get user's notifications with pagination" } }, { "name": "Get Unread Count", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/notifications/unread-count", "host": ["{{baseUrl}}"], "path": ["notifications", "unread-count"] }, "description": "Get count of unread notifications" } }, { "name": "Mark Notification as Read", "request": { "method": "PATCH", "header": [], "url": { "raw": "{{baseUrl}}/notifications/:notificationId/read", "host": ["{{baseUrl}}"], "path": ["notifications", ":notificationId", "read"], "variable": [ { "key": "notificationId", "value": "notification-uuid-here" } ] }, "description": "Mark a specific notification as read" } }, { "name": "Mark All as Read", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/notifications/mark-all-read", "host": ["{{baseUrl}}"], "path": ["notifications", "mark-all-read"] }, "description": "Mark all user notifications as read" } }, { "name": "Delete Notification", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/notifications/:notificationId", "host": ["{{baseUrl}}"], "path": ["notifications", ":notificationId"], "variable": [ { "key": "notificationId", "value": "notification-uuid-here" } ] }, "description": "Delete a notification" } }, { "name": "Subscribe to Push Notifications", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Push subscription object from browser\n \"subscription\": {\n \"endpoint\": \"https://fcm.googleapis.com/fcm/send/...\",\n \"keys\": {\n \"p256dh\": \"key-data-here\",\n \"auth\": \"auth-data-here\"\n }\n }\n}" }, "url": { "raw": "{{baseUrl}}/workflows/notifications/subscribe", "host": ["{{baseUrl}}"], "path": ["workflows", "notifications", "subscribe"] }, "description": "Subscribe to push notifications" } }, { "name": "Test Push Notification", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/workflows/notifications/test", "host": ["{{baseUrl}}"], "path": ["workflows", "notifications", "test"] }, "description": "Test push notification for current user" } } ] }, { "name": "Dashboard", "item": [ { "name": "Get KPIs", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/kpis", "host": ["{{baseUrl}}"], "path": ["dashboard", "kpis"] }, "description": "Get KPI summary (all KPI cards)" } }, { "name": "Get Request Statistics", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/stats/requests", "host": ["{{baseUrl}}"], "path": ["dashboard", "stats", "requests"] }, "description": "Get detailed request statistics" } }, { "name": "Get TAT Efficiency", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/stats/tat-efficiency", "host": ["{{baseUrl}}"], "path": ["dashboard", "stats", "tat-efficiency"] }, "description": "Get TAT (Turn Around Time) efficiency metrics" } }, { "name": "Get Approver Load", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/stats/approver-load", "host": ["{{baseUrl}}"], "path": ["dashboard", "stats", "approver-load"] }, "description": "Get approver load/workload statistics" } }, { "name": "Get Engagement Statistics", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/stats/engagement", "host": ["{{baseUrl}}"], "path": ["dashboard", "stats", "engagement"] }, "description": "Get engagement and quality metrics" } }, { "name": "Get AI Insights", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/stats/ai-insights", "host": ["{{baseUrl}}"], "path": ["dashboard", "stats", "ai-insights"] }, "description": "Get AI and closure insights" } }, { "name": "Get AI Remark Utilization", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/stats/ai-remark-utilization", "host": ["{{baseUrl}}"], "path": ["dashboard", "stats", "ai-remark-utilization"] }, "description": "Get AI remark utilization with monthly trends" } }, { "name": "Get Approver Performance", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/stats/approver-performance", "host": ["{{baseUrl}}"], "path": ["dashboard", "stats", "approver-performance"] }, "description": "Get approver performance metrics" } }, { "name": "Get Recent Activity", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/activity/recent", "host": ["{{baseUrl}}"], "path": ["dashboard", "activity", "recent"] }, "description": "Get recent activity feed" } }, { "name": "Get Critical Requests", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/requests/critical", "host": ["{{baseUrl}}"], "path": ["dashboard", "requests", "critical"] }, "description": "Get high priority/critical requests" } }, { "name": "Get Upcoming Deadlines", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/deadlines/upcoming", "host": ["{{baseUrl}}"], "path": ["dashboard", "deadlines", "upcoming"] }, "description": "Get upcoming deadlines" } }, { "name": "Get Department Statistics", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/stats/by-department", "host": ["{{baseUrl}}"], "path": ["dashboard", "stats", "by-department"] }, "description": "Get department-wise summary" } }, { "name": "Get Priority Distribution", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/stats/priority-distribution", "host": ["{{baseUrl}}"], "path": ["dashboard", "stats", "priority-distribution"] }, "description": "Get priority distribution statistics" } }, { "name": "Get Lifecycle Report", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/reports/lifecycle?dateRange=month", "host": ["{{baseUrl}}"], "path": ["dashboard", "reports", "lifecycle"], "query": [ { "key": "dateRange", "value": "month", "description": "Date range: today, week, month, quarter, year, all" }, { "key": "startDate", "value": "", "description": "Custom start date (ISO format)", "disabled": true }, { "key": "endDate", "value": "", "description": "Custom end date (ISO format)", "disabled": true } ] }, "description": "Get request lifecycle report with stage-wise breakdown" } }, { "name": "Get Activity Log Report", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/reports/activity-log?page=1&limit=50", "host": ["{{baseUrl}}"], "path": ["dashboard", "reports", "activity-log"], "query": [ { "key": "page", "value": "1", "description": "Page number" }, { "key": "limit", "value": "50", "description": "Items per page" }, { "key": "dateRange", "value": "month", "description": "Date range filter", "disabled": true }, { "key": "userId", "value": "", "description": "Filter by user ID", "disabled": true } ] }, "description": "Get enhanced user activity log report with detailed actions" } }, { "name": "Get Workflow Aging Report", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/reports/workflow-aging", "host": ["{{baseUrl}}"], "path": ["dashboard", "reports", "workflow-aging"] }, "description": "Get workflow aging report showing requests by age bucket" } }, { "name": "Get Departments Metadata", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/metadata/departments", "host": ["{{baseUrl}}"], "path": ["dashboard", "metadata", "departments"] }, "description": "Get list of all departments (for filtering)" } }, { "name": "Get Requests By Approver", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/dashboard/requests/by-approver?approverId=approver-uuid-here&page=1&limit=10", "host": ["{{baseUrl}}"], "path": ["dashboard", "requests", "by-approver"], "query": [ { "key": "approverId", "value": "approver-uuid-here", "description": "Approver's user ID" }, { "key": "page", "value": "1", "description": "Page number" }, { "key": "limit", "value": "10", "description": "Items per page" }, { "key": "status", "value": "", "description": "Filter by status (optional)", "disabled": true } ] }, "description": "Get requests handled by a specific approver (for performance analysis)" } } ] }, { "name": "TAT (Turn Around Time)", "item": [ { "name": "Get TAT Alerts by Request", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/tat/alerts/request/:requestId", "host": ["{{baseUrl}}"], "path": ["tat", "alerts", "request", ":requestId"], "variable": [ { "key": "requestId", "value": "request-uuid-here" } ] }, "description": "Get all TAT alerts for a specific request" } }, { "name": "Get TAT Alerts by Level", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/tat/alerts/level/:levelId", "host": ["{{baseUrl}}"], "path": ["tat", "alerts", "level", ":levelId"], "variable": [ { "key": "levelId", "value": "level-uuid-here" } ] }, "description": "Get TAT alerts for a specific approval level" } }, { "name": "Get TAT Compliance Summary", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/tat/compliance/summary?startDate=2024-01-01&endDate=2024-12-31", "host": ["{{baseUrl}}"], "path": ["tat", "compliance", "summary"], "query": [ { "key": "startDate", "value": "2024-01-01", "description": "Start date (optional)" }, { "key": "endDate", "value": "2024-12-31", "description": "End date (optional)" } ] }, "description": "Get TAT compliance summary with optional date range" } }, { "name": "Get TAT Breach Report", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/tat/breaches", "host": ["{{baseUrl}}"], "path": ["tat", "breaches"] }, "description": "Get TAT breach report (all breached requests)" } }, { "name": "Get Approver TAT Performance", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/tat/performance/:approverId", "host": ["{{baseUrl}}"], "path": ["tat", "performance", ":approverId"], "variable": [ { "key": "approverId", "value": "approver-uuid-here" } ] }, "description": "Get TAT performance metrics for a specific approver" } } ] }, { "name": "Admin", "item": [ { "name": "Holiday Management", "item": [ { "name": "Get All Holidays", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/admin/holidays?year=2024", "host": ["{{baseUrl}}"], "path": ["admin", "holidays"], "query": [ { "key": "year", "value": "2024", "description": "Filter by year (optional)" } ] }, "description": "Get all holidays with optional year filter (Admin only)" } }, { "name": "Get Holiday Calendar", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/admin/holidays/calendar/:year", "host": ["{{baseUrl}}"], "path": ["admin", "holidays", "calendar", ":year"], "variable": [ { "key": "year", "value": "2024" } ] }, "description": "Get holiday calendar for a specific year (Admin only)" } }, { "name": "Create Holiday", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Holiday date in ISO format (YYYY-MM-DD)\n \"holidayDate\": \"2024-12-25\",\n \n // Holiday name\n \"holidayName\": \"Christmas Day\",\n \n // Description (optional)\n \"description\": \"Christmas celebration - office closed\",\n \n // Holiday type: NATIONAL | REGIONAL | COMPANY_SPECIFIC\n \"holidayType\": \"NATIONAL\",\n \n // Is recurring every year\n \"isRecurring\": true,\n \n // Applicable departments (optional) - empty array means all departments\n \"applicableDepartments\": [],\n \n // Applicable regions (optional)\n \"applicableRegions\": [\"ALL\"]\n}" }, "url": { "raw": "{{baseUrl}}/admin/holidays", "host": ["{{baseUrl}}"], "path": ["admin", "holidays"] }, "description": "Create a new holiday (Admin only)" } }, { "name": "Update Holiday", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Updated holiday name (optional)\n \"holidayName\": \"Christmas Day - Updated\",\n \n // Updated description (optional)\n \"description\": \"Updated description\",\n \n // Updated holiday type (optional)\n \"holidayType\": \"NATIONAL\",\n \n // Updated recurring flag (optional)\n \"isRecurring\": true\n}" }, "url": { "raw": "{{baseUrl}}/admin/holidays/:holidayId", "host": ["{{baseUrl}}"], "path": ["admin", "holidays", ":holidayId"], "variable": [ { "key": "holidayId", "value": "holiday-uuid-here" } ] }, "description": "Update a holiday (Admin only)" } }, { "name": "Delete Holiday", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/admin/holidays/:holidayId", "host": ["{{baseUrl}}"], "path": ["admin", "holidays", ":holidayId"], "variable": [ { "key": "holidayId", "value": "holiday-uuid-here" } ] }, "description": "Delete (deactivate) a holiday (Admin only)" } }, { "name": "Bulk Import Holidays", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Array of holidays to import\n \"holidays\": [\n {\n \"holidayDate\": \"2024-01-01\",\n \"holidayName\": \"New Year's Day\",\n \"description\": \"New Year celebration\",\n \"holidayType\": \"NATIONAL\",\n \"isRecurring\": true\n },\n {\n \"holidayDate\": \"2024-01-26\",\n \"holidayName\": \"Republic Day\",\n \"description\": \"Indian Republic Day\",\n \"holidayType\": \"NATIONAL\",\n \"isRecurring\": true\n },\n {\n \"holidayDate\": \"2024-08-15\",\n \"holidayName\": \"Independence Day\",\n \"description\": \"Indian Independence Day\",\n \"holidayType\": \"NATIONAL\",\n \"isRecurring\": true\n }\n ]\n}" }, "url": { "raw": "{{baseUrl}}/admin/holidays/bulk-import", "host": ["{{baseUrl}}"], "path": ["admin", "holidays", "bulk-import"] }, "description": "Bulk import holidays from JSON array (Admin only)" } } ] }, { "name": "Configuration Management", "item": [ { "name": "Get All Configurations", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/admin/configurations?category=TAT", "host": ["{{baseUrl}}"], "path": ["admin", "configurations"], "query": [ { "key": "category", "value": "TAT", "description": "Filter by category (optional): TAT, AI, NOTIFICATION, SYSTEM" } ] }, "description": "Get all admin configurations with optional category filter (Admin only)" } }, { "name": "Update Configuration", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // New configuration value (type depends on config key)\n \"configValue\": \"50\"\n}" }, "url": { "raw": "{{baseUrl}}/admin/configurations/:configKey", "host": ["{{baseUrl}}"], "path": ["admin", "configurations", ":configKey"], "variable": [ { "key": "configKey", "value": "TAT_THRESHOLD_1", "description": "Config key to update" } ] }, "description": "Update a configuration value (Admin only)" } }, { "name": "Reset Configuration", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/admin/configurations/:configKey/reset", "host": ["{{baseUrl}}"], "path": ["admin", "configurations", ":configKey", "reset"], "variable": [ { "key": "configKey", "value": "TAT_THRESHOLD_1" } ] }, "description": "Reset configuration to default value (Admin only)" } } ] }, { "name": "User Role Management (RBAC)", "item": [ { "name": "Assign Role by Email", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // User's email address\n \"email\": \"user@example.com\",\n \n // Role to assign: USER | MANAGEMENT | ADMIN\n \"role\": \"MANAGEMENT\"\n}" }, "url": { "raw": "{{baseUrl}}/admin/users/assign-role", "host": ["{{baseUrl}}"], "path": ["admin", "users", "assign-role"] }, "description": "Assign role to user by email - creates user from Okta if doesn't exist (Admin only)" } }, { "name": "Update User Role", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // New role: USER | MANAGEMENT | ADMIN\n \"role\": \"ADMIN\"\n}" }, "url": { "raw": "{{baseUrl}}/admin/users/:userId/role", "host": ["{{baseUrl}}"], "path": ["admin", "users", ":userId", "role"], "variable": [ { "key": "userId", "value": "user-uuid-here" } ] }, "description": "Update user's role (Admin only)" } }, { "name": "Get Users By Role", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/admin/users/by-role?role=ADMIN", "host": ["{{baseUrl}}"], "path": ["admin", "users", "by-role"], "query": [ { "key": "role", "value": "ADMIN", "description": "Filter by role: ADMIN | MANAGEMENT | USER" } ] }, "description": "Get all users filtered by role (Admin only)" } }, { "name": "Get Role Statistics", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/admin/users/role-statistics", "host": ["{{baseUrl}}"], "path": ["admin", "users", "role-statistics"] }, "description": "Get count of users in each role (Admin only)" } } ] } ] }, { "name": "AI Service", "item": [ { "name": "Get AI Status", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/ai/status", "host": ["{{baseUrl}}"], "path": ["ai", "status"] }, "description": "Get AI service status (availability and provider)" } }, { "name": "Reinitialize AI Service", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/ai/reinitialize", "host": ["{{baseUrl}}"], "path": ["ai", "reinitialize"] }, "description": "Reinitialize AI service after configuration change (Admin only)" } } ] }, { "name": "Summaries", "item": [ { "name": "Create Summary", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Request ID of the closed workflow\n \"requestId\": \"request-uuid-here\",\n \n // Summary title (optional - defaults to request title)\n \"title\": \"Summary: Purchase Order Approval\",\n \n // Summary content/notes (optional - can be AI generated)\n \"content\": \"This purchase order was approved with all requirements met.\",\n \n // Whether to generate AI summary\n \"generateAISummary\": true\n}" }, "url": { "raw": "{{baseUrl}}/summaries", "host": ["{{baseUrl}}"], "path": ["summaries"] }, "description": "Create a summary for a closed workflow request (initiator only)" } }, { "name": "List My Summaries", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/summaries/my?page=1&limit=10", "host": ["{{baseUrl}}"], "path": ["summaries", "my"], "query": [ { "key": "page", "value": "1", "description": "Page number" }, { "key": "limit", "value": "10", "description": "Items per page" } ] }, "description": "List summaries created by current user" } }, { "name": "List Shared Summaries", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/summaries/shared?page=1&limit=10", "host": ["{{baseUrl}}"], "path": ["summaries", "shared"], "query": [ { "key": "page", "value": "1", "description": "Page number" }, { "key": "limit", "value": "10", "description": "Items per page" } ] }, "description": "List summaries shared with current user" } }, { "name": "Get Summary By Request ID", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/summaries/request/:requestId", "host": ["{{baseUrl}}"], "path": ["summaries", "request", ":requestId"], "variable": [ { "key": "requestId", "value": "request-uuid-here", "description": "Request ID to get summary for" } ] }, "description": "Get summary by workflow request ID" } }, { "name": "Get Summary Details", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/summaries/:summaryId", "host": ["{{baseUrl}}"], "path": ["summaries", ":summaryId"], "variable": [ { "key": "summaryId", "value": "summary-uuid-here", "description": "Summary ID" } ] }, "description": "Get summary details by summary ID" } }, { "name": "Share Summary", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Array of user IDs to share with\n \"userIds\": [\"user-uuid-1\", \"user-uuid-2\"],\n \n // Optional message to include\n \"message\": \"Please review this workflow summary\",\n \n // Optional: Share with all participants of the original request\n \"shareWithParticipants\": false\n}" }, "url": { "raw": "{{baseUrl}}/summaries/:summaryId/share", "host": ["{{baseUrl}}"], "path": ["summaries", ":summaryId", "share"], "variable": [ { "key": "summaryId", "value": "summary-uuid-here" } ] }, "description": "Share summary with other users" } }, { "name": "Get Shared Recipients", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/summaries/:summaryId/recipients", "host": ["{{baseUrl}}"], "path": ["summaries", ":summaryId", "recipients"], "variable": [ { "key": "summaryId", "value": "summary-uuid-here" } ] }, "description": "Get list of users this summary has been shared with" } }, { "name": "Mark Shared Summary as Viewed", "request": { "method": "PATCH", "header": [], "url": { "raw": "{{baseUrl}}/summaries/shared/:sharedSummaryId/view", "host": ["{{baseUrl}}"], "path": ["summaries", "shared", ":sharedSummaryId", "view"], "variable": [ { "key": "sharedSummaryId", "value": "shared-summary-uuid-here", "description": "Shared summary record ID" } ] }, "description": "Mark a shared summary as viewed by current user" } } ] }, { "name": "Debug & Testing", "item": [ { "name": "Get TAT Jobs for Request", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/debug/tat-jobs/:requestId", "host": ["{{baseUrl}}"], "path": ["debug", "tat-jobs", ":requestId"], "variable": [ { "key": "requestId", "value": "request-uuid-here" } ] }, "description": "Debug endpoint to check scheduled TAT jobs for a request" } }, { "name": "Get All TAT Jobs", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/debug/tat-jobs", "host": ["{{baseUrl}}"], "path": ["debug", "tat-jobs"] }, "description": "Debug endpoint to check all queued TAT jobs" } }, { "name": "Calculate TAT Times", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Start time in ISO format (optional, defaults to now)\n \"startTime\": \"2024-01-15T09:00:00Z\",\n \n // TAT hours\n \"tatHours\": 24,\n \n // Priority: STANDARD | EXPRESS\n \"priority\": \"STANDARD\"\n}" }, "url": { "raw": "{{baseUrl}}/debug/tat-calculate", "host": ["{{baseUrl}}"], "path": ["debug", "tat-calculate"] }, "description": "Debug endpoint to test TAT time calculations" } }, { "name": "Get Queue Status", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/debug/queue-status", "host": ["{{baseUrl}}"], "path": ["debug", "queue-status"] }, "description": "Debug endpoint to check queue and worker status" } }, { "name": "Trigger Test TAT", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n // Test request ID\n \"requestId\": \"test-request-123\",\n \n // Test level ID\n \"levelId\": \"test-level-456\",\n \n // Test approver ID\n \"approverId\": \"test-approver-789\"\n}" }, "url": { "raw": "{{baseUrl}}/debug/trigger-test-tat", "host": ["{{baseUrl}}"], "path": ["debug", "trigger-test-tat"] }, "description": "Debug endpoint to manually trigger a test TAT job (fires in 5 seconds)" } } ] } ] }