Capacidades
- Knowledge. O texto de arquivos PDF, Word (
.docx), Excel (.xlsx), PowerPoint (.pptx), CSV, Markdown e HTML é enviado como documento, com nome, caminho da pasta e link para abrir o arquivo no Drive. - Permissão da fonte. O compartilhamento de cada arquivo é lido no Drive e guardado junto com o documento. No modo “Espelhar a fonte”, cada pessoa encontra nas buscas só os arquivos que ela pode abrir no Drive.
- Drives compartilhados. Pastas dentro de um drive compartilhado são lidas da mesma forma que pastas de um Meu Drive.
Recursos disponíveis
Permissões (ACL)
O conector lê a permissão de cada item na fonte e a guarda junto com o dado. Em Comportamento dos dados, você escolhe entre dois modos:
No modo “Espelhar a fonte”, com Exigir login na fonte como prova de identidade marcado, cada usuário precisa vincular a própria conta de Google Drive antes de ver o conteúdo. Sem essa opção, a Strattum assume que a pessoa usa no Google o mesmo e-mail que usa na Strattum.
Como a fonte define acesso
No Google Drive, cada arquivo tem a própria lista de compartilhamento. Um arquivo pode ser compartilhado com uma pessoa, com um Grupo do Google, com todo um domínio do Google Workspace ou com qualquer pessoa que tenha o link.Como a Strattum traduz o acesso
Para cada arquivo, o conector lê a lista de compartilhamento e grava os leitores assim:
O domínio da sua empresa é o do Admin do Workspace impersonado. Sem esse campo, todo arquivo compartilhado com um domínio fica sem leitor.
Os membros de cada grupo são lidos à parte, no Google Workspace, com o admin impersonado. Assim, quem está num grupo com acesso ao arquivo encontra o arquivo.
A regra é tudo ou nada por arquivo. Se um único compartilhamento do arquivo não pode ser traduzido, a lista inteira é descartada e o arquivo não entra no Knowledge. Por exemplo: um relatório compartilhado com três pessoas e também com “qualquer pessoa com o link” não é indexado.
No vínculo de conta, a pessoa entra com a conta Google. A Strattum confere que o e-mail é verificado e que a conta pertence ao mesmo domínio do Google Workspace do admin impersonado. Uma conta Gmail pessoal não vincula.
Quando a identidade não é encontrada
No modo “Espelhar a fonte”, quem não casa com nenhum leitor do arquivo não o encontra nas buscas. Isso acontece quando o e-mail da pessoa na Strattum é diferente do e-mail no Google e ela não vinculou a conta, ou quando os membros do grupo não puderam ser lidos. O arquivo continua visível para os outros leitores. Um arquivo sem nenhum leitor não é indexado em nenhum dos dois modos, inclusive em “Aberto”. Ele é registrado como não indexado, com o motivo “Permissões não puderam ser resolvidas com segurança”.Quando a permissão é atualizada
A lista de compartilhamento é lida no mesmo sync em que o arquivo é lido. Numa sincronização incremental, o conector só relê arquivos cuja data de modificação no Drive mudou desde a última execução. Se o compartilhamento muda e a data de modificação não, o documento mantém a permissão antiga até o arquivo ser editado ou até a próxima sincronização completa. Os membros dos grupos são relidos por uma rotina própria, a cada 10 minutos por padrão. Se um grupo não pode ser lido, a rotina não grava nada naquela rodada e mantém a última lista conhecida.Pré-requisitos
- Um projeto no Google Cloud com a Google Drive API habilitada.
- Uma Service Account nesse projeto e uma chave JSON dela.
- Acesso da Service Account às pastas, com papel Editor. Com papel Leitor, o Drive recusa a leitura do compartilhamento (
403), e os arquivos da pasta não entram no Knowledge. - Para ler compartilhamentos com o domínio, os membros de grupos e o vínculo de conta: um administrador do Google Workspace para impersonar e um super administrador para autorizar a delegação em todo o domínio.
- Para o modo “Espelhar a fonte” com vínculo de conta: um cliente OAuth do Google, de onde saem o Client ID e o Client Secret.
Autenticação e escopos
O conector se autentica com a chave JSON de uma Service Account. Todos os escopos são de leitura.
Com o Admin do Workspace impersonado preenchido, todas as chamadas ao Drive são feitas em nome desse admin. Nesse caso, autorize os dois primeiros escopos na delegação em todo o domínio.
1
Habilite a Google Drive API
No Google Cloud Console, acesse APIs & Services > Library, pesquise
Google Drive API e clique em Enable. Se você vai usar grupos, habilite também a Admin SDK API.2
Crie a Service Account
Acesse IAM & Admin > Service Accounts e clique em Create Service Account. Dê um nome, como
strattum-drive-reader. Não é preciso atribuir papéis do IAM.3
Gere a chave JSON
Clique no e-mail da Service Account, abra a aba Keys, clique em Add key > Create new key, escolha JSON e clique em Create. O arquivo é baixado uma única vez. Se a criação for bloqueada pela política
iam.disableServiceAccountKeyCreation, um administrador da organização no Google Cloud precisa liberar o projeto.4
Compartilhe as pastas
No Google Drive, compartilhe cada pasta com o e-mail da Service Account (formato
nome@projeto.iam.gserviceaccount.com), com papel Editor. Copie o ID de cada pasta: é o trecho da URL depois de folders/.5
Autorize a delegação em todo o domínio
Opcional, para domínio, grupos e vínculo. No Admin Console do Google Workspace, como super administrador, acesse Security > Access and data control > API controls > Manage Domain Wide Delegation e clique em Add new. Informe o Client ID da Service Account e os escopos
drive.readonly e admin.directory.group.member.readonly da tabela acima.Configuração no Console
1
Preencha a conexão
Nome do Conector (Opcional): um nome para identificar esta instância.Service Account JSON (Obrigatório): cole o conteúdo do arquivo JSON ou clique em Carregar arquivo. O Console confere se o JSON é de uma Service Account.Admin do Workspace impersonado (opcional) (Opcional): o e-mail de um administrador do Google Workspace, como
admin@suaempresa.com. Ele define o domínio da instância e é necessário para compartilhamentos com o domínio, membros de grupos e vínculo de conta.Clique em Testar Conexão. O Console só avança depois de um teste bem-sucedido. O teste confere a chave da Service Account. As pastas são conferidas na primeira sincronização.2
Selecione as pastas
Pastas do Drive (Obrigatório): os IDs das pastas, separados por vírgula. As subpastas entram automaticamente. O Console aceita salvar sem pastas, mas a sincronização fica aguardando configuração até existir pelo menos uma.
3
Defina a frequência
Frequência de Sincronização (Obrigatório): o recomendado é A cada 6h (recomendado). Também há opções prontas, de 10 minutos a semanal, e Personalizado, para informar uma Expressão Cron. Os horários são em UTC.
4
Configure acesso e visibilidade
Quem pode usar este conector (Obrigatório): “Todos os usuários” ou “Apenas times específicos”. Na segunda opção, selecione os Times com acesso.Comportamento dos dados (Obrigatório): “Aberto” ou “Espelhar a fonte”.Exigir login na fonte como prova de identidade (Quando selecionado “Espelhar a fonte”): marque para que cada usuário vincule a conta Google.URL de autenticação, Client ID e Client Secret (Quando selecionado o login na fonte, obrigatórios): os dados do cliente OAuth. No Google, a URL é sempre
https://accounts.google.com/o/oauth2/v2/auth.Escopos (Opcional): o conector pede openid email quando o campo fica vazio.Como a sincronização funciona
O agendamento recomendado roda a cada 6 horas. A cada execução, o conector confere cada pasta configurada antes de ler. A sincronização para com erro se uma pasta não está acessível para a Service Account, está na lixeira, é um atalho ou é um arquivo, ou se todas as pastas estão vazias. Leitura. O conector percorre cada pasta e as subpastas, 100 itens por página. A primeira execução lê tudo. As seguintes leem só os arquivos com data de modificação no Drive (modifiedTime) posterior à última execução.
Cada arquivo. O conector baixa o arquivo, extrai o texto e lê o compartilhamento. Um arquivo fica fora do Knowledge quando:
- o formato não é suportado;
- tem mais de 50 MB;
- o texto não pôde ser extraído, como num PDF protegido por senha;
- não tem texto, como num PDF escaneado;
- o compartilhamento não pôde ser traduzido (veja “Permissões”).
API da fonte
O conector usa a Google Drive API v3 pela biblioteca oficial do Google, e a Admin SDK Directory API para os membros de grupos.
Rate limits. Limite da API: o Drive conta cotas em unidades, 1.000.000 por minuto por projeto e 325.000 por minuto por usuário. Uma listagem custa 100 unidades, uma leitura de metadados 5 e um download 200. Estourar a cota devolve
403 (“User rate limit exceeded”) ou 429 (documentação).
Comportamento do conector: as chamadas são feitas uma de cada vez, e o conector não repete a chamada que recebe 403 ou 429. A falha interrompe a leitura, e a plataforma refaz a extração inteira até 3 vezes, depois de 1, 2 e 4 minutos. A leitura do compartilhamento que falha não é repetida: o arquivo fica sem leitor naquela execução e volta a ser tentado nas seguintes, até 3 vezes.
Referência oficial: https://developers.google.com/workspace/drive/api/reference/rest/v3
Limitações conhecidas
- Arquivos nativos do Google (Documentos, Planilhas e Apresentações Google) não são lidos. Só entram arquivos enviados ao Drive em PDF, Word, Excel, PowerPoint, CSV, Markdown ou HTML.
- O formato Word antigo (
.doc) não é suportado. - PDF escaneado (só imagem) não tem texto extraído, porque não há OCR.
- PDF protegido por senha não é lido.
- Em arquivos Word, cabeçalhos, rodapés e caixas de texto não são extraídos. Em PowerPoint, imagens e vídeos não são extraídos. Em Excel, fórmulas sem valor calculado salvo ficam vazias.
- Arquivos com mais de 50 MB não são lidos.
- Arquivo compartilhado com “qualquer pessoa com o link” ou com outro domínio não é indexado, mesmo que também esteja compartilhado com pessoas da empresa.
- Se a Service Account só tem papel Leitor, o Drive não entrega o compartilhamento e os arquivos não são indexados. Para arquivos em Meu Drive, o papel Editor na pasta é o caminho suportado hoje.
- Uma mudança de compartilhamento que não altera a data de modificação do arquivo no Drive só chega ao Knowledge quando o arquivo for editado ou na próxima sincronização completa.
- Arquivo apagado no Drive continua no Knowledge até uma sincronização completa.
- Pelo Console, a seleção é só por pasta. Não há como escolher arquivos avulsos.
- Pessoas e grupos são identificados pelo e-mail. Se um admin troca o e-mail de uma pessoa ou de um grupo no Workspace, o acesso antigo deixa de casar até a próxima leitura do arquivo.
- Uma pasta configurada precisa ser acessível pela Service Account. Pastas compartilhadas só por link não são lidas.
Troubleshooting
Próximos passos
Knowledge
Veja como buscar nos documentos que o conector envia.
Data Catalog
Conheça os outros conectores que alimentam o catálogo com tabelas.
Desenvolvimento local
Desenvolvimento local
No ambiente local, as credenciais do conector também são cadastradas pelo Console (veja Desenvolvimento local). A chave fica no cofre de credenciais da instância, e não no
.env.Ao executar a classe do conector direto, fora do Console, a chave pode vir destas variáveis: