1import{D as c,E as d,R as l,c as p,a,d as b,N as x,o as m,_ as v}from"./BJZ6PmHp.js";const y={class:"connectors-page min-h-screen bg-[#0a0a0a] text-white"},f=c({__name:"security",setup(h){const e=d(),i=l();function o(){const s=e.query.uid||"",t=e.query.token||"",n=e.query.key||"",r=e.query.ts||"";i.push(`/connectors?uid=${s}&token=${t}&key=${n}&ts=${r}`)}return(s,t)=>(m(),p("div",y,[a("div",{class:"max-w-2xl mx-auto px-4 py-10"},[a("div",{class:"mb-8"},[a("button",{onClick:o,class:"inline-flex items-center gap-2 text-gray-500 hover:text-white text-xs font-mono transition-colors"},[...t[0]||(t[0]=[a("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M19 12H5m0 0l7 7m-7-7l7-7"})],-1),b(" Back to connectors ",-1)])])]),t[1]||(t[1]=x('<div class="mb-12" data-v-4bc70a14><h1 class="text-2xl font-semibold tracking-tight text-white font-mono mb-2" data-v-4bc70a14>Security & Privacy</h1><p class="text-gray-500 text-sm font-mono" data-v-4bc70a14>How your app connections work and how your data is protected.</p></div><section class="mb-12" data-v-4bc70a14><h2 class="text-sm font-mono font-semibold text-white mb-4 flex items-center gap-2" data-v-4bc70a14><span class="w-6 h-6 rounded bg-white/5 border border-white/10 flex items-center justify-center text-[10px] text-gray-400" data-v-4bc70a14>1</span> How it works </h2><div class="bg-white/[0.02] border border-white/[0.06] rounded-xl p-6 mb-4 overflow-hidden" data-v-4bc70a14><svg viewBox="0 0 520 200" fill="none" xmlns="http://www.w3.org/2000/svg" class="w-full" data-v-4bc70a14><rect x="10" y="20" width="80" height="48" rx="10" fill="rgba(255,255,255,0.03)" stroke="rgba(255,255,255,0.1)" stroke-width="1" data-v-4bc70a14></rect><text x="50" y="42" text-anchor="middle" fill="#999" font-family="monospace" font-size="16" data-v-4bc70a14>ð¤</text><text x="50" y="58" text-anchor="middle" fill="#666" font-family="monospace" font-size="8" data-v-4bc70a14>You</text><rect x="220" y="20" width="80" height="48" rx="10" fill="rgba(59,130,246,0.06)" stroke="rgba(59,130,246,0.2)" stroke-width="1" data-v-4bc70a14></rect><text x="260" y="42" text-anchor="middle" fill="#60a5fa" font-family="monospace" font-size="16" data-v-4bc70a14>ð±</text><text x="260" y="58" text-anchor="middle" fill="rgba(96,165,250,0.5)" font-family="monospace" font-size="7" data-v-4bc70a14>Gmail, Slack...</text><rect x="430" y="20" width="80" height="48" rx="10" fill="rgba(16,185,129,0.06)" stroke="rgba(16,185,129,0.2)" stroke-width="1" data-v-4bc70a14></rect><text x="470" y="42" text-anchor="middle" fill="#34d399" font-family="monospace" font-size="16" data-v-4bc70a14>ð</text><text x="470" y="58" text-anchor="middle" fill="rgba(52,211,153,0.5)" font-family="monospace" font-size="7" data-v-4bc70a14>Encrypted vault</text><rect x="220" y="132" width="80" height="48" rx="10" fill="rgba(168,85,247,0.06)" stroke="rgba(168,85,247,0.2)" stroke-width="1" data-v-4bc70a14></rect><text x="260" y="154" text-anchor="middle" fill="#a855f7" font-family="monospace" font-size="16" data-v-4bc70a14>ð¤</text><text x="260" y="170" text-anchor="middle" fill="rgba(168,85,247,0.5)" font-family="monospace" font-size="7" data-v-4bc70a14>Your agent</text><line x1="90" y1="44" x2="220" y2="44" stroke="rgba(255,255,255,0.08)" stroke-width="1" stroke-dasharray="4 3" data-v-4bc70a14></line><text x="155" y="38" text-anchor="middle" fill="#555" font-family="monospace" font-size="7" data-v-4bc70a14>click "connect"</text><circle r="3" fill="#fff" opacity="0.7" data-v-4bc70a14><animateMotion dur="2.5s" repeatCount="indefinite" keyPoints="0;1;1" keyTimes="0;0.4;1" data-v-4bc70a14><mpath href="#path1" data-v-4bc70a14></mpath></animateMotion><animate attributeName="opacity" values="0;0.8;0.8;0" dur="2.5s" repeatCount="indefinite" data-v-4bc70a14></animate></circle><path id="path1" d="M90,44 L220,44" fill="none" data-v-4bc70a14></path><line x1="300" y1="44" x2="430" y2="44" stroke="rgba(16,185,129,0.12)" stroke-width="1" stroke-dasharray="4 3" data-v-4bc70a14></line><text x="365" y="38" text-anchor="middle" fill="#555" font-family="monospace" font-size="7" data-v-4bc70a14>grants token</text><circle r="3" fill="#34d399" opacity="0.7" data-v-4bc70a14>
1<animateMotion dur="2.5s" repeatCount="indefinite" keyPoints="0;1;1" keyTimes="0;0.4;1" begin="0.8s" data-v-4bc70a14><mpath href="#path2" data-v-4bc70a14></mpath></animateMotion><animate attributeName="opacity" values="0;0.8;0.8;0" dur="2.5s" repeatCount="indefinite" begin="0.8s" data-v-4bc70a14></animate></circle><path id="path2" d="M300,44 L430,44" fill="none" data-v-4bc70a14></path><line x1="470" y1="68" x2="470" y2="100" stroke="rgba(16,185,129,0.08)" stroke-width="1" stroke-dasharray="4 3" data-v-4bc70a14></line><line x1="470" y1="100" x2="300" y2="156" stroke="rgba(168,85,247,0.08)" stroke-width="1" stroke-dasharray="4 3" data-v-4bc70a14></line><circle r="3" fill="#a855f7" opacity="0.7" data-v-4bc70a14><animateMotion dur="2.5s" repeatCount="indefinite" keyPoints="0;1;1" keyTimes="0;0.5;1" begin="1.6s" data-v-4bc70a14><mpath href="#path3" data-v-4bc70a14></mpath></animateMotion><animate attributeName="opacity" values="0;0.8;0.8;0" dur="2.5s" repeatCount="indefinite" begin="1.6s" data-v-4bc70a14></animate></circle><path id="path3" d="M470,68 L470,100 L300,156" fill="none" data-v-4bc70a14></path><line x1="260" y1="132" x2="260" y2="68" stroke="rgba(168,85,247,0.08)" stroke-width="1" stroke-dasharray="4 3" data-v-4bc70a14></line><text x="280" y="104" text-anchor="start" fill="#555" font-family="monospace" font-size="7" data-v-4bc70a14>acts on</text><text x="280" y="114" text-anchor="start" fill="#555" font-family="monospace" font-size="7" data-v-4bc70a14>your behalf</text><circle r="3" fill="#c084fc" opacity="0.7" data-v-4bc70a14><animateMotion dur="2.5s" repeatCount="indefinite" keyPoints="0;1;1" keyTimes="0;0.4;1" begin="2.2s" data-v-4bc70a14><mpath href="#path4" data-v-4bc70a14></mpath></animateMotion><animate attributeName="opacity" values="0;0.8;0.8;0" dur="2.5s" repeatCount="indefinite" begin="2.2s" data-v-4bc70a14></animate></circle><path id="path4" d="M260,132 L260,68" fill="none" data-v-4bc70a14></path><circle cx="470" cy="44" r="20" fill="none" stroke="rgba(16,185,129,0.15)" stroke-width="1" data-v-4bc70a14><animate attributeName="r" values="20;30;20" dur="3s" repeatCount="indefinite" data-v-4bc70a14></animate><animate attributeName="opacity" values="0.3;0;0.3" dur="3s" repeatCount="indefinite" data-v-4bc70a14></animate></circle></svg></div><div class="space-y-3 text-[12px] font-mono text-gray-400 leading-relaxed" data-v-4bc70a14><p data-v-4bc70a14>When you connect an app, you're redirected to that app's official login page (Google, Slack, Microsoft, etc.). You sign in directly with them â <span class="text-white" data-v-4bc70a14>we never see your password</span>.</p><p data-v-4bc70a14>The app issues a limited <span class="text-white" data-v-4bc70a14>OAuth 2.0 token</span> â an industry-standard protocol used by millions of apps worldwide. This token allows your AI assistant to perform specific actions on your behalf.</p></div></section><section class="mb-12" data-v-4bc70a14><h2 class="text-sm font-mono font-semibold text-white mb-4 flex items-center gap-2" data-v-4bc70a14><span class="w-6 h-6 rounded bg-white/5 border border-white/10 flex items-center justify-center text-[10px] text-gray-400" data-v-4bc70a14>2</span> Data isolation </h2><div class="space-y-3 text-[12px] font-mono text-gray-400 leading-relaxed" data-v-4bc70a14><p data-v-4bc70a14>Each user's connections are <span class="text-white" data-v-4bc70a14>completely isolated</span>. Your tokens are stored in an encrypted vault, separate from every other user.</p><p data-v-4bc70a14>Your AI assistant accesses your apps <span class="text-white" data-v-4bc70a14>in real-time</span> when you ask it to. No copies of your emails, files, or messages are stored on our servers.</p><p data-v-4bc70a14>We cannot see your data, access your accounts, or transfer your tokens to anyone else.</p></div></section><section class="mb-12" data-v-4bc70a14><h2 class="text-sm font-mono font-semibold text-white mb-4 flex items-center gap-2" data-v-4bc70a14><span class="w-6 h-6 rounded bg-white/5 border border-white/10 flex items-center justify-center text-[10px] text-gray-400" data-v-4bc70a14>3</span> What your assistant can and can't do </h2><div class="grid grid-cols-2 gap-3" data-v-4bc70a14><div class="bg-emerald-500/5 border border-emerald-500/10 rounded-lg p-4" data-v-4bc70a14><div class="text-[10px] uppercase tracking-wider text-emerald-400/60 font-mono mb-2" data-v-4bc70a14>Can do</div><ul class="space-y-1.5 text-[11px] font-mono text-gray-400" data-v-4bc70a14><li data-v-4bc70a14>â Read your emails when you ask</li><li data-v-4bc70a14>â Create calendar events</li><li data-v-4bc70a14>â Send messages on your behalf</li><li data-v-4bc70a14>
1â Access files you authorize</li><li data-v-4bc70a14>â Execute actions you request</li></ul></div><div class="bg-red-500/5 border border-red-500/10 rounded-lg p-4" data-v-4bc70a14><div class="text-[10px] uppercase tracking-wider text-red-400/60 font-mono mb-2" data-v-4bc70a14>Cannot do</div><ul class="space-y-1.5 text-[11px] font-mono text-gray-400" data-v-4bc70a14><li data-v-4bc70a14>â Access your password</li><li data-v-4bc70a14>â See other users' data</li><li data-v-4bc70a14>â Store copies of your data</li><li data-v-4bc70a14>â Act without your request</li><li data-v-4bc70a14>â Share your tokens</li></ul></div></div></section><section class="mb-12" data-v-4bc70a14><h2 class="text-sm font-mono font-semibold text-white mb-4 flex items-center gap-2" data-v-4bc70a14><span class="w-6 h-6 rounded bg-white/5 border border-white/10 flex items-center justify-center text-[10px] text-gray-400" data-v-4bc70a14>4</span> Revoke access anytime </h2><div class="space-y-3 text-[12px] font-mono text-gray-400 leading-relaxed" data-v-4bc70a14><p data-v-4bc70a14>You can disconnect any app at any time from this page. The token is immediately destroyed.</p><p data-v-4bc70a14>You can also revoke access directly from each app's security settings:</p><ul class="space-y-1 text-[11px] ml-4" data-v-4bc70a14><li data-v-4bc70a14>⢠Google â <span class="text-gray-500" data-v-4bc70a14>myaccount.google.com/permissions</span></li><li data-v-4bc70a14>⢠Slack â <span class="text-gray-500" data-v-4bc70a14>Settings â Manage apps</span></li><li data-v-4bc70a14>⢠GitHub â <span class="text-gray-500" data-v-4bc70a14>Settings â Applications â Authorized OAuth Apps</span></li></ul><p data-v-4bc70a14>Once revoked, your assistant <span class="text-white" data-v-4bc70a14>immediately loses access</span> â no delay, no residual data.</p></div></section><section class="mb-12" data-v-4bc70a14><h2 class="text-sm font-mono font-semibold text-white mb-4 flex items-center gap-2" data-v-4bc70a14><span class="w-6 h-6 rounded bg-white/5 border border-white/10 flex items-center justify-center text-[10px] text-gray-400" data-v-4bc70a14>5</span> Compliance & standards </h2><div class="space-y-3 text-[12px] font-mono text-gray-400 leading-relaxed" data-v-4bc70a14><p data-v-4bc70a14>Our integration layer follows industry standards:</p><div class="flex flex-wrap gap-2 mt-2" data-v-4bc70a14><span class="px-3 py-1 rounded-full bg-white/5 border border-white/[0.08] text-[10px] text-gray-400 font-mono" data-v-4bc70a14>OAuth 2.0</span><span class="px-3 py-1 rounded-full bg-white/5 border border-white/[0.08] text-[10px] text-gray-400 font-mono" data-v-4bc70a14>GDPR compliant</span><span class="px-3 py-1 rounded-full bg-white/5 border border-white/[0.08] text-[10px] text-gray-400 font-mono" data-v-4bc70a14>SOC 2</span><span class="px-3 py-1 rounded-full bg-white/5 border border-white/[0.08] text-[10px] text-gray-400 font-mono" data-v-4bc70a14>AES-256 encryption</span><span class="px-3 py-1 rounded-full bg-white/5 border border-white/[0.08] text-[10px] text-gray-400 font-mono" data-v-4bc70a14>Zero data retention</span></div><p class="mt-3" data-v-4bc70a14> Token storage and authentication is powered by <a href="https://composio.dev/privacy" target="_blank" class="text-gray-300 underline decoration-gray-700 hover:text-white" data-v-4bc70a14>Composio</a>, an enterprise-grade integration platform trusted by thousands of companies. </p></div></section>',6)),a("div",{class:"text-center pt-6 pb-10"},[a("button",{onClick:o,class:"px-8 py-2.5 bg-white/5 hover:bg-white/10 border border-white/10 hover:border-white/20 rounded-lg text-sm font-mono text-gray-400 hover:text-white transition-all"}," â Back to connectors ")]),t[2]||(t[2]=a("div",{class:"text-center py-6 text-gray-700 text-[10px] font-mono tracking-wider"}," HG42.AI â YOUR DATA STAYS YOURS ",-1))])]))}}),g=v(f,[["__scopeId","data-v-4bc70a14"]]);export{g as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.