[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-\u002Fes\u002Fdocs\u002Fsecurite\u002Fprincipes":3,"docs-nav-es":435},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":429,"_id":430,"_source":431,"_file":432,"_stem":433,"_extension":434},"\u002Fes\u002Fdocs\u002Fsecurite\u002Fprincipes","securite",false,"","Principios de seguridad","Cuatro compromisos innegociables de betool: multi-tenant estricto, auditoría de accesos entre tenants, rechazo motivado de acciones destructivas, LLM soberanos.",{"type":11,"children":12,"toc":420},"root",[13,29,36,48,132,138,150,191,204,210,222,228,261,267,283,288,375,385,391],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18,21,27],{"type":19,"value":20},"text","betool está diseñado para ",{"type":14,"tag":22,"props":23,"children":24},"strong",{},[25],{"type":19,"value":26},"entornos regulados",{"type":19,"value":28},". La seguridad no es una capa añadida a posteriori: es el invariante que da forma a cada línea de código, cada migración, cada módulo.",{"type":14,"tag":30,"props":31,"children":33},"h2",{"id":32},"_1-multi-tenancy-estricto",[34],{"type":19,"value":35},"1. Multi-tenancy estricto",{"type":14,"tag":15,"props":37,"children":38},{},[39,41,46],{"type":19,"value":40},"Cada organización posee ",{"type":14,"tag":22,"props":42,"children":43},{},[44],{"type":19,"value":45},"sus propios",{"type":19,"value":47}," datos, pipelines, secretos, archivos y claves de LLM. El aislamiento se aplica:",{"type":14,"tag":49,"props":50,"children":51},"ul",{},[52,79,97,115],{"type":14,"tag":53,"props":54,"children":55},"li",{},[56,61,63,70,72,77],{"type":14,"tag":22,"props":57,"children":58},{},[59],{"type":19,"value":60},"A nivel de base de datos",{"type":19,"value":62}," — cada tabla de negocio lleva una columna ",{"type":14,"tag":64,"props":65,"children":67},"code",{"className":66},[],[68],{"type":19,"value":69},"org_id",{"type":19,"value":71}," indexada, y las consultas del lado servidor ",{"type":14,"tag":22,"props":73,"children":74},{},[75],{"type":19,"value":76},"siempre",{"type":19,"value":78}," filtran por la organización de la sesión.",{"type":14,"tag":53,"props":80,"children":81},{},[82,87,89,95],{"type":14,"tag":22,"props":83,"children":84},{},[85],{"type":19,"value":86},"A nivel de sistema de archivos",{"type":19,"value":88}," — cada organización tiene su propia raíz en ",{"type":14,"tag":64,"props":90,"children":92},{"className":91},[],[93],{"type":19,"value":94},"\u003Cdata_root>\u002Forgs\u002F\u003Corg_id>\u002F",{"type":19,"value":96},". Sin rutas compartidas.",{"type":14,"tag":53,"props":98,"children":99},{},[100,105,107,113],{"type":14,"tag":22,"props":101,"children":102},{},[103],{"type":19,"value":104},"A nivel de caché",{"type":19,"value":106}," — cachés por organización; ninguna entrada compartida sin un indicador ",{"type":14,"tag":64,"props":108,"children":110},{"className":109},[],[111],{"type":19,"value":112},"is_shared = TRUE",{"type":19,"value":114}," explícito.",{"type":14,"tag":53,"props":116,"children":117},{},[118,123,125,130],{"type":14,"tag":22,"props":119,"children":120},{},[121],{"type":19,"value":122},"A nivel de secretos",{"type":19,"value":124}," — cada organización tiene sus propias claves de API y tokens, almacenados del lado del servidor y nunca reexpuestos en claro. Sin fallback global. Los secretos introducidos en la configuración de un nodo (secreto HMAC, token, contraseña) también quedan ",{"type":14,"tag":22,"props":126,"children":127},{},[128],{"type":19,"value":129},"enmascarados en todos los lugares donde se vuelve a leer la configuración",{"type":19,"value":131}," — editor, API, herramientas MCP leídas por una IA, propuestas.",{"type":14,"tag":30,"props":133,"children":135},{"id":134},"_2-auditoría-obligatoria-del-acceso-cross-tenant",[136],{"type":19,"value":137},"2. Auditoría obligatoria del acceso cross-tenant",{"type":14,"tag":15,"props":139,"children":140},{},[141,143,148],{"type":19,"value":142},"Ciertos roles (normalmente cuentas de operador de plataforma del lado del proveedor) ",{"type":14,"tag":22,"props":144,"children":145},{},[146],{"type":19,"value":147},"pueden",{"type":19,"value":149}," necesitar acceder al contenido de otra organización con fines de soporte. Dicho acceso es:",{"type":14,"tag":49,"props":151,"children":152},{},[153,163,181],{"type":14,"tag":53,"props":154,"children":155},{},[156,161],{"type":14,"tag":22,"props":157,"children":158},{},[159],{"type":19,"value":160},"Condicionado a un opt-in de la organización de destino",{"type":19,"value":162}," — revocable en cualquier momento desde el panel de administración.",{"type":14,"tag":53,"props":164,"children":165},{},[166,171,173,179],{"type":14,"tag":22,"props":167,"children":168},{},[169],{"type":19,"value":170},"Registrado en cada acceso",{"type":19,"value":172}," — tabla de auditoría dedicada, acotada por organización de destino, expuesta a los clientes mediante ",{"type":14,"tag":64,"props":174,"children":176},{"className":175},[],[177],{"type":19,"value":178},"GET \u002Fapi\u002Fadmin\u002Fme\u002Fsupervisor-reads",{"type":19,"value":180},".",{"type":14,"tag":53,"props":182,"children":183},{},[184,189],{"type":14,"tag":22,"props":185,"children":186},{},[187],{"type":19,"value":188},"Denegado si la escritura de auditoría falla",{"type":19,"value":190}," — sin lectura sin rastro.",{"type":14,"tag":15,"props":192,"children":193},{},[194,196,203],{"type":19,"value":195},"Consulta ",{"type":14,"tag":197,"props":198,"children":200},"a",{"href":199},"\u002Fes\u002Fdocs\u002Fsecurite\u002Faudit-rgpd",[201],{"type":19,"value":202},"Auditoría RGPD",{"type":19,"value":180},{"type":14,"tag":30,"props":205,"children":207},{"id":206},"_3-rechazo-motivado-en-operaciones-destructivas",[208],{"type":19,"value":209},"3. Rechazo motivado en operaciones destructivas",{"type":14,"tag":15,"props":211,"children":212},{},[213,215,220],{"type":19,"value":214},"Cualquier operación que destruya o reemplace el contenido de otra organización (REPLACE-IN-PLACE de hijos, DELETE) se ",{"type":14,"tag":22,"props":216,"children":217},{},[218],{"type":19,"value":219},"rechaza",{"type":19,"value":221}," si la organización de destino no ha activado el opt-in de lectura. Motivo: sin visibilidad, el operador estaría proponiendo un payload que podría sobrescribir a ciegas el contenido existente.",{"type":14,"tag":30,"props":223,"children":225},{"id":224},"_4-soberanía-sobre-el-modelo-de-llm",[226],{"type":19,"value":227},"4. Soberanía sobre el modelo de LLM",{"type":14,"tag":49,"props":229,"children":230},{},[231,241,251],{"type":14,"tag":53,"props":232,"children":233},{},[234,239],{"type":14,"tag":22,"props":235,"children":236},{},[237],{"type":19,"value":238},"BYOK nativo",{"type":19,"value":240}," — tus claves de OpenAI, Anthropic y Google las gestiona tu organización. Sin fuga entre organizaciones. BYOK es opcional (existen modelos gestionados, facturados en créditos) pero recomendado en entornos regulados.",{"type":14,"tag":53,"props":242,"children":243},{},[244,249],{"type":14,"tag":22,"props":245,"children":246},{},[247],{"type":19,"value":248},"Modelos privados",{"type":19,"value":250}," — Ollama, LM Studio o cualquier endpoint compatible con OpenAI (vLLM…) alojado en tus instalaciones o en tu nube privada. Los prompts y las respuestas nunca salen de tu perímetro.",{"type":14,"tag":53,"props":252,"children":253},{},[254,259],{"type":14,"tag":22,"props":255,"children":256},{},[257],{"type":19,"value":258},"Sin pool compartido silencioso",{"type":19,"value":260}," — si una organización usa un modelo compartido, es una decisión explícita con control de acceso.",{"type":14,"tag":30,"props":262,"children":264},{"id":263},"postura-de-ingeniería",[265],{"type":19,"value":266},"Postura de ingeniería",{"type":14,"tag":268,"props":269,"children":270},"blockquote",{},[271],{"type":14,"tag":15,"props":272,"children":273},{},[274,276,281],{"type":19,"value":275},"Nuestro estándar es la ",{"type":14,"tag":22,"props":277,"children":278},{},[279],{"type":19,"value":280},"precisión",{"type":19,"value":282},": robustez máxima, observabilidad total, determinismo, anti-alucinación, anti-regresión, pruebas en cada esquina.",{"type":14,"tag":15,"props":284,"children":285},{},[286],{"type":19,"value":287},"Concretamente, en cada compromiso de arquitectura \u002F código \u002F prompt:",{"type":14,"tag":289,"props":290,"children":291},"table",{},[292,316],{"type":14,"tag":293,"props":294,"children":295},"thead",{},[296],{"type":14,"tag":297,"props":298,"children":299},"tr",{},[300,306,311],{"type":14,"tag":301,"props":302,"children":303},"th",{},[304],{"type":19,"value":305},"Decisión",{"type":14,"tag":301,"props":307,"children":308},{},[309],{"type":19,"value":310},"Decisión esperada",{"type":14,"tag":301,"props":312,"children":313},{},[314],{"type":19,"value":315},"Por qué",{"type":14,"tag":317,"props":318,"children":319},"tbody",{},[320,339,357],{"type":14,"tag":297,"props":321,"children":322},{},[323,329,334],{"type":14,"tag":324,"props":325,"children":326},"td",{},[327],{"type":19,"value":328},"Latencia × 2 vs. razonamiento abreviado",{"type":14,"tag":324,"props":330,"children":331},{},[332],{"type":19,"value":333},"× 2",{"type":14,"tag":324,"props":335,"children":336},{},[337],{"type":19,"value":338},"La precisión perdida se paga con la confianza del usuario",{"type":14,"tag":297,"props":340,"children":341},{},[342,347,352],{"type":14,"tag":324,"props":343,"children":344},{},[345],{"type":19,"value":346},"Observabilidad de grano fino vs. solo logs esenciales",{"type":14,"tag":324,"props":348,"children":349},{},[350],{"type":19,"value":351},"Grano fino",{"type":14,"tag":324,"props":353,"children":354},{},[355],{"type":19,"value":356},"Sin visibilidad, la depuración es ciega",{"type":14,"tag":297,"props":358,"children":359},{},[360,365,370],{"type":14,"tag":324,"props":361,"children":362},{},[363],{"type":19,"value":364},"Atajo que degrada un comportamiento",{"type":14,"tag":324,"props":366,"children":367},{},[368],{"type":19,"value":369},"Rechazo",{"type":14,"tag":324,"props":371,"children":372},{},[373],{"type":19,"value":374},"El riesgo de comportamiento se mide en incidentes de clientes",{"type":14,"tag":15,"props":376,"children":377},{},[378,383],{"type":14,"tag":22,"props":379,"children":380},{},[381],{"type":19,"value":382},"Mantra",{"type":19,"value":384},": «Si alguien encuentra un bug, significa que no pusimos suficientes salvaguardas, no que pusimos demasiadas.»",{"type":14,"tag":30,"props":386,"children":388},{"id":387},"lectura-adicional",[389],{"type":19,"value":390},"Lectura adicional",{"type":14,"tag":49,"props":392,"children":393},{},[394,403,411],{"type":14,"tag":53,"props":395,"children":396},{},[397],{"type":14,"tag":197,"props":398,"children":400},{"href":399},"\u002Fes\u002Fdocs\u002Fsecurite\u002Fmulti-tenant",[401],{"type":19,"value":402},"Multi-tenancy estricto",{"type":14,"tag":53,"props":404,"children":405},{},[406],{"type":14,"tag":197,"props":407,"children":408},{"href":199},[409],{"type":19,"value":410},"Auditoría RGPD y registro de accesos",{"type":14,"tag":53,"props":412,"children":413},{},[414],{"type":14,"tag":197,"props":415,"children":417},{"href":416},"\u002Fes\u002Fdocs\u002Fsecurite\u002Fdeploiement-souverain",[418],{"type":19,"value":419},"Despliegue soberano",{"title":7,"searchDepth":421,"depth":421,"links":422},2,[423,424,425,426,427,428],{"id":32,"depth":421,"text":35},{"id":134,"depth":421,"text":137},{"id":206,"depth":421,"text":209},{"id":224,"depth":421,"text":227},{"id":263,"depth":421,"text":266},{"id":387,"depth":421,"text":390},"markdown","content:es:docs:5.securite:1.principes.md","content","es\u002Fdocs\u002F5.securite\u002F1.principes.md","es\u002Fdocs\u002F5.securite\u002F1.principes","md",[436],{"title":437,"_path":438,"children":439},"Es","\u002Fes",[440],{"title":441,"_path":442,"children":443},"Docs","\u002Fes\u002Fdocs",[444,457,485,513,526,534,547,608],{"title":445,"_path":446,"children":447},"Primeros pasos","\u002Fes\u002Fdocs\u002Fdemarrer",[448,451,454],{"title":449,"_path":450},"Bienvenido","\u002Fes\u002Fdocs\u002Fdemarrer\u002Fbienvenue",{"title":452,"_path":453},"Crear una cuenta","\u002Fes\u002Fdocs\u002Fdemarrer\u002Fcreer-un-compte",{"title":455,"_path":456},"Conectar una clave LLM","\u002Fes\u002Fdocs\u002Fdemarrer\u002Fbrancher-llm",{"title":458,"_path":459,"children":460},"Canales","\u002Fes\u002Fdocs\u002Fcanaux",[461,464,467,470,473,476,479,482],{"title":462,"_path":463},"Visión general de los canales","\u002Fes\u002Fdocs\u002Fcanaux\u002Fvue-densemble",{"title":465,"_path":466},"Telefonía en tiempo real","\u002Fes\u002Fdocs\u002Fcanaux\u002Ftelephone",{"title":468,"_path":469},"Email","\u002Fes\u002Fdocs\u002Fcanaux\u002Femail",{"title":471,"_path":472},"Widget de chat web","\u002Fes\u002Fdocs\u002Fcanaux\u002Fchat-widget",{"title":474,"_path":475},"Webhook HTTP","\u002Fes\u002Fdocs\u002Fcanaux\u002Fwebhook",{"title":477,"_path":478},"Mensajería (WhatsApp, Messenger, Telegram, Mattermost)","\u002Fes\u002Fdocs\u002Fcanaux\u002Fmessageries",{"title":480,"_path":481},"Meta Lead Ads","\u002Fes\u002Fdocs\u002Fcanaux\u002Ffacebook-leads",{"title":483,"_path":484},"Schedule (cron)","\u002Fes\u002Fdocs\u002Fcanaux\u002Fschedule",{"title":486,"_path":487,"children":488},"Pipelines","\u002Fes\u002Fdocs\u002Fpipelines",[489,492,495,498,501,504,507,510],{"title":490,"_path":491},"El editor visual","\u002Fes\u002Fdocs\u002Fpipelines\u002Fediteur-visuel",{"title":493,"_path":494},"Agentes IA","\u002Fes\u002Fdocs\u002Fpipelines\u002Fagents",{"title":496,"_path":497},"Operadores deterministas","\u002Fes\u002Fdocs\u002Fpipelines\u002Foperateurs",{"title":499,"_path":500},"Control de flujo","\u002Fes\u002Fdocs\u002Fpipelines\u002Fcontrole-flux",{"title":502,"_path":503},"Code Steps","\u002Fes\u002Fdocs\u002Fpipelines\u002Fcode-step",{"title":505,"_path":506},"Sub-pipelines","\u002Fes\u002Fdocs\u002Fpipelines\u002Fsous-pipelines",{"title":508,"_path":509},"Acciones no-code","\u002Fes\u002Fdocs\u002Fpipelines\u002Factions-no-code",{"title":511,"_path":512},"Base de conocimiento","\u002Fes\u002Fdocs\u002Fpipelines\u002Fbase-de-connaissances",{"title":514,"_path":515,"children":516},"Supervisión","\u002Fes\u002Fdocs\u002Fsupervision",[517,520,523],{"title":518,"_path":519},"Historial de ejecuciones","\u002Fes\u002Fdocs\u002Fsupervision\u002Fexecutions",{"title":521,"_path":522},"Créditos y medición","\u002Fes\u002Fdocs\u002Fsupervision\u002Fcredits-metering",{"title":524,"_path":525},"Benchmarks","\u002Fes\u002Fdocs\u002Fsupervision\u002Fbenchmarks",{"title":527,"_path":528,"children":529},"Seguridad","\u002Fes\u002Fdocs\u002Fsecurite",[530,531,532,533],{"title":8,"_path":4},{"title":402,"_path":399},{"title":410,"_path":199},{"title":419,"_path":416},{"title":535,"_path":536,"children":537},"Desarrolladores","\u002Fes\u002Fdocs\u002Fdeveloppeurs",[538,541,544],{"title":539,"_path":540},"API de administración","\u002Fes\u002Fdocs\u002Fdeveloppeurs\u002Fapi-admin",{"title":542,"_path":543},"Webhooks salientes","\u002Fes\u002Fdocs\u002Fdeveloppeurs\u002Fwebhooks-sortants",{"title":545,"_path":546},"Pilota betool desde Claude (MCP)","\u002Fes\u002Fdocs\u002Fdeveloppeurs\u002Fmcp",{"title":548,"_path":549,"children":550},"Integraciones","\u002Fes\u002Fdocs\u002Fintegrations",[551,554,557,560,563,566,569,572,575,578,581,584,587,590,593,596,599,602,605],{"title":552,"_path":553},"Visión general de las integraciones","\u002Fes\u002Fdocs\u002Fintegrations\u002Fvue-densemble",{"title":555,"_path":556},"Stripe","\u002Fes\u002Fdocs\u002Fintegrations\u002Fstripe",{"title":558,"_path":559},"GitHub","\u002Fes\u002Fdocs\u002Fintegrations\u002Fgithub",{"title":561,"_path":562},"Google","\u002Fes\u002Fdocs\u002Fintegrations\u002Fgoogle",{"title":564,"_path":565},"LinkedIn Ads","\u002Fes\u002Fdocs\u002Fintegrations\u002Flinkedin-ads",{"title":567,"_path":568},"Kavkom","\u002Fes\u002Fdocs\u002Fintegrations\u002Fkavkom",{"title":570,"_path":571},"Jira","\u002Fes\u002Fdocs\u002Fintegrations\u002Fjira",{"title":573,"_path":574},"Slack","\u002Fes\u002Fdocs\u002Fintegrations\u002Fslack",{"title":576,"_path":577},"SMS","\u002Fes\u002Fdocs\u002Fintegrations\u002Fsms",{"title":579,"_path":580},"Enable Banking (open banking)","\u002Fes\u002Fdocs\u002Fintegrations\u002Fenable-banking",{"title":582,"_path":583},"CRM, marketing y productividad","\u002Fes\u002Fdocs\u002Fintegrations\u002Fcrm-marketing",{"title":585,"_path":586},"HeyGen (vídeo)","\u002Fes\u002Fdocs\u002Fintegrations\u002Fheygen",{"title":588,"_path":589},"La Poste","\u002Fes\u002Fdocs\u002Fintegrations\u002Fla-poste",{"title":591,"_path":592},"CRM de negocio (beTool Application, Qhare)","\u002Fes\u002Fdocs\u002Fintegrations\u002Fcrm-metier",{"title":594,"_path":595},"Mitti (inspecciones de campo)","\u002Fes\u002Fdocs\u002Fintegrations\u002Fmitti",{"title":597,"_path":598},"Meta (Messenger, Páginas, Meta Ads)","\u002Fes\u002Fdocs\u002Fintegrations\u002Fmeta",{"title":600,"_path":601},"Onoff Business (Beta)","\u002Fes\u002Fdocs\u002Fintegrations\u002Fonoff",{"title":603,"_path":604},"Smart Life \u002F Tuya (objetos conectados)","\u002Fes\u002Fdocs\u002Fintegrations\u002Fsmart-life",{"title":606,"_path":607},"Productos beTool (Desktop, Kiosk, Terminal)","\u002Fes\u002Fdocs\u002Fintegrations\u002Fproduits-betool",{"title":609,"_path":610,"children":611},"Casos de uso","\u002Fes\u002Fdocs\u002Fcas-usage",[612,615,618,621,624,627],{"title":613,"_path":614},"Agentes de negocio tipo","\u002Fes\u002Fdocs\u002Fcas-usage\u002Fvue-densemble",{"title":616,"_path":617},"CFO IA","\u002Fes\u002Fdocs\u002Fcas-usage\u002Fcfo-ia",{"title":619,"_path":620},"COO IA","\u002Fes\u002Fdocs\u002Fcas-usage\u002Fcoo-ia",{"title":622,"_path":623},"CTO IA","\u002Fes\u002Fdocs\u002Fcas-usage\u002Fcto-ia",{"title":625,"_path":626},"Product Manager IA","\u002Fes\u002Fdocs\u002Fcas-usage\u002Fproduct-manager-ia",{"title":628,"_path":629},"Asistente personal","\u002Fes\u002Fdocs\u002Fcas-usage\u002Fassistant-personnel"]