Skip to content

アクセストークンでAPIを使う ​

データセットの参照、PipelineからのOpenLineage送信、Prometheusからのメトリクス取得はアクセストークンを使います。人のログイン情報をスクリプトへ渡す必要はありません。

Settings → Access → Access Tokensで、トークンごとの権限と有効状態を管理します。
アクセストークンの権限と有効状態を一覧する画面

Settings → Access → Access Tokensで、トークンごとの権限と有効状態を管理します。

トークンを作成する ​

AdminがSettings → Access → Access Tokensのアクセストークンを作成を開き、名前と許可する操作を指定します。アカウントを別に作る操作はありません。

DataLineageの読み取りと送信は、同じ機能別の一覧で両方選べます。ML Tracking連携プリセットでも選べます。Namespaceはデータセットや処理のグループ名です。例えば、音声をspeech、Podcastをpodcastに分けられます。S3の接続やバケットとは別の分類です。Namespaceを検索で一覧を絞り、許可する名前にチェックを付けます。検索を変えても選択は保持します。一覧にない名前は検索欄へ入力して追加できます。全対象を許可する場合だけすべてのNamespaceを許可を選びます。容量取得だけを選ぶ場合、Namespaceは不要です。

検索で一覧を絞ってチェックします。選択済みの名前は検索を変えても保持されます。
Namespaceを検索しチェックボックスで選択するトークン作成画面

検索で一覧を絞ってチェックします。選択済みの名前は検索を変えても保持されます。

値は発行時に一度だけ表示されます。連携先のシークレット管理へ保存してください。有効期限は既定で90日です。7・30・90・365日、無期限、期間を指定(分・時間・日)、カレンダーで指定から選べます。

機能・操作用途入口
DataLineage: 読み取りデータセットとバージョンの参照GET /api/mado/lineage/catalogなど
DataLineage: 送信OpenLineageイベントの送信POST /api/openlineage/v1/lineage
Capacity: 読み取り許可した接続の容量メトリクスの取得GET /api/mado/metrics/capacity

連携用の /api/mado/ はGETだけです。一つのトークンに必要な操作を組み合わせられます。連携APIのscopeは、選択した操作から決まります。容量取得は選択した接続が対象で、Namespaceでは制限されません。

GET /api/mado/access-tokenは、scopeを問わず、呼び出したトークン自身の名前・scope・Namespace・有効期限を返します(namespacesの["*"]は全Namespace)。ほかのトークンの情報や、トークンの値は返しません。連携先が、許可されたNamespaceを利用者に入力させずに知るための入口です。

ML Trackingでデータセットを参照し、実験のDataLineageを送る場合は、データセット参照とDataLineageの送信を許可したトークンを、ML Trackingの[連携]の「アクセストークン」に設定します。Namespaceは入力しません。ML Trackingがこの入口から許可範囲を読みます。

内部APIを使う ​

Storage・README・Notes・DataLineage・ジョブ・接続・設定など、画面と同じ内部APIをトークンで利用できます。新規作成は権限未選択から始まり、機能ごとに読み取り・編集・削除・実行・管理を選びます。必要ならプリセットを使い、対象の接続・Namespaceを検索してチェックします。

機能ごとに操作を選び、許可する接続をチェックします。
機能ごとの操作権限と接続を選ぶ画面

機能ごとに操作を選び、許可する接続をチェックします。

bash
curl --fail-with-body \
  -H "Authorization: Bearer $MADO_API_TOKEN" \
  "$MADO_URL/api/internal/connections"

この例にはpermissions: ["connections:read"]と接続の選択が必要です。参照・送信も同じ機能別の一覧で設定します。トークン管理も許可できますが、自分より強いトークンの発行・再発行はできません。ユーザーの変更には管理者プリセットの全権限・全対象が必要です。ログイン・SSO・自分のパスワード変更はブラウザ専用です。権限の一覧と対象制限を参照してください。

OpenLineageイベントを送信する ​

送信先のURLとkeyを、Pipelineの環境変数やシークレット管理から渡します。次はイベントJSONを event.json に用意した場合の例です。

bash
curl --fail-with-body \
  -X POST "$MADO_LINEAGE_URL/api/openlineage/v1/lineage" \
  -H "Authorization: Bearer $MADO_LINEAGE_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary @event.json

MADO_LINEAGE_URL は公開API用hostnameのorigin、MADO_LINEAGE_KEY はDataLineageの「送信」を許可したトークンです。許可されたnamespaceのイベントを送信します。イベント形式と登録の扱いはLineageの仕様に記載しています。

Prometheusで容量メトリクスを取得する ​

メトリクスはUI側のintranet用入口にあります。公開API用入口には載せていません。

bash
curl --fail-with-body \
  -H "Authorization: Bearer $MADO_METRICS_KEY" \
  "$MADO_URL/api/mado/metrics/capacity"

Prometheusの設定例です。Bearer tokenはファイルから読みます。

yaml
scrape_configs:
  - job_name: mado-capacity
    scheme: https
    metrics_path: /api/mado/metrics/capacity
    authorization:
      type: Bearer
      credentials_file: /etc/prometheus/secrets/mado-metrics-key
    static_configs:
      - targets: ['mado.example.com']

mado.example.com を実際のUI用hostnameへ置き換えます。返すメトリクスの一覧は容量メトリクスの仕様を参照してください。

トークンを編集・再発行・無効化する ​

一覧の各トークンの**…**から操作します。

  • 編集: 名前・用途のメモ・権限・Namespace・有効期限を変更します。値は変わりません。
  • 再発行: 以前の値を直ちに失効し、新しい値を一度だけ表示します。権限・有効期限・無効状態は引き継ぎます。連携先の値も更新してください。
  • 無効にする / 有効にする: 同じ値の利用を一時停止・再開します。
  • 削除: 利用を終了し、一覧から取り除きます。元には戻せません。監査用の操作履歴は残ります。

既存のService Account keyも同じ一覧から管理できます。値と権限はそのまま引き継ぎます。名前だけの編集や再発行では内部APIの権限を増やしません。操作の選択を変更して保存すると、新しい機能別権限へ移ります。

内部APIはブラウザセッションまたはアクセストークンで認証します。Notes・READMEの編集者はアカウント署名またはトークン名から決まります。PUT本文の editor は400の検証エラーになります。DataLineageの論理グラフには rootKind=dataset|job を指定します。kind を含むクエリは400になります。

Apache License 2.0