[{"data":1,"prerenderedAt":389},["ShallowReactive",2],{"navigation_docs_en":3,"-en-concepts-encryption":110,"-en-concepts-encryption-surround":384},[4,20,55,70,90,100],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting started",false,"\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,15],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fen\u002Fgetting-started\u002Fquickstart","en\u002F1.getting-started\u002F2.quickstart","i-lucide-rocket",{"title":21,"icon":6,"path":22,"stem":23,"children":24,"page":6},"Concepts","\u002Fen\u002Fconcepts","en\u002F2.concepts",[25,30,35,40,45,50],{"title":26,"path":27,"stem":28,"icon":29},"Projects and versions","\u002Fen\u002Fconcepts\u002Fprojects-and-versions","en\u002F2.concepts\u002F1.projects-and-versions","i-lucide-boxes",{"title":31,"path":32,"stem":33,"icon":34},"Config files","\u002Fen\u002Fconcepts\u002Ffiles","en\u002F2.concepts\u002F2.files","i-lucide-file-json",{"title":36,"path":37,"stem":38,"icon":39},"Publishing","\u002Fen\u002Fconcepts\u002Fpublishing","en\u002F2.concepts\u002F3.publishing","i-lucide-send",{"title":41,"path":42,"stem":43,"icon":44},"Access and roles","\u002Fen\u002Fconcepts\u002Faccess","en\u002F2.concepts\u002F4.access","i-lucide-users",{"title":46,"path":47,"stem":48,"icon":49},"Encryption","\u002Fen\u002Fconcepts\u002Fencryption","en\u002F2.concepts\u002F5.encryption","i-lucide-lock",{"title":51,"path":52,"stem":53,"icon":54},"Git integration","\u002Fen\u002Fconcepts\u002Fgit","en\u002F2.concepts\u002F6.git","i-lucide-git-branch",{"title":56,"icon":6,"path":57,"stem":58,"children":59,"page":6},"SDKs","\u002Fen\u002Fsdk","en\u002F3.sdk",[60,65],{"title":61,"path":62,"stem":63,"icon":64},"Node.js","\u002Fen\u002Fsdk\u002Fnodejs","en\u002F3.sdk\u002F1.nodejs","i-simple-icons-nodedotjs",{"title":66,"path":67,"stem":68,"icon":69},"Unity","\u002Fen\u002Fsdk\u002Funity","en\u002F3.sdk\u002F2.unity","i-simple-icons-unity",{"title":71,"icon":6,"path":72,"stem":73,"children":74,"page":6},"API and MCP","\u002Fen\u002Fapi","en\u002F4.api",[75,80,85],{"title":76,"path":77,"stem":78,"icon":79},"API tokens","\u002Fen\u002Fapi\u002Fauthentication","en\u002F4.api\u002F1.authentication","i-lucide-key-round",{"title":81,"path":82,"stem":83,"icon":84},"REST API","\u002Fen\u002Fapi\u002Frest-api","en\u002F4.api\u002F2.rest-api","i-lucide-plug",{"title":86,"path":87,"stem":88,"icon":89},"MCP for AI agents","\u002Fen\u002Fapi\u002Fmcp","en\u002F4.api\u002F3.mcp","i-lucide-bot",{"title":91,"icon":6,"path":92,"stem":93,"children":94,"page":6},"Support","\u002Fen\u002Fsupport","en\u002F5.support",[95],{"title":96,"path":97,"stem":98,"icon":99},"Feedback","\u002Fen\u002Fsupport\u002Ffeedback","en\u002F5.support\u002F1.feedback","i-lucide-message-circle",{"title":101,"icon":6,"path":102,"stem":103,"children":104,"page":6},"Legal","\u002Fen\u002Flegal","en\u002F6.legal",[105],{"title":106,"path":107,"stem":108,"icon":109},"Privacy policy","\u002Fen\u002Flegal\u002Fprivacy","en\u002F6.legal\u002F1.privacy","i-lucide-shield",{"id":111,"title":46,"body":112,"description":375,"extension":376,"links":377,"meta":378,"navigation":379,"path":47,"seo":380,"stem":48,"__hash__":383},"docs_en\u002Fen\u002F2.concepts\u002F5.encryption.md",{"type":113,"value":114,"toc":369},"minimark",[115,124,129,154,158,165,302,306,348,352,356,365],[116,117,118,119,123],"p",{},"Files on the CDN are public by URL. If a file must not be readable by anyone who finds the link, mark it as ",[120,121,122],"strong",{},"encrypted",".",[125,126,128],"h2",{"id":127},"how-it-works","How it works",[130,131,132,139,151],"ol",{},[133,134,135,136,123],"li",{},"Turn on the encryption flag for a file in ",[120,137,138],{},"Project settings → Encryption",[133,140,141,142,145,146,150],{},"On publish, the content is encrypted with the ",[120,143,144],{},"project key"," (after ",[147,148,149],"code",{},"$note"," keys are removed).",[133,152,153],{},"Your service decrypts it with the same key.",[125,155,157],{"id":156},"getting-the-key","Getting the key",[116,159,160,161,164],{},"Project admins open ",[120,162,163],{},"Project settings → Encryption → Show key",". Treat it like a password: keep it in an environment variable or a secrets manager, never in the repository.",[166,167,172],"pre",{"className":168,"code":169,"language":170,"meta":171,"style":171},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const veresk = new Veresk({\n  cdnUrls: ['\u003CCDN URL>'],\n  version: 'default',\n  consumer: 'backend',\n  encryptSecret: process.env.VERESK_SECRET,\n});\n","ts","",[147,173,174,204,232,250,267,290],{"__ignoreMap":171},[175,176,179,183,187,191,194,198,201],"span",{"class":177,"line":178},"line",1,[175,180,182],{"class":181},"spNyl","const",[175,184,186],{"class":185},"sTEyZ"," veresk ",[175,188,190],{"class":189},"sMK4o","=",[175,192,193],{"class":189}," new",[175,195,197],{"class":196},"s2Zo4"," Veresk",[175,199,200],{"class":185},"(",[175,202,203],{"class":189},"{\n",[175,205,207,211,214,217,220,224,226,229],{"class":177,"line":206},2,[175,208,210],{"class":209},"swJcz","  cdnUrls",[175,212,213],{"class":189},":",[175,215,216],{"class":185}," [",[175,218,219],{"class":189},"'",[175,221,223],{"class":222},"sfazB","\u003CCDN URL>",[175,225,219],{"class":189},[175,227,228],{"class":185},"]",[175,230,231],{"class":189},",\n",[175,233,235,238,240,243,246,248],{"class":177,"line":234},3,[175,236,237],{"class":209},"  version",[175,239,213],{"class":189},[175,241,242],{"class":189}," '",[175,244,245],{"class":222},"default",[175,247,219],{"class":189},[175,249,231],{"class":189},[175,251,253,256,258,260,263,265],{"class":177,"line":252},4,[175,254,255],{"class":209},"  consumer",[175,257,213],{"class":189},[175,259,242],{"class":189},[175,261,262],{"class":222},"backend",[175,264,219],{"class":189},[175,266,231],{"class":189},[175,268,270,273,275,278,280,283,285,288],{"class":177,"line":269},5,[175,271,272],{"class":209},"  encryptSecret",[175,274,213],{"class":189},[175,276,277],{"class":185}," process",[175,279,123],{"class":189},[175,281,282],{"class":185},"env",[175,284,123],{"class":189},[175,286,287],{"class":185},"VERESK_SECRET",[175,289,231],{"class":189},[175,291,293,296,299],{"class":177,"line":292},6,[175,294,295],{"class":189},"}",[175,297,298],{"class":185},")",[175,300,301],{"class":189},";\n",[125,303,305],{"id":304},"who-can-decrypt","Who can decrypt",[307,308,309,322],"table",{},[310,311,312],"thead",{},[313,314,315,319],"tr",{},[316,317,318],"th",{},"SDK",[316,320,321],{},"Decrypts",[323,324,325,339],"tbody",{},[313,326,327,333],{},[328,329,330],"td",{},[331,332,61],"a",{"href":62},[328,334,335,336],{},"Yes, with ",[147,337,338],{},"encryptSecret",[313,340,341,345],{},[328,342,343],{},[331,344,66],{"href":67},[328,346,347],{},"No: encrypted files arrive as ciphertext",[349,350,351],"warning",{},"A key that ships inside a game build can be extracted from the build. Use encryption for server-side consumers. For game clients, do not rely on it to hide secrets.",[125,353,355],{"id":354},"regenerating-the-key","Regenerating the key",[116,357,358,361,362,364],{},[120,359,360],{},"Regenerate"," creates a new key and re-encrypts all encrypted files with it. Clients that still use the old key can no longer decrypt, so update ",[147,363,338],{}," everywhere first.",[366,367,368],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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);}",{"title":171,"searchDepth":206,"depth":206,"links":370},[371,372,373,374],{"id":127,"depth":206,"text":128},{"id":156,"depth":206,"text":157},{"id":304,"depth":206,"text":305},{"id":354,"depth":206,"text":355},"Publish sensitive files as ciphertext and decrypt them in your service.","md",null,{},{"icon":49},{"title":381,"description":382},"File encryption in Veresk","How to encrypt published config files in Veresk, where to find the project key, how the Node.js SDK decrypts and what to do before regenerating the key.","y8krftiidZc8J0s15ZRGcCSNM-zFKAcv6nU6ISc3DQs",[385,387],{"title":41,"path":42,"stem":43,"description":386,"icon":44,"children":-1},"Who can do what in a project.",{"title":51,"path":52,"stem":53,"description":388,"icon":54,"children":-1},"Keep a project's files in a Git repository alongside publishing.",1793977340581]