{ "info": { "name": "Bifrost V1 - Session Stickiness", "description": "Session stickiness tests. Validates x-bf-session-id and x-bf-session-ttl headers are accepted.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "variable": [ {"key": "base_url", "value": "http://localhost:8080", "type": "string"}, {"key": "provider", "value": "openai", "type": "string"}, {"key": "chat_model", "value": "gpt-4o", "type": "string"}, {"key": "session_id", "value": "", "type": "string"} ], "item": [ { "name": "Chat Completion with session ID", "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "var sid = 'test-session-' + Date.now();", "pm.collectionVariables.set('session_id', sid);" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "pm.test('Status is 2xx', function() { pm.expect(pm.response.code).to.be.within(200, 299); });" ] } } ], "request": { "method": "POST", "header": [ {"key": "Content-Type", "value": "application/json"}, {"key": "x-bf-session-id", "value": "{{session_id}}"} ], "body": { "mode": "raw", "raw": "{\n \"model\": \"{{provider}}/{{chat_model}}\",\n \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}],\n \"max_completion_tokens\": 10,\n \"stream\": false\n}" }, "url": { "raw": "{{base_url}}/v1/chat/completions", "host": ["{{base_url}}"], "path": ["v1", "chat", "completions"] } } }, { "name": "Chat Completion with same session ID", "event": [ { "listen": "test", "script": { "type": "text/javascript", "exec": [ "pm.test('Status is 2xx', function() { pm.expect(pm.response.code).to.be.within(200, 299); });" ] } } ], "request": { "method": "POST", "header": [ {"key": "Content-Type", "value": "application/json"}, {"key": "x-bf-session-id", "value": "{{session_id}}"} ], "body": { "mode": "raw", "raw": "{\n \"model\": \"{{provider}}/{{chat_model}}\",\n \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}],\n \"max_completion_tokens\": 10,\n \"stream\": false\n}" }, "url": { "raw": "{{base_url}}/v1/chat/completions", "host": ["{{base_url}}"], "path": ["v1", "chat", "completions"] } } }, { "name": "Chat Completion with different session ID", "event": [ { "listen": "test", "script": { "type": "text/javascript", "exec": [ "pm.test('Status is 2xx', function() { pm.expect(pm.response.code).to.be.within(200, 299); });" ] } } ], "request": { "method": "POST", "header": [ {"key": "Content-Type", "value": "application/json"}, {"key": "x-bf-session-id", "value": "test-session-other-{{$timestamp}}"} ], "body": { "mode": "raw", "raw": "{\n \"model\": \"{{provider}}/{{chat_model}}\",\n \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}],\n \"max_completion_tokens\": 10,\n \"stream\": false\n}" }, "url": { "raw": "{{base_url}}/v1/chat/completions", "host": ["{{base_url}}"], "path": ["v1", "chat", "completions"] } } }, { "name": "Chat Completion with session TTL", "event": [ { "listen": "test", "script": { "type": "text/javascript", "exec": [ "pm.test('Status is 2xx', function() { pm.expect(pm.response.code).to.be.within(200, 299); });" ] } } ], "request": { "method": "POST", "header": [ {"key": "Content-Type", "value": "application/json"}, {"key": "x-bf-session-id", "value": "test-session-ttl"}, {"key": "x-bf-session-ttl", "value": "60"} ], "body": { "mode": "raw", "raw": "{\n \"model\": \"{{provider}}/{{chat_model}}\",\n \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}],\n \"max_completion_tokens\": 10,\n \"stream\": false\n}" }, "url": { "raw": "{{base_url}}/v1/chat/completions", "host": ["{{base_url}}"], "path": ["v1", "chat", "completions"] } } } ] }