New feature: APIs to integrate Power Embedded into your application
Como obter a Chave de API para autenticação as requisições
O primeiro passo, é obter a chave da API na tela de configurações para autenticar:
Com essa chave, você já consegue autenticar as requisições à API.
Gerenciando usuários pela API
Chamada para realizar uma listagem de usuários do sistema:
Resposta do servidor:
Aonde o array reports retorna o ID dos relatórios que o usuário tem acesso.
Você também pode filtrar a lista de usuário por nome e/ou e-mail:
Para criar um novo usuário no sistema, utilize a chamada abaixo:
Onde as roles são:
1 = Administrador
2 = Contribuidor
3 = Visualizador
Para apagar um usuário do sistema, utilize a chamada abaixo:
Controlando permissões em relatórios pela API
Você também pode dar permissão para um usuário acessar um determinado relatório, informando o e-mail do usuário e uma lista com os ID’s dos relatórios:
Para remover a permissão de um usuário em um relatório, utilize a chamanda abaixo:
Listando os Relatórios existentes no Power Embedded
Você também pode listar os relatórios existentes para recuperar alguns metadados, como o ID do relatório:
Também é possível filtrar o relatório pelo nome, workspace ou tipo:
Row-Level Security (RLS) utilizando a API
Você também pode listar o nome das roles que um relatório possui, para criar a associação Relatório X Usuário X Role (RLS), onde o parâmetro da chamada é o ID do relatório:
Para listar esse mapeamento entre Relatório x Usuário x Role, você pode utilizar a chamada abaixo, e poderá filtrar os dados pelo ID do usuário, Id do relatório ou nome da role:
Para atribuir uma permissão de RLS, você irá passar uma lista de e-mails que vão ser adicionados na regra do RLS, o ID do relatório e o nome da role que os usuários serão adicionados.
Para remover a permissão RLS, você vai mudar somente a URL da requisição, pois são os mesmos parâmetros para adicionar:
Consultando o log de acessos de relatórios do Power Embedded via API
Você também pode utilizar a API para acessar o log de auditoria de relatórios e conseguir consultar todos os acessos a relatórios que foram realizados pelos usuários do Power Embedded.
Você pode aplicar filtros na requisição por vários campos:
Como mostrar os relatórios do Power BI na sua aplicação
Para conseguir gerar o token de acesso e renderizar os relatórios na sua aplicação, você deverá primeiro obter o token usando a chamada abaixo:
E o servidor irá retornar o token de uso ÚNICO para chamar as API’s (cada requisição deverá solicitar um novo token):
Agora podemos fazer a chamada da API que renderiza o relatório, informando como parâmetros:
- A URL base do portal de visualização (Ex: https://relatorios.powerembedded.com.br – Caso utilize um domínio personalizado, aqui você utilizaria https://bi.suaempresa.com.br/, por exemplo)
- O token gerado no passo anterior (Ex: 2506b719-5a7e-789b-812f-c64013cc617f)
- O ID da organização (ID fixo para cliente do Power Embedded – Está na URL da tela de configurações – Ex: 12201800-1a46-491a-bfe3-6ee5590e372e)
- O ID do relatório que será embeddado (Ex: a4ee7a1e-6c65-44e7-9a38-06dd8514483c)
Com isso, você irá abrir um iframe com a seguinte URL:
https://relatorios.powerembedded.com.br/integration/tokenauth?token={token_gerado}&embed=true&returnUrl=/Organization/{Id_da_Organizacao}/Report/{Id_Relatorio}
Exemplo com as variáveis preenchidas:
https://relatorios.powerembedded.com.br/integration/tokenauth?token=98b6e796-3b1f-4f2f-abfe-aa2a8a1eadb8&embed=true&returnUrl=/Organization/12201800-1a46-491a-bfe3-6ee5590e372e/Report/a4ee7a1e-6c65-44e7-9a38-06dd8514483c
Como o token é de uso ÚNICO, essa URL só pode ser acessada uma única vez. Caso você queira embeddar o relatório novamente, terá que gerar um novo token de acesso para o e-mail informado.
Como o token é para o usuário específico, ao acessar um relatório, o Power Embedded sabe quem é o usuário que está acessando e faz as devidas validações se esse usuário possui acesso ao relatório que está sendo embeddado e aplica as regras de RLS, caso o relatório possua.
Docs
Documentação completa da API:
Swagger UI (powerembedded.com.br)
Página de demonstração da API para Embeddar os relatórios:
Demo – PowerPortal.IntegrationDemo (powerembedded.com.br)