[{"data":1,"prerenderedAt":2007},["ShallowReactive",2],{"navigation_docs":3,"-guide-import-export":172,"-guide-import-export-surround":2002},[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":69,"body":174,"description":1995,"extension":1996,"links":1997,"meta":1998,"navigation":1999,"path":70,"seo":2000,"stem":71,"__hash__":2001},"docs\u002F2.guide\u002F09.import-export.md",{"type":175,"value":176,"toc":1971},"minimark",[177,181,186,198,235,242,250,254,257,354,360,364,393,397,400,417,420,424,427,457,461,470,600,604,639,643,646,674,677,945,996,999,1033,1036,1039,1043,1053,1077,1082,1170,1180,1201,1205,1460,1493,1497,1545,1549,1611,1614,1620,1625,1631,1684,1689,1693,1703,1711,1721,1725,1728,1748,1820,1831,1834,1849,1862,1865,1868,1872,1966],[178,179,180],"p",{},"Postguy reads many formats into your workspace. It writes collections, environments and globals back out. Everything is local: the import box never fetches a URL.",[182,183,185],"h2",{"id":184},"import-dialog","Import dialog",[178,187,188,189,193,194,197],{},"Open it with the sidebar import button, ",[190,191,192],"code",{},"Cmd\u002FCtrl+I",", or the command palette (",[190,195,196],{},"Import…","). The dialog has:",[199,200,201,209,219,226,232],"ul",{},[202,203,204,205,208],"li",{},"A text box for pasted JSON, YAML or a cURL command, and an ",[190,206,207],{},"Import text"," button.",[202,210,211,214,215,218],{},[190,212,213],{},"Choose files…"," and ",[190,216,217],{},"Choose folder…"," (native pickers).",[202,220,221,222,225],{},"A ",[190,223,224],{},"Replace existing"," checkbox.",[202,227,228,229,225],{},"An ",[190,230,231],{},"OpenAPI: folders by path (default: by tag)",[202,233,234],{},"Drag and drop. Drop files or folders anywhere in the window to open the dialog and import.",[178,236,237,238,241],{},"After each run, the dialog lists every file with its result, an ",[190,239,240],{},"Open"," link, warnings and dropped items. This is the import report (see below).",[243,244,245,246,249],"note",{},"URLs are refused on purpose: ",[190,247,248],{},"URL imports are not fetched automatically; download the file and drop it here",". Fetching a document from a URL is a tracked gap, not a hidden network call.",[182,251,253],{"id":252},"how-the-format-is-detected","How the format is detected",[178,255,256],{},"Pasted text is classified in this order. A leading UTF-8 byte-order mark is ignored.",[258,259,260,273],"table",{},[261,262,263],"thead",{},[264,265,266,270],"tr",{},[267,268,269],"th",{},"First characters",[267,271,272],{},"Treated as",[274,275,276,288,302,315,332,346],"tbody",{},[264,277,278,282],{},[279,280,281],"td",{},"nothing (empty input)",[279,283,284,285],{},"error: ",[190,286,287],{},"nothing to import",[264,289,290,299],{},[279,291,292,295,296],{},[190,293,294],{},"{"," or ",[190,297,298],{},"[",[279,300,301],{},"JSON: OpenAPI\u002FSwagger, then HAR, then Postman collection, environment or globals",[264,303,304,312],{},[279,305,306,295,309],{},[190,307,308],{},"http:\u002F\u002F",[190,310,311],{},"https:\u002F\u002F",[279,313,314],{},"refused (no fetch)",[264,316,317,326],{},[279,318,319,295,322,325],{},[190,320,321],{},"syntax = \"…\"",[190,323,324],{},"package x;"," on the first content line",[279,327,328,331],{},[190,329,330],{},".proto"," source: refused as text, import the file instead",[264,333,334,343],{},[279,335,336,339,340],{},[190,337,338],{},"%YAML",", or a first line that looks like ",[190,341,342],{},"key: value",[279,344,345],{},"YAML: accepted only if it is an OpenAPI 3 or Swagger 2 document",[264,347,348,351],{},[279,349,350],{},"anything else",[279,352,353],{},"cURL commands",[178,355,356,357,359],{},"A file with the ",[190,358,330],{}," extension is always imported as protobuf, whatever its content. Files must be UTF-8 text and at most 100 MiB.",[182,361,363],{"id":362},"name-clashes-and-replace","Name clashes and Replace",[199,365,366,369,380,386],{},[202,367,368],{},"If an imported collection, environment or globals id already exists, it gets a fresh id.",[202,370,371,372,375,376,379],{},"If a name is taken, it gets a numeric suffix: ",[190,373,374],{},"Payments API (2)",", ",[190,377,378],{},"Payments API (3)",", and so on. Names are compared case-insensitively.",[202,381,382,383,385],{},"With ",[190,384,224],{},", only a collection or environment with the same id is overwritten. An environment is also matched by name. Globals are replaced as a whole.",[202,387,388,389,392],{},"Importing globals when globals already exist, without Replace, fails with ",[190,390,391],{},"globals already exist; tick Replace existing to import over them",".",[182,394,396],{"id":395},"import-report","Import report",[178,398,399],{},"Every import returns:",[199,401,402,405,411],{},[202,403,404],{},"Counts for collections, environments, globals, requests, folders and examples.",[202,406,407,408,392],{},"A list of ",[190,409,410],{},"warnings",[202,412,407,413,416],{},[190,414,415],{},"dropped"," items.",[178,418,419],{},"Each list keeps at most 200 entries. Nothing is dropped silently. If a field cannot be represented, the report names it.",[182,421,423],{"id":422},"postman","Postman",[178,425,426],{},"Postguy reads Collection Format v2.0 and v2.1 JSON, environments and globals.",[199,428,429,432,435,441,448,451,454],{},[202,430,431],{},"Folders, bodies, auth, scripts, variables and saved responses (examples) are mapped.",[202,433,434],{},"Unknown fields are preserved and written back on export.",[202,436,437,438,392],{},"Tests written in the Tests tab round-trip through an extra item key, ",[190,439,440],{},"postguyTests",[202,442,443,444,447],{},"gRPC and WebSocket items are reported as dropped (",[190,445,446],{},"only HTTP requests are imported so far",").",[202,449,450],{},"Collection Format v1 is refused, with instructions to convert it to v2 first.",[202,452,453],{},"Postman v3 YAML is not imported.",[202,455,456],{},"Limits: 100 MiB per document, nesting depth 256.",[182,458,460],{"id":459},"openapi-3-and-swagger-2","OpenAPI 3 and Swagger 2",[178,462,463,464,295,467,447],{},"Postguy reads JSON or YAML (",[190,465,466],{},"openapi: 3.x",[190,468,469],{},"swagger: \"2.0\"",[199,471,472,493,519,536,546,570],{},[202,473,474,478,479,482,483,486,487,295,490,392],{},[475,476,477],"strong",{},"Folders."," Folders follow the first tag of each operation (default). With ",[190,480,481],{},"OpenAPI: folders by path"," ticked, they follow the path. The tool argument is ",[190,484,485],{},"folders",": ",[190,488,489],{},"tags",[190,491,492],{},"paths",[202,494,495,498,499,502,503,506,507,510,511,514,515,518],{},[475,496,497],{},"Base URL."," A ",[190,500,501],{},"baseUrl"," collection variable comes from ",[190,504,505],{},"servers[0]",", or from ",[190,508,509],{},"host"," plus ",[190,512,513],{},"basePath",". Requests use ",[190,516,517],{},"{{baseUrl}}"," in the URL (shown as code here because it is a variable reference).",[202,520,521,524,525,528,529,531,532,535],{},[475,522,523],{},"References."," Only local ",[190,526,527],{},"$ref"," values are followed, with cycle cuts. External ",[190,530,527],{},", callbacks, webhooks, links and ",[190,533,534],{},"x-*"," extensions are reported, not imported.",[202,537,538,541,542,545],{},[475,539,540],{},"Examples."," Example bodies come from ",[190,543,544],{},"examples"," or from bounded schema samples.",[202,547,548,551,552,375,555,375,558,375,561,375,564,375,567,392],{},[475,549,550],{},"Auth."," Security schemes map to Basic, Bearer, API key and OAuth 2.0 auth. They use placeholder variables: ",[190,553,554],{},"username",[190,556,557],{},"password",[190,559,560],{},"bearerToken",[190,562,563],{},"apiKey",[190,565,566],{},"clientId",[190,568,569],{},"clientSecret",[202,571,572,575],{},[475,573,574],{},"Limits:",[199,576,577,580,583,588,591,594,597],{},[202,578,579],{},"20 MiB document.",[202,581,582],{},"10,000 operations.",[202,584,585,587],{},[190,586,527],{}," depth 32.",[202,589,590],{},"Example size 64 KiB and 5,000 nodes.",[202,592,593],{},"Folder depth 32.",[202,595,596],{},"20 examples per operation.",[202,598,599],{},"YAML is read with a budget: depth 100, 1,000,000 nodes, 4,000,000 events, 10,000 aliases and 10,000 anchors.",[182,601,603],{"id":602},"har-12","HAR 1.2",[199,605,606,613,616,626,629,636],{},[202,607,608,609,612],{},"You get one flat collection with one request per entry. It is named after the first page title (",[190,610,611],{},"Imported HAR"," if there is none).",[202,614,615],{},"The recorded URL is kept verbatim.",[202,617,618,619,214,622,625],{},"Pseudo-headers, ",[190,620,621],{},"Content-Length",[190,623,624],{},"Host"," are skipped and reported.",[202,627,628],{},"Recorded responses become examples. Invalid base64 or bodies over 5 MiB are dropped and reported.",[202,630,631,632,635],{},"An unsupported method becomes ",[190,633,634],{},"GET"," with a warning.",[202,637,638],{},"Limits: 10,000 entries, 5 MiB per body.",[182,640,642],{"id":641},"curl","cURL",[178,644,645],{},"Paste one or several commands.",[199,647,648,653,662,668],{},[202,649,650,651,392],{},"Commands are split on lines that start with ",[190,652,641],{},[202,654,655,214,658,661],{},[190,656,657],{},"\\",[190,659,660],{},"^"," line continuations are joined.",[202,663,664,665,447],{},"Each request is named after its method and last path segment (",[190,666,667],{},"GET payments",[202,669,670,671,392],{},"The collection is named ",[190,672,673],{},"Imported cURL",[178,675,676],{},"Mapped flags:",[258,678,679,689],{},[261,680,681],{},[264,682,683,686],{},[267,684,685],{},"Flag",[267,687,688],{},"Result",[274,690,691,707,718,731,757,781,809,825,838,852,865,881,894,909,926],{},[264,692,693,704],{},[279,694,695,375,698,375,701],{},[190,696,697],{},"-X",[190,699,700],{},"--request",[190,702,703],{},"--method",[279,705,706],{},"method",[264,708,709,715],{},[279,710,711,714],{},[190,712,713],{},"--url",", a bare URL",[279,716,717],{},"URL, kept verbatim (query parameters are not split out)",[264,719,720,728],{},[279,721,722,375,725],{},[190,723,724],{},"-H",[190,726,727],{},"--header",[279,729,730],{},"header",[264,732,733,748],{},[279,734,735,375,738,741,742,375,745],{},[190,736,737],{},"-A",[190,739,740],{},"--user-agent","; ",[190,743,744],{},"-e",[190,746,747],{},"--referer",[279,749,750,375,753,756],{},[190,751,752],{},"User-Agent",[190,754,755],{},"Referer"," headers",[264,758,759,767],{},[279,760,761,375,764],{},[190,762,763],{},"-b",[190,765,766],{},"--cookie",[279,768,769,772,773,776,777,780],{},[190,770,771],{},"Cookie"," header; ",[190,774,775],{},"@file"," is read (up to 64 KiB), ",[190,778,779],{},"@-"," is refused",[264,782,783,803],{},[279,784,785,375,788,375,791,375,794,375,797,375,800],{},[190,786,787],{},"-d",[190,789,790],{},"--data",[190,792,793],{},"--data-raw",[190,795,796],{},"--data-ascii",[190,798,799],{},"--data-urlencode",[190,801,802],{},"--data-binary",[279,804,805,806],{},"raw body; several pieces are concatenated without a separator; implies ",[190,807,808],{},"POST",[264,810,811,822],{},[279,812,813,375,816,375,819],{},[190,814,815],{},"-F",[190,817,818],{},"--form",[190,820,821],{},"--form-string",[279,823,824],{},"form-data body",[264,826,827,835],{},[279,828,829,375,832],{},[190,830,831],{},"-u",[190,833,834],{},"--user",[279,836,837],{},"Basic auth",[264,839,840,845],{},[279,841,842],{},[190,843,844],{},"--json",[279,846,847,848,851],{},"body, plus ",[190,849,850],{},"Content-Type: application\u002Fjson"," if none is set",[264,853,854,862],{},[279,855,856,375,859],{},[190,857,858],{},"-G",[190,860,861],{},"--get",[279,863,864],{},"data moves into the query string",[264,866,867,875],{},[279,868,869,375,872],{},[190,870,871],{},"-L",[190,873,874],{},"--location",[279,876,877,878,880],{},"follow redirects on; without ",[190,879,871],{}," the imported request has follow redirects off, like cURL",[264,882,883,891],{},[279,884,885,375,888],{},[190,886,887],{},"-k",[190,889,890],{},"--insecure",[279,892,893],{},"SSL verification off for that request",[264,895,896,904],{},[279,897,898,375,901],{},[190,899,900],{},"-I",[190,902,903],{},"--head",[279,905,906],{},[190,907,908],{},"HEAD",[264,910,911,923],{},[279,912,913,375,916,919,920],{},[190,914,915],{},"--max-redirs",[190,917,918],{},"-m","\u002F",[190,921,922],{},"--max-time",[279,924,925],{},"per-request max redirects and timeout",[264,927,928,942],{},[279,929,930,375,933,375,936,375,939],{},[190,931,932],{},"--http1.0",[190,934,935],{},"--http1.1",[190,937,938],{},"--http2",[190,940,941],{},"--http2-prior-knowledge",[279,943,944],{},"per-request HTTP version",[178,946,947,948,375,951,375,954,375,957,375,960,375,963,375,966,919,969,375,972,375,975,375,978,375,981,375,984,375,987,375,990,214,993,392],{},"Reported and ignored: ",[190,949,950],{},"--compressed",[190,952,953],{},"-o",[190,955,956],{},"-c",[190,958,959],{},"--connect-timeout",[190,961,962],{},"--retry",[190,964,965],{},"--noproxy",[190,967,968],{},"-E",[190,970,971],{},"--certificate",[190,973,974],{},"--key",[190,976,977],{},"--cert",[190,979,980],{},"--cacert",[190,982,983],{},"--unix-socket",[190,985,986],{},"--resolve",[190,988,989],{},"--header-file",[190,991,992],{},"--config",[190,994,995],{},"-K",[178,997,998],{},"Other flag behaviour:",[199,1000,1001,1014,1017],{},[202,1002,1003,919,1006,1009,1010,1013],{},[190,1004,1005],{},"-x",[190,1007,1008],{},"--proxy"," is parsed but not stored, because a request has no proxy field. Set a proxy in ",[1011,1012,89],"a",{"href":90}," instead.",[202,1015,1016],{},"Unknown flags produce a warning, not an error.",[202,1018,1019,1020,375,1023,375,1026,214,1029,1032],{},"Flags such as ",[190,1021,1022],{},"-s",[190,1024,1025],{},"-v",[190,1027,1028],{},"-i",[190,1030,1031],{},"--fail"," are ignored without a warning.",[178,1034,1035],{},"Limits: 1 MiB of input, 8,192 lines, 4,096 tokens per command, 256 KiB per token, 200 warnings.",[178,1037,1038],{},"The request builder also detects a cURL command pasted into the URL bar.",[182,1040,1042],{"id":1041},"bruno-collection-folders","Bruno collection folders",[178,1044,1045,1046,1049,1050,392],{},"Postguy imports a Bruno collection ",[475,1047,1048],{},"folder",": a directory that contains ",[190,1051,1052],{},"bruno.json",[199,1054,1055,1061,1068],{},[202,1056,1057,1058,392],{},"Without that file, the import fails with ",[190,1059,1060],{},"… is not a Bruno collection (no bruno.json)",[202,1062,1063,1064,1067],{},"Only the ",[190,1065,1066],{},".bru"," file format is read.",[202,1069,1070,1071,1073,1074,392],{},"Picking or dropping a folder that contains ",[190,1072,1052],{}," routes here automatically. The tool is ",[190,1075,1076],{},"import_bruno",[1078,1079,1081],"h3",{"id":1080},"what-the-importer-reads","What the importer reads",[258,1083,1084,1094],{},[261,1085,1086],{},[264,1087,1088,1091],{},[267,1089,1090],{},"Bruno file",[267,1092,1093],{},"Becomes",[274,1095,1096,1113,1127,1141,1152,1162],{},[264,1097,1098,1102],{},[279,1099,1100],{},[190,1101,1052],{},[279,1103,1104,1105,1108,1109,1112],{},"the collection name (the folder name if ",[190,1106,1107],{},"name"," is empty); its ",[190,1110,1111],{},"ignore"," list skips those top-level entries",[264,1114,1115,1121],{},[279,1116,1117,1120],{},[190,1118,1119],{},"collection.bru"," (root only)",[279,1122,1123,1124,1126],{},"collection-level description, variables, auth, scripts and headers. A ",[190,1125,1119],{}," in a subfolder is dropped with a report entry",[264,1128,1129,1134],{},[279,1130,1131],{},[190,1132,1133],{},"folder.bru",[279,1135,1136,1137,1140],{},"a folder's name (from ",[190,1138,1139],{},"meta","), description, variables, auth, scripts and headers",[264,1142,1143,1149],{},[279,1144,1145,1146,1148],{},"other ",[190,1147,1066],{}," files",[279,1150,1151],{},"requests",[264,1153,1154,1159],{},[279,1155,1156],{},[190,1157,1158],{},"environments\u002F\u003Cname>.bru",[279,1160,1161],{},"one environment per file",[264,1163,1164,1167],{},[279,1165,1166],{},"any other file",[279,1168,1169],{},"a collection asset, with its relative path kept",[178,1171,1172,1173,1175,1176,1179],{},"Ordering: items are sorted by ",[190,1174,1139],{}," ",[190,1177,1178],{},"seq",". Items without one go last, sorted by name.",[178,1181,1182,1183,375,1185,1188,1189,375,1191,375,1194,1197,1198,392],{},"The walk skips names that start with ",[190,1184,392],{},[190,1186,1187],{},"node_modules",", and symlinks. These are not copied as assets: top-level ",[190,1190,1052],{},[190,1192,1193],{},"package.json",[190,1195,1196],{},"package-lock.json",", and everything under ",[190,1199,1200],{},"environments\u002F",[1078,1202,1204],{"id":1203},"how-requests-are-mapped","How requests are mapped",[199,1206,1207,1248,1262,1273,1307,1327,1357,1370,1394,1419,1428,1451],{},[202,1208,1209,1212,1213,214,1216,1219,1220,214,1223,1226,1227,375,1230,375,1233,375,1236,375,1239,375,1242,375,1245,392],{},[475,1210,1211],{},"Request types and methods."," Types ",[190,1214,1215],{},"http",[190,1217,1218],{},"graphql"," are imported. Other types, and the ",[190,1221,1222],{},"trace",[190,1224,1225],{},"connect"," methods, are dropped and reported. Supported methods: ",[190,1228,1229],{},"get",[190,1231,1232],{},"post",[190,1234,1235],{},"put",[190,1237,1238],{},"patch",[190,1240,1241],{},"delete",[190,1243,1244],{},"options",[190,1246,1247],{},"head",[202,1249,1250,1253,1254,1257,1258,1261],{},[475,1251,1252],{},"Query and path parameters."," Query parameters in the URL become parameter rows. Disabled ",[190,1255,1256],{},"params:query"," rows are added as disabled rows. ",[190,1259,1260],{},"params:path"," rows become path variables.",[202,1263,1264,1267,1268,295,1270,1272],{},[475,1265,1266],{},"Headers."," Mapped one to one. Postguy has no field for headers set in ",[190,1269,1133],{},[190,1271,1119],{},". They are copied onto every request below that does not already set them, and the report says so.",[202,1274,1275,1175,1278,741,1281,741,1284,741,1287,741,1290,1293,1294,741,1297,741,1300,1302,1303,1306],{},[475,1276,1277],{},"Body modes.",[190,1279,1280],{},"none",[190,1282,1283],{},"json",[190,1285,1286],{},"text",[190,1288,1289],{},"xml",[190,1291,1292],{},"sparql"," (imported as plain text); ",[190,1295,1296],{},"form-urlencoded",[190,1298,1299],{},"multipart-form",[190,1301,1218],{}," (query plus variables); ",[190,1304,1305],{},"file",". Any other mode is dropped and reported.",[202,1308,1309,1312,1313,1316,1317,1320,1321,1323,1324,1326],{},[475,1310,1311],{},"Files in bodies."," A multipart value ",[190,1314,1315],{},"@file(path)"," becomes a file row holding ",[190,1318,1319],{},"{{% file('path') %}}",". A ",[190,1322,1305],{}," body becomes a binary body with the same shortcode. The file is copied into the collection's Assets. See ",[1011,1325,53],{"href":54}," for shortcodes.",[202,1328,1329,1175,1331,375,1333,375,1336,375,1339,375,1342,214,1345,1348,1349,1352,1353,1356],{},[475,1330,550],{},[190,1332,1280],{},[190,1334,1335],{},"inherit",[190,1337,1338],{},"basic",[190,1340,1341],{},"bearer",[190,1343,1344],{},"digest",[190,1346,1347],{},"apikey"," (placement ",[190,1350,1351],{},"queryparams"," becomes a query parameter, anything else a header). Any other mode is reported as ",[190,1354,1355],{},"auth mode … is not supported"," and kept as an unknown auth kind. The parity file lists Bruno OAuth 2.0 and AWS modes as missing.",[202,1358,1359,1175,1362,1365,1366,1369],{},[475,1360,1361],{},"Scripts.",[190,1363,1364],{},"script:pre-request"," becomes the pre-request script. ",[190,1367,1368],{},"script:post-response"," becomes the post-response script.",[202,1371,1372,1375,1376,1379,1380,1383,1384,1379,1387,1390,1391,1393],{},[475,1373,1374],{},"Vars."," Request-level ",[190,1377,1378],{},"vars:pre-request"," entries become ",[190,1381,1382],{},"pg.variables.set(…)"," lines at the top of the pre-request script. ",[190,1385,1386],{},"vars:post-response",[190,1388,1389],{},"pg.setVar(…)"," lines at the end of the post-response script. At collection and folder level, ",[190,1392,1378],{}," becomes ordinary collection or folder variables.",[202,1395,1396,1399,1400,1403,1404,1407,1408,1410,1411,1414,1415,1418],{},[475,1397,1398],{},"Tests."," The ",[190,1401,1402],{},"tests"," block becomes the Tests-tab script. Each ",[190,1405,1406],{},"assert"," line becomes a Tests-tab assertion using the same operator tokens (",[1011,1409,61],{"href":62},"). An assertion with an unknown operator is imported ",[475,1412,1413],{},"disabled",", as ",[190,1416,1417],{},"eq",", with the original text as its value. The report notes it.",[202,1420,1421,1399,1424,1427],{},[475,1422,1423],{},"Docs.",[190,1425,1426],{},"docs"," block becomes the description.",[202,1429,1430,498,1433,1436,1437,375,1440,295,1443,1446,1447,1450],{},[475,1431,1432],{},"npm packages.",[190,1434,1435],{},"require"," of anything other than a relative path, ",[190,1438,1439],{},"fs",[190,1441,1442],{},"path",[190,1444,1445],{},"buffer"," is reported (",[190,1448,1449],{},"requires npm package …, which Postguy cannot load","). Relative requires work because the scripts' files are imported as assets.",[202,1452,1453,1456,1457,392],{},[475,1454,1455],{},"Unknown blocks."," Any block the importer does not know is reported as ",[190,1458,1459],{},"not supported",[178,1461,1462,1463,375,1466,375,1469,375,1472,214,1475,1478,1479,1482,1483,375,1486,214,1489,1492],{},"Imported scripts run with Postguy's ",[190,1464,1465],{},"bru",[190,1467,1468],{},"req",[190,1470,1471],{},"res",[190,1473,1474],{},"test",[190,1476,1477],{},"expect"," globals. The ",[1011,1480,1481],{"href":116},"scripting reference"," lists what is and is not supported (",[190,1484,1485],{},"bru.sleep",[190,1487,1488],{},"bru.cwd",[190,1490,1491],{},"bru.runRequest"," throw).",[1078,1494,1496],{"id":1495},"environments-and-secrets","Environments and secrets",[199,1498,1499,1505,1512,1515,1529,1540],{},[202,1500,1501,1504],{},[190,1502,1503],{},"vars"," entries become variables.",[202,1506,1507,1508,1511],{},"Names listed in ",[190,1509,1510],{},"vars:secret"," become secret variables with no value. Set them in the app.",[202,1513,1514],{},"Other blocks are dropped and reported.",[202,1516,1517,1520,1521,1524,1525,1528],{},[190,1518,1519],{},"{{process.env.X}}"," is rewritten to ",[190,1522,1523],{},"{{X}}"," everywhere. Each such ",[190,1526,1527],{},"X"," becomes a secret variable in every environment.",[202,1530,1531,1532,1535,1536,1539],{},"Its value comes from the ",[190,1533,1534],{},".env"," file at the folder root when that file names it (",[190,1537,1538],{},"KEY=value"," lines; read up to 64 KiB, quotes stripped). Otherwise it is left empty and the report lists the missing names.",[202,1541,1542,1543,447],{},"Secret values go to the workspace secrets store, not into environment files (",[1011,1544,41],{"href":42},[1078,1546,1548],{"id":1547},"limits","Limits",[258,1550,1551,1561],{},[261,1552,1553],{},[264,1554,1555,1558],{},[267,1556,1557],{},"Limit",[267,1559,1560],{},"Value",[274,1562,1563,1574,1584,1592,1603],{},[264,1564,1565,1571],{},[279,1566,1567,1568,1570],{},"One ",[190,1569,1066],{}," file",[279,1572,1573],{},"5 MiB",[264,1575,1576,1581],{},[279,1577,1578,1580],{},[190,1579,1066],{}," files per import",[279,1582,1583],{},"20,000 (more fails the import)",[264,1585,1586,1589],{},[279,1587,1588],{},"Folder depth walked",[279,1590,1591],{},"32",[264,1593,1594,1600],{},[279,1595,1596,1597,1599],{},"Non-",[190,1598,1066],{}," files queued as assets",[279,1601,1602],{},"100,000",[264,1604,1605,1608],{},[279,1606,1607],{},"Asset import",[279,1609,1610],{},"depth 16, 10,000 files, 100 MiB per file, 2 GiB per import, path 1,024 bytes, component 255 bytes",[178,1612,1613],{},"Files that are not UTF-8 text, or that fail a cap, are skipped and listed in the report.",[178,1615,1616,1617,1619],{},"Postguy does not write ",[190,1618,1066],{}," files or export Bruno folders.",[182,1621,1623,1148],{"id":1622},"proto-files",[190,1624,330],{},[178,1626,1627,1628,1630],{},"Choose or drop one or more ",[190,1629,330],{}," files. Select them together so their imports resolve.",[199,1632,1633,1644,1647,1654,1664,1675,1681],{},[202,1634,1635,1636,1639,1640,1643],{},"The files and the imports they pull in are copied to ",[190,1637,1638],{},"\u003Cworkspace>\u002Fprotos\u002F\u003Cname>\u002F"," and compiled. The bundled ",[190,1641,1642],{},"google\u002Fprotobuf"," imports are not copied.",[202,1645,1646],{},"Postguy creates a collection with one gRPC request per service method, grouped in a folder per service.",[202,1648,1649,1650,1653],{},"Each request uses the URL ",[190,1651,1652],{},"{{grpcUrl}}"," and an example message built from the input type.",[202,1655,1656,1657,1660,1661,392],{},"The collection has a ",[190,1658,1659],{},"grpcUrl"," variable that defaults to ",[190,1662,1663],{},"localhost:50051",[202,1665,1666,1667,1670,1671,1674],{},"A name clash suffixes the set (",[190,1668,1669],{},"-2"," … ",[190,1672,1673],{},"-1000","). With Replace, the old set moves to the trash.",[202,1676,1677,1678,392],{},"Compile errors read ",[190,1679,1680],{},"file:line:column: message",[202,1682,1683],{},"Limits: 1 MiB per file, 16 MiB total, 256 files.",[178,1685,1686,1687,392],{},"See ",[1011,1688,77],{"href":78},[182,1690,1692],{"id":1691},"zip-files","Zip files",[178,1694,1695,1698,1699,1702],{},[190,1696,1697],{},"import_zip"," reads ",[190,1700,1701],{},".json"," entries (collections, environments, globals) from a zip through the normal importers.",[199,1704,1705,1708],{},[202,1706,1707],{},"Entries with unsafe paths are refused. Other entries are skipped.",[202,1709,1710],{},"Limits: the first 5,000 entries are read; 100 MiB per entry and 1 GiB in total.",[243,1712,1713,1714,1716,1717,1720],{},"Zip import is available as a tool (",[190,1715,1697],{},") only. The import dialog does not accept ",[190,1718,1719],{},".zip"," files.",[182,1722,1724],{"id":1723},"export","Export",[178,1726,1727],{},"You can export a collection, an environment, the globals or the whole workspace. Start from any of these:",[199,1729,1730,1736,1739,1742],{},[202,1731,1732,1733,1735],{},"The ",[190,1734,1724],{}," items in the sidebar context menus.",[202,1737,1738],{},"The collection and environment editors.",[202,1740,1741],{},"The Globals editor.",[202,1743,1744,1745,392],{},"The command ",[190,1746,1747],{},"Export all workspace data…",[258,1749,1750,1763],{},[261,1751,1752],{},[264,1753,1754,1757,1760],{},[267,1755,1756],{},"What",[267,1758,1759],{},"Formats",[267,1761,1762],{},"Default file name",[274,1764,1765,1781,1794,1807],{},[264,1766,1767,1770,1773],{},[279,1768,1769],{},"Collection",[279,1771,1772],{},"Postman JSON (Collection v2.1) or Postguy native JSON",[279,1774,1775,375,1778],{},[190,1776,1777],{},"\u003Cname>.postman.json",[190,1779,1780],{},"\u003Cname>.json",[264,1782,1783,1786,1789],{},[279,1784,1785],{},"Environment",[279,1787,1788],{},"Postman environment",[279,1790,1791],{},[190,1792,1793],{},"\u003Cname>.postman_environment.json",[264,1795,1796,1799,1802],{},[279,1797,1798],{},"Globals",[279,1800,1801],{},"Postman globals",[279,1803,1804],{},[190,1805,1806],{},"globals.postman_globals.json",[264,1808,1809,1812,1815],{},[279,1810,1811],{},"All workspace data",[279,1813,1814],{},"zip",[279,1816,1817],{},[190,1818,1819],{},"Workspace.zip",[178,1821,1822,1823,1826,1827,1830],{},"Characters that are invalid in file names (",[190,1824,1825],{},"\u002F \\ : * ? \" \u003C > |",") are replaced by ",[190,1828,1829],{},"-"," in the name.",[178,1832,1833],{},"Secrets:",[199,1835,1836,1843],{},[202,1837,1838,1839,1842],{},"Collection exports always blank secret variable values. The ",[190,1840,1841],{},"secret"," flag stays. OAuth 2.0 access and refresh tokens are cleared.",[202,1844,1845,1846,392],{},"Environment and globals exports omit secret values unless you tick ",[190,1847,1848],{},"Include secret values",[178,1850,1851,1852,1855,1856,214,1859,1720],{},"The workspace zip contains workspace documents. It leaves out ",[190,1853,1854],{},".postguy\u002F"," (secrets, cookies, response cache, lock), ",[190,1857,1858],{},".trash\u002F",[190,1860,1861],{},".bak",[178,1863,1864],{},"Restoring from the zip is documents-only. Only JSON documents are re-imported. Files, protos and settings are not restored from the archive.",[178,1866,1867],{},"Limits: 50,000 entries and 1 GiB uncompressed.",[182,1869,1871],{"id":1870},"headless","Headless",[258,1873,1874,1884],{},[261,1875,1876],{},[264,1877,1878,1881],{},[267,1879,1880],{},"Task",[267,1882,1883],{},"Tool",[274,1885,1886,1905,1918,1927,1939,1948],{},[264,1887,1888,1891],{},[279,1889,1890],{},"Import pasted text (Postman, OpenAPI, HAR, cURL)",[279,1892,1893,1896,1897,375,1899,375,1902,1904],{},[190,1894,1895],{},"import_text"," (",[190,1898,1286],{},[190,1900,1901],{},"replace",[190,1903,485],{},")",[264,1906,1907,1913],{},[279,1908,1909,1910,1904],{},"Import a file (size-capped at 100 MB, path confined to ",[190,1911,1912],{},"--root",[279,1914,1915],{},[190,1916,1917],{},"import_file",[264,1919,1920,1923],{},[279,1921,1922],{},"Import a Bruno folder",[279,1924,1925],{},[190,1926,1076],{},[264,1928,1929,1934],{},[279,1930,1931,1932,1148],{},"Import ",[190,1933,330],{},[279,1935,1936],{},[190,1937,1938],{},"proto_import",[264,1940,1941,1944],{},[279,1942,1943],{},"Import a zip of JSON documents",[279,1945,1946],{},[190,1947,1697],{},[264,1949,1950,1952],{},[279,1951,1724],{},[279,1953,1954,375,1957,375,1960,375,1963],{},[190,1955,1956],{},"export_collection",[190,1958,1959],{},"export_environment",[190,1961,1962],{},"export_globals",[190,1964,1965],{},"workspace_export_zip",[178,1967,1968,1969,392],{},"Details and arguments: ",[1011,1970,111],{"href":112},{"title":1972,"searchDepth":1973,"depth":1973,"links":1974},"",2,[1975,1976,1977,1978,1979,1980,1981,1982,1983,1990,1992,1993,1994],{"id":184,"depth":1973,"text":185},{"id":252,"depth":1973,"text":253},{"id":362,"depth":1973,"text":363},{"id":395,"depth":1973,"text":396},{"id":422,"depth":1973,"text":423},{"id":459,"depth":1973,"text":460},{"id":602,"depth":1973,"text":603},{"id":641,"depth":1973,"text":642},{"id":1041,"depth":1973,"text":1042,"children":1984},[1985,1987,1988,1989],{"id":1080,"depth":1986,"text":1081},3,{"id":1203,"depth":1986,"text":1204},{"id":1495,"depth":1986,"text":1496},{"id":1547,"depth":1986,"text":1548},{"id":1622,"depth":1973,"text":1991},".proto files",{"id":1691,"depth":1973,"text":1692},{"id":1723,"depth":1973,"text":1724},{"id":1870,"depth":1973,"text":1871},"Import Postman, OpenAPI, HAR, cURL, Bruno folders and .proto files. Export collections, environments, globals and the whole workspace.","md",null,{},true,{"title":69,"description":1995},"XlRpq29ab_STwHk-Th2kEvWIFx1hLtUmv_Hq-NLJOcg",[2003,2005],{"title":65,"path":66,"stem":67,"description":2004,"children":-1},"Run a collection or folder in sequence with iterations, data files and reports. Use the Runner tab or postguy-cli run.",{"title":73,"path":74,"stem":75,"description":2006,"children":-1},"Generate cURL, raw HTTP, fetch, Python, Go, Rust, PowerShell and Node axios code from an HTTP request.",1793179613009]