[{"data":1,"prerenderedAt":1187},["ShallowReactive",2],{"navigation_docs":3,"-docs-integration-guides-cloudflare-workers":114,"-docs-integration-guides-cloudflare-workers-surround":1182},[4,8,12,16,20,24,28,32,36,40,44,82,86,90,94,98,102,106,110],{"title":5,"path":6,"stem":7},"Overview","\u002Fdocs","docs\u002Findex",{"title":9,"path":10,"stem":11},"Quickstart","\u002Fdocs\u002Fquickstart","docs\u002F01.quickstart",{"title":13,"path":14,"stem":15},"Authentication and keys","\u002Fdocs\u002Fauthentication","docs\u002F02.authentication",{"title":17,"path":18,"stem":19},"Images","\u002Fdocs\u002Fimages","docs\u002F03.images",{"title":21,"path":22,"stem":23},"Texts","\u002Fdocs\u002Ftexts","docs\u002F04.texts",{"title":25,"path":26,"stem":27},"Migrating from SightEngine","\u002Fdocs\u002Fmigrating-from-sightengine","docs\u002F05.migrating-from-sightengine",{"title":29,"path":30,"stem":31},"Workflows","\u002Fdocs\u002Fworkflows","docs\u002F06.workflows",{"title":33,"path":34,"stem":35},"Responses and errors","\u002Fdocs\u002Fresponses-and-errors","docs\u002F07.responses-and-errors",{"title":37,"path":38,"stem":39},"Limits and quotas","\u002Fdocs\u002Flimits-and-quotas","docs\u002F08.limits-and-quotas",{"title":41,"path":42,"stem":43},"The journal and ref","\u002Fdocs\u002Fjournal-and-ref","docs\u002F09.journal-and-ref",{"title":45,"path":46,"stem":47,"children":48,"page":81},"Integration guides","\u002Fdocs\u002Fintegration-guides","docs\u002F10.integration-guides",[49,53,57,61,65,69,73,77],{"title":50,"path":51,"stem":52},"Node.js and TypeScript","\u002Fdocs\u002Fintegration-guides\u002Fnodejs","docs\u002F10.integration-guides\u002F1.nodejs",{"title":54,"path":55,"stem":56},"Python","\u002Fdocs\u002Fintegration-guides\u002Fpython","docs\u002F10.integration-guides\u002F2.python",{"title":58,"path":59,"stem":60},"PHP","\u002Fdocs\u002Fintegration-guides\u002Fphp","docs\u002F10.integration-guides\u002F3.php",{"title":62,"path":63,"stem":64},"Go","\u002Fdocs\u002Fintegration-guides\u002Fgo","docs\u002F10.integration-guides\u002F4.go",{"title":66,"path":67,"stem":68},"Supabase Edge Functions","\u002Fdocs\u002Fintegration-guides\u002Fsupabase-edge-functions","docs\u002F10.integration-guides\u002F5.supabase-edge-functions",{"title":70,"path":71,"stem":72},"Cloudflare Workers","\u002Fdocs\u002Fintegration-guides\u002Fcloudflare-workers","docs\u002F10.integration-guides\u002F6.cloudflare-workers",{"title":74,"path":75,"stem":76},"Nuxt and Next","\u002Fdocs\u002Fintegration-guides\u002Fnuxt-and-next","docs\u002F10.integration-guides\u002F7.nuxt-and-next",{"title":78,"path":79,"stem":80},"Moderate an AI agent","\u002Fdocs\u002Fintegration-guides\u002Fmoderate-ai-agents","docs\u002F10.integration-guides\u002F8.moderate-ai-agents",false,{"title":83,"path":84,"stem":85},"AI coding agents","\u002Fdocs\u002Fai-agents","docs\u002F11.ai-agents",{"title":87,"path":88,"stem":89},"Best practices","\u002Fdocs\u002Fbest-practices","docs\u002F12.best-practices",{"title":91,"path":92,"stem":93},"Privacy and data","\u002Fdocs\u002Fprivacy-and-data","docs\u002F13.privacy-and-data",{"title":95,"path":96,"stem":97},"API reference","\u002Fdocs\u002Fapi-reference","docs\u002F14.api-reference",{"title":99,"path":100,"stem":101},"Fraud prevention","\u002Fdocs\u002Ffraud-prevention","docs\u002F16.fraud-prevention",{"title":103,"path":104,"stem":105},"Device token and challenges","\u002Fdocs\u002Fdevice-and-challenges","docs\u002F17.device-and-challenges",{"title":107,"path":108,"stem":109},"MCP server","\u002Fdocs\u002Fmcp-server","docs\u002F18.mcp-server",{"title":111,"path":112,"stem":113},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F99.changelog",{"id":115,"title":70,"body":116,"description":1176,"extension":1177,"links":1178,"meta":1179,"navigation":237,"path":71,"seo":1180,"stem":72,"__hash__":1181},"docs\u002Fdocs\u002F10.integration-guides\u002F6.cloudflare-workers.md",{"type":117,"value":118,"toc":1172},"minimark",[119,123,128,160,167,185,189,1160,1168],[120,121,122],"p",{},"A Worker runs on the server side of your application, so it can hold the key. Call it from your front end, and let it call openshield.",[124,125,127],"h2",{"id":126},"set-the-key-as-a-secret","Set the key as a secret",[129,130,135],"pre",{"className":131,"code":132,"language":133,"meta":134,"style":134},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx wrangler secret put OPENSHIELD_API_KEY\n","bash","",[136,137,138],"code",{"__ignoreMap":134},[139,140,143,147,151,154,157],"span",{"class":141,"line":142},"line",1,[139,144,146],{"class":145},"sBMFI","npx",[139,148,150],{"class":149},"sfazB"," wrangler",[139,152,153],{"class":149}," secret",[139,155,156],{"class":149}," put",[139,158,159],{"class":149}," OPENSHIELD_API_KEY\n",[120,161,162,163,166],{},"For local development, put it in a ",[136,164,165],{},".dev.vars"," file that is not committed:",[129,168,170],{"className":131,"code":169,"language":133,"meta":134,"style":134},"OPENSHIELD_API_KEY=om_live_...\n",[136,171,172],{"__ignoreMap":134},[139,173,174,178,182],{"class":141,"line":142},[139,175,177],{"class":176},"sTEyZ","OPENSHIELD_API_KEY",[139,179,181],{"class":180},"sMK4o","=",[139,183,184],{"class":149},"om_live_...\n",[124,186,188],{"id":187},"the-worker","The Worker",[129,190,195],{"className":191,"code":192,"filename":193,"language":194,"meta":134,"style":134},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export interface Env {\n  OPENSHIELD_API_KEY: string\n}\n\nconst base = \"https:\u002F\u002Fapi.openshield.dev\"\n\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    if (request.method !== \"POST\") return new Response(\"Method not allowed\", { status: 405 })\n    const { text, ref } = (await request.json()) as { text: string; ref?: string }\n\n    let answer: Response\n    try {\n      answer = await fetch(`${base}\u002Fv1\u002Ftext`, {\n        method: \"POST\",\n        headers: {\n          Authorization: `Bearer ${env.OPENSHIELD_API_KEY}`,\n          \"Content-Type\": \"application\u002Fjson\",\n        },\n        body: JSON.stringify({ text, ref }),\n        signal: AbortSignal.timeout(10_000),\n      })\n    } catch {\n      \u002F\u002F The check could not be made: fail closed, keep the content hidden.\n      return Response.json({ decision: \"hold\" })\n    }\n\n    const body = (await answer.json()) as {\n      summary?: { action: string; reject_reason: Array\u003C{ id: string }> }\n      error?: { type: string }\n      request_id?: string\n    }\n    if (!answer.ok || body.summary === undefined) {\n      const refused = [400, 413, 415].includes(answer.status)\n      return Response.json({ decision: refused ? \"refuse\" : \"hold\", error: body.error?.type ?? \"unknown\" })\n    }\n\n    const { action, reject_reason } = body.summary\n    return Response.json({\n      decision: action === \"accept\" ? \"publish\" : action === \"review\" ? \"hold\" : \"refuse\",\n      reason: reject_reason[0]?.id ?? null,\n      requestId: body.request_id,\n    })\n  },\n}\n","src\u002Findex.ts","ts",[136,196,197,213,226,232,239,259,264,274,322,392,454,459,473,481,515,532,542,571,593,599,633,658,666,677,684,716,722,727,753,795,814,824,829,868,914,988,993,998,1022,1038,1097,1125,1142,1149,1155],{"__ignoreMap":134},[139,198,199,203,207,210],{"class":141,"line":142},[139,200,202],{"class":201},"s7zQu","export",[139,204,206],{"class":205},"spNyl"," interface",[139,208,209],{"class":145}," Env",[139,211,212],{"class":180}," {\n",[139,214,216,220,223],{"class":141,"line":215},2,[139,217,219],{"class":218},"swJcz","  OPENSHIELD_API_KEY",[139,221,222],{"class":180},":",[139,224,225],{"class":145}," string\n",[139,227,229],{"class":141,"line":228},3,[139,230,231],{"class":180},"}\n",[139,233,235],{"class":141,"line":234},4,[139,236,238],{"emptyLinePlaceholder":237},true,"\n",[139,240,242,245,248,250,253,256],{"class":141,"line":241},5,[139,243,244],{"class":205},"const",[139,246,247],{"class":176}," base ",[139,249,181],{"class":180},[139,251,252],{"class":180}," \"",[139,254,255],{"class":149},"https:\u002F\u002Fapi.openshield.dev",[139,257,258],{"class":180},"\"\n",[139,260,262],{"class":141,"line":261},6,[139,263,238],{"emptyLinePlaceholder":237},[139,265,267,269,272],{"class":141,"line":266},7,[139,268,202],{"class":201},[139,270,271],{"class":201}," default",[139,273,212],{"class":180},[139,275,277,280,283,286,290,292,295,298,301,303,305,308,311,314,317,320],{"class":141,"line":276},8,[139,278,279],{"class":205},"  async",[139,281,282],{"class":218}," fetch",[139,284,285],{"class":180},"(",[139,287,289],{"class":288},"sHdIc","request",[139,291,222],{"class":180},[139,293,294],{"class":145}," Request",[139,296,297],{"class":180},",",[139,299,300],{"class":288}," env",[139,302,222],{"class":180},[139,304,209],{"class":145},[139,306,307],{"class":180},"):",[139,309,310],{"class":145}," Promise",[139,312,313],{"class":180},"\u003C",[139,315,316],{"class":145},"Response",[139,318,319],{"class":180},">",[139,321,212],{"class":180},[139,323,325,328,331,333,336,339,342,344,347,350,353,356,359,363,365,367,370,372,374,377,380,382,386,389],{"class":141,"line":324},9,[139,326,327],{"class":201},"    if",[139,329,330],{"class":218}," (",[139,332,289],{"class":176},[139,334,335],{"class":180},".",[139,337,338],{"class":176},"method",[139,340,341],{"class":180}," !==",[139,343,252],{"class":180},[139,345,346],{"class":149},"POST",[139,348,349],{"class":180},"\"",[139,351,352],{"class":218},") ",[139,354,355],{"class":201},"return",[139,357,358],{"class":180}," new",[139,360,362],{"class":361},"s2Zo4"," Response",[139,364,285],{"class":218},[139,366,349],{"class":180},[139,368,369],{"class":149},"Method not allowed",[139,371,349],{"class":180},[139,373,297],{"class":180},[139,375,376],{"class":180}," {",[139,378,379],{"class":218}," status",[139,381,222],{"class":180},[139,383,385],{"class":384},"sbssI"," 405",[139,387,388],{"class":180}," }",[139,390,391],{"class":218},")\n",[139,393,395,398,400,403,405,408,410,413,415,418,421,423,426,429,432,434,436,438,441,444,446,449,451],{"class":141,"line":394},10,[139,396,397],{"class":205},"    const",[139,399,376],{"class":180},[139,401,402],{"class":176}," text",[139,404,297],{"class":180},[139,406,407],{"class":176}," ref",[139,409,388],{"class":180},[139,411,412],{"class":180}," =",[139,414,330],{"class":218},[139,416,417],{"class":201},"await",[139,419,420],{"class":176}," request",[139,422,335],{"class":180},[139,424,425],{"class":361},"json",[139,427,428],{"class":218},"()) ",[139,430,431],{"class":201},"as",[139,433,376],{"class":180},[139,435,402],{"class":218},[139,437,222],{"class":180},[139,439,440],{"class":145}," string",[139,442,443],{"class":180},";",[139,445,407],{"class":218},[139,447,448],{"class":180},"?:",[139,450,440],{"class":145},[139,452,453],{"class":180}," }\n",[139,455,457],{"class":141,"line":456},11,[139,458,238],{"emptyLinePlaceholder":237},[139,460,462,465,468,470],{"class":141,"line":461},12,[139,463,464],{"class":205},"    let",[139,466,467],{"class":176}," answer",[139,469,222],{"class":180},[139,471,472],{"class":145}," Response\n",[139,474,476,479],{"class":141,"line":475},13,[139,477,478],{"class":201},"    try",[139,480,212],{"class":180},[139,482,484,487,489,492,494,496,499,502,505,508,511,513],{"class":141,"line":483},14,[139,485,486],{"class":176},"      answer",[139,488,412],{"class":180},[139,490,491],{"class":201}," await",[139,493,282],{"class":361},[139,495,285],{"class":218},[139,497,498],{"class":180},"`${",[139,500,501],{"class":176},"base",[139,503,504],{"class":180},"}",[139,506,507],{"class":149},"\u002Fv1\u002Ftext",[139,509,510],{"class":180},"`",[139,512,297],{"class":180},[139,514,212],{"class":180},[139,516,518,521,523,525,527,529],{"class":141,"line":517},15,[139,519,520],{"class":218},"        method",[139,522,222],{"class":180},[139,524,252],{"class":180},[139,526,346],{"class":149},[139,528,349],{"class":180},[139,530,531],{"class":180},",\n",[139,533,535,538,540],{"class":141,"line":534},16,[139,536,537],{"class":218},"        headers",[139,539,222],{"class":180},[139,541,212],{"class":180},[139,543,545,548,550,553,556,559,562,564,566,569],{"class":141,"line":544},17,[139,546,547],{"class":218},"          Authorization",[139,549,222],{"class":180},[139,551,552],{"class":180}," `",[139,554,555],{"class":149},"Bearer ",[139,557,558],{"class":180},"${",[139,560,561],{"class":176},"env",[139,563,335],{"class":180},[139,565,177],{"class":176},[139,567,568],{"class":180},"}`",[139,570,531],{"class":180},[139,572,574,577,580,582,584,586,589,591],{"class":141,"line":573},18,[139,575,576],{"class":180},"          \"",[139,578,579],{"class":218},"Content-Type",[139,581,349],{"class":180},[139,583,222],{"class":180},[139,585,252],{"class":180},[139,587,588],{"class":149},"application\u002Fjson",[139,590,349],{"class":180},[139,592,531],{"class":180},[139,594,596],{"class":141,"line":595},19,[139,597,598],{"class":180},"        },\n",[139,600,602,605,607,610,612,615,617,620,622,624,626,628,631],{"class":141,"line":601},20,[139,603,604],{"class":218},"        body",[139,606,222],{"class":180},[139,608,609],{"class":176}," JSON",[139,611,335],{"class":180},[139,613,614],{"class":361},"stringify",[139,616,285],{"class":218},[139,618,619],{"class":180},"{",[139,621,402],{"class":176},[139,623,297],{"class":180},[139,625,407],{"class":176},[139,627,388],{"class":180},[139,629,630],{"class":218},")",[139,632,531],{"class":180},[139,634,636,639,641,644,646,649,651,654,656],{"class":141,"line":635},21,[139,637,638],{"class":218},"        signal",[139,640,222],{"class":180},[139,642,643],{"class":176}," AbortSignal",[139,645,335],{"class":180},[139,647,648],{"class":361},"timeout",[139,650,285],{"class":218},[139,652,653],{"class":384},"10_000",[139,655,630],{"class":218},[139,657,531],{"class":180},[139,659,661,664],{"class":141,"line":660},22,[139,662,663],{"class":180},"      }",[139,665,391],{"class":218},[139,667,669,672,675],{"class":141,"line":668},23,[139,670,671],{"class":180},"    }",[139,673,674],{"class":201}," catch",[139,676,212],{"class":180},[139,678,680],{"class":141,"line":679},24,[139,681,683],{"class":682},"sHwdD","      \u002F\u002F The check could not be made: fail closed, keep the content hidden.\n",[139,685,687,690,692,694,696,698,700,703,705,707,710,712,714],{"class":141,"line":686},25,[139,688,689],{"class":201},"      return",[139,691,362],{"class":176},[139,693,335],{"class":180},[139,695,425],{"class":361},[139,697,285],{"class":218},[139,699,619],{"class":180},[139,701,702],{"class":218}," decision",[139,704,222],{"class":180},[139,706,252],{"class":180},[139,708,709],{"class":149},"hold",[139,711,349],{"class":180},[139,713,388],{"class":180},[139,715,391],{"class":218},[139,717,719],{"class":141,"line":718},26,[139,720,721],{"class":180},"    }\n",[139,723,725],{"class":141,"line":724},27,[139,726,238],{"emptyLinePlaceholder":237},[139,728,730,732,735,737,739,741,743,745,747,749,751],{"class":141,"line":729},28,[139,731,397],{"class":205},[139,733,734],{"class":176}," body",[139,736,412],{"class":180},[139,738,330],{"class":218},[139,740,417],{"class":201},[139,742,467],{"class":176},[139,744,335],{"class":180},[139,746,425],{"class":361},[139,748,428],{"class":218},[139,750,431],{"class":201},[139,752,212],{"class":180},[139,754,756,759,761,763,766,768,770,772,775,777,780,783,786,788,790,793],{"class":141,"line":755},29,[139,757,758],{"class":218},"      summary",[139,760,448],{"class":180},[139,762,376],{"class":180},[139,764,765],{"class":218}," action",[139,767,222],{"class":180},[139,769,440],{"class":145},[139,771,443],{"class":180},[139,773,774],{"class":218}," reject_reason",[139,776,222],{"class":180},[139,778,779],{"class":145}," Array",[139,781,782],{"class":180},"\u003C{",[139,784,785],{"class":218}," id",[139,787,222],{"class":180},[139,789,440],{"class":145},[139,791,792],{"class":180}," }>",[139,794,453],{"class":180},[139,796,798,801,803,805,808,810,812],{"class":141,"line":797},30,[139,799,800],{"class":218},"      error",[139,802,448],{"class":180},[139,804,376],{"class":180},[139,806,807],{"class":218}," type",[139,809,222],{"class":180},[139,811,440],{"class":145},[139,813,453],{"class":180},[139,815,817,820,822],{"class":141,"line":816},31,[139,818,819],{"class":218},"      request_id",[139,821,448],{"class":180},[139,823,225],{"class":145},[139,825,827],{"class":141,"line":826},32,[139,828,721],{"class":180},[139,830,832,834,836,839,842,844,847,850,852,854,857,860,863,865],{"class":141,"line":831},33,[139,833,327],{"class":201},[139,835,330],{"class":218},[139,837,838],{"class":180},"!",[139,840,841],{"class":176},"answer",[139,843,335],{"class":180},[139,845,846],{"class":176},"ok",[139,848,849],{"class":180}," ||",[139,851,734],{"class":176},[139,853,335],{"class":180},[139,855,856],{"class":176},"summary",[139,858,859],{"class":180}," ===",[139,861,862],{"class":180}," undefined",[139,864,352],{"class":218},[139,866,867],{"class":180},"{\n",[139,869,871,874,877,879,882,885,887,890,892,895,898,900,903,905,907,909,912],{"class":141,"line":870},34,[139,872,873],{"class":205},"      const",[139,875,876],{"class":176}," refused",[139,878,412],{"class":180},[139,880,881],{"class":218}," [",[139,883,884],{"class":384},"400",[139,886,297],{"class":180},[139,888,889],{"class":384}," 413",[139,891,297],{"class":180},[139,893,894],{"class":384}," 415",[139,896,897],{"class":218},"]",[139,899,335],{"class":180},[139,901,902],{"class":361},"includes",[139,904,285],{"class":218},[139,906,841],{"class":176},[139,908,335],{"class":180},[139,910,911],{"class":176},"status",[139,913,391],{"class":218},[139,915,917,919,921,923,925,927,929,931,933,935,938,940,943,945,948,950,952,954,956,959,961,963,965,968,971,974,977,979,982,984,986],{"class":141,"line":916},35,[139,918,689],{"class":201},[139,920,362],{"class":176},[139,922,335],{"class":180},[139,924,425],{"class":361},[139,926,285],{"class":218},[139,928,619],{"class":180},[139,930,702],{"class":218},[139,932,222],{"class":180},[139,934,876],{"class":176},[139,936,937],{"class":180}," ?",[139,939,252],{"class":180},[139,941,942],{"class":149},"refuse",[139,944,349],{"class":180},[139,946,947],{"class":180}," :",[139,949,252],{"class":180},[139,951,709],{"class":149},[139,953,349],{"class":180},[139,955,297],{"class":180},[139,957,958],{"class":218}," error",[139,960,222],{"class":180},[139,962,734],{"class":176},[139,964,335],{"class":180},[139,966,967],{"class":176},"error",[139,969,970],{"class":180},"?.",[139,972,973],{"class":176},"type",[139,975,976],{"class":180}," ??",[139,978,252],{"class":180},[139,980,981],{"class":149},"unknown",[139,983,349],{"class":180},[139,985,388],{"class":180},[139,987,391],{"class":218},[139,989,991],{"class":141,"line":990},36,[139,992,721],{"class":180},[139,994,996],{"class":141,"line":995},37,[139,997,238],{"emptyLinePlaceholder":237},[139,999,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019],{"class":141,"line":1000},38,[139,1002,397],{"class":205},[139,1004,376],{"class":180},[139,1006,765],{"class":176},[139,1008,297],{"class":180},[139,1010,774],{"class":176},[139,1012,388],{"class":180},[139,1014,412],{"class":180},[139,1016,734],{"class":176},[139,1018,335],{"class":180},[139,1020,1021],{"class":176},"summary\n",[139,1023,1025,1028,1030,1032,1034,1036],{"class":141,"line":1024},39,[139,1026,1027],{"class":201},"    return",[139,1029,362],{"class":176},[139,1031,335],{"class":180},[139,1033,425],{"class":361},[139,1035,285],{"class":218},[139,1037,867],{"class":180},[139,1039,1041,1044,1046,1048,1050,1052,1055,1057,1059,1061,1064,1066,1068,1070,1072,1074,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095],{"class":141,"line":1040},40,[139,1042,1043],{"class":218},"      decision",[139,1045,222],{"class":180},[139,1047,765],{"class":176},[139,1049,859],{"class":180},[139,1051,252],{"class":180},[139,1053,1054],{"class":149},"accept",[139,1056,349],{"class":180},[139,1058,937],{"class":180},[139,1060,252],{"class":180},[139,1062,1063],{"class":149},"publish",[139,1065,349],{"class":180},[139,1067,947],{"class":180},[139,1069,765],{"class":176},[139,1071,859],{"class":180},[139,1073,252],{"class":180},[139,1075,1076],{"class":149},"review",[139,1078,349],{"class":180},[139,1080,937],{"class":180},[139,1082,252],{"class":180},[139,1084,709],{"class":149},[139,1086,349],{"class":180},[139,1088,947],{"class":180},[139,1090,252],{"class":180},[139,1092,942],{"class":149},[139,1094,349],{"class":180},[139,1096,531],{"class":180},[139,1098,1100,1103,1105,1107,1110,1113,1115,1117,1120,1122],{"class":141,"line":1099},41,[139,1101,1102],{"class":218},"      reason",[139,1104,222],{"class":180},[139,1106,774],{"class":176},[139,1108,1109],{"class":218},"[",[139,1111,1112],{"class":384},"0",[139,1114,897],{"class":218},[139,1116,970],{"class":180},[139,1118,1119],{"class":176},"id",[139,1121,976],{"class":180},[139,1123,1124],{"class":180}," null,\n",[139,1126,1128,1131,1133,1135,1137,1140],{"class":141,"line":1127},42,[139,1129,1130],{"class":218},"      requestId",[139,1132,222],{"class":180},[139,1134,734],{"class":176},[139,1136,335],{"class":180},[139,1138,1139],{"class":176},"request_id",[139,1141,531],{"class":180},[139,1143,1145,1147],{"class":141,"line":1144},43,[139,1146,671],{"class":180},[139,1148,391],{"class":218},[139,1150,1152],{"class":141,"line":1151},44,[139,1153,1154],{"class":180},"  },\n",[139,1156,1158],{"class":141,"line":1157},45,[139,1159,231],{"class":180},[1161,1162,1163,1164,1167],"note",{},"Your Worker is the one that calls openshield, from Cloudflare's servers. A browser must call your Worker, never openshield: a request to our API with an ",[136,1165,1166],{},"Origin"," header is refused.",[1169,1170,1171],"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 .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);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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}",{"title":134,"searchDepth":215,"depth":215,"links":1173},[1174,1175],{"id":126,"depth":215,"text":127},{"id":187,"depth":215,"text":188},"Moderate content from a Worker, with the key as a Worker secret.","md",null,{},{"title":70,"description":1176},"nftq45ZJdzTRurBa9MGK5yTivCnZKyrSbxfbXpvhIlk",[1183,1185],{"title":66,"path":67,"stem":68,"description":1184,"children":-1},"Moderate content from a Supabase Edge Function, with the key as a project secret.",{"title":74,"path":75,"stem":76,"description":1186,"children":-1},"Moderate content in a Nuxt server route or a Next.js route handler, so the key never leaves the server.",1792938463655]