{
  "product": "BeryX",
  "vendor": "BeryxTech",
  "locale": "es",
  "updated": "2026-10-12",
  "source": "https://beryx.lbostuff.tech/es/rfp",
  "capabilities": [
    {
      "id": "profiling",
      "analyst_criterion": "Profiling",
      "name": "Perfilado",
      "status": "coberto",
      "status_label": "Cubierto",
      "summary": "Descubrimiento automático y perfilado de cada tabla en más de 15 tipos de fuente — warehouses, bases operacionales, SaaS, archivos, documentos y streaming (Kafka y Pub/Sub, todavía por instalar en el SaaS). Recuentos, nulos, distintos, estadísticas, distribuciones y muestras limitadas, con perfilado incremental en tablas grandes.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: perfilado",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#profiling"
        },
        {
          "label": "Guía de conectores (lista de fuentes)",
          "url": "https://beryx.lbostuff.tech/es/docs/conectores#resumo"
        },
        {
          "label": "Métodos: perfilado profundo y muestreo",
          "url": "https://beryx.lbostuff.tech/es/docs/metodos#profiling-profundo"
        }
      ]
    },
    {
      "id": "monitoring",
      "analyst_criterion": "Monitoring / observability",
      "name": "Monitorización",
      "status": "coberto",
      "status_label": "Cubierto",
      "summary": "Monitores automáticos de actualidad, volumen y esquema en todas las tablas de la conexión (hasta 500 por conexión), a partir de los metadatos del catálogo y sin configuración; drift y anomalías; motor de reglas; SLO por dataset. Alertas por email, Slack, Teams y webhook, con guardias rotativas y un ámbito por canal (dominios, conexiones, datasets, tipos de incidencia).",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: monitorización",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#monitorização"
        },
        {
          "label": "Métodos: monitores automáticos (metadatos por fuente y tope por scan)",
          "url": "https://beryx.lbostuff.tech/es/docs/metodos#monitores-automáticos"
        },
        {
          "label": "Reglas de streaming (Kafka, todavía por instalar en el SaaS)",
          "url": "https://beryx.lbostuff.tech/es/docs/conectores#apache-kafka-tópicos-como-datasets"
        },
        {
          "label": "Métodos: anomalías, drift y monitores",
          "url": "https://beryx.lbostuff.tech/es/docs/metodos#anomalias"
        }
      ]
    },
    {
      "id": "parsing",
      "analyst_criterion": "Parsing / standardization",
      "name": "Parsing y normalización",
      "status": "coberto",
      "status_label": "Cubierto",
      "summary": "Tipos semánticos detectados automáticamente (email, NIF, IBAN, código postal, teléfono, fechas, importes, nombres, direcciones) con reglas de validación sugeridas. Teléfonos, códigos postales, NIF, IBAN y fechas en formatos mixtos pasan a la forma canónica. Los campos compuestos se descomponen con reglas de locale PT, ES y EN: direcciones (calle, número, piso, código postal, localidad, país), nombres (título, nombre, apellidos), teléfonos con prefijo, NIF y nombre en la misma columna, fechas en texto libre e importes con moneda. Cada columna muestra la tasa de éxito en la muestra y los formatos que fallan. La normalización se propone en SQL de solo lectura en el dialecto de la fuente y en PySpark, y la aplica su proceso, también mediante pull request. Nunca escribimos en las fuentes.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: parsing y normalización",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#parsing-e-normalização"
        },
        {
          "label": "Capacidades: limpieza y remediación por pull request",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#limpeza-e-remediação"
        },
        {
          "label": "Contratos ODCS en CI",
          "url": "https://beryx.lbostuff.tech/es/docs/ci#1-exportar-o-contrato"
        }
      ]
    },
    {
      "id": "matching",
      "analyst_criterion": "Matching / linking / merging",
      "name": "Matching y deduplicación",
      "status": "coberto",
      "status_label": "Cubierto",
      "summary": "Duplicados exactos y aproximados dentro de cada dataset y correspondencia entre dos datasets, también de fuentes distintas, como el CRM y el ERP. Las reglas de correspondencia se configuran por campo: comparador (exacto, normalizado, Jaro–Winkler, por palabras, numérico con tolerancia o fecha con ventana), peso y similitud mínima, con blocking y un umbral de correspondencia y otro de revisión. Los clusters entre los dos datasets se revisan en la interfaz (fusionar, descartar o restablecer), y la decisión queda en BeryX, en el registro de auditoría, y vale en las ejecuciones siguientes. Las reglas de supervivencia por campo (fuente prioritaria, más reciente, más completo o más frecuente) dan un registro consolidado propuesto, con el origen de cada campo, en SQL y PySpark de solo lectura, que puede seguir por pull request para que el proceso del cliente lo apruebe. En un benchmark sintético etiquetado, las reglas sugeridas logran precisión 1,0 y recall 0,85 en 10 000 filas. Nunca escribimos en las fuentes.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: matching y deduplicación",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#matching-e-deduplicação"
        },
        {
          "label": "Métodos: duplicados exactos y fuzzy",
          "url": "https://beryx.lbostuff.tech/es/docs/metodos#duplicados"
        },
        {
          "label": "Métodos: correspondencia entre datasets",
          "url": "https://beryx.lbostuff.tech/es/docs/metodos#correspondência-entre-datasets"
        },
        {
          "label": "Métodos: reglas configurables, clusters y benchmark",
          "url": "https://beryx.lbostuff.tech/es/docs/metodos#regras-configuráveis-e-clusters-cartão-387"
        }
      ]
    },
    {
      "id": "cleansing",
      "analyst_criterion": "Cleansing",
      "name": "Limpieza de datos",
      "status": "coberto-humano",
      "status_label": "Cubierto (con intervención humana)",
      "summary": "Limpieza con intervención humana: proponemos la corrección — SQL y PySpark generados, con ahorro estimado y riesgo analizado —, abrimos un pull request en el repositorio del cliente y una persona aprueba la aplicación, en un flujo gobernado (propuesto, aceptado, aplicado, verificado en el siguiente escaneo). Nunca escribimos en las fuentes sin esa aprobación.",
      "missing": null,
      "positioning": "Proponemos SQL/PySpark y un PR en su repositorio; nunca escribimos en la fuente. Pedir credenciales de escritura sería la primera objeción de su equipo de seguridad.",
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: limpieza y remediación",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#limpeza-e-remediação"
        },
        {
          "label": "Acceso de solo lectura mecánico",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#acesso-read-only-mecânico"
        },
        {
          "label": "Matriz de comparación: corrección",
          "url": "https://beryx.lbostuff.tech/es/comparar#matriz"
        }
      ]
    },
    {
      "id": "enrichment",
      "analyst_criterion": "Enrichment",
      "name": "Enriquecimiento",
      "status": "coberto",
      "status_label": "Cubierto",
      "summary": "Proponemos valores a partir de fuentes de referencia, cada uno con la fuente, la fecha de la consulta y la confianza: la localidad, el municipio y el distrito por el código postal portugués (GeoAPI.pt, con datos de CTT y del INE), la localidad por el código postal español (Nominatim de OpenStreetMap, que recibe solo el código postal), las coordenadas por la dirección (en su propia instancia de Nominatim, la única que recibe direcciones), el nombre y la dirección registrados de una empresa por el NIF de persona jurídica (VIES de la Comisión Europea) y los códigos ISO de país y de moneda (listas locales). Cada propuesta da la cobertura en la muestra y sale en SQL en el dialecto de la fuente y en PySpark: un recuento de solo lectura y un UPDATE propuesto, o un SELECT con los valores propuestos, que su proceso aplica por pull request o SQL después de aprobar la sugerencia. Cada proveedor externo recibe solo el campo a enriquecer, después de que un administrador lo autorice en el workspace; su instancia de Nominatim se autoriza con la URL y con una confirmación propia de datos personales. Nunca escribimos en las fuentes.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: enriquecimiento",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#enriquecimento"
        },
        {
          "label": "Seguridad: qué sale hacia cada proveedor de referencia",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#enriquecimento-proposto-o-que-sai-para-cada-fornecedor"
        },
        {
          "label": "Capacidades: limpieza y remediación por pull request",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#limpeza-e-remediação"
        }
      ]
    },
    {
      "id": "metadata",
      "analyst_criterion": "Metadata management",
      "name": "Gestión de metadatos",
      "status": "coberto",
      "status_label": "Cubierto",
      "summary": "Catálogo automático con dominios; linaje por claves foráneas, SQL de las vistas a nivel de columna, manifest de dbt y OpenLineage; sensibilidad por columna y README por dataset aprobado por una persona. Glosario de negocio nativo: términos con definición, sinónimos, responsable, dominio y estado (borrador, aprobado u obsoleto), vinculados a columnas y datasets. Los vínculos sugeridos por el nombre, los sinónimos, el tipo semántico y las descripciones de dbt nacen siempre como propuesta, y solo una persona los aprueba. Cada dataset puede tener un responsable (heredado del dominio cuando está vacío) y un steward, y etiquetas por dataset y por columna, libres o de una lista controlada del workspace. Los cambios de responsable, steward y etiquetas, la sensibilidad fijada a mano, los vínculos de términos a columnas y las ediciones de los términos quedan en el historial (qué, quién, cuándo, antes y después), con diff entre dos fechas. El historial empieza con la versión que lo introdujo: los cambios anteriores no se convirtieron, y la creación de términos, las sugerencias automáticas y lo que aplica el datavault.yaml todavía no entran. El diccionario de datos se exporta por dataset, dominio o workspace en CSV, JSON y Markdown, con descripciones, tipos, sensibilidad, términos, etiquetas, responsable, steward, reglas y SLA. También se exporta en ficheros para cargar en OpenMetadata (una petición de creación de tabla por dataset; el responsable, el SLA y las reglas van aparte, porque la petición no los acepta) y en DataHub (MCPs para datahub ingest). Es un fichero para que lo cargue su proceso: no lo enviamos. La búsqueda transversal encuentra datasets, columnas, términos, etiquetas y responsables y respeta los dominios restringidos. El responsable, las etiquetas, el historial, el diccionario y la búsqueda se usan a través de la API: todavía no tienen página en la app. Los veredictos de calidad se publican en OpenMetadata, DataHub y Collibra (Import API v2, validado con transporte simulado; validación en tenant del cliente pendiente).",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: gestión de metadatos",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#gestão-de-metadados"
        },
        {
          "label": "OpenLineage (emitir y consumir)",
          "url": "https://beryx.lbostuff.tech/es/docs/openlineage#consumir-o-lineage-do-cliente-no-grafo-do-beryx-cartão-130"
        },
        {
          "label": "Catálogo externo: OpenMetadata y DataHub",
          "url": "https://beryx.lbostuff.tech/es/docs/catalogo-externo#o-que-aparece-no-openmetadata"
        },
        {
          "label": "Catálogo externo: Collibra (Import API v2, validado con transporte simulado; validación en tenant del cliente pendiente)",
          "url": "https://beryx.lbostuff.tech/es/docs/catalogo-externo#collibra-catsync-v3"
        }
      ]
    },
    {
      "id": "orchestration",
      "analyst_criterion": "Workflow / orchestration",
      "name": "Orquestación y flujo de trabajo",
      "status": "coberto",
      "status_label": "Cubierto",
      "summary": "Webhook de dbt Cloud y paquete de Airflow con gate de calidad; gate de reglas y data-diff en CI; servidor MCP para agentes; configuración del workspace como código; flujo de incidencias con responsables, escalados y programaciones. Validación en el punto de entrada, de solo lectura: el integrador o el pipeline envían hasta 5000 registros por petición a la API antes de escribirlos y reciben el veredicto de cada uno con las reglas que BeryX ya monitoriza en el dataset (campos obligatorios, patrones, rangos, NIF, NISS e IBAN con dígito de control, listas de referencia ISO y del workspace), el código del motivo de cada fallo y el veredicto del lote. No se guarda nada ni se envía a un LLM y no se lee la fuente: rechazar o poner en cuarentena queda del lado del cliente. Las reglas que miden el dataset entero (unicidad, actualidad, volumen) vuelven marcadas como no aplicables.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: orquestación",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#orquestração-e-fluxo-de-trabalho"
        },
        {
          "label": "dbt Cloud y Airflow",
          "url": "https://beryx.lbostuff.tech/es/docs/orquestradores#2-airflow--pacote-beryx-airflow"
        },
        {
          "label": "Gate de reglas en CI",
          "url": "https://beryx.lbostuff.tech/es/docs/ci#gate-de-regras-em-ci-cigate-radar-vaga-3"
        },
        {
          "label": "Servidor MCP",
          "url": "https://beryx.lbostuff.tech/es/docs/mcp#tools-disponíveis"
        },
        {
          "label": "Portal de developers (API, incluido POST /datasets/{id}/validate)",
          "url": "https://beryx.lbostuff.tech/es/developers"
        }
      ]
    },
    {
      "id": "business_ux",
      "analyst_criterion": "Business-user experience",
      "name": "Experiencia para usuarios de negocio",
      "status": "coberto",
      "status_label": "Cubierto",
      "summary": "Informes por perfil (ingeniería, gestión, dirección) con impacto en euros, en PDF, programables y compartibles; asistente en lenguaje natural; primer escaneo en directo; interfaz en portugués, inglés y español.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: usuarios de negocio",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#experiência-para-utilizadores-de-negócio"
        },
        {
          "label": "Página de producto",
          "url": "https://beryx.lbostuff.tech/es"
        },
        {
          "label": "Novedades semanales (changelog)",
          "url": "https://beryx.lbostuff.tech/es/changelog"
        }
      ]
    }
  ],
  "security": [
    {
      "id": "read_only",
      "question": "¿BeryX escribe en nuestras fuentes de datos?",
      "answer": "No. La garantía está en el código, no solo en los permisos: el cliente HTTP de los conectores rechaza cualquier verbo de escritura antes de salir a la red, ningún conector puede tener un método de escritura y las sesiones de PostgreSQL se abren en modo de solo lectura.",
      "evidence": [
        {
          "label": "Acceso de solo lectura mecánico",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#acesso-read-only-mecânico"
        }
      ]
    },
    {
      "id": "credentials",
      "question": "¿Cómo se guardan las credenciales de nuestras fuentes?",
      "answer": "Cifradas con Fernet antes de guardarse, nunca devueltas por la API ni escritas en logs. Las claves rotan sin interrupción: varias claves activas, la primera cifra y todas descifran, y un script vuelve a cifrarlo todo con la clave nueva.",
      "evidence": [
        {
          "label": "Credenciales cifradas y rotación de claves",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#credenciais-cifradas-e-rotação-de-chaves"
        }
      ]
    },
    {
      "id": "ssrf",
      "question": "¿Podría usarse una URL de conexión maliciosa para llegar a su red interna (SSRF)?",
      "answer": "No. Solo aceptamos https, rechazamos hosts que resuelvan a direcciones internas y fijamos la IP validada en la conexión (pinning de DNS), repitiendo la validación en cada redirección — lo que cierra también el DNS rebinding.",
      "evidence": [
        {
          "label": "Protección anti-SSRF con pinning de DNS",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#proteção-anti-ssrf-com-pinning-de-dns"
        }
      ]
    },
    {
      "id": "gdpr",
      "question": "¿Podemos exportar y borrar nuestros datos sin pedirlo al soporte?",
      "answer": "Sí. Los administradores exportan los datos del workspace y lo borran en cascada, y cada usuario borra su propia cuenta — todo en la aplicación y en la API.",
      "evidence": [
        {
          "label": "RGPD: exportación y eliminación",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#rgpd-exportação-e-eliminação-self-service"
        },
        {
          "label": "Política de privacidad",
          "url": "https://beryx.lbostuff.tech/es/privacidade"
        }
      ]
    },
    {
      "id": "ai_label",
      "question": "¿Cómo identifican el contenido generado por IA?",
      "answer": "Todo el contenido producido con un modelo lleva un pie que lo identifica, con el modelo y el proveedor que respondieron realmente, conforme al art. 50 del Reglamento (UE) 2024/1689. También exportamos el dosier de evidencia del art. 10.",
      "evidence": [
        {
          "label": "Etiquetado de contenido de IA",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#rotulagem-de-conteúdo-de-ia-art-50º-do-ai-act"
        }
      ]
    },
    {
      "id": "byok",
      "question": "¿Podemos usar nuestra clave o Claude en nuestra cuenta cloud?",
      "answer": "Sí. Clave de Anthropic propia por workspace, política de IA (incluida «IA desactivada») y, en el plan Enterprise, Claude en su cuenta de AWS (Bedrock, regiones de la UE) o Google Cloud (Vertex AI, regiones europeas), sin que BeryxTech guarde secretos de esa ruta.",
      "evidence": [
        {
          "label": "Sus modelos",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#os-teus-modelos-chave-própria-amazon-bedrock-e-vertex-ai"
        },
        {
          "label": "Onboarding de Amazon Bedrock",
          "url": "https://beryx.lbostuff.tech/es/docs/byok-bedrock#como-funciona"
        },
        {
          "label": "Onboarding de Vertex AI",
          "url": "https://beryx.lbostuff.tech/es/docs/byok-vertex#como-funciona"
        }
      ]
    },
    {
      "id": "anonymization",
      "question": "¿Qué datos nuestros llegan a un modelo de lenguaje?",
      "answer": "Por defecto, solo Anthropic recibe datos de clientes, en muestras limitadas. Las muestras pueden anonimizarse antes de salir (NIF, NISS, IBAN, teléfono, nombres), y un proveedor alternativo nunca recibe muestras en bruto.",
      "evidence": [
        {
          "label": "Anonimización antes del LLM",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#anonimização-antes-do-llm"
        }
      ]
    },
    {
      "id": "certifications",
      "question": "¿Tienen certificación ISO 27001 o informe SOC 2?",
      "answer": "Todavía no. Están en curso, sobre la base de los controles descritos en esta página. Hasta entonces, respondemos con la evidencia técnica de cada control — no con sellos que no tenemos.",
      "evidence": [
        {
          "label": "Certificaciones: ISO 27001 y SOC 2",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#certificações-iso-27001-e-soc-2"
        },
        {
          "label": "Registro de auditoría",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#registo-de-auditoria"
        }
      ]
    },
    {
      "id": "identity",
      "question": "¿Admiten SSO, MFA y aprovisionamiento SCIM?",
      "answer": "SSO por OIDC con el proveedor de identidad del cliente (Entra ID, Google Workspace, Keycloak y otros), con roles por workspace, equipos y registro de auditoría exportable en CSV. Las cuentas con contraseña tienen MFA por TOTP (app de autenticación), con códigos de recuperación de un solo uso: es obligatoria para los administradores de la organización y para el staff de BeryxTech, y el administrador del workspace puede exigirla a todos los miembros. Las cuentas SSO usan la MFA de su proveedor de identidad. El soporte de BeryxTech solo entra en un workspace con el consentimiento de un administrador del cliente, en modo de lectura y durante 72 horas como máximo, y cada acceso queda en el registro de auditoría. Todavía no ofrecemos aprovisionamiento SCIM.",
      "evidence": [
        {
          "label": "Control de accesos y MFA",
          "url": "https://beryx.lbostuff.tech/es/seguranca#access"
        },
        {
          "label": "Registro de auditoría",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#registo-de-auditoria"
        }
      ]
    },
    {
      "id": "sla",
      "question": "¿Tienen SLA de disponibilidad y de soporte?",
      "answer": "Todavía no en contrato. El SLA solo pasa a contrato después de un trimestre de disponibilidad medida y de una política de soporte por severidad, todavía en definición. Hoy: copias de seguridad diarias con recuperación a un punto en el tiempo (7 días), verificadas en cada despliegue, y el producto sigue funcionando en modo offline si falla la IA. Los plazos de 7, 30 y 90 días de nuestra política de vulnerabilidades son para corregir fallos de seguridad, no un SLA de soporte.",
      "evidence": [
        {
          "label": "Copias de seguridad y recuperación",
          "url": "https://beryx.lbostuff.tech/es/seguranca#backups"
        }
      ]
    },
    {
      "id": "accessibility",
      "question": "¿Cumplen WCAG 2.2 AA y EN 301 549? ¿Tienen VPAT o ACR?",
      "answer": "Parcialmente, y el ACR está disponible. El informe de conformidad de accesibilidad (basado en el VPAT® 2.5) evalúa los 55 criterios WCAG 2.2 de nivel A y AA en la app y en el sitio web, con la cláusula EN 301 549 de cada uno, e indica lo que aún falta y dónde. El lint de accesibilidad, axe y el contraste de los tokens se ejecutan en el CI. Es una autoevaluación, no una auditoría externa.",
      "evidence": [
        {
          "label": "ACR WCAG 2.2: resumen por estado",
          "url": "https://beryx.lbostuff.tech/es/docs/acessibilidade#resumo"
        },
        {
          "label": "ACR: los 55 criterios",
          "url": "https://beryx.lbostuff.tech/es/docs/acessibilidade#critérios-wcag-22-a-e-aa"
        },
        {
          "label": "ACR: carencias conocidas y plan",
          "url": "https://beryx.lbostuff.tech/es/docs/acessibilidade#lacunas-conhecidas-e-plano"
        }
      ]
    },
    {
      "id": "regulatory_dossier",
      "question": "¿Pueden demostrar, por elemento de datos crítico, que los requisitos de calidad de BCBS 239 o de Solvencia II están controlados?",
      "answer": "En parte, y decimos dónde no. Cualquier dataset o columna puede marcarse como elemento de datos crítico de BCBS 239, de Solvencia II o de otra regulación, con responsable y referencia. El dosier regulatorio muestra, por principio de BCBS 239 (3 a 6) o por apartado del art. 19 del Reglamento Delegado (UE) 2015/35, los controles de calidad de cada elemento, el último resultado de cada regla, las incidencias abiertas, el SLA, el linaje y el contrato de datos, y señala las carencias. Se exporta en CSV y PDF y se comparte por enlace. La exactitud y la integridad todavía aparecen como carencia en todos los elementos, porque ningún tipo de regla de BeryX las mide hoy. El dosier aún no tiene interfaz: por ahora se usa por la API y los informes. El dosier es evidencia para el supervisor, no una declaración de cumplimiento.",
      "evidence": [
        {
          "label": "Capacidades: elementos de datos críticos y dosier regulatorio",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#elementos-de-dados-críticos-e-dossiê-regulatório"
        },
        {
          "label": "Portal de developers (GET /cde/dossier)",
          "url": "https://beryx.lbostuff.tech/es/developers"
        }
      ]
    }
  ],
  "not_done": [
    {
      "id": "destructive_remediation",
      "title": "Remediación destructiva en las fuentes",
      "why": "Proponemos la corrección y abrimos el pull request; quien la aplica es el cliente. Escribir en las fuentes exigiría credenciales de escritura — la objeción n.º 1 de los equipos de seguridad europeos.",
      "evidence": [
        {
          "label": "Lo que no hacemos, y por qué",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#o-que-não-fazemos-e-porquê"
        },
        {
          "label": "Limpieza y remediación",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#limpeza-e-remediação"
        }
      ]
    },
    {
      "id": "mdm_golden_record",
      "title": "MDM y golden record con escritura",
      "why": "Detectamos duplicados y proponemos la consolidación, pero no mantenemos un registro maestro ni escribimos la versión «ganadora» en las fuentes. Complementamos la herramienta de MDM que ya tenga.",
      "evidence": [
        {
          "label": "Lo que no hacemos, y por qué",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#o-que-não-fazemos-e-porquê"
        },
        {
          "label": "Matching y deduplicación",
          "url": "https://beryx.lbostuff.tech/es/docs/capacidades#matching-e-deduplicação"
        }
      ]
    },
    {
      "id": "multimodal_images",
      "title": "Análisis multimodal de imágenes",
      "why": "Leemos los documentos por su capa de texto. Las imágenes no se procesan, y un PDF escaneado sin texto se marca como pendiente de OCR en lugar de enviarse a un modelo de visión.",
      "evidence": [
        {
          "label": "Lo que no hacemos, y por qué",
          "url": "https://beryx.lbostuff.tech/es/docs/seguranca#o-que-não-fazemos-e-porquê"
        }
      ]
    }
  ]
}
