2374 lines
64 KiB
JSON
2374 lines
64 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) - 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)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|