Re_Backend/Royal_Enfield_API_Collection.postman_collection.json

2346 lines
62 KiB
JSON

{
"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)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n // Request title - brief description\n \"requestTitle\": \"Purchase Order Approval for Office Equipment\",\n \n // Detailed description of the request\n \"requestDescription\": \"Approval needed for purchasing new office equipment including laptops, monitors, and office furniture. Total budget: $50,000\",\n \n // Priority: STANDARD | EXPRESS\n \"priority\": \"STANDARD\",\n \n // Department requesting approval\n \"requestingDepartment\": \"IT\",\n \n // Category of request\n \"requestCategory\": \"PURCHASE_ORDER\",\n \n // Approvers list - array of approval levels\n \"approvers\": [\n {\n // Approver's email\n \"email\": \"manager@example.com\",\n \n // TAT (Turn Around Time) in hours\n \"tatHours\": 24,\n \n // Level number (sequential)\n \"level\": 1\n },\n {\n \"email\": \"director@example.com\",\n \"tatHours\": 48,\n \"level\": 2\n },\n {\n \"email\": \"cfo@example.com\",\n \"tatHours\": 72,\n \"level\": 3\n }\n ],\n \n // Spectators (optional) - users who can view but not approve\n \"spectators\": [\n {\n \"email\": \"hr@example.com\"\n },\n {\n \"email\": \"finance@example.com\"\n }\n ],\n \n // Document IDs (if documents uploaded separately)\n \"documentIds\": []\n}"
},
"url": {
"raw": "{{baseUrl}}/workflows",
"host": ["{{baseUrl}}"],
"path": ["workflows"]
},
"description": "Create new workflow request with JSON payload"
}
},
{
"name": "Create Workflow (Multipart with Files)",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "formdata",
"formdata": [
{
"key": "requestTitle",
"value": "Purchase Order Approval for Office Equipment",
"type": "text",
"description": "Request title"
},
{
"key": "requestDescription",
"value": "Approval needed for purchasing new office equipment",
"type": "text",
"description": "Detailed description"
},
{
"key": "priority",
"value": "STANDARD",
"type": "text",
"description": "STANDARD or EXPRESS"
},
{
"key": "requestingDepartment",
"value": "IT",
"type": "text",
"description": "Department name"
},
{
"key": "requestCategory",
"value": "PURCHASE_ORDER",
"type": "text",
"description": "Category of request"
},
{
"key": "approvers",
"value": "[{\"email\":\"manager@example.com\",\"tatHours\":24,\"level\":1},{\"email\":\"director@example.com\",\"tatHours\":48,\"level\":2}]",
"type": "text",
"description": "JSON array of approvers"
},
{
"key": "spectators",
"value": "[{\"email\":\"hr@example.com\"}]",
"type": "text",
"description": "JSON array of spectators (optional)"
},
{
"key": "files",
"type": "file",
"src": [],
"description": "Upload files (multiple files supported)"
}
]
},
"url": {
"raw": "{{baseUrl}}/workflows/multipart",
"host": ["{{baseUrl}}"],
"path": ["workflows", "multipart"]
},
"description": "Create workflow with file uploads using multipart/form-data"
}
},
{
"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": "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)"
}
}
]
}
]
}