Permissionamento
RBAC das integrações, com papéis, matriz de ação por papel e isolamento por empresa.
Permissionamento
Esta página consolida o controle de acesso (RBAC) das integrações da Onvox AI. Ela vale tanto para o Google Meet quanto para o Yeastar, com as ressalvas de cada um.
Papéis
| Papel | Alcance |
|---|---|
| super_admin | Operação/suporte da plataforma. Age em qualquer empresa (cross-tenant). |
| admin_company | Dono/gestor da própria empresa. Configura tudo da sua empresa. |
| supervisor | Gestão de time: vê e atribui; configura a integração da própria empresa (auto-serviço), exceto as tags da empresa e o app OAuth do Meet. |
| salesperson (vendedor) | Usa a própria conta; configura a integração da própria empresa (auto-serviço), mas não vê pendentes nem atribui. |
Alinhamento de RBAC
Modelo: auto-serviço por empresa. A configuração das integrações (salvar credenciais,
configurar coleta, "coletar agora") é auto-serviço: qualquer papel do tenant
(admin_company, supervisor e vendedor) pode fazê-la na PRÓPRIA empresa
(canManageIntegrations). O super_admin age em qualquer empresa (cross-tenant). As
únicas restrições extras são:
- Tags da empresa (Config 2: Yeastar): só admin_company + super_admin criam/editam
(
canEditCompanyTags). - Ver status da própria conexão: aberto a qualquer papel do tenant, inclusive
vendedor (
canManageIntegrations, o mesmo gate da configuração; a tela de conexão precisa que quem configura também veja o status). - Pendentes / atribuir / Coletas agendadas / Correlações de vendedores: isso sim
exige supervisor+ (o vendedor não vê, por requerer
canViewIntegrationsde gestão de time). - App OAuth do Meet: o app global é exclusivo do super_admin; o app próprio do tenant (cadastrar/remover) é do admin_company + super_admin. Conectar a própria conta é self-service (admin_company e vendedor; supervisor não).
- Saúde das contas Google e "Tentar de novo agora" (Meet): só admin_company + super_admin.
Ou seja, para a config e pro status o modelo é aberto na própria empresa; o que estreita é gestão de time (pendentes/atribuir/coletas agendadas/correlações, supervisor+) e as tags da empresa, o app OAuth próprio e a saúde das contas Google (admin+super).
Matriz: ação × papel
| Ação | super_admin | admin_company | supervisor | salesperson |
|---|---|---|---|---|
| Selecionar empresa (tenant) | ✅ (qualquer) | própria | própria | - |
| Ver status das integrações | ✅ | ✅ | ✅ | ✅ |
| App OAuth global (Meet, plataforma) | ✅ | ❌ | ❌ | ❌ |
| App OAuth próprio do tenant: cadastrar (Meet) | ✅ | ✅ | ❌ | ❌ |
| Remover app próprio (Meet; a empresa volta ao app global) | ✅ | ✅ | ❌ | ❌ |
| Ver saúde das contas Google (Meet) | ✅ | ✅ | ❌ | ❌ |
| Tentar de novo agora (Meet; libera uma conta parada) | ✅ | ✅ | ❌ | ❌ |
| Conectar a PRÓPRIA conta Google (Meet, self-service) | - | ✅ | ❌ | ✅ |
| Apagar o auth de um usuário (Meet) | ✅ | ❌ | ❌ | ❌ |
| Salvar credenciais / ativar-desativar (Yeastar) | ✅ | ✅ | ✅ | ✅ |
| Configurar coleta (escopo, opt-in, blacklist, modos, duração) | ✅ | ✅ | ✅ | ✅ |
| Criar/editar tags da empresa (Config 2: Yeastar) | ✅ | ✅ | ❌ | ❌ |
| Definir a própria tag de coleta (self-service: Yeastar) | - | ✅ | ✅ | ✅ |
| Coletar agora | ✅ | ✅ | ✅ | ✅ |
Espaços monitorados (CRUD, canManageIntegrations) | ✅ | ✅ | ✅ | ✅ |
Coletas agendadas (CRUD, canViewIntegrations, gestão de time) | ✅ | ✅ | ✅ | ❌ |
Correlações de vendedores (CRUD, canViewIntegrations, gestão de time) | ✅ | ✅ | ✅ | ❌ |
| Ver análises pendentes | ✅ | ✅ | ✅ | ❌ |
| Atribuir análise pendente | ✅ | ✅ | ✅ | ❌ |
✅ = na própria empresa (super_admin = qualquer empresa). ❌ = negado. - = não se
aplica. A configuração é auto-serviço (todos os papéis do tenant, na própria empresa);
o que estreita é ver/atribuir (supervisor+) e as tags da empresa, o app OAuth próprio
e a saúde das contas Google (admin+super).
Detalhes por caso
Google Meet: OAuth
- App OAuth global (o padrão da plataforma): só super_admin, via menu/UI.
- App OAuth próprio do tenant (substitui o global só naquela empresa): admin_company + super_admin cadastram e removem. Ao remover, a empresa volta ao app global e as contas conectadas pelo app próprio precisam reconectar.
- Conectar a própria conta: admin_company e vendedor SIM; supervisor NÃO. Inclui desconectar/reconectar (auto-correção).
- Apagar a conexão de outro usuário: exclusivo do super_admin (suporte).
Yeastar: credenciais, coleta e tags
- Credenciais e configuração de coleta (incluindo opt-in/blacklist/modos): qualquer papel do tenant na própria empresa (auto-serviço) + super_admin (cross-tenant).
- Tags da empresa (Config 2): admin_company + super_admin. É um gate extra de papel: supervisor e vendedor não alteram as tags da empresa (a única restrição extra na configuração).
- Tag pessoal de coleta: qualquer papel define a sua (self-service, edita apenas o próprio usuário), com escopo do próprio ramal.
Isolamento por empresa (multi-tenant)
Toda operação é escopada por company_id. Não-super_admin sempre opera na própria
empresa, o companyId do input é ignorado para eles (sem escalonamento entre
tenants). O super_admin bypassa por design (cross-tenant), selecionando a empresa no topo.
Webhooks de ENTRADA não usam papel
Os webhooks de entrada (Yeastar/Google chamando a Onvox AI) não dependem de papel de
usuário: autenticam por assinatura HMAC / state cifrado e resolvem o tenant pela
integration_config.
Isso é diferente dos webhooks de SAÍDA (a Onvox AI notificando o SEU sistema quando uma
análise é concluída, pelos gatilhos escolhidos em cada destino: Nova Análise, API
externa e/ou coleta de integração; o padrão é Nova Análise + API externa). Na criação,
o role do destino só aceita papel de administrador (admin_company ou
super_admin), então o payload vem completo, com as análises da empresa inteira; para separar por pessoa,
o sistema que recebe roteia pelos campos salespersonId, salespersonName,
externalOwnerId e externalCallId. Configurar quem PODE cadastrar esse destino segue o mesmo gate de API Keys
(admin_company + super_admin). Ver Webhooks.
Sincronização e recuperação da coleta
Como a coleta do Google Meet e do PABX Onvox roda, o que acontece quando ela para, o que é recuperado sozinho depois e como desbloquear uma conta.
Nova Análise a partir de integrações
Gere análises sob demanda a partir do Yeastar ou do Google Meet. Escolha a integração, filtre, pagine a janela recente e gere o dossiê.