{ "info": { "_postman_id": "cd8e40d0-8313-4c41-986d-8abcbb29e21b", "name": "Schematica v2", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "Auth", "item": [ { "name": "Login", "event": [ { "listen": "test", "script": { "exec": [ "let response = pm.response.json();", "", "let token = response.data.access_token;", "", "if (token) {", " pm.collectionVariables.set(\"authToken\", token);", "} else {", " console.error(\"❌ No token found in response:\", response);", "}", "" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"username\": \"amir.zouerami\",\n \"password\": \"password123\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/auth/login", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "auth", "login" ] } }, "response": [] }, { "name": "Change Password", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "body": { "mode": "raw", "raw": "{\n \"currentPassword\": \"password123!\",\n \"newPassword\": \"password123\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/users/change-password", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "users", "change-password" ] } }, "response": [] }, { "name": "Me", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "url": { "raw": "localhost:3000/api/v2/auth/me", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "auth", "me" ] } }, "response": [] }, { "name": "OAuth - Gitlab", "request": { "method": "GET", "header": [], "url": { "raw": "http://localhost:3000/api/v2/auth/gitlab", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "auth", "gitlab" ] } }, "response": [] }, { "name": "OAuth - Set Password", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"newPassword\": \"a-new-strong-password123!\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/users/set-password", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "users", "set-password" ] } }, "response": [] } ] }, { "name": "Users", "item": [ { "name": "Users List", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "url": { "raw": "localhost:3000/api/v2/users?page=1&limit=10", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "users" ], "query": [ { "key": "page", "value": "1" }, { "key": "limit", "value": "10" }, { "key": "search", "value": "la", "disabled": true } ] } }, "response": [] }, { "name": "Set Profile Picture", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "formdata", "formdata": [ { "key": "file", "type": "file", "src": "/media/amirzm/Development/Documents/02-Profile-Pictures/Suit-Min.jpg" } ] }, "url": { "raw": "http://localhost:3000/api/v2/profile/picture", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "profile", "picture" ] } }, "response": [] } ] }, { "name": "Teams", "item": [ { "name": "Teams List", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "url": { "raw": "localhost:3000/api/v2/teams?page=1&limit=10&search=ev", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "teams" ], "query": [ { "key": "page", "value": "1" }, { "key": "limit", "value": "10" }, { "key": "search", "value": "ev" } ] } }, "response": [] } ] }, { "name": "Projects", "item": [ { "name": "Create Project", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"test project 01\",\n \"description\": \"this is the first test project\",\n \"serverUrl\": \"http://google.com\",\n \"links\": [\n {\n \"name\": \"first link project\",\n \"url\": \"http://first-project-link.com\"\n },\n {\n \"name\": \"second link project\",\n \"url\": \"http://second-project-link.com\"\n }\n ]\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/projects", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects" ] } }, "response": [] }, { "name": "List Projects", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "url": { "raw": "localhost:3000/api/v2/projects?page=1&limit=10", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects" ], "query": [ { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] } }, "response": [] }, { "name": "Get Project Details", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}" ] } }, "response": [] }, { "name": "Get Project OpenAPI Spec", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}/openapi", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "openapi" ] } }, "response": [] }, { "name": "Update Project", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Project Nova (edited)\",\n \"description\": \"A test project for the UI team.\",\n \"serverUrl\": \"https://api.nova.test\",\n \"lastKnownUpdatedAt\": \"2025-10-29T17:13:09.606Z\",\n \"links\": [\n {\n \"name\": \"GitLab Milestone\",\n \"url\": \"https://gitlab.com/example/schematica/-/milestones/1\"\n },\n {\n \"name\": \"Test Link\",\n \"url\": \"https://test.com\"\n }\n ]\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}" ] } }, "response": [] }, { "name": "Update OpenAPI Specs", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"lastKnownUpdatedAt\": \"2025-11-10T12:37:50.661Z\",\n \"spec\": {\n \"openapi\": \"3.0.1\",\n \"info\": {\n \"title\": \"Project Nova - User & Profile API\",\n \"description\": \"A comprehensive API for managing users and their profiles within the Nova ecosystem. This replaces the previous simple spec.\",\n \"version\": \"1.0.0\"\n },\n \"servers\": [\n {\n \"url\": \"https://api.nova.app/v1\",\n \"description\": \"Production Server\"\n }\n ],\n \"tags\": [\n {\n \"name\": \"Users\",\n \"description\": \"Operations about users.\"\n },\n {\n \"name\": \"Profiles\",\n \"description\": \"Operations related to user profiles.\"\n }\n ],\n \"paths\": {\n \"/users\": {\n \"get\": {\n \"tags\": [\n \"Users\"\n ],\n \"summary\": \"List all users\",\n \"description\": \"Retrieves a paginated list of users.\",\n \"operationId\": \"listUsers\",\n \"parameters\": [\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"description\": \"How many items to return at one time (max 100).\",\n \"schema\": {\n \"type\": \"integer\",\n \"maximum\": 100,\n \"default\": 20\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"description\": \"The number of items to skip before starting to collect the result set.\",\n \"schema\": {\n \"type\": \"integer\",\n \"default\": 0\n }\n }\n ],\n \"responses\": {\n \"200\": {\n \"description\": \"A paged array of users\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/User\"\n }\n }\n }\n }\n }\n }\n },\n \"post\": {\n \"tags\": [\n \"Users\"\n ],\n \"summary\": \"Create a user\",\n \"description\": \"Creates a new user in the system.\",\n \"operationId\": \"createUser\",\n \"requestBody\": {\n \"description\": \"New user object\",\n \"required\": true,\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"$ref\": \"#/components/schemas/NewUser\"\n }\n }\n }\n },\n \"responses\": {\n \"201\": {\n \"description\": \"User created successfully\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"$ref\": \"#/components/schemas/User\"\n }\n }\n }\n },\n \"409\": {\n \"$ref\": \"#/components/responses/Conflict\"\n }\n }\n }\n },\n \"/users/{userId}\": {\n \"parameters\": [\n {\n \"$ref\": \"#/components/parameters/UserIdPath\"\n }\n ],\n \"get\": {\n \"tags\": [\n \"Users\"\n ],\n \"summary\": \"Get user by ID\",\n \"operationId\": \"getUserById\",\n \"responses\": {\n \"200\": {\n \"description\": \"The user object.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"$ref\": \"#/components/schemas/User\"\n }\n }\n }\n },\n \"404\": {\n \"$ref\": \"#/components/responses/NotFound\"\n }\n }\n },\n \"delete\": {\n \"tags\": [\n \"Users\"\n ],\n \"summary\": \"Delete a user\",\n \"operationId\": \"deleteUser\",\n \"responses\": {\n \"204\": {\n \"description\": \"User deleted successfully.\"\n },\n \"404\": {\n \"$ref\": \"#/components/responses/NotFound\"\n }\n }\n }\n },\n \"/users/{userId}/profile\": {\n \"parameters\": [\n {\n \"$ref\": \"#/components/parameters/UserIdPath\"\n }\n ],\n \"get\": {\n \"tags\": [\n \"Profiles\"\n ],\n \"summary\": \"Get user profile\",\n \"operationId\": \"getUserProfile\",\n \"responses\": {\n \"200\": {\n \"description\": \"User profile data.\"\n }\n }\n }\n }\n },\n \"components\": {\n \"schemas\": {\n \"User\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"username\",\n \"email\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"username\": {\n \"type\": \"string\",\n \"example\": \"john_doe\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"NewUser\": {\n \"type\": \"object\",\n \"required\": [\n \"username\",\n \"email\",\n \"password\"\n ],\n \"properties\": {\n \"username\": {\n \"type\": \"string\",\n \"example\": \"jane_doe\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"password\": {\n \"type\": \"string\",\n \"format\": \"password\"\n }\n }\n },\n \"Error\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"parameters\": {\n \"UserIdPath\": {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"The ID of the user.\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n }\n }\n },\n \"responses\": {\n \"NotFound\": {\n \"description\": \"The specified resource was not found.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"$ref\": \"#/components/schemas/Error\"\n }\n }\n }\n },\n \"Conflict\": {\n \"description\": \"The resource already exists.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"$ref\": \"#/components/schemas/Error\"\n }\n }\n }\n }\n }\n }\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}/openapi", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "openapi" ] } }, "response": [] }, { "name": "Delete Project", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "url": { "raw": "localhost:3000/api/v2/projects/6f156d41-f4e1-43bf-8ae7-bebf7a6c4ccd", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "6f156d41-f4e1-43bf-8ae7-bebf7a6c4ccd" ] } }, "response": [] }, { "name": "Update ACL", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"owners\": {\n \"users\": [\n \"1\"\n ],\n \"teams\": [\n \"leadership\"\n ]\n },\n \"viewers\": {\n \"users\": [\n \"2\"\n ],\n \"teams\": [\n \"UI\"\n ]\n },\n \"deniedUsers\": [\n \"3\"\n ],\n \"lastKnownUpdatedAt\": \"2025-10-30T16:45:09.544Z\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}/access", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "access" ] } }, "response": [] } ] }, { "name": "Endpoints", "item": [ { "name": "Create Endpoint", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "body": { "mode": "raw", "raw": "{\n \"path\": \"service/testpath/todelete\",\n \"method\": \"get\",\n \"operation\": {\n \"tags\": [\n \"test-tag\"\n ],\n \"summary\": \"test summary for test endpoint\",\n \"description\": \"this is the description for test endpoint\",\n \"responses\": {\n \"default\": {\n \"description\": \"this is the default response\"\n }\n }\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}/endpoints", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "endpoints" ] } }, "response": [] }, { "name": "Get Endpoint", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}/endpoints/cmhnchzqw0003gqvxpwkqectt", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "endpoints", "cmhnchzqw0003gqvxpwkqectt" ] } }, "response": [] }, { "name": "List Endpoints", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}/endpoints?limit=10&page=1", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "endpoints" ], "query": [ { "key": "limit", "value": "10" }, { "key": "page", "value": "1" } ] } }, "response": [] }, { "name": "Update Endpoint", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "body": { "mode": "raw", "raw": "{\n \"path\": \"/\",\n \"method\": \"get\",\n \"operation\": {\n \"summary\": \"List API versions\",\n \"responses\": {\n \"200\": {\n \"description\": \"A list of API versions.\"\n }\n }\n },\n \"lastKnownUpdatedAt\": \"2025-11-06T11:30:26.744Z\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}/endpoints/cmhnchzqw0003gqvxpwkqectt", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "endpoints", "cmhnchzqw0003gqvxpwkqectt" ] } }, "response": [] }, { "name": "Change Status", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"status\": \"IN_REVIEW\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/endpoints/cmhnchzqw0003gqvxpwkqectt/status", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "endpoints", "cmhnchzqw0003gqvxpwkqectt", "status" ] } }, "response": [] }, { "name": "Delete Endpoint", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "default" } ], "url": { "raw": "localhost:3000/api/v2/projects/{{projectNovaId}}/endpoints/cmhji77fd0001gq2aregpecup", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "endpoints", "cmhji77fd0001gq2aregpecup" ] } }, "response": [] }, { "name": "Lock", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/endpoints/cmhnchzqw0003gqvxpwkqectt/lock", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "endpoints", "cmhnchzqw0003gqvxpwkqectt", "lock" ] } }, "response": [] }, { "name": "Unlock", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/endpoints/cmhnchzqw0003gqvxpwkqectt/unlock", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "endpoints", "cmhnchzqw0003gqvxpwkqectt", "unlock" ] } }, "response": [] } ] }, { "name": "Notes", "item": [ { "name": "Create Note", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"content\": \"This is a test note. @brooklyn.lee This endpoint will be deprecated in the next quarter.\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/endpoints/cmhgq1m1w0003gqlw1lgeef8i/notes", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "endpoints", "cmhgq1m1w0003gqlw1lgeef8i", "notes" ] } }, "response": [] }, { "name": "List Endpoint Notes", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "url": { "raw": "localhost:3000/api/v2/endpoints/cmhozeb4b0002gqc32ys2145x/notes", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "endpoints", "cmhozeb4b0002gqc32ys2145x", "notes" ] } }, "response": [] }, { "name": "Update Note", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"content\": \"Update: The deprecation date has been moved to end-of-year.\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "localhost:3000/api/v2/notes/3", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "notes", "3" ] } }, "response": [] }, { "name": "Delete Note", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "url": { "raw": "localhost:3000/api/v2/notes/8", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "notes", "8" ] } }, "response": [] } ] }, { "name": "Admin", "item": [ { "name": "Teams", "item": [ { "name": "Create Team", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"new-devops-team\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/admin/teams", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "admin", "teams" ] } }, "response": [] }, { "name": "Update Team Name", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"site-reliability\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/admin/teams/new-devops-team", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "admin", "teams", "new-devops-team" ] } }, "response": [] }, { "name": "Delete Team", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "url": { "raw": "http://localhost:3000/api/v2/admin/teams/site-reliability", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "admin", "teams", "site-reliability" ] } }, "response": [] } ] }, { "name": "Users", "item": [ { "name": "Create User", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "formdata", "formdata": [ { "key": "username", "value": "diana.prince", "type": "text" }, { "key": "password", "value": "Password123!", "type": "text" }, { "key": "role", "value": "member", "type": "text" }, { "key": "teams", "value": "ui", "type": "text" }, { "key": "teams", "value": "backend", "type": "text" }, { "key": "file", "type": "file", "src": "/media/amirzm/Development/Documents/02-Profile-Pictures/LinkedIn-Profile-Altered.png" } ] }, "url": { "raw": "http://localhost:3000/api/v2/admin/users", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "admin", "users" ] } }, "response": [] }, { "name": "Get All Users (Detailed)", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "url": { "raw": "http://localhost:3000/api/v2/admin/users?page=1&limit=20", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "admin", "users" ], "query": [ { "key": "page", "value": "1" }, { "key": "limit", "value": "20" }, { "key": "search", "value": "da", "disabled": true } ] } }, "response": [] }, { "name": "Update User Role", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"role\": \"admin\",\n \"teams\": [\n \"leadership\"\n ]\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/admin/users/user-id-to-update", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "admin", "users", "user-id-to-update" ] } }, "response": [] }, { "name": "Change Avatar", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "formdata", "formdata": [ { "key": "file", "type": "file", "src": "/media/amirzm/Development/Documents/02-Profile-Pictures/Suit-Extremely-Min.jpg" } ] }, "url": { "raw": "http://localhost:3000/api/v2/admin/users/4/picture", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "admin", "users", "4", "picture" ] } }, "response": [] }, { "name": "Delete User", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" } ], "url": { "raw": "http://localhost:3000/api/v2/admin/users/cmhf8k5vh0000gq19i1clnms5", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "admin", "users", "cmhf8k5vh0000gq19i1clnms5" ] } }, "response": [] } ] } ] }, { "name": "Audit & ChangeLog", "item": [ { "name": "Get Changelog", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/changelog?limit=10", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "changelog" ], "query": [ { "key": "limit", "value": "10" } ] } }, "response": [] }, { "name": "Get Audit Trail", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/admin/audit-logs?limit=5", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "admin", "audit-logs" ], "query": [ { "key": "limit", "value": "5" }, { "key": "targetId", "value": "site-reliability", "disabled": true }, { "key": "action", "value": "TEAM_DELETED", "description": "PROJECT_CREATED, etc", "disabled": true }, { "key": "actorId", "value": "1", "disabled": true } ] } }, "response": [] } ] }, { "name": "Notification", "item": [ { "name": "Get Notifications", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/notifications", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "notifications" ] } }, "response": [] }, { "name": "Mark Read", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/notifications/2/read", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "notifications", "2", "read" ] } }, "response": [] } ] }, { "name": "Environments", "item": [ { "name": "Create Environment", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Production\",\n \"description\": \"Primary production environment for Project Nova.\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/environments", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "environments" ] } }, "response": [] }, { "name": "List Environments", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/environments", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "environments" ] } }, "response": [] }, { "name": "Delete Environment", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/environments/cmhnti0ur0001gq7lzofouhtz", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "environments", "cmhnti0ur0001gq7lzofouhtz" ] } }, "response": [] }, { "name": "Update Environment", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Staging (Renamed)\",\n \"description\": \"The primary staging and QA environment.\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/environments/cmhnslzj60005gqtst5ow6mgw", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "environments", "cmhnslzj60005gqtst5ow6mgw" ] } }, "response": [] } ] }, { "name": "Secrets", "item": [ { "name": "Create Secret", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"key\": \"STRIPE_API_KEY\",\n \"value\": \"sk_live_123abc456def\",\n \"description\": \"Primary Stripe API key.\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/environments/cmhnnshzs0001gqwnu7pk320i/secrets", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "environments", "cmhnnshzs0001gqwnu7pk320i", "secrets" ] } }, "response": [] }, { "name": "List Secrets", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/environments/cmhnnshzs0001gqwnu7pk320i/secrets", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "environments", "cmhnnshzs0001gqwnu7pk320i", "secrets" ] } }, "response": [] }, { "name": "Update Secret", "request": { "method": "PATCH", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"value\": \"sk_live_rotated_789ghi012jkl\",\n \"description\": \"Rotated Stripe API key for Q4.\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/environments/cmhnnshzs0001gqwnu7pk320i/secrets/3", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "environments", "cmhnnshzs0001gqwnu7pk320i", "secrets", "3" ] } }, "response": [] }, { "name": "Delete Secret", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/environments/cmhnnshzs0001gqwnu7pk320i/secrets/4", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "environments", "cmhnnshzs0001gqwnu7pk320i", "secrets", "4" ] } }, "response": [] } ] }, { "name": "Reusable Schemas", "item": [ { "name": "Create Schema", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"ErrorResponse\",\n \"description\": \"A standard error response object.\",\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"statusCode\": {\n \"type\": \"integer\",\n \"example\": 404\n },\n \"message\": {\n \"type\": \"string\",\n \"example\": \"Resource not found.\"\n },\n \"error\": {\n \"type\": \"string\",\n \"example\": \"Not Found\"\n }\n },\n \"required\": [\n \"statusCode\",\n \"message\"\n ]\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/schemas", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "schemas" ] } }, "response": [] }, { "name": "List Schemas", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/schemas", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "schemas" ] } }, "response": [] }, { "name": "Get Schema", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/schemas/ErrorResponse", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "schemas", "ErrorResponse" ] } }, "response": [] }, { "name": "Update Schema", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "body": { "mode": "raw", "raw": "{\n \"description\": \"A standardized error response object, now with a machine-readable meta code.\",\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"statusCode\": {\n \"type\": \"integer\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"metaCode\": {\n \"type\": \"string\",\n \"example\": \"RESOURCE_NOT_FOUND\"\n }\n },\n \"required\": [\n \"statusCode\",\n \"message\"\n ]\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/schemas/ErrorResponse", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "schemas", "ErrorResponse" ] } }, "response": [] }, { "name": "Delete Schema", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/projects/{{projectNovaId}}/schemas/ErrorResponse", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "projects", "{{projectNovaId}}", "schemas", "ErrorResponse" ] } }, "response": [] } ] }, { "name": "Mock Server Seed Data - Examples", "item": [ { "name": "List Users", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" }, { "key": "X-Mock-Project-ID", "value": "{{projectNovaId}}" }, { "key": "X-Mock-Locale", "value": "fa", "type": "default" } ], "url": { "raw": "http://localhost:3000/api/v2/mock/users", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "users" ] } }, "response": [] }, { "name": "Create User", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" }, { "key": "X-Mock-Project-ID", "value": "{{projectNovaId}}", "type": "text" }, { "key": "X-Mock-Locale", "value": "fa", "type": "text", "disabled": true } ], "url": { "raw": "http://localhost:3000/api/v2/mock/users", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "users" ] } }, "response": [] }, { "name": "Create User [Failure]", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" }, { "key": "X-Mock-Project-ID", "value": "{{projectNovaId}}", "type": "text" }, { "key": "X-Mock-Status-Code", "value": "409", "type": "text" }, { "key": "X-Mock-Locale", "value": "fa", "type": "text", "disabled": true } ], "url": { "raw": "http://localhost:3000/api/v2/mock/users", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "users" ] } }, "response": [] }, { "name": "Get User By Id", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" }, { "key": "X-Mock-Project-ID", "value": "{{projectNovaId}}", "type": "text" }, { "key": "X-Mock-Locale", "value": "fa", "type": "text", "disabled": true } ], "url": { "raw": "http://localhost:3000/api/v2/mock/users/any-fake-id-works-here", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "users", "any-fake-id-works-here" ] } }, "response": [] }, { "name": "Get User By Id [Failure]", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" }, { "key": "X-Mock-Project-ID", "value": "{{projectNovaId}}", "type": "text" }, { "key": "X-Mock-Status-Code", "value": "404", "type": "text" }, { "key": "X-Mock-Locale", "value": "fa", "type": "text", "disabled": true } ], "url": { "raw": "http://localhost:3000/api/v2/mock/users/any-fake-id-works-here", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "users", "any-fake-id-works-here" ] } }, "response": [] }, { "name": "Create Session [Failure]", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" }, { "key": "X-Mock-Project-ID", "value": "{{projectApolloId}}", "type": "text" }, { "key": "X-Mock-Locale", "value": "fa", "type": "text", "disabled": true } ], "url": { "raw": "http://localhost:3000/api/v2/mock/sessions", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "sessions" ] } }, "response": [] }, { "name": "Update Settings", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" }, { "key": "X-Mock-Project-ID", "value": "{{projectApolloId}}", "type": "text" }, { "key": "X-Mock-Locale", "value": "fa", "type": "text", "disabled": true } ], "url": { "raw": "http://localhost:3000/api/v2/mock/profile/settings", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "profile", "settings" ] } }, "response": [] }, { "name": "Non-Existent Endpoint", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" }, { "key": "X-Mock-Project-ID", "value": "{{projectNovaId}}", "type": "text" }, { "key": "X-Mock-Locale", "value": "fa", "type": "text", "disabled": true } ], "url": { "raw": "http://localhost:3000/api/v2/mock/this/path/does/not/exist", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "this", "path", "does", "not", "exist" ] } }, "response": [] }, { "name": "Non-Existent Status Code", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}", "type": "text" }, { "key": "X-Mock-Project-ID", "value": "{{projectNovaId}}", "type": "text" }, { "key": "X-Mock-Status-Code", "value": "418", "type": "text" }, { "key": "X-Mock-Locale", "value": "fa", "type": "text", "disabled": true } ], "url": { "raw": "http://localhost:3000/api/v2/mock/users", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "users" ] } }, "response": [] }, { "name": "Missin ProjectId Header", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{authToken}}" } ], "url": { "raw": "http://localhost:3000/api/v2/mock/users", "protocol": "http", "host": [ "localhost" ], "port": "3000", "path": [ "api", "v2", "mock", "users" ] } }, "response": [] } ] } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ], "variable": [ { "key": "authToken", "value": "" }, { "key": "projectNovaId", "value": "", "type": "default" }, { "key": "projectApolloId", "value": "", "type": "default" } ] }