[{"data":1,"prerenderedAt":762},["ShallowReactive",2],{"navigation_docs":3,"-contributing-assets-and-clean-room":172,"-contributing-assets-and-clean-room-surround":757},[4,30,100,134],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":29},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,21,25],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":5,"path":19,"stem":20},"\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":22,"path":23,"stem":24},"Build from source","\u002Fgetting-started\u002Fbuild-from-source","1.getting-started\u002F4.build-from-source",{"title":26,"path":27,"stem":28},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F5.troubleshooting",false,{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":29},"Guide","i-lucide-book-open","\u002Fguide","2.guide",[36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96],{"title":37,"path":38,"stem":39},"Interface","\u002Fguide\u002Finterface","2.guide\u002F01.interface",{"title":41,"path":42,"stem":43},"Workspace","\u002Fguide\u002Fworkspace","2.guide\u002F02.workspace",{"title":45,"path":46,"stem":47},"Collections","\u002Fguide\u002Fcollections","2.guide\u002F03.collections",{"title":49,"path":50,"stem":51},"HTTP requests","\u002Fguide\u002Fhttp-requests","2.guide\u002F04.http-requests",{"title":53,"path":54,"stem":55},"Variables","\u002Fguide\u002Fvariables","2.guide\u002F05.variables",{"title":57,"path":58,"stem":59},"Authorization","\u002Fguide\u002Fauthorization","2.guide\u002F06.authorization",{"title":61,"path":62,"stem":63},"Scripts and tests","\u002Fguide\u002Fscripts-and-tests","2.guide\u002F07.scripts-and-tests",{"title":65,"path":66,"stem":67},"Collection runner","\u002Fguide\u002Fcollection-runner","2.guide\u002F08.collection-runner",{"title":69,"path":70,"stem":71},"Import and export","\u002Fguide\u002Fimport-export","2.guide\u002F09.import-export",{"title":73,"path":74,"stem":75},"Code snippets","\u002Fguide\u002Fcode-snippets","2.guide\u002F10.code-snippets",{"title":77,"path":78,"stem":79},"gRPC","\u002Fguide\u002Fgrpc","2.guide\u002F11.grpc",{"title":81,"path":82,"stem":83},"WebSocket","\u002Fguide\u002Fwebsocket","2.guide\u002F12.websocket",{"title":85,"path":86,"stem":87},"Cookies, proxy and certificates","\u002Fguide\u002Fcookies-proxy-certificates","2.guide\u002F13.cookies-proxy-certificates",{"title":89,"path":90,"stem":91},"Settings","\u002Fguide\u002Fsettings","2.guide\u002F14.settings",{"title":93,"path":94,"stem":95},"Keyboard shortcuts","\u002Fguide\u002Fkeyboard-shortcuts","2.guide\u002F15.keyboard-shortcuts",{"title":97,"path":98,"stem":99},"Privacy and security","\u002Fguide\u002Fprivacy-and-security","2.guide\u002F16.privacy-and-security",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":29},"Reference","i-lucide-square-terminal","\u002Freference","3.reference",[106,110,114,118,122,126,130],{"title":107,"path":108,"stem":109},"Command line","\u002Freference\u002Fcli","3.reference\u002F1.cli",{"title":111,"path":112,"stem":113},"Automation tools","\u002Freference\u002Fautomation-tools","3.reference\u002F2.automation-tools",{"title":115,"path":116,"stem":117},"Scripting API","\u002Freference\u002Fscripting-api","3.reference\u002F3.scripting-api",{"title":119,"path":120,"stem":121},"Dynamic variables","\u002Freference\u002Fdynamic-variables","3.reference\u002F4.dynamic-variables",{"title":123,"path":124,"stem":125},"UI control channel","\u002Freference\u002Fui-control-channel","3.reference\u002F5.ui-control-channel",{"title":127,"path":128,"stem":129},"Workspace format","\u002Freference\u002Fworkspace-format","3.reference\u002F6.workspace-format",{"title":131,"path":132,"stem":133},"Feature status","\u002Freference\u002Ffeature-status","3.reference\u002F7.feature-status",{"title":135,"icon":136,"path":137,"stem":138,"children":139,"page":29},"Contributing","i-lucide-git-pull-request","\u002Fcontributing","4.contributing",[140,144,148,152,156,160,164,168],{"title":141,"path":142,"stem":143},"Contributing overview","\u002Fcontributing\u002Foverview","4.contributing\u002F1.overview",{"title":145,"path":146,"stem":147},"Development","\u002Fcontributing\u002Fdevelopment","4.contributing\u002F2.development",{"title":149,"path":150,"stem":151},"Architecture","\u002Fcontributing\u002Farchitecture","4.contributing\u002F3.architecture",{"title":153,"path":154,"stem":155},"Known gaps","\u002Fcontributing\u002Fgaps","4.contributing\u002F4.gaps",{"title":157,"path":158,"stem":159},"Adding a feature","\u002Fcontributing\u002Fadding-a-feature","4.contributing\u002F5.adding-a-feature",{"title":161,"path":162,"stem":163},"Assets and clean-room","\u002Fcontributing\u002Fassets-and-clean-room","4.contributing\u002F6.assets-and-clean-room",{"title":165,"path":166,"stem":167},"Releasing","\u002Fcontributing\u002Freleasing","4.contributing\u002F7.releasing",{"title":169,"path":170,"stem":171},"Writing the documentation","\u002Fcontributing\u002Fdocumentation","4.contributing\u002F8.documentation",{"id":173,"title":161,"body":174,"description":750,"extension":751,"links":752,"meta":753,"navigation":754,"path":162,"seo":755,"stem":163,"__hash__":756},"docs\u002F4.contributing\u002F6.assets-and-clean-room.md",{"type":175,"value":176,"toc":733},"minimark",[177,188,192,197,213,216,236,240,296,299,303,308,322,359,362,438,448,465,471,474,486,490,506,537,541,548,574,578,581,599,610,614,617,637,642,646,649,693,697,729],[178,179,180,187],"warning",{},[181,182,186],"a",{"href":183,"rel":184},"https:\u002F\u002Fgithub.com\u002Fzuramai\u002Fpostguy\u002Fblob\u002Fmain\u002FAGENTS.md",[185],"nofollow","AGENTS.md"," sections 1 and 2 are the authority. This page is a condensed guide. If an asset's origin or licence is unclear, do not add it. Ask the owner.",[189,190,191],"p",{},"An asset is any non-code material the project includes, ships, embeds, generates for publication, or shows in its documentation. Examples: icons, images, screenshots, logos, fonts, binary data files, sounds, video, committed sample collections, protos, OpenAPI files and word lists.",[193,194,196],"h2",{"id":195},"what-is-forbidden","What is forbidden",[198,199,200,204,207,210],"ul",{},[201,202,203],"li",{},"Anything taken from a Postman product, installer, website, document or package: icons, images, logos, fonts, brand colours, illustrations, marketing copy, sample collections. This holds even when the material is openly licensed, if it is visual design or content.",[201,205,206],{},"Recreating, tracing or imitating a Postman icon, logo or illustration. Icons come from Lucide. The palette, spacing and layout details are our own. Interaction patterns (sidebar, tabs, request builder, response viewer) are behaviour, not artwork.",[201,208,209],{},"Screenshots of other people's software, stock photos, emoji artwork from Apple, Microsoft or Samsung, system fonts, and \"free for personal use\" material.",[201,211,212],{},"Screenshots of a real user's collections, tokens or responses.",[189,214,215],{},"The only Postman-authored material allowed is non-visual technical data that is openly licensed and needed for file compatibility.",[198,217,218,221,233],{},[201,219,220],{},"The closed list is the Postman Collection Format JSON schemas (v2.0.0 and v2.1.0, Apache-2.0), vendored only as test data.",[201,222,223,224,228,229,232],{},"Each needs an ",[225,226,227],"code",{},"ATTRIBUTION.toml"," entry with ",[225,230,231],{},"postman_data = true",".",[201,234,235],{},"Adding to this list needs the owner's explicit approval.",[193,237,239],{"id":238},"allowed-licences","Allowed licences",[241,242,243,256],"table",{},[244,245,246],"thead",{},[247,248,249,253],"tr",{},[250,251,252],"th",{},"Category",[250,254,255],{},"Licences",[257,258,259,268,276,284],"tbody",{},[247,260,261,265],{},[262,263,264],"td",{},"Open source",[262,266,267],{},"ISC, MIT, BSD-2-Clause, BSD-3-Clause, Apache-2.0, OFL-1.1, Ubuntu-Font-1.0, Bitstream-Vera",[247,269,270,273],{},[262,271,272],{},"Creative Commons",[262,274,275],{},"CC0-1.0, CC-BY-4.0, CC-BY-SA-4.0",[247,277,278,281],{},[262,279,280],{},"Other",[262,282,283],{},"Public domain",[247,285,286,289],{},[262,287,288],{},"Contributor-original",[262,290,291,292,295],{},"Created by a contributor who owns it and licenses it under the project licence (",[225,293,294],{},"MIT OR Apache-2.0","): the app icon and logo, demo collections, test protos, word lists",[189,297,298],{},"Anything whose licence you cannot prove from the original source is forbidden.",[193,300,302],{"id":301},"attribution-workflow","Attribution workflow",[189,304,305,307],{},[225,306,227],{}," at the repository root is the single source of truth. It has one entry per asset file:",[198,309,310,316],{},[201,311,312,315],{},[225,313,314],{},"[[asset]]"," for a committed file.",[201,317,318,321],{},[225,319,320],{},"[[bundled]]"," for a file bundled through a Cargo dependency, such as egui's default fonts.",[189,323,324,325,327,328,331,332,331,335,331,338,341,342,345,346,331,349,331,352,355,356,232],{},"Each ",[225,326,314],{}," entry records ",[225,329,330],{},"path",", ",[225,333,334],{},"title",[225,336,337],{},"author",[225,339,340],{},"source"," (with a version or commit), ",[225,343,344],{},"licence"," (SPDX), ",[225,347,348],{},"licence_file",[225,350,351],{},"kind",[225,353,354],{},"usage"," and ",[225,357,358],{},"sha256",[189,360,361],{},"To add or change an asset:",[363,364,365,370,373,377,380,384,390,394],"steps",{},[366,367,369],"h3",{"id":368},"find-the-original-source","Find the original source",[189,371,372],{},"Use the author's repository or release, not a mirror. Record the exact version or commit.",[366,374,376],{"id":375},"confirm-the-authorship-and-the-licence","Confirm the authorship and the licence",[189,378,379],{},"The author must not be Postman. Keep the licence text.",[366,381,383],{"id":382},"add-the-files","Add the files",[189,385,386,387,389],{},"Add the asset, its licence file and an ",[225,388,227],{}," entry before committing.",[366,391,393],{"id":392},"regenerate-and-check","Regenerate and check",[395,396,401],"pre",{"className":397,"code":398,"language":399,"meta":400,"style":400},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cargo xtask assets --write   # regenerates ATTRIBUTION.md; never edit that file by hand\ncargo xtask assets           # the gate\n","sh","",[225,402,403,426],{"__ignoreMap":400},[404,405,408,412,416,419,422],"span",{"class":406,"line":407},"line",1,[404,409,411],{"class":410},"sBMFI","cargo",[404,413,415],{"class":414},"sfazB"," xtask",[404,417,418],{"class":414}," assets",[404,420,421],{"class":414}," --write",[404,423,425],{"class":424},"sHwdD","   # regenerates ATTRIBUTION.md; never edit that file by hand\n",[404,427,429,431,433,435],{"class":406,"line":428},2,[404,430,411],{"class":410},[404,432,415],{"class":414},[404,434,418],{"class":414},[404,436,437],{"class":424},"           # the gate\n",[189,439,440,443,444,447],{},[225,441,442],{},"cargo xtask assets"," (part of ",[225,445,446],{},"cargo xtask ci",") fails if:",[198,449,450,453,456,459,462],{},[201,451,452],{},"an asset file in the repository has no entry;",[201,454,455],{},"an entry's hash does not match;",[201,457,458],{},"a licence is not on the allowlist;",[201,460,461],{},"a licence file is missing;",[201,463,464],{},"an image, icon or font names Postman as author or source.",[189,466,467,470],{},[225,468,469],{},"NOTICE"," keeps the licence notices the licences require.",[189,472,473],{},"If you find an asset that breaks these rules:",[475,476,477,480,483],"ol",{},[201,478,479],{},"Stop.",[201,481,482],{},"Remove it from the repository and from every output (docs, screenshots, generated files).",[201,484,485],{},"Tell the owner at once.",[193,487,489],{"id":488},"icons","Icons",[189,491,492,493,498,499,502,503,505],{},"Interface icons are ",[181,494,497],{"href":495,"rel":496},"https:\u002F\u002Flucide.dev",[185],"Lucide"," SVGs (ISC) in ",[225,500,501],{},"assets\u002Ficons\u002F",", each with an ",[225,504,227],{}," entry. They are compiled into path data:",[395,507,509],{"className":397,"code":508,"language":399,"meta":400,"style":400},"cargo xtask icons          # regenerate crates\u002Fui-egui\u002Fsrc\u002Ficons_gen.rs\ncargo xtask icons --check  # fail if it is out of date\n",[225,510,511,523],{"__ignoreMap":400},[404,512,513,515,517,520],{"class":406,"line":407},[404,514,411],{"class":410},[404,516,415],{"class":414},[404,518,519],{"class":414}," icons",[404,521,522],{"class":424},"          # regenerate crates\u002Fui-egui\u002Fsrc\u002Ficons_gen.rs\n",[404,524,525,527,529,531,534],{"class":406,"line":428},[404,526,411],{"class":410},[404,528,415],{"class":414},[404,530,519],{"class":414},[404,532,533],{"class":414}," --check",[404,535,536],{"class":424},"  # fail if it is out of date\n",[193,538,540],{"id":539},"logo","Logo",[189,542,543,544,547],{},"The Postguy mark is contributor-original: ",[225,545,546],{},"assets\u002Flogo\u002Fpostguy.svg",". The PNG sizes needed for packaging (16, 32, 64, 128, 256, 512) are rasterised from it:",[395,549,551],{"className":397,"code":550,"language":399,"meta":400,"style":400},"cargo xtask logo\ncargo xtask logo --check\n",[225,552,553,562],{"__ignoreMap":400},[404,554,555,557,559],{"class":406,"line":407},[404,556,411],{"class":410},[404,558,415],{"class":414},[404,560,561],{"class":414}," logo\n",[404,563,564,566,568,571],{"class":406,"line":428},[404,565,411],{"class":410},[404,567,415],{"class":414},[404,569,570],{"class":414}," logo",[404,572,573],{"class":414}," --check\n",[193,575,577],{"id":576},"fonts","Fonts",[189,579,580],{},"Poppins (OFL-1.1) is the one approved embedded font.",[198,582,583,596],{},[201,584,585,586,589,590,593,594,232],{},"It lives in ",[225,587,588],{},"assets\u002Ffonts\u002F",", is embedded by ",[225,591,592],{},"crates\u002Fui-egui\u002Fsrc\u002Ftheme.rs"," and is listed in ",[225,595,227],{},[201,597,598],{},"Any other font file needs the owner's decision first. Otherwise use the default fonts that ship inside egui.",[189,600,601,602,605,606,609],{},"The desktop app may read one font already installed on the user's machine as a last interface fallback, for characters no embedded face has. That font is never embedded, shipped, committed or copied. It never appears in published screenshots (",[225,603,604],{},"cargo xtask screenshots"," sets ",[225,607,608],{},"POSTGUY_SYSTEM_FONTS=0",").",[193,611,613],{"id":612},"screenshots","Screenshots",[189,615,616],{},"Screenshots of Postguy are contributor-original. Everything visible in them must itself be allowed: our UI, Lucide icons, allowed fonts and demo data written for this project. Generate them from the app's own UI:",[395,618,620],{"className":397,"code":619,"language":399,"meta":400,"style":400},"cargo xtask screenshots --out target\u002Fscreenshots\n",[225,621,622],{"__ignoreMap":400},[404,623,624,626,628,631,634],{"class":406,"line":407},[404,625,411],{"class":410},[404,627,415],{"class":414},[404,629,630],{"class":414}," screenshots",[404,632,633],{"class":414}," --out",[404,635,636],{"class":414}," target\u002Fscreenshots\n",[189,638,639,640,232],{},"The documentation site commits no screenshots and no images other than serving the logo. See ",[181,641,169],{"href":170},[193,643,645],{"id":644},"clean-room-rules","Clean-room rules",[189,647,648],{},"Postguy implements Postman-compatible file formats and workflows from public information only.",[198,650,651,662,673,676,687,690],{},[201,652,653,657,658,661],{},[654,655,656],"strong",{},"Never"," read, decompile, unpack or copy anything inside the Postman app bundle (its ",[225,659,660],{},"app.asar",", bundled JavaScript, resources). Names and directory listings only.",[201,663,664,665],{},"Behaviour comes only from:\n",[198,666,667,670],{},[201,668,669],{},"public specifications and documentation: the Postman Collection Format schema, the public Postman Learning Center, and the RFCs for HTTP, URI, cookies, WebSocket, OAuth, the gRPC protocol and reflection;",[201,671,672],{},"black-box observation of a real install with synthetic data.",[201,674,675],{},"Do not port or translate another implementation (Newman, postman-sandbox, postman-runtime, postman-code-generators, Insomnia, Bruno, Hoppscotch). They may be permissively licensed, but behaviour comes from documentation, schemas and observation, not from reading their code.",[201,677,678,679,682,683,686],{},"Never copy GPL, AGPL or LGPL code and never link such a crate. Copyleft tools may run only as external oracle processes in tests (for example ",[225,680,681],{},"curl"," or ",[225,684,685],{},"grpcurl"," to cross-check output).",[201,688,689],{},"Observe only with synthetic data. Never capture personal data, account information, tokens, workspaces or history.",[201,691,692],{},"Real-file oracles (collections exported from a real install) stay local and are never committed. Write our own golden files.",[193,694,696],{"id":695},"dependencies","Dependencies",[198,698,699,709,716,726],{},[201,700,701,702,705,706,232],{},"Permissive licences only. ",[225,703,704],{},"cargo xtask deny"," enforces this against ",[225,707,708],{},"deny.toml",[201,710,711,712,715],{},"Always use ",[225,713,714],{},"default-features = false"," and enable only what is used.",[201,717,718,719,331,722,725],{},"No dependency on ",[225,720,721],{},"craft-ui",[225,723,724],{},"craft-libs"," or other storytold-internal repositories.",[201,727,728],{},"Anything outside the allowlist, or anything that adds unrequested network traffic, needs the owner's approval.",[730,731,732],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":400,"searchDepth":428,"depth":428,"links":734},[735,736,737,744,745,746,747,748,749],{"id":195,"depth":428,"text":196},{"id":238,"depth":428,"text":239},{"id":301,"depth":428,"text":302,"children":738},[739,741,742,743],{"id":368,"depth":740,"text":369},3,{"id":375,"depth":740,"text":376},{"id":382,"depth":740,"text":383},{"id":392,"depth":740,"text":393},{"id":488,"depth":428,"text":489},{"id":539,"depth":428,"text":540},{"id":576,"depth":428,"text":577},{"id":612,"depth":428,"text":613},{"id":644,"depth":428,"text":645},{"id":695,"depth":428,"text":696},"Which assets Postguy may ship, how to attribute them, where behaviour may come from, and the commands that enforce it.","md",null,{},true,{"title":161,"description":750},"3lBVSKUmbx3Le75GG36v9kUKkqkg83uJFgMCPVNwUww",[758,760],{"title":157,"path":158,"stem":159,"description":759,"children":-1},"The path from engine API to automation tool, UI and parity entry, and how to test, fuzz and review it.",{"title":165,"path":166,"stem":167,"description":761,"children":-1},"How a tagged release builds the macOS, Windows and Linux packages, which secrets sign them, and how to run each packaging script locally.",1793179614682]