[{"data":1,"prerenderedAt":325},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fserver":3},{"id":4,"title":5,"body":6,"description":317,"extension":318,"meta":319,"navigation":320,"path":321,"seo":322,"stem":323,"__hash__":324},"docs\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fserver.md","server",{"type":7,"value":8,"toc":314},"minimark",[9,12,29,93,97,100,154,160,301,310],[10,11,5],"h1",{"id":5},[13,14,15,16,20,21,24,25,28],"p",{},"Configures the agent's HTTP server. Only relevant when the agent runs with a\nserver — ",[17,18,19],"code",{},"axon dev",", ",[17,22,23],{},"axon deploy",", or ",[17,26,27],{},"Axon({ server: { port } })",".",[30,31,36],"pre",{"className":32,"code":33,"language":34,"meta":35,"style":35},"language-ts shiki shiki-themes dark-plus","export default defineAgent({\n    server: {\n        auth: \"axon\",\n    },\n})\n","ts","",[17,37,38,58,68,81,87],{"__ignoreMap":35},[39,40,43,47,50,54],"span",{"class":41,"line":42},"line",1,[39,44,46],{"class":45},"sYbnZ","export",[39,48,49],{"class":45}," default",[39,51,53],{"class":52},"sCudf"," defineAgent",[39,55,57],{"class":56},"sTNBD","({\n",[39,59,61,65],{"class":41,"line":60},2,[39,62,64],{"class":63},"s3F5K","    server:",[39,66,67],{"class":56}," {\n",[39,69,71,74,78],{"class":41,"line":70},3,[39,72,73],{"class":63},"        auth:",[39,75,77],{"class":76},"sKc5r"," \"axon\"",[39,79,80],{"class":56},",\n",[39,82,84],{"class":41,"line":83},4,[39,85,86],{"class":56},"    },\n",[39,88,90],{"class":41,"line":89},5,[39,91,92],{"class":56},"})\n",[94,95,96],"h2",{"id":96},"auth",[13,98,99],{},"Controls who can call the agent's HTTP endpoints.",[101,102,103,116],"table",{},[104,105,106],"thead",{},[107,108,109,113],"tr",{},[110,111,112],"th",{},"Value",[110,114,115],{},"Behaviour",[117,118,119,134,144],"tbody",{},[107,120,121,127],{},[122,123,124],"td",{},[17,125,126],{},"\"axon\"",[122,128,129,130,133],{},"Enforce Axon Cloud JWT. Requires ",[17,131,132],{},"AXON_JWT_PUBLIC_KEY"," in env.",[107,135,136,141],{},[122,137,138],{},[17,139,140],{},"false",[122,142,143],{},"Disable auth entirely. All routes are public.",[107,145,146,151],{},[122,147,148],{},[17,149,150],{},"function",[122,152,153],{},"Custom handler. Throw a 401 error to reject.",[13,155,156,157,159],{},"When omitted, the runtime auto-detects: if ",[17,158,132],{}," is set, JWT\nauth is enforced. If not set, all routes are open — useful for local dev without\nextra setup.",[30,161,163],{"className":32,"code":162,"language":34,"meta":35,"style":35},"\u002F\u002F Custom auth handler\nserver: {\n    auth: async (event) => {\n        const token = getHeader(event, \"x-api-key\")\n        if (token !== process.env.MY_API_KEY) {\n            throw createError({ status: 401 })\n        }\n    },\n}\n",[17,164,165,171,179,205,233,262,284,290,295],{"__ignoreMap":35},[39,166,167],{"class":41,"line":42},[39,168,170],{"class":169},"sOLPB","\u002F\u002F Custom auth handler\n",[39,172,173,176],{"class":41,"line":60},[39,174,5],{"class":175},"sqDPy",[39,177,178],{"class":56},": {\n",[39,180,181,184,187,191,194,197,200,203],{"class":41,"line":70},[39,182,183],{"class":175},"    auth",[39,185,186],{"class":56},": ",[39,188,190],{"class":189},"scz_3","async",[39,192,193],{"class":56}," (",[39,195,196],{"class":63},"event",[39,198,199],{"class":56},") ",[39,201,202],{"class":189},"=>",[39,204,67],{"class":56},[39,206,207,210,214,217,220,223,225,227,230],{"class":41,"line":83},[39,208,209],{"class":189},"        const",[39,211,213],{"class":212},"s9McN"," token",[39,215,216],{"class":56}," = ",[39,218,219],{"class":52},"getHeader",[39,221,222],{"class":56},"(",[39,224,196],{"class":63},[39,226,20],{"class":56},[39,228,229],{"class":76},"\"x-api-key\"",[39,231,232],{"class":56},")\n",[39,234,235,238,240,243,246,249,251,254,256,259],{"class":41,"line":89},[39,236,237],{"class":45},"        if",[39,239,193],{"class":56},[39,241,242],{"class":63},"token",[39,244,245],{"class":56}," !== ",[39,247,248],{"class":63},"process",[39,250,28],{"class":56},[39,252,253],{"class":63},"env",[39,255,28],{"class":56},[39,257,258],{"class":212},"MY_API_KEY",[39,260,261],{"class":56},") {\n",[39,263,265,268,271,274,277,281],{"class":41,"line":264},6,[39,266,267],{"class":45},"            throw",[39,269,270],{"class":52}," createError",[39,272,273],{"class":56},"({ ",[39,275,276],{"class":63},"status:",[39,278,280],{"class":279},"sDGX8"," 401",[39,282,283],{"class":56}," })\n",[39,285,287],{"class":41,"line":286},7,[39,288,289],{"class":56},"        }\n",[39,291,293],{"class":41,"line":292},8,[39,294,86],{"class":56},[39,296,298],{"class":41,"line":297},9,[39,299,300],{"class":56},"}\n",[13,302,303,304,20,306,309],{},"The custom handler receives an H3 event. Throw to reject, return normally to\nallow. Any H3 utility (",[17,305,219],{},[17,307,308],{},"getCookie",", etc.) works inside it.",[311,312,313],"style",{},"html pre.shiki code .sYbnZ, html code.shiki .sYbnZ{--shiki-default:#C586C0}html pre.shiki code .sCudf, html code.shiki .sCudf{--shiki-default:#DCDCAA}html pre.shiki code .sTNBD, html code.shiki .sTNBD{--shiki-default:#D4D4D4}html pre.shiki code .s3F5K, html code.shiki .s3F5K{--shiki-default:#9CDCFE}html pre.shiki code .sKc5r, html code.shiki .sKc5r{--shiki-default:#CE9178}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 pre.shiki code .sOLPB, html code.shiki .sOLPB{--shiki-default:#6A9955}html pre.shiki code .sqDPy, html code.shiki .sqDPy{--shiki-default:#C8C8C8}html pre.shiki code .scz_3, html code.shiki .scz_3{--shiki-default:#569CD6}html pre.shiki code .s9McN, html code.shiki .s9McN{--shiki-default:#4FC1FF}html pre.shiki code .sDGX8, html code.shiki .sDGX8{--shiki-default:#B5CEA8}",{"title":35,"searchDepth":60,"depth":60,"links":315},[316],{"id":96,"depth":60,"text":96},"Configures the agent's HTTP server. Only relevant when the agent runs with a\nserver — axon dev, axon deploy, or Axon({ server: { port } }).","md",{},true,"\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fserver",{"title":5,"description":317},"docs\u002Fv2\u002Fapi\u002Fconfig\u002Fserver","iaszSjWCYJ3etZJUbFypLdpReIJKOB-cbJif_9FV1UA",1785671808302]