Redmineのテスト環境にユーザーを一括登録する際、Alteryx Designerではまりました。解決策をメモしておきます。
環境は以下の通りです。
- Alteryx Designer:2020.2.3
- Redmine:4.1.1.stable
Alteryxワークフロー
このワークフローの目的は、Redmine本番環境の特定のプロジェクトのメンバーをテスト環境に登録することです。
- Redmine本番環境の全ユーザーのデータをJSONで取得
- Redmine本番環境の特定のプロジェクトのメンバーをJSONで取得
- これらを結合して特定のプロジェクトに属するメンバーのJSONデータを作成(login, firstname, lastname, mailフィールドのみ)
- Redmineテスト環境に上記を登録
以下のスクリーンショットは4の部分です。
Alteryxダウンロードツールの設定
「ペイロード」タブでは、フィールドからJSONデータを取得するよう設定します。
「ヘッダー」タブでは、AuthorizationとContent-Typeの2つのHTTPリクエストヘッダーを指定します。
- Authorizationヘッダの値として「Basic credential」を指定
_credential_は、アカウントとパスワードをコロンで連結した文字列をBASE64でエンコードしたものです。(そのためスクリーンショットではモザイクをかけています。)
BASE64エンコードは、Alteryxの「Base64エンコーダー」ツールを使って実行できます。
「接続」タブでログイン情報を指定した場合、HTTPレスポンスが401 Unauthorizedとなってワークフローが停止してしまいます。
- Content-Typeには「application/json」を指定
このMIMEタイプを指定しないとエラーになります。
(2020/08/12追記)
APIキーを利用した場合には、Authorizationヘッダの代わりにX-Redmine-API-Keyヘッダを使うこともできます。
おわりに
分かってしまえばなんということはないのですが、今回は認証とコンテントタイプでだいぶ時間を浪費してしまいました。何かの参考になりましたら幸いです。