

# Conexão ao Productboard
<a name="connecting-to-productboard"></a>

O Productboard é o sistema de gerenciamento de produtos que ajuda as equipes a colocar os produtos certos no mercado com mais rapidez. Mais de 3 mil empresas modernas orientadas por produto, como a Zendesk, a UiPath e a Microsoft, usam o Productboard para entender do que os usuários realmente precisam, priorizar o próximo projeto a ser criado e reunir toda a equipe em torno do seu roteiro.

**Topics**
+ [Suporte do AWS Glue para o Productboard](productboard-support.md)
+ [Políticas que contêm as operações de API para criar e usar conexões](productboard-configuring-iam-permissions.md)
+ [Configuração do Productboard](productboard-configuring.md)
+ [Configuração de conexões do Productboard](productboard-configuring-connections.md)
+ [Leitura de entidades do Productboard](productboard-reading-from-entities.md)
+ [Opções de conexão do Productboard](productboard-connection-options.md)
+ [Criação de uma conta do Productboard](productboard-create-account.md)
+ [Limitações](productboard-connector-limitations.md)

# Suporte do AWS Glue para o Productboard
<a name="productboard-support"></a>

O AWS Glue oferece suporte ao Productboard da seguinte forma:

**Compatível como fonte?**  
Sim. Você pode usar trabalhos de ETL do AWS Glue para consultar dados do Productboard.

**Compatível como destino?**  
Não.

**Versões compatíveis da API do Productboard**  
 v1 

# Políticas que contêm as operações de API para criar e usar conexões
<a name="productboard-configuring-iam-permissions"></a>

O exemplo de política a seguir descreve as permissões da AWS necessárias para criar e usar conexões. Se você estiver criando um novo perfil, crie uma política que contenha o seguinte: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Se não quiser usar o método anterior, uma alternativa será usar as seguintes políticas do IAM gerenciadas:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole): concede acesso a recursos que vários processos do AWS Glue exigem para serem executados em seu nome. Esses recursos incluem o AWS Glue, Amazon S3, IAM, CloudWatch Logs e Amazon EC2. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os processos do AWS Glue terão as permissões necessárias. Esta política geralmente é anexada a funções especificadas durante a definição de crawlers, trabalhos e endpoints de desenvolvimento. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): concede acesso total aos recursos do AWS Glue quando uma identidade à qual a política está anexada usa o Console de Gerenciamento da AWS. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os usuários poderão acessar todos os recursos do console. Esta política geralmente é anexada aos usuários do console do AWS Glue. 

# Configuração do Productboard
<a name="productboard-configuring"></a>

Antes de usar o AWS Glue para transferir do Productboard, os seguintes requisitos deverão ser atendidos:

## Requisitos mínimos
<a name="productboard-configuring-min-requirements"></a>
+ Você tem uma conta do Productboard com e-mail e senha. Para obter mais informações sobre como criar uma conta, consulte [Criação de uma conta do Productboard](productboard-create-account.md). 
+  Você deve ter uma conta da AWS criada com acesso de serviço ao AWS Glue. 
+ Você tem os detalhes de autenticação de uma conta do Productboard: o token JWT, se quiser usar a autenticação personalizada, ou o ID e segredo do cliente, se quiser usar o OAuth2.0.
+ Se o usuário quiser usar o `OAuth2.0`, [registre sua aplicação no Productboard](https://app.productboard.com/oauth2/applications/new) e configure a aplicação seguindo as instruções em [How to integrate with Productboard via OAuth2 - developer documentation](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation).

Se você atender a esses requisitos, poderá conectar o AWS Glue à sua conta do Productboard. Para conexões típicas, você não precisa fazer mais nada no Productboard.

# Configuração de conexões do Productboard
<a name="productboard-configuring-connections"></a>

 

O Productboard oferece suporte à autenticação personalizada e `OAuth2.0`. Para `OAuth2.0`, o Productboard oferece suporte ao tipo de concessão `AUTHORIZATION_CODE`.
+ Esse tipo de concessão é considerado um `OAuth` de “três pernas”, pois conta com o redirecionamento dos usuários para o servidor de autorização de terceiros para autenticar o usuário. Ele é usado na criação de conexões por meio do Console do AWS Glue. O usuário que está criando uma conexão pode, por padrão, contar com uma aplicação conectada pertencente ao AWS Glue, na qual ele não precisa fornecer quaisquer informações relacionadas ao `OAuth`, exceto o ID e segredo do cliente do Productboard. O Console do AWS Glue redirecionará o usuário para o Productboard, onde ele deverá fazer login e dar autorização para que as permissões solicitadas pelo AWS Glue acessem a instância do Productboard.
+ Os usuários ainda podem optar por criar sua própria aplicação conectada no Productboard e fornecer seus próprios ID e segredo do cliente ao criar conexões por meio do Console do AWS Glue. Nesse cenário, eles ainda serão redirecionados para o Productboard para fazer login e autorizar o acesso do AWS Glue aos recursos.
+ Esse tipo de concessão resulta em um token de atualização e um token de acesso. O token de acesso tem vida curta e pode ser atualizado automaticamente sem a interação do usuário usando o token de atualização.
+ Para obter a documentação pública do Productboard sobre como criar uma aplicação conectado para o fluxo `AUTHORIZATION_CODE OAuth`, consulte [How to integrate with Productboard via OAuth2 - developer documentation](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation). 

Para configurar uma conexão do Productboard:

1. No AWS Secrets Manager, crie um segredo com os seguintes detalhes: 
   + Para a autenticação `OAuth`: para uma aplicação conectada gerenciada pelo cliente, o segredo deve conter o segredo do consumidor da aplicação conectada com a chave `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET`. 
   + Para `Custom auth`: para uma aplicação conectada gerenciada pelo cliente, o segredo deve conter a aplicação conectada `JWT token` com a chave `access_token`. 
**nota**  
É preciso criar um segredo por conexão em AWS Glue.

1. Em AWS Glue Studio, crie uma conexão em **Conexões de dados** seguindo estas etapas:

   1. Ao selecionar uma **Fonte de dados**, selecione o Productboard. 

   1. Selecione o perfil do IAM que o AWS Glue pode assumir e tem permissões para as seguintes ações: 

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Selecione o tipo de autenticação para se conectar à fonte de dados:
      + Para a autenticação `OAuth`: forneça o `Token URL` e o `User Managed Client Application ClientId` da aplicação Productboard.

   1. Selecione o `secretName` que você deseja usar para essa conexão no AWS Glue para colocar os tokens. 

   1.  Selecione as opções de rede se quiser usar sua rede. 

1. Conceda permissão ao perfil do IAM associado ao seu trabalho do AWS Glue para ler `secretName`. 

1. Na configuração do trabalho do AWS Glue, forneça `connectionName` como uma conexão de rede adicional.

# Leitura de entidades do Productboard
<a name="productboard-reading-from-entities"></a>

 **Pré-requisitos** 

Um objeto do Productboard do qual você deseja ler. Consulte a tabela de entidades compatíveis abaixo para verificar as entidades disponíveis. 

 **Entidades compatíveis** 
+ [Relatórios de abuso](https://productboard.com/developer/marketing/api/campaign-abuse/)
+ [Automação](https://productboard.com/developer/marketing/api/automation/list-automations/)
+ [Campanhas](https://productboard.com/developer/marketing/api/campaigns/list-campaigns/)
+ [Detalhes de cliques](https://productboard.com/developer/marketing/api/link-clickers/)
+ [Listas](https://productboard.com/developer/marketing/api/link-clickers/)
+ [Membros](https://productboard.com/developer/marketing/api/list-segment-members/)
+ [Detalhes de abertura](https://productboard.com/developer/marketing/api/list-members/)
+ [Segmentos](https://productboard.com/developer/marketing/api/list-segments/)
+ [Lojas](https://productboard.com/developer/marketing/api/ecommerce-stores/list-stores/)
+ [Cancelamentos de assinaturas](https://productboard.com/developer/marketing/api/unsub-reports/)


| Entidade | Pode ser filtrada | Oferece suporte a limite | Oferece suporte a Ordenar por | Oferece suporte a Selecionar \$1 | Oferece suporte a particionamento | 
| --- | --- | --- | --- | --- | --- | 
|  Recursos  | Sim | Sim | Não | Sim | Sim | 
|  Componentes  | Não | Sim | Não | Sim | Não | 
|  Produtos  | Não | Sim | Não | Sim | Não | 
|  Status de recursos  | Não | Sim | Não | Sim | Sim | 
|  Definições de campos personalizados  | Não | Sim | Não | Sim | Não | 
|  Valores de campos personalizados  | Sim | Sim | Não | Sim | Não | 

 **Exemplo** 

```
Productboard_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Productboard",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "feature",
        "API_VERSION": "1"
    }
```

 **Detalhes das entidades e dos campos do Productboard** 
+ [Recursos](https://developer.productboard.com/#tag/features)
+ [Componentes](https://developer.productboard.com/#tag/components)
+ [Status de recursos](https://developer.productboard.com/#tag/statuses)
+ [Produtos da](https://developer.productboard.com/#tag/products)
+ [Definições de campos personalizados](https://developer.productboard.com/#tag/hierarchyEntitiesCustomFields)
+ [Valores de campos personalizados](https://developer.productboard.com/#tag/hierarchyEntitiesCustomFieldsValues)

# Opções de conexão do Productboard
<a name="productboard-connection-options"></a>

Estas são as opções de conexão do Productboard:
+  `ENTITY_NAME`(string): (obrigatório) usado para leitura/gravação. O nome do seu objeto no Productboard. 
+ `API_VERSION`(string): (obrigatório) usado para leitura. A versão da API Rest do Productboard Engage que você deseja usar. Por exemplo: 3.0.
+ `SELECTED_FIELDS`(Lista<String>): padrão: vazio(SELECIONE \$1). Usado para leitura. Colunas que deseja selecionar para o objeto.
+ `FILTER_PREDICATE`(string): padrão: vazio. Usado para leitura. Deve estar no formato Spark SQL.
+ `QUERY`(String): padrão: vazia. Usado para leitura. Consulta completa do Spark SQL.

# Criação de uma conta do Productboard
<a name="productboard-create-account"></a>

1. Navegue até a [página de inscrição do Productboard](https://app.productboard.com/), insira seu ID de e-mail e senha e escolha **Log me in**.

1. No campo **Account Name**, insira o nome da sua conta do Productboard e marque a caixa de seleção **I agree to the Privacy Policy check**.

1. Na página **Now create your workspace**, no campo **Workspace URL**, insira o URL do seu novo espaço de trabalho. Em seguida, escolha **Continue** para prosseguir para a próxima página e fornecer os detalhes que faltam.

   Sua conta de teste foi criada. A conta de teste é gratuita por 15 dias. Após o período de avaliação expirar, você poderá adquirir um plano pago. Anote o endereço de e-mail, a senha e o URL do espaço de trabalho. Você precisará dessas informações para acessar sua conta no futuro.

**Registro de uma aplicação `OAuth2.0`**

1. Navegue até a [página de login do Productboard](https://login.productboard.com/?locale=en), insira seu ID de e-mail e senha e escolha **Log in**. 

1. Selecione o ícone **User** no canto superior direito e escolha **Account and billing** no menu suspenso.

1. Selecione **Extras** e escolha **Registered apps** no menu suspenso.

1. Localize e escolha **Register An App**.

1. Insira os detalhes a seguir:
   + **App name**: o nome da aplicação. 
   + **Company/Organization**: o nome da sua empresa ou organização.
   + **App website**: o site da aplicação.
   + **Redirect URI**: um padrão de URI de redirecionamento é um caminho de URI (ou uma lista de caminhos separados por vírgula) para o qual o Productboard pode redirecionar (se solicitado) quando o fluxo de login for concluído. Por exemplo, ., `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`

1. Escolha **Criar**. 

1. O **ID do cliente** e o **Segredo do cliente** agora estarão visíveis. Copie e salve-os em um lugar seguro. Escolha **Concluído**. 
**nota**  
Suas strings de ID do cliente e Segredo do cliente são credenciais usadas para estabelecer uma conexão com esse conector ao usar o AppFlow ou o AWS Glue.

**Recuperação das credenciais de CustomAuth**

1. Navegue até a [página de login do Productboard](https://app.productboard.com/), insira seu ID de e-mail e senha e escolha **Log me in**.

   Você será redirecionado para a página inicial.

1. Na página inicial, navegue até **Workspace Settings** > **Integrations** > **Public APIs** > **Access Token**.
**nota**  
Se a seção **Public APIs** não estiver visível, é possível que sua conta tenha o plano Essentials. O acesso aos tokens da API requer pelo menos um plano Pro. Os recursos e os nomes dos planos estão sujeitos a alterações. Para obter mais informações sobre os pacotes, consulte os [preços do Productboard](https://www.productboard.com/pricing/).

1. Escolha **\$1** para gerar um novo token e certifique-se de guardá-lo com segurança para referência futura.

**Criação de credenciais do `OAuth2.0`**

Para utilizar a autenticação `OAuth2.0` com o conector do Productboard, você precisa registrar sua aplicação na plataforma do Productboard e gerar um `Client ID` e um `Client Secret`.

1. Navegue até a [página de login do Productboard](https://app.productboard.com/), insira seu ID de e-mail e senha e escolha **Log me in**.

1. Para registrar uma nova aplicação OAuth2 com sua conta do Productboard, navegue até a página do [Productboard](to register new OAuth2 application with your Productboard account).

1. Preencha os campos obrigatórios e selecione os escopos necessários para cada entidade que você deseja acessar. 
**nota**  
Você escolheu os quatro escopos a seguir, que são necessários para as seis entidades com suporte.

1. O **URL de redirecionamento** deve ter o seguinte formato: `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`
**nota**  
Os URLs de redirecionamento do Appflow estão sujeitos a alterações. Quando estiverem disponíveis, atualize os URLs de redirecionamento para a plataforma do AWS Glue.

1. O **ID do cliente** e o **Segredo do cliente** agora estarão visíveis. Copie e salve-os em um lugar seguro. 

1. Você pode configurar e verificar o `OAuth2` seguindo as etapas na documentação do desenvolvedor [How to Integrate with Productboard via OAuth2](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation).

# Limitações
<a name="productboard-connector-limitations"></a>

Estas são as limitações do conector do Productboard:
+ O Productboard não oferece suporte ao particionamento baseado em campos ou em registros.