Demonstração do SDK de incorporação

O repositório do SDK Embed do Looker inclui um exemplo de código e uma demonstração simples do SDK Embed. Devido à atenção que o Looker tem à segurança, a demonstração requer um pouco de configuração. A demonstração também requer sua chave secreta de incorporação do Looker. O secret de incorporação concede acesso a todos os seus dados. Portanto, observe o seguinte:

  • Não compartilhe sua chave secreta com pessoas que você não quer que tenham acesso completo à sua instância.
  • Não redefina seu secret se você já o estiver usando em outro contexto.
  • Não configure seu código para armazenar o secret no navegador da Web.

Etapa 1: ativar a incorporação na sua instância do Looker

Isso é documentado com mais detalhes na página de documentação Incorporação assinada.

  1. Navegue até Administrador > Incorporação da plataforma na sua instância do Looker. Isso exige privilégios de administrador.
  2. O servidor de demonstração é executado por padrão em http://localhost:8080. Ao adicionar esse endereço à lista de permissões de domínios incorporados, você pode ativar a demonstração para receber mensagens do Looker.
  3. Ative a opção Incorporar autenticação.
  4. Para visualizar sua chave secreta de incorporação, você deve redefini-la. Copie o secret para um local seguro.

Etapa 2: personalizar as configurações de demonstração da sua instância do Looker

Forneça a chave secreta de incorporação ao servidor. É possível fazer isso de duas maneiras:

  • Defina-o como LOOKER_EMBED_SECRET no ambiente shell.
  • Crie um arquivo chamado .env na raiz do diretório do SDK. Adicione uma linha a esse arquivo: LOOKER_EMBED_SECRET="YourLookerSecret"

Para fornecer o endereço do host da instância do Looker ao servidor:

  • Definindo-o como LOOKER_EMBED_HOST no ambiente shell.
  • Adicionando LOOKER_EMBED_HOST="yourinstance.looker.com:yourport" ao arquivo .env.

Edite o arquivo demo/demo_config.ts para que ele seja apropriado às páginas que você quer incorporar.

// The address of your Looker instance. Required.
export const lookerHost = 'self-signed.looker.com:9999'

// A dashboard that the user can see. Set to 0 to disable dashboard.
export const dashboardId = 1
// A Look that the user can see. Set to 0 to disable look.
export const lookId = 1

Edite o arquivo demo/demo_user.json de acordo com o tipo de usuário que você quer incorporar.

{
  // External embed user ID. IDs are not shared with regular users. Required
  "external_user_id": "user1",
  // First and last name. Optional
  "first_name": "Pat",
  "last_name": "Embed",
  // Duration before session expires, in seconds. Required.
  "session_length": 3600,
  // Enforce logging in with these permissions. Recommended.
  "force_logout_login": true,
  // External embed group ID. Optional.
  "external_group_id": "group1",
  // Looker Group IDs. Optional
  "group_ids": [],
  // Permissions. See documentation for details. Required.
  // Can any combination of:
  //   access_data
  //   see_looks
  //   see_user_dashboards
  //   see_lookml_dashboards
  //   explore
  //   create_table_calculations
  //   download_with_limit
  //   download_without_limit
  //   see_drill_overlay
  //   see_sql
  //   save_content
  //   embed_browse_spaces
  //   schedule_look_emails
  //   send_to_sftp
  //   send_to_s3
  //   send_outgoing_webhook
  //   schedule_external_look_emails
  "permissions": [
    "access_data",
    "see_looks",
    "see_user_dashboards",
    "explore"
    "save_content",
    "embed_browse_spaces"
  ],
  // Model access permissions. Required.
  "models": ["powered_by", "thelook"],
  // User attributes. Optional.
  "user_attributes": { "locale": "en_US" },
}

Etapa 3: criar e executar a demonstração

Servidor de nó

  1. Executar npm install
  2. Executar npm start

O servidor imprimirá o host e a porta em que está sendo executado. Se ele for diferente de http://localhost:8080, será necessário adicionar à lista de permissões de domínios incorporados.

Servidor Python

  1. Executar npm install
  2. Executar npm run python

O servidor imprimirá o host e a porta em que está sendo executado.

Talvez seja necessário pip install six para instalar a camada de compatibilidade do Python 2/3.