Campaign-local clients send bounded, validated records to private collection
routes. The campaign service forwards authenticated events to the admin
backend, which owns persistence. The dashboard later reads those records
through its authenticated API.
Last modified on August 28, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"P-BitM","description":"Documentation for P-BitM, a containerized platform for controlled browser-in-the-middle security assessments.","colors":{"primary":"#C4472D","light":"#F06A48","dark":"#C4472D"},"logo":{"light":"https://mintcdn.com/p-bitm-2269ecee/7kTH8dbJH_Bjkkly/assets/p-bitm-logo-v2.png?fit=max\u0026auto=format\u0026n=7kTH8dbJH_Bjkkly\u0026q=85\u0026s=d3ca32f4c4d69cc5a63ce1fe724c0249","dark":"https://mintcdn.com/p-bitm-2269ecee/7kTH8dbJH_Bjkkly/assets/p-bitm-logo-v2.png?fit=max\u0026auto=format\u0026n=7kTH8dbJH_Bjkkly\u0026q=85\u0026s=d3ca32f4c4d69cc5a63ce1fe724c0249","href":"/"},"favicon":"https://mintcdn.com/p-bitm-2269ecee/9BS4YJCQtZV5PBjE/assets/favicon.png?fit=max\u0026auto=format\u0026n=9BS4YJCQtZV5PBjE\u0026q=85\u0026s=f5b864b87c3f17f785362f7c29a6e3d3","appearance":{"default":"dark"},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://github.com/P-BitM-Framework/P-BitM-Docs/blob/main/CONTRIBUTING.md","label":"Contribute"}],"primary":{"type":"github","href":"https://github.com/P-BitM-Framework/P-BitM"}},"footer":{"socials":{"github":"https://github.com/P-BitM-Framework"},"links":[{"header":"Get started","items":[{"label":"Overview","href":"/getting-started/overview"},{"label":"Requirements","href":"/getting-started/requirements"},{"label":"Quick start","href":"/getting-started/quick-start"}]},{"header":"Operate","items":[{"label":"Campaigns","href":"/user-guide/campaigns"},{"label":"Live sessions","href":"/user-guide/live-sessions"},{"label":"Troubleshooting","href":"/administration/troubleshooting"}]},{"header":"Project","items":[{"label":"P-BitM repository","href":"https://github.com/P-BitM-Framework/P-BitM"},{"label":"Documentation repository","href":"https://github.com/P-BitM-Framework/P-BitM-Docs"},{"label":"Credits","href":"/legal/credits"}]},{"header":"Security","items":[{"label":"Authorized use","href":"/security/authorized-use"},{"label":"Deployment hardening","href":"/security/deployment-hardening"},{"label":"Report a vulnerability","href":"/security/reporting-vulnerabilities"}]}]},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"system","latex":false},"errors":{"404":{"redirect":false,"title":"Page not found","description":"The requested P-BitM documentation page does not exist or has moved."}},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"navigation":{"global":{"anchors":[{"anchor":"Source code","icon":"github","href":"https://github.com/P-BitM-Framework/P-BitM"},{"anchor":"Documentation repo","icon":"file-text","href":"https://github.com/P-BitM-Framework/P-BitM-Docs"},{"anchor":"Authorized use","icon":"shield-check","href":"/security/authorized-use"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"p-bitm-2269ecee","hasAudioNarration":false,"actualSubdomain":"p-bitm-2269ecee","customDomains":[],"gitSource":{"type":"github","owner":"p-bitm-framework","repo":"p-bitm-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aa2dd681594efca37a7c436","collectionId":"10da7d16-fb1f-46b8-b23f-d81448ac4682","liveDeploymentHistoryId":"6aa2dd681594efca37a7c436","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aa2dd681594efca37a7c436","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"P-BitM","count":40},{"language":"default","tag":"User guide","count":10},{"language":"default","tag":"Administration","count":8},{"language":"default","tag":"Development","count":7},{"language":"default","tag":"Concepts","count":6},{"language":"default","tag":"Reference","count":6},{"language":"default","tag":"Get started","count":5},{"language":"default","tag":"Application","count":4},{"language":"default","tag":"Campaign resources","count":4},{"language":"default","tag":"Operations","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--pbitm-orange-light:#f06a48;--pbitm-teal:#00a6a6}#navbar a:has(>.nav-logo){display:inline-flex!important;align-items:center!important;gap:.8rem;flex-shrink:0}#navbar .nav-logo{width:3.5rem!important;max-width:3.5rem!important;height:3.5rem!important;max-height:3.5rem!important;object-fit:contain!important}#navbar a:has(>.nav-logo)::after{color:#18181b;content:\"Persistent Browser-In-The-Middle\";font-size:.95rem;font-weight:750;letter-spacing:.01em;line-height:1.15;white-space:nowrap}.dark #navbar a:has(>.nav-logo)::after{color:#f8fafc}@media (max-width:639px){#navbar a:has(>.nav-logo)::after{display:none}}#footer img[src*=p-bitm-logo],advanced-footer img[src*=p-bitm-logo],footer img[src*=p-bitm-logo]{width:7rem!important;max-width:7rem!important;height:auto!important;max-height:none!important;object-fit:contain!important}.pbitm-hero{position:relative;isolation:isolate;overflow:hidden}.pbitm-hero::after,.pbitm-hero::before{position:absolute;z-index:-1;border-radius:50%;content:\"\";filter:blur(90px);opacity:.5}.pbitm-hero::before{top:-12%;left:8%;width:24rem;height:24rem;background:var(--pbitm-teal)}.pbitm-hero::after{top:-18%;right:6%;width:28rem;height:28rem;background:var(--pbitm-orange-light)}.pbitm-hero-logo{filter:drop-shadow(0 22px 34px rgb(0 0 0/34%))}.pbitm-kicker{color:#86f7ed;letter-spacing:.12em;text-transform:uppercase}html[data-current-path=\"/\"] #footer{margin-top:0}"}],"page":{"pagePath":"concepts/request-flow","slug":"/concepts/request-flow","pageMetadata":{"title":"Request flow","description":"Trace administrative, campaign admission, and collection requests through P-BitM.","href":"/concepts/request-flow"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Trace administrative, campaign admission, and collection requests through P-BitM.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,..._provideComponents(),...props.components},{Heading,Step,Steps,Tab,Tabs,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The control plane and campaign plane follow different trust paths. Switch\nbetween them to trace authentication, authorization, and workload creation.`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Administrative request`,icon:`shield-check`,id:`administrative-request`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Open the dashboard`,children:_jsx(_components.p,{children:`The operator opens the loopback dashboard over HTTPS.`})}),_jsx(Step,{title:`Proxy the API request`,children:_jsxs(_components.p,{children:[`Frontend nginx proxies `,_jsx(_components.code,{children:`/api`}),` requests to the admin backend.`]})}),_jsx(Step,{title:`Authenticate the session`,children:_jsx(_components.p,{children:`The backend authenticates the opaque server-side session cookie.`})}),_jsx(Step,{title:`Authorize the route`,children:_jsx(_components.p,{children:`Route-level authorization checks the user role and resource ownership.`})}),_jsx(Step,{title:`Read or update state`,children:_jsx(_components.p,{children:`The backend reads or updates SQLite and campaign storage.`})})]})}),_jsxs(Tab,{title:`Campaign admission`,icon:`door-open`,id:`campaign-admission`,children:[_jsxs(Steps,{children:[_jsx(Step,{title:`Open the campaign URL`,children:_jsx(_components.p,{children:`An approved recipient reaches the campaign URL through Traefik.`})}),_jsx(Step,{title:`Validate routing state`,children:_jsx(_components.p,{children:`The campaign service validates routing and tracking state.`})}),_jsx(Step,{title:`Exchange the landing state`,children:_jsx(_components.p,{children:`The landing flow exchanges valid state for a short-lived signed session\ntoken.`})}),_jsx(Step,{title:`Admit the WebSocket`,children:_jsx(_components.p,{children:`The WebSocket handshake must complete within the configured timeout and\nadmission limits.`})}),_jsx(Step,{title:`Create the browser workload`,children:_jsx(_components.p,{children:`The campaign service asks the authenticated admin backend to create the\ntarget browser container.`})})]}),_jsx(Warning,{children:_jsx(_components.p,{children:`Tracking identifiers and stream paths are bearer-like capabilities and\nmust not be written to routine logs or documentation examples.`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`collection`,children:`Collection`}),`\n`,_jsx(_components.p,{children:`Campaign-local clients send bounded, validated records to private collection\nroutes. The campaign service forwards authenticated events to the admin\nbackend, which owns persistence. The dashboard later reads those records\nthrough its authenticated API.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Request flow","description":"Trace administrative, campaign admission, and collection requests through P-BitM.","href":"/concepts/request-flow"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Collection","slug":"collection","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"p-bitm-2269ecee","siteName":"P-BitM","title":"Request flow - P-BitM","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-26T13:39:43.331Z","gitLastModified":"2026-08-28T14:21:56.000Z","originalFileLocation":"concepts/request-flow.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Trace administrative, campaign admission, and collection requests through P-BitM.\">\u003cmeta data-mint-head name=\"application-name\" content=\"P-BitM\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Request flow - P-BitM\">\u003cmeta data-mint-head property=\"og:description\" content=\"Trace administrative, campaign admission, and collection requests through P-BitM.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"P-BitM\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://p-bitm-2269ecee.mintlify.app/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Request+flow\u0026amp;description=Trace+administrative%2C+campaign+admission%2C+and+collection+requests+through+P-BitM.\u0026amp;theme=830e90918d8f47e49f7ca0e6\u0026amp;signature=170e117e300d0f453bb9d4cacb49018787d2f771d959cb5fbbf9bd35e2d01bd6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Request flow - P-BitM\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Trace administrative, campaign admission, and collection requests through P-BitM.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://p-bitm-2269ecee.mintlify.app/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Request+flow\u0026amp;description=Trace+administrative%2C+campaign+admission%2C+and+collection+requests+through+P-BitM.\u0026amp;theme=830e90918d8f47e49f7ca0e6\u0026amp;signature=170e117e300d0f453bb9d4cacb49018787d2f771d959cb5fbbf9bd35e2d01bd6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/p-bitm-2269ecee/KPlCWvMofCJY6GWk/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"P-BitM\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#C4472D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/request-flow.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://p-bitm-2269ecee.mintlify.app/#organization\",\"name\":\"P-BitM\",\"url\":\"https://p-bitm-2269ecee.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/p-bitm-2269ecee/7kTH8dbJH_Bjkkly/assets/p-bitm-logo-v2.png?fit=max\u0026auto=format\u0026n=7kTH8dbJH_Bjkkly\u0026q=85\u0026s=d3ca32f4c4d69cc5a63ce1fe724c0249\"}},{\"@type\":\"WebSite\",\"@id\":\"https://p-bitm-2269ecee.mintlify.app#website\",\"name\":\"P-BitM\",\"url\":\"https://p-bitm-2269ecee.mintlify.app\",\"publisher\":{\"@id\":\"https://p-bitm-2269ecee.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow#webpage\",\"url\":\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow\",\"name\":\"Request flow\",\"description\":\"Trace administrative, campaign admission, and collection requests through P-BitM.\",\"dateModified\":\"2026-08-28T14:21:56.000Z\",\"isPartOf\":{\"@id\":\"https://p-bitm-2269ecee.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Concepts\",\"item\":\"https://p-bitm-2269ecee.mintlify.app/concepts/architecture\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Request flow\",\"item\":\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow#article\",\"headline\":\"Request flow\",\"name\":\"Request flow\",\"description\":\"Trace administrative, campaign admission, and collection requests through P-BitM.\",\"url\":\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow\",\"mainEntityOfPage\":{\"@id\":\"https://p-bitm-2269ecee.mintlify.app/concepts/request-flow#webpage\"},\"dateModified\":\"2026-08-28T14:21:56.000Z\",\"publisher\":{\"@id\":\"https://p-bitm-2269ecee.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://p-bitm-2269ecee.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"P-BitM\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"P-BitM","nav":{"global":{"anchors":[{"anchor":"Source code","icon":"github","href":"https://github.com/P-BitM-Framework/P-BitM"},{"anchor":"Documentation repo","icon":"file-text","href":"https://github.com/P-BitM-Framework/P-BitM-Docs"},{"anchor":"Authorized use","icon":"shield-check","href":"/security/authorized-use"}]},"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":""}]},{"tab":"P-BitM","icon":"fish-symbol","groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"Overview","href":"/getting-started/overview"},{"title":"Requirements","href":"/getting-started/requirements"},{"title":"Installation","href":"/getting-started/installation"},{"title":"Initial configuration","href":"/getting-started/configuration"},{"title":"Quick start","href":"/getting-started/quick-start"}]},{"group":"Video demos","icon":"clapperboard","pages":[{"title":"Video demos","href":"/video-demos"}]},{"group":"User guide","icon":"panel-top","pages":[{"title":"Campaigns","href":"/user-guide/campaigns"},{"group":"Campaign resources","icon":"folders","pages":[{"title":"Target lists","href":"/user-guide/target-lists"},{"title":"Email templates","href":"/user-guide/email-templates"},{"title":"SMTP profiles","href":"/user-guide/smtp-profiles"},{"title":"Landing pages","href":"/user-guide/landing-pages"}]},{"group":"Sessions and evidence","icon":"monitor-up","pages":[{"title":"Live sessions","href":"/user-guide/live-sessions"},{"title":"Actions and evidence","href":"/user-guide/actions-and-evidence"},{"title":"Exports","href":"/user-guide/exports"}]},{"group":"Extensions","icon":"blocks","pages":[{"title":"Plugins","href":"/user-guide/plugins"},{"title":"Modules","href":"/user-guide/modules"}]}]},{"group":"Concepts","icon":"network","pages":[{"title":"Architecture","href":"/concepts/architecture"},{"title":"Campaign lifecycle","description":"Follow campaign state from creation and scheduling through cleanup and recovery.","href":"/concepts/campaign-lifecycle"},{"title":"Request flow","href":"/concepts/request-flow"},{"title":"Session containers","description":"Understand browser image selection, readiness, identity, isolation, and capacity limits.","href":"/concepts/session-containers"},{"title":"Storage and database","href":"/concepts/storage-and-database"},{"title":"Security model","href":"/concepts/security-model"}]},{"group":"Security","icon":"shield-check","pages":[{"title":"Authorized use","href":"/security/authorized-use"},{"title":"Deployment hardening","href":"/security/deployment-hardening"},{"title":"Reporting vulnerabilities","href":"/security/reporting-vulnerabilities"}]},{"group":"Administration","icon":"settings","pages":[{"title":"Deployment","href":"/administration/deployment"},{"title":"Team and roles","href":"/administration/users-and-roles"},{"group":"Configuration","icon":"sliders-horizontal","pages":[{"title":"Environment variables","href":"/administration/environment-variables"},{"title":"Networking and TLS","href":"/administration/networking-and-tls"},{"title":"Storage and backups","href":"/administration/storage-and-backups"}]},{"group":"Operations","icon":"wrench","pages":[{"title":"Maintenance","href":"/administration/maintenance"},{"title":"Doctor","href":"/administration/doctor"},{"title":"Troubleshooting","href":"/administration/troubleshooting"}]}]},{"group":"Development","icon":"code-xml","pages":[{"title":"Development setup","href":"/development/setup"},{"title":"Creating and contributing attack vectors","href":"/development/attack-vectors"},{"group":"Application","icon":"boxes","pages":[{"title":"Admin backend","href":"/development/backend"},{"title":"Campaign backend","href":"/development/campaign-backend"},{"title":"Frontend","href":"/development/frontend"},{"title":"Database","href":"/development/database"}]},{"title":"Testing","href":"/development/testing"}]}]},{"tab":"Reference","icon":"book-open","pages":[{"title":"Reference","href":"/reference/cli"}]}]},"title":"Request flow - P-BitM","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}