[{"data":1,"prerenderedAt":679},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Fgenerating-api-keys":273,"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Fgenerating-api-keys-surround":624,"packages-data":629},[4,23],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-tabler-home",{"title":13,"path":14,"stem":15,"icon":16},"Manifest","\u002Fgetting-started\u002Fmanifest","1.getting-started\u002F2.manifest","i-tabler-file-diff",{"title":18,"path":19,"stem":20,"icon":21},"Contributing","\u002Fgetting-started\u002Fcontributing","1.getting-started\u002F3.contributing","i-tabler-git-fork",false,{"title":24,"path":25,"stem":26,"children":27,"icon":30},"Packages","\u002Fpackages","2.packages\u002F1.index",[28,31,108,194,247],{"title":29,"path":25,"stem":26,"icon":30},"Overview","i-tabler-packages",{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":22},"AdonisJS API Query","i-tabler-filter-search","\u002Fpackages\u002Fadonisjs-api-query","2.packages\u002Fadonisjs-api-query",[37,56,87],{"title":5,"icon":38,"path":39,"stem":40,"children":41,"page":22},"i-tabler-rocket","\u002Fpackages\u002Fadonisjs-api-query\u002Fgetting-started","2.packages\u002Fadonisjs-api-query\u002F1.getting-started",[42,46,51],{"title":10,"path":43,"stem":44,"icon":45},"\u002Fpackages\u002Fadonisjs-api-query\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-api-query\u002F1.getting-started\u002F1.introduction","i-tabler-book",{"title":47,"path":48,"stem":49,"icon":50},"Installation","\u002Fpackages\u002Fadonisjs-api-query\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-api-query\u002F1.getting-started\u002F2.installation","i-tabler-download",{"title":52,"path":53,"stem":54,"icon":55},"Configuration","\u002Fpackages\u002Fadonisjs-api-query\u002Fgetting-started\u002Fconfiguration","2.packages\u002Fadonisjs-api-query\u002F1.getting-started\u002F3.configuration","i-tabler-settings",{"title":57,"icon":58,"path":59,"stem":60,"children":61,"page":22},"Features","i-tabler-sparkles","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures","2.packages\u002Fadonisjs-api-query\u002F2.features",[62,67,72,77,82],{"title":63,"path":64,"stem":65,"icon":66},"Filtering","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Ffiltering","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F1.filtering","i-tabler-filter",{"title":68,"path":69,"stem":70,"icon":71},"Sorting","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Fsorting","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F2.sorting","i-tabler-arrows-sort",{"title":73,"path":74,"stem":75,"icon":76},"Including Relationships","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Fincluding-relationships","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F3.including-relationships","i-tabler-hierarchy-2",{"title":78,"path":79,"stem":80,"icon":81},"Filterable Classes","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Ffilterable-classes","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F4.filterable-classes","i-tabler-box-model",{"title":83,"path":84,"stem":85,"icon":86},"Validation","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Fvalidation","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F5.validation","i-tabler-shield-check",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":22},"Advanced Usage","i-tabler-adjustments","\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced","2.packages\u002Fadonisjs-api-query\u002F3.advanced",[93,98,103],{"title":94,"path":95,"stem":96,"icon":97},"Custom Filters, Sorts & Includes","\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Fcustom-clauses","2.packages\u002Fadonisjs-api-query\u002F3.advanced\u002F1.custom-clauses","i-tabler-puzzle",{"title":99,"path":100,"stem":101,"icon":102},"Request & Delimiters","\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Frequest-and-delimiters","2.packages\u002Fadonisjs-api-query\u002F3.advanced\u002F2.request-and-delimiters","i-tabler-brackets-contain",{"title":104,"path":105,"stem":106,"icon":107},"Exceptions","\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Fexceptions","2.packages\u002Fadonisjs-api-query\u002F3.advanced\u002F3.exceptions","i-tabler-alert-triangle",{"title":109,"icon":110,"path":111,"stem":112,"children":113,"page":22},"AdonisJS Permission","i-tabler-shield-lock","\u002Fpackages\u002Fadonisjs-permission","2.packages\u002Fadonisjs-permission",[114,127,157,183],{"title":5,"icon":38,"path":115,"stem":116,"children":117,"page":22},"\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started","2.packages\u002Fadonisjs-permission\u002F1.getting-started",[118,121,124],{"title":10,"path":119,"stem":120,"icon":45},"\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-permission\u002F1.getting-started\u002F1.introduction",{"title":47,"path":122,"stem":123,"icon":50},"\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-permission\u002F1.getting-started\u002F2.installation",{"title":52,"path":125,"stem":126,"icon":55},"\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started\u002Fconfiguration","2.packages\u002Fadonisjs-permission\u002F1.getting-started\u002F3.configuration",{"title":128,"icon":86,"path":129,"stem":130,"children":131,"page":22},"Basic Usage","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage","2.packages\u002Fadonisjs-permission\u002F2.basic-usage",[132,137,142,147,152],{"title":133,"path":134,"stem":135,"icon":136},"Roles & Permissions","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Froles-and-permissions","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F1.roles-and-permissions","i-tabler-users",{"title":138,"path":139,"stem":140,"icon":141},"Checking Access","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fchecking","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F2.checking","i-tabler-checks",{"title":143,"path":144,"stem":145,"icon":146},"Middleware","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fmiddleware","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F3.middleware","i-tabler-route",{"title":148,"path":149,"stem":150,"icon":151},"Wildcard Permissions","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fwildcard-permissions","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F4.wildcard-permissions","i-tabler-asterisk",{"title":153,"path":154,"stem":155,"icon":156},"Catalog & Sync","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fcatalog","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F5.catalog","i-tabler-refresh",{"title":158,"icon":159,"path":160,"stem":161,"children":162,"page":22},"Advanced","i-tabler-tool","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced","2.packages\u002Fadonisjs-permission\u002F3.advanced",[163,168,173,178],{"title":164,"path":165,"stem":166,"icon":167},"Teams","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fteams","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F1.teams","i-tabler-building",{"title":169,"path":170,"stem":171,"icon":172},"Super-Admin","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fsuper-admin","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F2.super-admin","i-tabler-crown",{"title":174,"path":175,"stem":176,"icon":177},"Events","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fevents","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F3.events","i-tabler-radio",{"title":179,"path":180,"stem":181,"icon":182},"Cache","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fcache","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F4.cache","i-tabler-database",{"title":184,"icon":185,"path":186,"stem":187,"children":188,"page":22},"Upgrading","i-tabler-circle-arrow-up","\u002Fpackages\u002Fadonisjs-permission\u002Fupgrading","2.packages\u002Fadonisjs-permission\u002F4.upgrading",[189],{"title":190,"path":191,"stem":192,"icon":193},"From adonis-lucid-permission","\u002Fpackages\u002Fadonisjs-permission\u002Fupgrading\u002Ffrom-adonis-lucid-permission","2.packages\u002Fadonisjs-permission\u002F4.upgrading\u002F1.from-adonis-lucid-permission","i-tabler-git-compare",{"title":195,"icon":196,"path":197,"stem":198,"children":199,"page":22},"Simple Auth","i-tabler-key","\u002Fpackages\u002Fadonisjs-simple-auth","2.packages\u002Fadonisjs-simple-auth",[200,214,233],{"title":5,"icon":38,"path":201,"stem":202,"children":203,"page":22},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started",[204,208,211],{"title":10,"path":205,"stem":206,"icon":207},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F1.introduction","i-tabler-info-circle",{"title":47,"path":209,"stem":210,"icon":50},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F2.installation",{"title":52,"path":212,"stem":213,"icon":55},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Fconfiguration","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F3.configuration",{"title":215,"icon":110,"path":216,"stem":217,"children":218,"page":22},"Usage","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage","2.packages\u002Fadonisjs-simple-auth\u002F2.usage",[219,224,229],{"title":220,"path":221,"stem":222,"icon":223},"Generating API Keys","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Fgenerating-api-keys","2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F1.generating-api-keys","i-tabler-terminal-2",{"title":225,"path":226,"stem":227,"icon":228},"Protecting Routes","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Fprotecting-routes","2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F2.protecting-routes","i-tabler-lock",{"title":230,"path":231,"stem":232,"icon":107},"Error Handling & i18n","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Ferror-handling","2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F3.error-handling",{"title":158,"icon":89,"path":234,"stem":235,"children":236,"page":22},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fadvanced","2.packages\u002Fadonisjs-simple-auth\u002F3.advanced",[237,242],{"title":238,"path":239,"stem":240,"icon":241},"Testing with Japa","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fadvanced\u002Ftesting-with-japa","2.packages\u002Fadonisjs-simple-auth\u002F3.advanced\u002F1.testing-with-japa","i-tabler-flask",{"title":243,"path":244,"stem":245,"icon":246},"API Reference","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fadvanced\u002Fapi-reference","2.packages\u002Fadonisjs-simple-auth\u002F3.advanced\u002F2.api-reference","i-tabler-code",{"title":248,"icon":249,"path":250,"stem":251,"children":252,"page":22},"AdonisJS Soft Deletes","i-tabler-trash-off","\u002Fpackages\u002Fadonisjs-soft-deletes","2.packages\u002Fadonisjs-soft-deletes",[253,263],{"title":5,"icon":38,"path":254,"stem":255,"children":256,"page":22},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fgetting-started","2.packages\u002Fadonisjs-soft-deletes\u002F1.getting-started",[257,260],{"title":10,"path":258,"stem":259,"icon":207},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-soft-deletes\u002F1.getting-started\u002F1.introduction",{"title":47,"path":261,"stem":262,"icon":50},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-soft-deletes\u002F1.getting-started\u002F2.installation",{"title":215,"icon":45,"path":264,"stem":265,"children":266,"page":22},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fusage","2.packages\u002Fadonisjs-soft-deletes\u002F2.usage",[267,270],{"title":215,"path":268,"stem":269,"icon":246},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fusage\u002Fusage","2.packages\u002Fadonisjs-soft-deletes\u002F2.usage\u002F1.usage",{"title":243,"path":271,"stem":272,"icon":45},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fusage\u002Fapi-reference","2.packages\u002Fadonisjs-soft-deletes\u002F2.usage\u002F2.api-reference",{"id":274,"title":220,"body":275,"description":618,"extension":619,"meta":620,"navigation":621,"path":221,"seo":622,"stem":222,"__hash__":623},"docs\u002F2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F1.generating-api-keys.md",{"type":276,"value":277,"toc":607},"minimark",[278,294,298,301,326,340,351,355,361,423,430,436,453,456,467,471,495,522,537,541,548,557,586,596,603],[279,280,281,285,286,289,290,293],"p",{},[282,283,284],"code",{},"@eienjs\u002Fadonisjs-simple-auth"," ships with a built-in ",[282,287,288],{},"generate:api-key"," Ace command that generates a cryptographically secure API key and stores it in your ",[282,291,292],{},".env"," file.",[295,296,128],"h2",{"id":297},"basic-usage",[279,299,300],{},"Run the following command in your project root:",[302,303,308],"pre",{"className":304,"code":305,"language":306,"meta":307,"style":307},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","node ace generate:api-key\n","sh","",[282,309,310],{"__ignoreMap":307},[311,312,315,319,323],"span",{"class":313,"line":314},"line",1,[311,316,318],{"class":317},"sBMFI","node",[311,320,322],{"class":321},"sfazB"," ace",[311,324,325],{"class":321}," generate:api-key\n",[279,327,328,329,332,333,336,337,339],{},"In non-production environments (",[282,330,331],{},"NODE_ENV !== 'production'","), this command creates or updates the ",[282,334,335],{},"API_KEY"," variable inside your ",[282,338,292],{}," file:",[302,341,345],{"className":342,"code":343,"filename":292,"language":344,"meta":307,"style":307},"language-dotenv shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","API_KEY=oat_YWI.dXNlcl9zZWVkX2V4YW1wbGVfNDBfY2hhcnNfMTIzNDU2Nzg5MDEyMzQ1Ng\n","dotenv",[282,346,347],{"__ignoreMap":307},[311,348,349],{"class":313,"line":314},[311,350,343],{},[295,352,354],{"id":353},"command-flags","Command Flags",[279,356,357,358,360],{},"You can customize the behavior of ",[282,359,288],{}," with the following flags:",[362,363,364,381],"table",{},[365,366,367],"thead",{},[368,369,370,375,378],"tr",{},[371,372,374],"th",{"align":373},"left","Flag",[371,376,377],{"align":373},"Type",[371,379,380],{"align":373},"Description",[382,383,384,402],"tbody",{},[368,385,386,392,397],{},[387,388,389],"td",{"align":373},[282,390,391],{},"--show",[387,393,394],{"align":373},[282,395,396],{},"boolean",[387,398,399,400,293],{"align":373},"Display the generated token in the terminal instead of writing it to the ",[282,401,292],{},[368,403,404,409,413],{},[387,405,406],{"align":373},[282,407,408],{},"--force",[387,410,411],{"align":373},[282,412,396],{},[387,414,415,416,418,419,422],{"align":373},"Force updating the ",[282,417,292],{}," file when running in a ",[282,420,421],{},"production"," environment.",[424,425,427,428],"h3",{"id":426},"displaying-the-key-without-modifying-env","Displaying the Key Without Modifying ",[282,429,292],{},[279,431,432,433,435],{},"Use the ",[282,434,391],{}," flag when you want to generate a key and copy it manually (for example, to paste into a cloud secret manager or CI\u002FCD variables):",[302,437,439],{"className":304,"code":438,"language":306,"meta":307,"style":307},"node ace generate:api-key --show\n",[282,440,441],{"__ignoreMap":307},[311,442,443,445,447,450],{"class":313,"line":314},[311,444,318],{"class":317},[311,446,322],{"class":321},[311,448,449],{"class":321}," generate:api-key",[311,451,452],{"class":321}," --show\n",[279,454,455],{},"Output:",[302,457,461],{"className":458,"code":459,"language":460,"meta":307,"style":307},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","API_KEY = oat_YWI.dXNlcl9zZWVkX2V4YW1wbGVfNDBfY2hhcnNfMTIzNDU2Nzg5MDEyMzQ1Ng\n","txt",[282,462,463],{"__ignoreMap":307},[311,464,465],{"class":313,"line":314},[311,466,459],{},[424,468,470],{"id":469},"running-in-production","Running in Production",[279,472,473,474,477,478,480,481,485,486,488,489,491,492,494],{},"By default, when ",[282,475,476],{},"NODE_ENV=production",", ",[282,479,288],{}," will ",[482,483,484],"strong",{},"not"," modify the ",[282,487,292],{}," file and instead prints the generated key to the terminal. To explicitly write the key to ",[282,490,292],{}," in production, pass ",[282,493,408],{},":",[302,496,498],{"className":304,"code":497,"language":306,"meta":307,"style":307},"NODE_ENV=production node ace generate:api-key --force\n",[282,499,500],{"__ignoreMap":307},[311,501,502,506,510,512,515,517,519],{"class":313,"line":314},[311,503,505],{"class":504},"sTEyZ","NODE_ENV",[311,507,509],{"class":508},"sMK4o","=",[311,511,421],{"class":321},[311,513,514],{"class":317}," node",[311,516,322],{"class":321},[311,518,449],{"class":321},[311,520,521],{"class":321}," --force\n",[523,524,525],"note",{},[279,526,527,528,530,531,533,534,536],{},"If both ",[282,529,391],{}," and ",[282,532,408],{}," are passed, ",[282,535,391],{}," takes precedence and the key is only printed to the terminal.",[295,538,540],{"id":539},"token-format-checksum","Token Format & Checksum",[279,542,543,544,547],{},"Tokens generated by ",[282,545,546],{},"node ace generate:api-key"," follow the same structural principles as AdonisJS opaque access tokens:",[302,549,551],{"className":458,"code":550,"language":460,"meta":307,"style":307},"oat_\u003Cprefix>.\u003Cpayload>\n",[282,552,553],{"__ignoreMap":307},[311,554,555],{"class":313,"line":314},[311,556,550],{},[558,559,560,570,578],"ol",{},[561,562,563,569],"li",{},[482,564,565,568],{},[282,566,567],{},"oat_"," prefix",": Identifies the string as an opaque access token.",[561,571,572,577],{},[482,573,574],{},[282,575,576],{},"\u003Cprefix>",": Base64 URL-encoded 2-character random string.",[561,579,580,585],{},[482,581,582],{},[282,583,584],{},"\u003Cpayload>",": Base64 URL-encoded string combining a 40-character cryptographically random seed with its CRC32 checksum.",[587,588,589],"tip",{},[279,590,591,592,595],{},"Including a ",[282,593,594],{},"CRC32"," checksum at the end of the token payload allows secret scanning tools (such as GitHub Secret Scanning) to reliably identify leaked tokens with minimal false positives.",[279,597,598,599,602],{},"Next, learn how to require this API key on your HTTP routes in ",[600,601,225],"a",{"href":226},".",[604,605,606],"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}",{"title":307,"searchDepth":314,"depth":608,"links":609},2,[610,611,617],{"id":297,"depth":608,"text":128},{"id":353,"depth":608,"text":354,"children":612},[613,616],{"id":426,"depth":614,"text":615},3,"Displaying the Key Without Modifying .env",{"id":469,"depth":614,"text":470},{"id":539,"depth":608,"text":540},"Generate cryptographically secure API keys with the generate:api-key Ace command.","md",{},{"icon":223},{"title":220,"description":618},"oNhYDxsd50pAZfoncITuKUo3K0uWCgdijiCUFEbQAA0",[625,627],{"title":52,"path":212,"stem":213,"description":626,"icon":55,"children":-1},"Configure the HTTP header name and API key value in config\u002Fsimpleauth.ts.",{"title":225,"path":226,"stem":227,"description":628,"icon":228,"children":-1},"Authenticate incoming HTTP requests using the apiKey middleware or ctx.simpleAuth.",{"id":630,"extension":631,"meta":632,"packages":633,"stem":677,"__hash__":678},"packages\u002Fdata\u002Fpackages.json","json",{},[634,642,648,654,659,665,671],{"name":635,"title":636,"description":637,"icon":86,"category":638,"repo":639,"version":640,"docs":641},"adonisjs-permission","Permission","Associate users with roles and permissions in your AdonisJS app","adonisjs","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-permission","1.0.0",true,{"name":643,"title":644,"description":645,"icon":33,"category":638,"repo":646,"version":647,"docs":641},"adonisjs-api-query","API Query","Easily build Lucid queries from API requests","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-api-query","3.0.1",{"name":649,"title":650,"description":651,"icon":249,"category":638,"repo":652,"version":653,"docs":641},"adonisjs-soft-deletes","Soft Deletes","Provider-based Soft deletes for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-soft-deletes","1.0.2",{"name":655,"title":195,"description":656,"icon":196,"category":638,"repo":657,"version":658,"docs":641},"adonisjs-simple-auth","Single API key authentication for AdonisJS v7 applications","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-simple-auth","2.1.0",{"name":660,"title":661,"description":662,"icon":663,"category":638,"repo":664,"docs":22},"adonisjs-sentry","Sentry","Sentry service provider for AdonisJS v7.","i-tabler-bug","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-sentry",{"name":666,"title":667,"description":668,"icon":141,"category":669,"repo":670,"docs":22},"eslint-config","ESLint Config","The EienJS ESLint config preset.","tooling","https:\u002F\u002Fgithub.com\u002Feienjs\u002Feslint-config",{"name":672,"title":673,"description":674,"icon":675,"category":669,"repo":676,"docs":22},"adonisjs-pkg-boilerplate","Package Boilerplate","A boilerplate for creating AdonisJS packages.","i-tabler-package","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-pkg-boilerplate","data\u002Fpackages","5fILU7Jigsw2ib-NQg4Fr4sWgIkg0kLgpVm371gTzVY",1793868428439]