

# Productboard への接続
<a name="connecting-to-productboard"></a>

Productboard は、製品チームが適切な製品をより迅速に市場投入できるようにする製品管理システムです。Zendesk、UiPath、Microsoft などの 3,000 を超える最新の製品主導の企業が Productboard を使用して、ユーザーが本当に必要なものを理解し、次に何を構築するか優先順位を付け、ロードマップを中心にチーム全体を結集させます。

**Topics**
+ [AWS Glue の Productboard のサポート](productboard-support.md)
+ [接続を作成および使用するための API オペレーションを含むポリシー](productboard-configuring-iam-permissions.md)
+ [Productboard の設定](productboard-configuring.md)
+ [Productboard 接続の設定](productboard-configuring-connections.md)
+ [Productboard エンティティからの読み取り](productboard-reading-from-entities.md)
+ [Productboard 接続オプション](productboard-connection-options.md)
+ [Productboard アカウントの作成](productboard-create-account.md)
+ [制限](productboard-connector-limitations.md)

# AWS Glue の Productboard のサポート
<a name="productboard-support"></a>

AWS Glue は、次のように Productboard をサポートしています。

**ソースとしてサポートされていますか?**  
はい。AWS Glue ETL ジョブを使用して、Productboard からデータをクエリできます。

**ターゲットとしてサポートされていますか?**  
いいえ。

**サポートされている Productboard API バージョン**  
 v1 

# 接続を作成および使用するための API オペレーションを含むポリシー
<a name="productboard-configuring-iam-permissions"></a>

次のサンプル ポリシーで、接続の作成と使用に必要な AWS の権限について説明します。新しいロールを作成する場合は、以下を含むポリシーを作成します。

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

****  

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

------

上記の方法を使用しない場合は、代わりに次のマネージド IAM ポリシーを使用します。
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole) – さまざまな AWS Glue プロセスを実行するために必要なリソースへのアクセス権をユーザーに代わって付与します。これらのリソースには、AWS Glue、Amazon S3、IAM、CloudWatch Logs、および Amazon EC2 が含まれます。このポリシーで指定されたリソースの命名規則に従った場合、AWS Glue プロセスは必要なアクセス許可を使用できます。このポリシーは、通常、クローラー、ジョブ、開発エンドポイントを定義するときに指定されたロールにアタッチされます。
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess) — ポリシーがアタッチされているアイデンティティが AWS マネージメントコンソールを使用するときは、AWS Glue リソースへのフルアクセスを許可します。このポリシーで指定されたリソースの命名規則に従った場合、ユーザーは完全なコンソール機能を使用できます。このポリシーは、通常 AWS Glue コンソールのユーザーにアタッチされています。

# Productboard の設定
<a name="productboard-configuring"></a>

AWS Glue を使用して Productboard から転送できるようにするには、次の要件を満たす必要があります。

## 最小要件
<a name="productboard-configuring-min-requirements"></a>
+ E メールとパスワードが設定された Productboard アカウントがある。アカウントの作成の詳細については、「[Productboard アカウントの作成](productboard-create-account.md)」を参照してください。
+  AWS Glue へのサービスアクセスで AWS アカウントを作成する必要があります。
+ Productboard アカウントの認証の詳細 (カスタム認証を使用する場合は JWT トークン、OAuth2.0 を使用する場合はクライアント ID とシークレット) がある。
+ ユーザーが `OAuth2.0` を使用する場合は、[アプリケーションを Productboard に登録](https://app.productboard.com/oauth2/applications/new)し、「[How to integrate with Productboard via OAuth2 - developer documentation](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation)」の手順に従ってアプリケーションをセットアップします。

これらの要件を満たすと、Productboard アカウントに AWS Glue を接続する準備が整います。一般的な接続では、Productboard で他に何もする必要はありません。

# Productboard 接続の設定
<a name="productboard-configuring-connections"></a>

 

Productboard は、カスタム認可と `OAuth2.0` をサポートしています。`OAuth2.0` の場合、Productboard は、`AUTHORIZATION_CODE` グラントタイプをサポートしています。
+ このグラントタイプは、ユーザーを認可するためにサードパーティーの認可サーバーにユーザーをリダイレクトすることから、「three-legged」の `OAuth` と見なされます。AWS Glue コンソール経由で接続を作成するときに使用されます。接続を作成するユーザーは、デフォルトで AWS Glue 所有の接続アプリケーションを使用できます。この場合、Productboard クライアント ID とクライアントシークレット以外の `OAuth` 関連情報を指定する必要はありません。AWS Glue コンソールでは、ユーザーが Productboard にリダイレクトされます。ここではユーザーがログインし、Productboard インスタンスにアクセスするためのリクエストされた権限を AWS Glue に許可する必要があります。
+ ユーザーは、Productboard で独自の接続アプリケーションを作成し、AWS Glue コンソールを介して接続を作成するときに独自のクライアント ID とクライアントシークレットを指定することを選択できます。このシナリオでは、引き続き Productboard にリダイレクトされてログインし、リソースへアクセスするために AWS Glue を認可します。
+ このグラントタイプは、更新トークンとアクセストークンになります。アクセストークンの有効期間は短く、更新トークンを使用してユーザーとやり取りすることなく自動的に更新される場合があります。
+ `AUTHORIZATION_CODE OAuth` フロー用の接続アプリケーションの作成に関する Productboard の公開ドキュメントについては、「[How to integrate with Productboard via OAuth2 - developer documentation](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation)」を参照してください。

Productboard 接続を設定するには:

1. AWS Secrets Manager で、次の詳細を含むシークレットを作成します。
   + `OAuth` 認可 – カスタマーマネージド接続アプリケーションの場合: シークレットには、`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` を使用して接続されたアプリケーションのコンシューマーシークレットをキーとして含める必要があります。
   + `Custom auth` – カスタマーマネージド接続アプリケーションの場合: シークレットには、`access_token` を使用して接続されたアプリケーションの `JWT token` をキーとして含める必要があります。
**注記**  
AWS Glue で接続ごとにシークレットを作成する必要があります。

1. AWS Glue Studio で、以下の手順に従って **[データ接続]** の下に接続を作成します。

   1. **[データソース]** を選択する際に、[Productboard] を選択します。

   1. AWS Glue が次のアクションを担い、その権限を持つことができる IAM ロールを選択します。

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

****  

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

------

   1. データソースに接続するための認可タイプを選択します。
      + `OAuth` 認可の場合 – Productboard アプリケーションの `Token URL`、および `User Managed Client Application ClientId` を指定します。

   1. AWS Glue でこの接続に使用する `secretName` を選択して、トークンを配置します。

   1.  ネットワークを使用する場合は、ネットワークオプションを選択します。

1. AWS Glue ジョブに関連付けられている IAM ロールに `secretName` を読み取るアクセス許可を付与します。

1. AWS Glue ジョブ設定で、[追加のネットワーク接続] として `connectionName` を指定します。

# Productboard エンティティからの読み取り
<a name="productboard-reading-from-entities"></a>

 **前提条件** 

読み取り元の Productboard オブジェクト。使用可能なエンティティを確認するには、以下のサポートされているエンティティの表を参照してください。

 **サポートされているエンティティ** 
+ [Abuse-reports ](https://productboard.com/developer/marketing/api/campaign-abuse/)
+ [オートメーション](https://productboard.com/developer/marketing/api/automation/list-automations/)
+ [キャンペーン](https://productboard.com/developer/marketing/api/campaigns/list-campaigns/)
+ [Click-details](https://productboard.com/developer/marketing/api/link-clickers/)
+ [Lists](https://productboard.com/developer/marketing/api/link-clickers/)
+ [メンバー](https://productboard.com/developer/marketing/api/list-segment-members/)
+ [Open-details](https://productboard.com/developer/marketing/api/list-members/)
+ [セグメント](https://productboard.com/developer/marketing/api/list-segments/)
+ [Stores](https://productboard.com/developer/marketing/api/ecommerce-stores/list-stores/)
+ [Unsubscribed](https://productboard.com/developer/marketing/api/unsub-reports/)


| エンティティ | フィルタリング可能 | 制限をサポートする | Order By をサポートする | Select \$1 をサポートする | パーティショニングをサポートする | 
| --- | --- | --- | --- | --- | --- | 
|  機能  | あり | あり | なし | はい | はい | 
|  コンポーネント  | いいえ | あり | なし | あり | なし | 
|  製品  | いいえ | あり | なし | あり | なし | 
|  フィーチャーステータス  | いいえ | あり | なし | はい | はい | 
|  カスタムフィールド定義  | いいえ | あり | なし | あり | なし | 
|  カスタムフィールド値  | あり | あり | なし | あり | なし | 

 **例** 

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

 **Productboard エンティティとフィールドの詳細** 
+ [特徴](https://developer.productboard.com/#tag/features)
+ [コンポーネント](https://developer.productboard.com/#tag/components)
+ [フィーチャーステータス](https://developer.productboard.com/#tag/statuses)
+ [製品](https://developer.productboard.com/#tag/products)
+ [カスタムフィールド定義](https://developer.productboard.com/#tag/hierarchyEntitiesCustomFields)
+ [カスタムフィールド値](https://developer.productboard.com/#tag/hierarchyEntitiesCustomFieldsValues)

# Productboard 接続オプション
<a name="productboard-connection-options"></a>

Productboard の接続オプションは次のとおりです。
+  `ENTITY_NAME`(文字列) – (必須) 読み取り / 書き込みに使用されます。Productboard のオブジェクトの名前。
+ `API_VERSION`(文字列) – (必須) 読み取りに使用されます。使用する Productboard Engage Rest API バージョン。例: 3.0。
+ `SELECTED_FIELDS`(List<String>) – Default: empty(SELECT \$1). 読み込みに使用されます。オブジェクトに選択する列です。
+ `FILTER_PREDICATE`(文字列) – デフォルト: 空 読み込みに使用されます。Spark SQL 形式である必要があります。
+ `QUERY`(文字列) - デフォルト: 空 読み込みに使用されます。完全な Spark SQL クエリです。

# Productboard アカウントの作成
<a name="productboard-create-account"></a>

1. [Productboard のサインアップページ](https://app.productboard.com/)に移動し、E メール ID とパスワードを入力して、**[ログイン]** を選択します。

1. **[アカウント名]** フィールドに Productboard アカウントの名前を入力し、**[プライバシーポリシーに同意する]** チェックボックスをオンにします。

1. **[ワークスペースを作成する]** ページの **[ワークスペース URL]** フィールドに、新しいワークスペースの URL を入力します。次に、**[続行]** を選択して次のページに進み、残りの詳細を入力します。

   これでトライアルアカウントが作成されます。トライアルアカウントは、15 日間無料です。トライアル期間の終了後は、有料プランを購入できます。E メールアドレス、パスワード、ワークスペース URL を書き留めます。この情報は、今後アカウントにアクセスするために必要になります。

**`OAuth2.0` アプリケーションの登録**

1. [Productboard のログインページ](https://login.productboard.com/?locale=en)に移動し、E メール ID とパスワードを入力して、**[ログイン]** を選択します。

1. 右上隅の **[User]** アイコンを選択し、ドロップダウンメニューから **[Account and billing]** を選択します。

1. **[Extras]** を選択し、ドロップダウンメニューから **[Registered apps]** を選択します。

1. **[Register An App]** を選択します。

1. 次の詳細情報を入力します。
   + **App name** – アプリケーションの名前。
   + **Company / Organization** – 会社または組織の名前。
   + **App website** – アプリケーションのウェブサイト。
   + **[リダイレクト URI]** – リダイレクト URI パターンは、ログインフローが完了したときに Productboard がリダイレクト (リクエストされた場合) できる URI パス (またはカンマ区切りのパスのリスト) です。例: `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`

1. **[作成]** を選択します。

1. これで、**[Client ID]** と **[Client Secret]** が表示されます。これらをコピーして安全な場所に保存します。次に **[完了]** を選択します。
**注記**  
クライアント ID とクライアントシークレット文字列は、AppFlow または AWS Glue を使用するときにこのコネクタとの接続を確立するために使用される認証情報です。

**CustomAuth 認証情報の取得**

1. [Productboard のログインページ](https://app.productboard.com/)に移動し、E メール ID とパスワードを入力して、**[ログイン]** を選択します。

   ホームページにリダイレクトされます。

1. ホームページで、**[ワークスペース設定]** > **[統合]** > **[パブリック API]** > **[アクセストークン]** に移動します。
**注記**  
**[パブリック API]** セクションが表示されない場合は、アカウントが Essentials プランになっている可能性があります。API トークンにアクセスするには、少なくとも Pro プランである必要があります。プランの機能と名前は変更される可能性があります。パッケージの詳細については、[Productboard の料金](https://www.productboard.com/pricing/)を参照してください。

1. **[\$1]** を選択して新しいトークンを生成し、後で参照できるように安全に保存してください。

**`OAuth2.0` 認証情報の作成**

Productboard コネクタで `OAuth2.0` 認可を利用するには、アプリケーションを Productboard プラットフォームに登録し、`Client ID` と `Client Secret` を生成する必要があります。

1. [Productboard のログインページ](https://app.productboard.com/)に移動し、E メール ID とパスワードを入力して、**[ログイン]** を選択します。

1. 新しい OAuth2 アプリケーションを Productboard アカウントに登録するには、[Producboard](to register new OAuth2 application with your Productboard account) ページに移動します。

1. 必須フィールドを入力し、アクセスする各エンティティに必要なスコープを選択します。
**注記**  
サポートされている 6 つのエンティティに必要な次の 4 つのスコープを選択しています。

1. **[リダイレクト URL]** は次の形式である必要があります: `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`
**注記**  
Appflow リダイレクト URL は変更される可能性があります。利用可能になったら、AWS Glue プラットフォームのリダイレクト URL を更新してください。

1. これで、**[Client ID]** と **[Client Secret]** が表示されます。これらをコピーして安全な場所に保存します。

1. 「[How to Integrate with Productboard via OAuth2 developer](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation)」の手順に従って、`OAuth2` を設定して検証できます。

# 制限
<a name="productboard-connector-limitations"></a>

Productboard コネクタの制限は次のとおりです。
+ Productboard は、フィールドベースまたはレコードベースのパーティショニングをサポートしていません。