Ir para o conteúdo

Transforme as suas conexões em um bônus de fim de ano com o nosso novo Programa de Indicação de Clientes! Saiba mais

Esta documentação é para a versão 4 e posterior do App Builder, o novo nome do Vinyl. Acesse a documentação do Vinyl aqui.

Alcance no Jitterbit App Builder

Reach é a implementação do Row-level Security (RLS) do App Builder. Reach permite que desenvolvedores de aplicativos restrinjam quais linhas estão disponíveis para cada usuário.

Muitos Relational Database Management Systems (RDBMS) oferecem suporte nativo para RLS. O Reach não é uma abstração para essas ofertas nativas. Em vez disso, o Reach é implementado pelo mecanismo de negócios do App Builder. Como resultado, o Reach é independente do banco de dados.

Casos de uso

Casos de uso comuns para Reach incluem:

  • Atribuição - Os vendedores só podem gerenciar leads atribuídos diretamente a eles.
  • Unidades organizacionais - O Reach pode restringir o acesso dos funcionários aos dados por região geográfica ou divisão.
  • Multilocação - Se um aplicativo oferece suporte a vários clientes, o Reach pode limitar o acesso do cliente ao seu segmento dos dados.

Conceitos

O Reach é composto pelos seguintes conceitos principais:

  • Reach Rule
  • Reach Token
  • Reach Registration

Regra de alcance

Uma Regra de Alcance é um tipo de regra de negócios como uma regra Padrão ou de Validação. Assim como todas as regras de negócios, as Regras de Alcance são fundamentalmente consultas mvSQL.

A Regra de Alcance determina quais segmentos dos dados um usuário pode acessar. Em muitos casos, uma Regra de Alcance utilizará o who() ou session() Funções mvSQL para correlacionar o usuário atual com os dados que ele pode acessar.

Token de alcance

Cada Reach Rule seleciona uma e somente uma coluna designada como Reach Token. Esta coluna é identificada pelo tipo de uso da coluna "Reach Token".

O Reach Token identifica segmentos dos dados acessíveis ao usuário. Uma Reach Rule pode retornar várias linhas, cada linha identificando um segmento diferente. Se a regra não retornar nenhuma linha, o usuário não terá acesso a nenhum dado.

Por motivos de desempenho, o Reach Token geralmente identifica um segmento de linhas, não linhas individuais. Por exemplo, um Reach Token pode identificar uma região geográfica. Um gerente de vendas só poderá gerar relatórios para clientes dentro de sua região.

Normalmente, um Reach Token não identificaria clientes individuais. No entanto, há exceções. Ao construir um sistema multitenant, o Reach Token pode identificar a própria linha de cliente do usuário. Neste cenário, o cliente é o segmento.

Alcance o registro

Os desenvolvedores devem registrar explicitamente uma Regra de Alcance em um objeto de dados. Um objeto de dados pode ter vários registros. Nesse caso, a interseção dessas Regras de Alcance determina quais linhas o usuário pode acessar.

Um Registro de Alcance inclui o seguinte:

  • Regra de Alcance - A regra que restringe quais segmentos do objeto de dados são acessíveis ao usuário.
  • Coluna de Vinculação - A coluna do objeto de dados vinculada pelo Token de Alcance.
  • Função - A Função para a qual a Regra de Alcance se aplica. Se não estiver associada a uma Função, a regra se aplica a todos os usuários.
  • Ativo - Habilita ou desabilita a Regra de Alcance para fins de desenvolvimento e teste.
  • Índice - Ordem na qual as Regras de Alcance são aplicadas.

Nota

Observe que as Regras de Alcance não podem ser registradas em objetos de dados arbitrários. As Regras de Alcance têm como alvo uma tabela ou exibição física. As regras só podem ser registradas em objetos de dados que têm como alvo a mesma tabela ou exibição.

Implementação

Todas as regras do App Builder oferecem suporte a um conjunto de eventos intrínsecos. Filter evento é responsável por recuperar linhas. O alcance é aplicado pelo Filter evento.

Como consequência, o Reach é suportado nos seguintes cenários:

  • Painéis - Inclui painéis de várias linhas e de uma única linha, gráficos e calendários, etc.
  • Controles - Inclui controles de lista e rádio.
  • CRUD - Inclui apenas regras de CRUD de negócios — não regras de CRUD diretas do banco de dados.

Exemplo

Dado o seguinte esquema de tabela:

Tabela Chave primária Relacionamentos
Region RegionId
Customer CustomerId RegionId, chave estrangeira para Region mesa.
Employee EmployeeId RegionId, chave estrangeira para Region mesa.
UserId, referência ao usuário do App Builder.

Neste modelo:

  • Funcionários e clientes pertencem a uma região.
  • Cada funcionário é associado a um usuário do App Builder.

A seguinte Regra de Alcance restringe os usuários de forma que eles só possam acessar clientes em sua própria região:

SELECT RegionId
FROM Employee
WHERE UserId = who('userid')

Assumindo que a Regra de Alcance tem como alvo o Customer tabela, pode ser registrado na Customer (Source)objeto de dados. Nesse ponto, o Reach será aplicado a todos os painéis vinculados ao Customer (Source) objeto de dados.

Em muitos casos, o Reach deve ser aplicado somente para alguns usuários. Isso pode ser alcançado com a Segurança baseada em funções (RBS). Por exemplo, suponha que a fonte de dados defina as seguintes funções:

  • Administrador - Pode acessar todos os clientes.
  • Vendas - Pode acessar somente clientes em sua própria região.

Ao registrar a Reach Rule, associe-a à papel_Sales_. Isso garantirá que o Reach seja aplicado somente a usuários na papel_Sales_: usuários na papel Administrator terão acesso a todos os clientes.

Limitações

  • Atualmente, o Reach só é suportado para fontes de dados RDBMS.
  • Atualmente, o Reach não oferece suporte a operações entre plataformas: a regra do Reach e o objeto de dados devem pertencer à mesma fonte de dados de origem.
  • O Reach não é suportado para operações CRUD diretas do banco de dados. O Reach é aplicado pelo mecanismo de negócios: operações diretas do banco de dados ignoram o mecanismo de negócios.
  • Uma Reach Rule pode ter apenas uma coluna Reach Token. Consequentemente, os objetos de dados são vinculados a Reach Rules por uma única coluna. Isso difere de outros tipos de regras que permitem que os desenvolvedores vinculem objetos de dados a regras usando várias colunas.
  • Atualmente, o Reach não é compatível com o App Builder Connector.
  • Copiar um objeto de dados não copia Reach Registrations. Isso é consistente com outros tipos de regras: Defaults, Validations e Actions também não são copiados.