import{s as X,a as Y,n as Z,o as ee}from"../chunks/scheduler.9cda857a.js";import{S as te,i as ie,e as l,s,c as G,h as ae,a as o,d as i,b as r,f as V,g as j,j as w,k as q,l as se,m as a,n as O,t as R,o as z,p as I}from"../chunks/index.f47f3121.js";import{C as re}from"../chunks/CopyLLMTxtMenu.676ed699.js";import{H as W,E as ne}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.64d112fc.js";function le(U){let n,H,v,S,c,T,u,M,f,B='The Hugging Face Hub offers several security features to ensure that your code and data are secure. Beyond offering <a href="./repositories-settings#private-repositories">private repositories</a> for models, datasets, and Spaces, the Hub supports access tokens, resource groups, MFA, commit signatures, malware scanning, and more.',P,p,D='Hugging Face is GDPR compliant. If a contract or specific data storage is something you’ll need, we recommend taking a look at our <a href="https://huggingface.co/support" rel="nofollow">Enterprise Hub Support</a>. Hugging Face can also offer Business Associate Addendums or GDPR data processing agreements through an <a href="https://huggingface.co/pricing" rel="nofollow">Enterprise Plan</a>.',b,m,J='Hugging Face is also <a href="https://us.aicpa.org/interestareas/frc/assuranceadvisoryservices/aicpasoc2report.html" rel="nofollow">SOC2 Type 2 certified</a>, meaning we provide security certification to our customers and actively monitor and patch any security weaknesses.',x,g,K,L,h,N='For any other security questions, please feel free to send us an email at <a href="mailto:security@huggingface.co">security@huggingface.co</a>.',C,d,A,y,Q='<li><a href="./security-tokens">User Access Tokens</a></li> <li><a href="./security-2fa">Two-Factor Authentication (2FA)</a></li> <li><a href="./security-git-ssh">Git over SSH</a></li> <li><a href="./security-gpg">Signing commits with GPG</a></li> <li><a href="./security-sso">Single Sign-On (SSO)</a></li> <li><a href="./security-resource-groups">Advanced Access Control (Resource Groups)</a></li> <li><a href="./security-malware">Malware Scanning</a></li> <li><a href="./security-pickle">Pickle Scanning</a></li> <li><a href="./security-secrets">Secrets Scanning</a></li> <li><a href="./security-protectai">Third-party scanner: Protect AI</a></li> <li><a href="./security-jfrog">Third-party scanner: JFrog</a></li>',k,$,F,_,E;return c=new re({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),u=new W({props:{title:"Security",local:"security",headingTag:"h1"}}),d=new W({props:{title:"Contents",local:"contents",headingTag:"h2"}}),$=new ne({props:{source:"https://github.com/huggingface/hub-docs/blob/main/docs/hub/security.md"}}),{c(){n=l("meta"),H=s(),v=l("p"),S=s(),G(c.$$.fragment),T=s(),G(u.$$.fragment),M=s(),f=l("p"),f.innerHTML=B,P=s(),p=l("p"),p.innerHTML=D,b=s(),m=l("p"),m.innerHTML=J,x=s(),g=l("img"),L=s(),h=l("p"),h.innerHTML=N,C=s(),G(d.$$.fragment),A=s(),y=l("ul"),y.innerHTML=Q,k=s(),G($.$$.fragment),F=s(),_=l("p"),this.h()},l(e){const t=ae("svelte-u9bgzb",document.head);n=o(t,"META",{name:!0,content:!0}),t.forEach(i),H=r(e),v=o(e,"P",{}),V(v).forEach(i),S=r(e),j(c.$$.fragment,e),T=r(e),j(u.$$.fragment,e),M=r(e),f=o(e,"P",{"data-svelte-h":!0}),w(f)!=="svelte-pjc76f"&&(f.innerHTML=B),P=r(e),p=o(e,"P",{"data-svelte-h":!0}),w(p)!=="svelte-rrut23"&&(p.innerHTML=D),b=r(e),m=o(e,"P",{"data-svelte-h":!0}),w(m)!=="svelte-xabzm8"&&(m.innerHTML=J),x=r(e),g=o(e,"IMG",{width:!0,src:!0}),L=r(e),h=o(e,"P",{"data-svelte-h":!0}),w(h)!=="svelte-jiqoom"&&(h.innerHTML=N),C=r(e),j(d.$$.fragment,e),A=r(e),y=o(e,"UL",{"data-svelte-h":!0}),w(y)!=="svelte-r13n9i"&&(y.innerHTML=Q),k=r(e),j($.$$.fragment,e),F=r(e),_=o(e,"P",{}),V(_).forEach(i),this.h()},h(){q(n,"name","hf:doc:metadata"),q(n,"content",oe),q(g,"width","150"),Y(g.src,K="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/security-soc-1.jpg")||q(g,"src",K)},m(e,t){se(document.head,n),a(e,H,t),a(e,v,t),a(e,S,t),O(c,e,t),a(e,T,t),O(u,e,t),a(e,M,t),a(e,f,t),a(e,P,t),a(e,p,t),a(e,b,t),a(e,m,t),a(e,x,t),a(e,g,t),a(e,L,t),a(e,h,t),a(e,C,t),O(d,e,t),a(e,A,t),a(e,y,t),a(e,k,t),O($,e,t),a(e,F,t),a(e,_,t),E=!0},p:Z,i(e){E||(R(c.$$.fragment,e),R(u.$$.fragment,e),R(d.$$.fragment,e),R($.$$.fragment,e),E=!0)},o(e){z(c.$$.fragment,e),z(u.$$.fragment,e),z(d.$$.fragment,e),z($.$$.fragment,e),E=!1},d(e){e&&(i(H),i(v),i(S),i(T),i(M),i(f),i(P),i(p),i(b),i(m),i(x),i(g),i(L),i(h),i(C),i(A),i(y),i(k),i(F),i(_)),i(n),I(c,e),I(u,e),I(d,e),I($,e)}}}const oe='{"title":"Security","local":"security","sections":[{"title":"Contents","local":"contents","sections":[],"depth":2}],"depth":1}';function ce(U){return ee(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ge extends te{constructor(n){super(),ie(this,n,ce,le,X,{})}}export{ge as component};
