{
  "product": "BeryX",
  "vendor": "BeryxTech",
  "locale": "pt",
  "updated": "2026-10-12",
  "source": "https://beryx.lbostuff.tech/rfp",
  "capabilities": [
    {
      "id": "profiling",
      "analyst_criterion": "Profiling",
      "name": "Criação de perfis",
      "status": "coberto",
      "status_label": "Coberto",
      "summary": "Descoberta automática e perfil de cada tabela em mais de 15 tipos de fonte — warehouses, bases operacionais, SaaS, ficheiros, documentos e streaming (Kafka e Pub/Sub, ainda por instalar no SaaS). Contagens, nulos, distintos, estatísticas, distribuições e amostras limitadas, com perfil incremental em tabelas grandes.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: criação de perfis",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#profiling"
        },
        {
          "label": "Guia de conectores (lista de fontes)",
          "url": "https://beryx.lbostuff.tech/docs/conectores#resumo"
        },
        {
          "label": "Métodos: profiling profundo e amostragem",
          "url": "https://beryx.lbostuff.tech/docs/metodos#profiling-profundo"
        }
      ]
    },
    {
      "id": "monitoring",
      "analyst_criterion": "Monitoring / observability",
      "name": "Monitorização",
      "status": "coberto",
      "status_label": "Coberto",
      "summary": "Monitores automáticos de atualidade, volume e schema em todas as tabelas da conexão (até 500 por conexão), a partir dos metadados do catálogo e sem configuração; drift e anomalias; motor de regras; SLO por dataset. Alertas em email, Slack, Teams e webhook, com escalas de piquete e um âmbito por canal (domínios, conexões, datasets, tipos de problema).",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: monitorização",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#monitorização"
        },
        {
          "label": "Métodos: monitores automáticos (metadados por fonte e teto por scan)",
          "url": "https://beryx.lbostuff.tech/docs/metodos#monitores-automáticos"
        },
        {
          "label": "Regras de streaming (Kafka, ainda por instalar no SaaS)",
          "url": "https://beryx.lbostuff.tech/docs/conectores#apache-kafka-tópicos-como-datasets"
        },
        {
          "label": "Métodos: anomalias, drift e monitores",
          "url": "https://beryx.lbostuff.tech/docs/metodos#anomalias"
        }
      ]
    },
    {
      "id": "parsing",
      "analyst_criterion": "Parsing / standardization",
      "name": "Parsing e normalização",
      "status": "coberto",
      "status_label": "Coberto",
      "summary": "Tipos semânticos detetados automaticamente (email, NIF, IBAN, código postal, telefone, datas, montantes, nomes, moradas) com regras de validação sugeridas. Telefones, códigos postais, NIF, IBAN e datas em formatos mistos passam à forma canónica. Campos compostos são decompostos por regras de locale PT, ES e EN: moradas (rua, número, andar, código postal, localidade, país), nomes (título, nome, apelidos), telefones com indicativo, NIF e nome na mesma coluna, datas em texto livre e montantes com moeda. Cada coluna mostra a taxa de sucesso na amostra e os formatos que falham. A normalização é proposta em SQL no dialeto da fonte e em PySpark, só de leitura, e aplicada pelo seu processo, também por pull request. Nunca escrevemos nas fontes.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: parsing e normalização",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#parsing-e-normalização"
        },
        {
          "label": "Capacidades: limpeza e remediação por pull request",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#limpeza-e-remediação"
        },
        {
          "label": "Contratos ODCS em CI",
          "url": "https://beryx.lbostuff.tech/docs/ci#1-exportar-o-contrato"
        }
      ]
    },
    {
      "id": "matching",
      "analyst_criterion": "Matching / linking / merging",
      "name": "Matching e deduplicação",
      "status": "coberto",
      "status_label": "Coberto",
      "summary": "Duplicados exatos e aproximados dentro de cada dataset e correspondência entre dois datasets, também de fontes diferentes, como o CRM e o ERP. As regras de correspondência configuram-se por campo: comparador (exato, normalizado, Jaro–Winkler, por palavras, numérico com tolerância ou data com janela), peso e semelhança mínima, com blocking e um limiar de correspondência e outro de revisão. Os clusters entre os dois datasets reveem-se na interface (fundir, ignorar ou repor), e a decisão fica no BeryX, no trilho de auditoria, e vale nas execuções seguintes. As regras de sobrevivência por campo (fonte prioritária, mais recente, mais completo ou mais frequente) dão um registo consolidado proposto, com a origem de cada campo, em SQL e PySpark só de leitura, que pode seguir por pull request para o processo do cliente aprovar. Num benchmark sintético rotulado, as regras sugeridas dão precisão 1,0 e recall 0,85 em 10 000 linhas. Nunca escrevemos nas fontes.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: matching e deduplicação",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#matching-e-deduplicação"
        },
        {
          "label": "Métodos: duplicados exatos e fuzzy",
          "url": "https://beryx.lbostuff.tech/docs/metodos#duplicados"
        },
        {
          "label": "Métodos: correspondência entre datasets",
          "url": "https://beryx.lbostuff.tech/docs/metodos#correspondência-entre-datasets"
        },
        {
          "label": "Métodos: regras configuráveis, clusters e benchmark",
          "url": "https://beryx.lbostuff.tech/docs/metodos#regras-configuráveis-e-clusters-cartão-387"
        }
      ]
    },
    {
      "id": "cleansing",
      "analyst_criterion": "Cleansing",
      "name": "Limpeza de dados",
      "status": "coberto-humano",
      "status_label": "Coberto (com intervenção humana)",
      "summary": "Limpeza com intervenção humana: propomos a correção — SQL e PySpark gerados, com poupança estimada e risco analisado —, abrimos um pull request no repositório do cliente e uma pessoa aprova a aplicação, num fluxo governado (proposto, aceite, aplicado, verificado no scan seguinte). Nunca escrevemos nas fontes sem essa aprovação.",
      "missing": null,
      "positioning": "Propomos SQL/PySpark e PR no repositório; nunca escrevemos na fonte. Pedir credenciais de escrita seria a primeira objeção da sua equipa de segurança.",
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: limpeza e remediação",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#limpeza-e-remediação"
        },
        {
          "label": "Acesso read-only mecânico",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#acesso-read-only-mecânico"
        },
        {
          "label": "Matriz de comparação: correção",
          "url": "https://beryx.lbostuff.tech/comparar#matriz"
        }
      ]
    },
    {
      "id": "enrichment",
      "analyst_criterion": "Enrichment",
      "name": "Enriquecimento",
      "status": "coberto",
      "status_label": "Coberto",
      "summary": "Propomos valores a partir de fontes de referência, cada um com a fonte, a data da consulta e a confiança: a localidade, o concelho e o distrito pelo código postal português (GeoAPI.pt, com dados dos CTT e do INE), a localidade pelo código postal espanhol (Nominatim do OpenStreetMap, que recebe só o código postal), as coordenadas pela morada (na sua própria instância Nominatim, a única que recebe moradas), o nome e a morada registados de uma empresa pelo NIF de pessoa coletiva (VIES da Comissão Europeia) e os códigos ISO de país e de moeda (listas locais). Cada proposta dá a cobertura na amostra e sai em SQL no dialeto da fonte e em PySpark: uma contagem só de leitura e um UPDATE proposto, ou um SELECT com os valores propostos, que o seu processo aplica por pull request ou SQL depois de aprovar a sugestão. Cada fornecedor externo recebe só o campo a enriquecer, depois de um administrador o autorizar no workspace; a sua instância Nominatim autoriza-se com o URL e com uma confirmação própria de dados pessoais. Nunca escrevemos nas fontes.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: enriquecimento",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#enriquecimento"
        },
        {
          "label": "Segurança: o que sai para cada fornecedor de referência",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#enriquecimento-proposto-o-que-sai-para-cada-fornecedor"
        },
        {
          "label": "Capacidades: limpeza e remediação por pull request",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#limpeza-e-remediação"
        }
      ]
    },
    {
      "id": "metadata",
      "analyst_criterion": "Metadata management",
      "name": "Gestão de metadados",
      "status": "coberto",
      "status_label": "Coberto",
      "summary": "Catálogo automático com domínios; linhagem por chaves estrangeiras, SQL das views ao nível da coluna, manifest do dbt e OpenLineage; sensibilidade por coluna e README por dataset aprovado por um humano. Glossário de negócio nativo: termos com definição, sinónimos, owner, domínio e estado (rascunho, aprovado ou depreciado), ligados a colunas e datasets. As ligações sugeridas pelo nome, pelos sinónimos, pelo tipo semântico e pelas descrições do dbt nascem sempre como proposta, e só uma pessoa as aprova. Cada dataset pode ter owner (herdado do domínio quando está vazio) e steward, e tags por dataset e por coluna, livres ou de uma lista controlada do workspace. As alterações de owner, steward e tags, a sensibilidade posta à mão, as ligações de termos a colunas e as edições dos termos ficam no histórico (o quê, quem, quando, antes e depois), com diff entre duas datas. O histórico começa na versão que o introduziu: as alterações anteriores não foram convertidas, e a criação de termos, as sugestões automáticas e o que o datavault.yaml aplica ainda não entram. O dicionário de dados exporta-se por dataset, domínio ou workspace em CSV, JSON e Markdown, com descrições, tipos, sensibilidade, termos, tags, owner, steward, regras e SLA. Também se exporta em ficheiros para carregar no OpenMetadata (um pedido de criação de tabela por dataset; o owner, o SLA e as regras vão à parte, porque o pedido não os aceita) e no DataHub (MCPs para o datahub ingest). É um ficheiro para o seu processo carregar: não o enviamos. A pesquisa transversal encontra datasets, colunas, termos, tags e owners e respeita os domínios restritos. O owner, as tags, o histórico, o dicionário e a pesquisa usam-se pela API: ainda não têm página na app. Os veredictos de qualidade publicam-se no OpenMetadata, no DataHub e no Collibra (Import API v2, validado com transporte simulado; validação em tenant do cliente pendente).",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: gestão de metadados",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#gestão-de-metadados"
        },
        {
          "label": "OpenLineage (emitir e consumir)",
          "url": "https://beryx.lbostuff.tech/docs/openlineage#consumir-o-lineage-do-cliente-no-grafo-do-beryx-cartão-130"
        },
        {
          "label": "Catálogo externo: OpenMetadata e DataHub",
          "url": "https://beryx.lbostuff.tech/docs/catalogo-externo#o-que-aparece-no-openmetadata"
        },
        {
          "label": "Catálogo externo: Collibra (Import API v2, validado com transporte simulado; validação em tenant do cliente pendente)",
          "url": "https://beryx.lbostuff.tech/docs/catalogo-externo#collibra-catsync-v3"
        }
      ]
    },
    {
      "id": "orchestration",
      "analyst_criterion": "Workflow / orchestration",
      "name": "Orquestração e fluxo de trabalho",
      "status": "coberto",
      "status_label": "Coberto",
      "summary": "Webhook do dbt Cloud e pacote Airflow com gate de qualidade; gate de regras e data-diff em CI; servidor MCP para agentes; configuração do workspace como código; fluxo de problemas com responsáveis, escalas e agendamentos. Validação no ponto de entrada, só de leitura: o integrador ou a pipeline mandam até 5 000 registos por pedido à API antes de os escrever e recebem o veredito de cada um com as regras que o BeryX já monitoriza no dataset (campos obrigatórios, padrões, intervalos, NIF, NISS e IBAN com dígito de controlo, listas de referência ISO e do workspace), o código do motivo de cada falha e o veredito do lote. Nada é guardado nem enviado a um LLM e a fonte não é lida: rejeitar ou pôr em quarentena fica do lado do cliente. As regras que medem o dataset inteiro (unicidade, atualidade, volume) vêm marcadas como não aplicáveis.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: orquestração",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#orquestração-e-fluxo-de-trabalho"
        },
        {
          "label": "dbt Cloud e Airflow",
          "url": "https://beryx.lbostuff.tech/docs/orquestradores#2-airflow--pacote-beryx-airflow"
        },
        {
          "label": "Gate de regras em CI",
          "url": "https://beryx.lbostuff.tech/docs/ci#gate-de-regras-em-ci-cigate-radar-vaga-3"
        },
        {
          "label": "Servidor MCP",
          "url": "https://beryx.lbostuff.tech/docs/mcp#tools-disponíveis"
        },
        {
          "label": "Portal de developers (API, incluindo POST /datasets/{id}/validate)",
          "url": "https://beryx.lbostuff.tech/developers"
        }
      ]
    },
    {
      "id": "business_ux",
      "analyst_criterion": "Business-user experience",
      "name": "Experiência para utilizadores de negócio",
      "status": "coberto",
      "status_label": "Coberto",
      "summary": "Relatórios por perfil (engenharia, gestão, executivo) com impacto em euros, em PDF, agendáveis e partilháveis; assistente em linguagem natural; primeiro scan ao vivo; interface em português, inglês e espanhol.",
      "missing": null,
      "positioning": null,
      "planned": null,
      "evidence": [
        {
          "label": "Capacidades: utilizadores de negócio",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#experiência-para-utilizadores-de-negócio"
        },
        {
          "label": "Página de produto",
          "url": "https://beryx.lbostuff.tech/"
        },
        {
          "label": "Novidades semanais (changelog)",
          "url": "https://beryx.lbostuff.tech/changelog"
        }
      ]
    }
  ],
  "security": [
    {
      "id": "read_only",
      "question": "O BeryX escreve nas nossas fontes de dados?",
      "answer": "Não. A garantia está no código, não só nas permissões: o cliente HTTP dos conectores recusa qualquer verbo de escrita antes de sair para a rede, nenhum conector pode ter um método de escrita, e as sessões PostgreSQL abrem em modo só de leitura.",
      "evidence": [
        {
          "label": "Acesso read-only mecânico",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#acesso-read-only-mecânico"
        }
      ]
    },
    {
      "id": "credentials",
      "question": "Como são guardadas as credenciais das nossas fontes?",
      "answer": "Cifradas com Fernet antes de serem gravadas, nunca devolvidas pela API nem escritas em logs. As chaves rodam sem interrupção: várias chaves ativas, a primeira cifra e todas decifram, e um script re-cifra tudo com a chave nova.",
      "evidence": [
        {
          "label": "Credenciais cifradas e rotação de chaves",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#credenciais-cifradas-e-rotação-de-chaves"
        }
      ]
    },
    {
      "id": "ssrf",
      "question": "Um URL de ligação malicioso pode ser usado para chegar à vossa rede interna (SSRF)?",
      "answer": "Não. Só aceitamos https, recusamos hosts que resolvam para endereços internos e fixamos o IP validado na ligação (pinning de DNS), repetindo a validação em cada redirect — o que fecha também o DNS rebinding.",
      "evidence": [
        {
          "label": "Proteção anti-SSRF com pinning de DNS",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#proteção-anti-ssrf-com-pinning-de-dns"
        }
      ]
    },
    {
      "id": "gdpr",
      "question": "Podemos exportar e apagar os nossos dados sem pedir ao suporte?",
      "answer": "Sim. Os administradores exportam os dados do workspace e apagam-no em cascata, e cada utilizador apaga a própria conta — tudo na aplicação e na API.",
      "evidence": [
        {
          "label": "RGPD: exportação e eliminação",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#rgpd-exportação-e-eliminação-self-service"
        },
        {
          "label": "Política de privacidade",
          "url": "https://beryx.lbostuff.tech/privacidade"
        }
      ]
    },
    {
      "id": "ai_label",
      "question": "Como identificam o conteúdo gerado por IA?",
      "answer": "Todo o conteúdo produzido com um modelo leva um rodapé que o identifica, com o modelo e o fornecedor que de facto responderam, nos termos do art. 50.º do Regulamento (UE) 2024/1689. Exportamos também o dossiê de evidência do art. 10.º.",
      "evidence": [
        {
          "label": "Rotulagem de conteúdo de IA",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#rotulagem-de-conteúdo-de-ia-art-50º-do-ai-act"
        }
      ]
    },
    {
      "id": "byok",
      "question": "Podemos usar a nossa chave ou o Claude da nossa conta cloud?",
      "answer": "Sim. Chave Anthropic própria por workspace, política de IA (incluindo «IA desligada») e, no plano Enterprise, Claude na sua conta AWS (Bedrock, regiões da UE) ou Google Cloud (Vertex AI, regiões europeias), sem a BeryxTech guardar segredos dessa rota.",
      "evidence": [
        {
          "label": "Os teus modelos",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#os-teus-modelos-chave-própria-amazon-bedrock-e-vertex-ai"
        },
        {
          "label": "Onboarding Amazon Bedrock",
          "url": "https://beryx.lbostuff.tech/docs/byok-bedrock#como-funciona"
        },
        {
          "label": "Onboarding Vertex AI",
          "url": "https://beryx.lbostuff.tech/docs/byok-vertex#como-funciona"
        }
      ]
    },
    {
      "id": "anonymization",
      "question": "Que dados nossos chegam a um modelo de linguagem?",
      "answer": "Por omissão, só a Anthropic recebe dados de clientes, em amostras limitadas. As amostras podem ser anonimizadas antes de sair (NIF, NISS, IBAN, telefone, nomes), e um fornecedor alternativo nunca recebe amostras em bruto.",
      "evidence": [
        {
          "label": "Anonimização antes do LLM",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#anonimização-antes-do-llm"
        }
      ]
    },
    {
      "id": "certifications",
      "question": "Têm certificação ISO 27001 ou relatório SOC 2?",
      "answer": "Ainda não. Estão em programa, com base nos controlos descritos nesta página. Até lá, respondemos com a evidência técnica de cada controlo — não com selos que não temos.",
      "evidence": [
        {
          "label": "Certificações: ISO 27001 e SOC 2",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#certificações-iso-27001-e-soc-2"
        },
        {
          "label": "Registo de auditoria",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#registo-de-auditoria"
        }
      ]
    },
    {
      "id": "identity",
      "question": "Suportam SSO, MFA e aprovisionamento SCIM?",
      "answer": "SSO por OIDC com o fornecedor de identidade do cliente (Entra ID, Google Workspace, Keycloak e outros), com papéis por workspace, equipas e registo de auditoria exportável em CSV. As contas com password têm MFA por TOTP (app autenticadora), com códigos de recuperação de uso único: é obrigatória para os administradores da organização e para o staff da BeryxTech, e o administrador do workspace pode exigi-la a todos os membros. As contas SSO usam a MFA do seu fornecedor de identidade. O suporte da BeryxTech só entra num workspace com o consentimento de um administrador do cliente, em modo de leitura e por 72 horas no máximo, e cada acesso fica no registo de auditoria. Ainda não temos aprovisionamento SCIM.",
      "evidence": [
        {
          "label": "Controlo de acessos e MFA",
          "url": "https://beryx.lbostuff.tech/seguranca#access"
        },
        {
          "label": "Registo de auditoria",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#registo-de-auditoria"
        }
      ]
    },
    {
      "id": "sla",
      "question": "Têm SLA de disponibilidade e de suporte?",
      "answer": "Ainda não em contrato. O SLA só passa a contrato depois de um trimestre de disponibilidade medida e de uma política de suporte por severidade, ainda em definição. Hoje: backups diários com recuperação para um ponto no tempo (7 dias), verificados em cada deploy, e o produto continua a funcionar em modo offline se a IA falhar. Os prazos de 7, 30 e 90 dias da nossa política de vulnerabilidades são para corrigir falhas de segurança, não um SLA de suporte.",
      "evidence": [
        {
          "label": "Backups e recuperação",
          "url": "https://beryx.lbostuff.tech/seguranca#backups"
        }
      ]
    },
    {
      "id": "accessibility",
      "question": "Cumprem o WCAG 2.2 AA e a EN 301 549? Têm VPAT ou ACR?",
      "answer": "Parcialmente, e o ACR está disponível. O relatório de conformidade de acessibilidade (baseado no VPAT® 2.5) avalia os 55 critérios WCAG 2.2 de nível A e AA na app e no site, com a cláusula EN 301 549 de cada um, e diz o que ainda falta e onde. O lint de acessibilidade, o axe e o contraste dos tokens correm no CI. É uma auto-avaliação, não uma auditoria externa.",
      "evidence": [
        {
          "label": "ACR WCAG 2.2: resumo por estado",
          "url": "https://beryx.lbostuff.tech/docs/acessibilidade#resumo"
        },
        {
          "label": "ACR: os 55 critérios",
          "url": "https://beryx.lbostuff.tech/docs/acessibilidade#critérios-wcag-22-a-e-aa"
        },
        {
          "label": "ACR: lacunas conhecidas e plano",
          "url": "https://beryx.lbostuff.tech/docs/acessibilidade#lacunas-conhecidas-e-plano"
        }
      ]
    },
    {
      "id": "regulatory_dossier",
      "question": "Conseguem provar, por elemento de dados crítico, que os requisitos de qualidade do BCBS 239 ou da Solvência II estão controlados?",
      "answer": "Em parte, e dizemos onde não. Cada dataset ou coluna pode ser marcado como elemento de dados crítico do BCBS 239, da Solvência II ou de outra regulação, com owner e referência. O dossiê regulatório mostra, por princípio do BCBS 239 (3 a 6) ou por número do art. 19.º do Regulamento Delegado (UE) 2015/35, os controlos de qualidade de cada elemento, o último resultado de cada regra, os problemas abertos, o SLA, a linhagem e o contrato de dados, e aponta as lacunas. Exporta-se em CSV e PDF e partilha-se por link. A exatidão e a integridade ainda aparecem como lacuna em todos os elementos, porque nenhum tipo de regra do BeryX as mede hoje. A interface do dossiê ainda não existe: por agora usa-se pela API e pelos relatórios. O dossiê é evidência para o supervisor, não uma declaração de conformidade.",
      "evidence": [
        {
          "label": "Capacidades: elementos de dados críticos e dossiê regulatório",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#elementos-de-dados-críticos-e-dossiê-regulatório"
        },
        {
          "label": "Portal de developers (GET /cde/dossier)",
          "url": "https://beryx.lbostuff.tech/developers"
        }
      ]
    }
  ],
  "not_done": [
    {
      "id": "destructive_remediation",
      "title": "Remediação destrutiva nas fontes",
      "why": "Propomos a correção e abrimos o pull request; quem aplica é o cliente. Escrever nas fontes exigiria credenciais de escrita — a objeção n.º 1 das equipas de segurança europeias.",
      "evidence": [
        {
          "label": "O que não fazemos, e porquê",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#o-que-não-fazemos-e-porquê"
        },
        {
          "label": "Limpeza e remediação",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#limpeza-e-remediação"
        }
      ]
    },
    {
      "id": "mdm_golden_record",
      "title": "MDM e golden record com escrita",
      "why": "Detetamos duplicados e propomos a consolidação, mas não mantemos um registo-mestre nem escrevemos a versão «vencedora» nas fontes. Complementamos a ferramenta de MDM que já tenha.",
      "evidence": [
        {
          "label": "O que não fazemos, e porquê",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#o-que-não-fazemos-e-porquê"
        },
        {
          "label": "Matching e deduplicação",
          "url": "https://beryx.lbostuff.tech/docs/capacidades#matching-e-deduplicação"
        }
      ]
    },
    {
      "id": "multimodal_images",
      "title": "Análise multimodal de imagens",
      "why": "Lemos os documentos pela camada de texto. Imagens não são processadas, e um PDF digitalizado sem texto é assinalado como a precisar de OCR em vez de ser enviado a um modelo de visão.",
      "evidence": [
        {
          "label": "O que não fazemos, e porquê",
          "url": "https://beryx.lbostuff.tech/docs/seguranca#o-que-não-fazemos-e-porquê"
        }
      ]
    }
  ]
}
