Q-1. Automation for Jira で設定されているルールの見直しのため、スコープが特定のプロジェクト(単一プロジェクト、複数プロジェクト)に設定されているルールを取得したいです。対象の自動化ルールをSQLで一括で取得する方法はありますでしょうか。
Q-2. Automation for Jira 9.0.3 を利用しています。シークレットを利用しているルールの一覧をSQLで一括で取得する方法はありますでしょうか。
A-1. ルールのスコープがプロジェクトになっている場合には、テーブル AO_589059_RULE_CFG_PROJ_ASSOC にレコードに "PROJECT_ID" 及び "PROJECT_TYPE" が NOT NULL の状態で記録されます。
参考として、ルールのスコープがプロジェクトに設定されているルールを抽出するサンプルSQLは下記になります(スコープがグローバルは除く)。
サンプルSQL: スコープがプロジェクトに設定されているルール(単一プロジェクト、複数プロジェクト)を取得する
SELECT
config."ID" as "RULE_ID",
config."NAME" as "RULE_NAME",
proj_assoc."PROJECT_ID" as "ASSOC_PROJECT_ID",
project.pname as "PROJECT_NAME",
project.pkey as "PROJECT_KEY"
FROM
public."project" project,
public."AO_589059_RULE_CONFIG" config,
public."AO_589059_RULE_CFG_PROJ_ASSOC" proj_assoc
WHERE
1 = 1
AND proj_assoc."PROJECT_ID" IS NOT NULL
AND config."ID" = proj_assoc."RULE_CONFIG_ID"
AND proj_assoc."PROJECT_ID"::numeric = project.id
;
A-2. Automation for Jira 9.0.1 以降のバージョンから、自動化ルールでトークンやパスワードなどの機密情報を呼び出すことが出来るシークレットの管理機能が提供されました。こちらの機能を利用することで、自動化ルールとパスワードやトークンなどを別々で管理することができ、機密情報を厳密に管理することが可能になります。
・自動化ルールが呼び出す外部サービスのシークレット キーと URL を作成して管理できるシークレット キー パネルを導入しました
ルール、シークレット、ルールとシークレットの紐付けを行うテーブルはそれぞれ下記になります。
・AO_589059_RULE_CONFIG: ルールの設定を管理
・AO_589059_RULE_SECRET: シークレット情報を管理
・AO_589059_RULE_TO_SECRET: ルールとシークレットの紐付け
参考として、シークレットを利用しているルールの一覧を抽出サンプルSQLは下記になります。
サンプルSQL: シークレットを利用しているルールのID,名前を取得する
SELECT
config."ID" as "RULE_ID",
config."NAME" as "RULE_NAME",
secret."KEY" as "SECRET_KEY"
FROM
public."AO_589059_RULE_CONFIG" config,
public."AO_589059_RULE_SECRET" secret,
public."AO_589059_RULE_TO_SECRET" to_secret
WHERE
1 = 1
AND config."ID" = to_secret."RULE_ID"
AND to_secret."KEY" = secret."KEY"
;
※本記事は Jira Data Center v9.4.12, Automation for Jira v9.0.3 及び PostgreSQL 10.21 の環境にて検証を行っています。
Ryoji Takata
0 comments