[{"data":1,"prerenderedAt":400},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fquickstart-idp":89,"\u002Fgetting-started\u002Fquickstart-idp-surround":395},[4,40,63,76],{"title":5,"path":6,"stem":7,"children":8,"icon":39},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11,15,19,23,27,31,35],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Quick Start: Service Provider","\u002Fgetting-started\u002Fquickstart-sp","1.getting-started\u002F2.quickstart-sp",{"title":16,"path":17,"stem":18},"Quick Start: Identity Provider","\u002Fgetting-started\u002Fquickstart-idp","1.getting-started\u002F3.quickstart-idp",{"title":20,"path":21,"stem":22},"Quick Start: Agent","\u002Fgetting-started\u002Fquickstart-agent","1.getting-started\u002F4.quickstart-agent",{"title":24,"path":25,"stem":26},"Quick Start","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F5.installation",{"title":28,"path":29,"stem":30},"How It Works","\u002Fgetting-started\u002Fhow-it-works","1.getting-started\u002F6.how-it-works",{"title":32,"path":33,"stem":34},"For Service Providers","\u002Fgetting-started\u002Ffor-service-providers","1.getting-started\u002F7.for-service-providers",{"title":36,"path":37,"stem":38},"CLI (apes & ape-shell)","\u002Fgetting-started\u002Fcli","1.getting-started\u002F8.cli",false,{"title":41,"path":42,"stem":43,"children":44,"icon":39},"Ecosystem","\u002Fecosystem","2.ecosystem\u002F1.index",[45,47,51,55,59],{"title":46,"path":42,"stem":43},"Overview",{"title":48,"path":49,"stem":50},"OpenApe Auth","\u002Fecosystem\u002Fauth","2.ecosystem\u002F2.auth",{"title":52,"path":53,"stem":54},"OpenApe Grants","\u002Fecosystem\u002Fgrants","2.ecosystem\u002F3.grants",{"title":56,"path":57,"stem":58},"nuxt-auth-sp","\u002Fecosystem\u002Fnuxt-auth-sp","2.ecosystem\u002F4.nuxt-auth-sp",{"title":60,"path":61,"stem":62},"escapes","\u002Fecosystem\u002Fescapes","2.ecosystem\u002F5.escapes",{"title":64,"icon":39,"path":65,"stem":66,"children":67,"page":39},"Security","\u002Fsecurity","3.security",[68,72],{"title":69,"path":70,"stem":71},"Compliance","\u002Fsecurity\u002Fcompliance","3.security\u002F1.compliance",{"title":73,"path":74,"stem":75},"Threat Model","\u002Fsecurity\u002Fthreat-model","3.security\u002F2.threat-model",{"title":77,"icon":39,"path":78,"stem":79,"children":80,"page":39},"Guides","\u002Fguides","4.guides",[81,85],{"title":82,"path":83,"stem":84},"Capabilities & Grants","\u002Fguides\u002Fcapabilities","4.guides\u002F1.capabilities",{"title":86,"path":87,"stem":88},"Delegation","\u002Fguides\u002Fdelegation","4.guides\u002F2.delegation",{"id":90,"title":16,"body":91,"description":388,"extension":389,"links":390,"meta":391,"navigation":392,"path":17,"seo":393,"stem":18,"__hash__":394},"docs\u002F1.getting-started\u002F3.quickstart-idp.md",{"type":92,"value":93,"toc":376},"minimark",[94,99,104,111,115,156,160,164,180,184,194,198,201,206,271,275,295,299,302,372],[95,96,98],"h1",{"id":97},"run-your-own-identity-provider","Run Your Own Identity Provider",[100,101,103],"h2",{"id":102},"prerequisites","Prerequisites",[105,106,107],"ul",{},[108,109,110],"li",{},"Node.js 22+",[100,112,114],{"id":113},"_1-create-project","1. Create Project",[116,117,122],"pre",{"className":118,"code":119,"language":120,"meta":121,"style":121},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx @openape\u002Fapes init --idp my-idp\ncd my-idp\n","bash","",[123,124,125,147],"code",{"__ignoreMap":121},[126,127,130,134,138,141,144],"span",{"class":128,"line":129},"line",1,[126,131,133],{"class":132},"sBMFI","npx",[126,135,137],{"class":136},"sfazB"," @openape\u002Fapes",[126,139,140],{"class":136}," init",[126,142,143],{"class":136}," --idp",[126,145,146],{"class":136}," my-idp\n",[126,148,150,154],{"class":128,"line":149},2,[126,151,153],{"class":152},"s2Zo4","cd",[126,155,146],{"class":136},[157,158,159],"p",{},"The wizard asks for your domain, storage backend, and admin email. It generates all secrets automatically.",[100,161,163],{"id":162},"_2-start","2. Start",[116,165,167],{"className":118,"code":166,"language":120,"meta":121,"style":121},"npm run dev\n",[123,168,169],{"__ignoreMap":121},[126,170,171,174,177],{"class":128,"line":129},[126,172,173],{"class":132},"npm",[126,175,176],{"class":136}," run",[126,178,179],{"class":136}," dev\n",[100,181,183],{"id":182},"_3-test","3. Test",[157,185,186,187,193],{},"Open ",[188,189,190],"a",{"href":190,"rel":191},"http:\u002F\u002Flocalhost:3000\u002Fadmin",[192],"nofollow",". You're the admin — create a registration URL, register your first user with a passkey, and log in.",[100,195,197],{"id":196},"done","Done",[157,199,200],{},"Your IdP is running locally with in-memory storage. Users authenticate with WebAuthn passkeys.",[202,203,205],"h3",{"id":204},"production-checklist","Production Checklist",[207,208,209,219,240,261],"ol",{},[108,210,211,215,216],{},[212,213,214],"strong",{},"DNS"," — Add a TXT record: ",[123,217,218],{},"_ddisa.yourdomain.com TXT \"v=ddisa1 idp=https:\u002F\u002Fid.yourdomain.com\"",[108,220,221,224,225,228,229,232,233,236,237],{},[212,222,223],{},"Storage"," — Switch from ",[123,226,227],{},"memory"," to ",[123,230,231],{},"fs"," or ",[123,234,235],{},"s3"," in ",[123,238,239],{},"nuxt.config.ts",[108,241,242,245,246,249,250,253,254,236,257,260],{},[212,243,244],{},"Domain"," — Update ",[123,247,248],{},"RP_ID",", ",[123,251,252],{},"RP_ORIGIN",", and ",[123,255,256],{},"ISSUER",[123,258,259],{},".env"," to your production domain",[108,262,263,266,267,270],{},[212,264,265],{},"Deploy"," — ",[123,268,269],{},"vercel deploy"," or any Node.js hosting",[202,272,274],{"id":273},"whats-next","What's Next?",[105,276,277,283,289],{},[108,278,279,282],{},[188,280,281],{"href":21},"Enroll an AI agent"," — give agents identity on your IdP",[108,284,285,288],{},[188,286,287],{"href":25},"Configure DNS for your domain"," — connect your domain",[108,290,291,294],{},[188,292,293],{"href":29},"How DDISA works"," — understand the protocol",[202,296,298],{"id":297},"auto-registered-pages","Auto-Registered Pages",[157,300,301],{},"Your IdP comes with these pages out of the box:",[303,304,305,318],"table",{},[306,307,308],"thead",{},[309,310,311,315],"tr",{},[312,313,314],"th",{},"Page",[312,316,317],{},"Purpose",[319,320,321,332,342,352,362],"tbody",{},[309,322,323,329],{},[324,325,326],"td",{},[123,327,328],{},"\u002Flogin",[324,330,331],{},"WebAuthn passkey login",[309,333,334,339],{},[324,335,336],{},[123,337,338],{},"\u002Fregister?token=...",[324,340,341],{},"Passkey registration via invitation link",[309,343,344,349],{},[324,345,346],{},[123,347,348],{},"\u002Faccount",[324,350,351],{},"Device & credential management",[309,353,354,359],{},[324,355,356],{},[123,357,358],{},"\u002Fadmin",[324,360,361],{},"User, agent & grant administration",[309,363,364,369],{},[324,365,366],{},[123,367,368],{},"\u002Fenroll",[324,370,371],{},"Agent enrollment",[373,374,375],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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":121,"searchDepth":129,"depth":149,"links":377},[378,379,380,381,382],{"id":102,"depth":149,"text":103},{"id":113,"depth":149,"text":114},{"id":162,"depth":149,"text":163},{"id":182,"depth":149,"text":183},{"id":196,"depth":149,"text":197,"children":383},[384,386,387],{"id":204,"depth":385,"text":205},3,{"id":273,"depth":385,"text":274},{"id":297,"depth":385,"text":298},"Run your own DDISA Identity Provider in 3 minutes.","md",null,{},true,{"title":16,"description":388},"1rF5u97OXuiAwpqdOH2VyF7RFAXAPq_EMmItPRC14g8",[396,398],{"title":12,"path":13,"stem":14,"description":397,"children":-1},"Add DDISA login to your Nuxt app in 3 minutes.",{"title":20,"path":21,"stem":22,"description":399,"children":-1},"Enroll an AI agent with DDISA identity in 3 minutes.",1776885317056]