External API (ベータ版) | Quollio Data Catalog (0.2)

Download OpenAPI specification:Download

External APIを使用することで、外部のシステムクライアントとQuollio Data Catalogを連携することができます。ベータ版では基本的なメタデータ(アセットやタグなど)を取得・変更するAPIを提供しています。

認可(Authorization)

各APIエンドポイントは、OAuth 2.0のClient Credential Flow(client_secret_basic)を使用した認可を行います。以下の手順に従って、エンドポイントの認可を行なってください。

  1. Quollio Data Catalogの「クレデンシャル管理」の画面より、 client_idclient_secret を発行します。
  2. 発行時に画面上で表示されたトークンURLから、アクセストークンを取得します。以下はcurlコマンドを用いた例です。
$ CLIENT_ID=xxxxxx
$ CLIENT_SECRET=xxxxxx
$ TOKEN_URL=<token_url>
$ curl --verbose -s -X POST ${TOKEN_URL} \
-H "Authorization: Basic $(echo -n ${CLIENT_ID}:${CLIENT_SECRET} | base64 )" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=${CLIENT_ID}" \
-d "scope=api.quollio.com/beta:admin"
  1. 各エンドポイントへのリクエスト時に、Authorizationヘッダに Authorization: Bearer <access token> の形式でアクセストークンを指定してください。

#Lineage

Lineageに関するAPIエンドポイント。Table-to-tableとColumn-to-columnをサポートしています。

get #Lineage

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

query Parameters
excludeUpstream
boolean
Default: false
Example: excludeUpstream=true

レスポンス結果から上流アセットを除外したい場合は true

excludeDownstream
boolean
Default: false
Example: excludeDownstream=true

レスポンス結果から下流アセットを除外したい場合は true

excludeFineLineage
boolean
Default: true
Example: excludeFineLineage=true

レスポンス結果から詳細リネージを除外したい場合は true

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

update #Lineage

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Request Body schema: application/json
upstream
required
Array of strings

アセットが持つ全ての上流アセットへのリネージ情報

Responses

Request samples

Content type
application/json
{
  • "upstream": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "successfully updated lineage"
}

#Asset

アセットの取得・更新・削除を実施できます。(作成は未実装)

delete #Asset

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
{
  • "message": "successfully deleted"
}

get #Asset

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

update metadata #Asset

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Request Body schema: application/json
description
required
string

アセットの概要

is_archived
required
boolean

オブジェクトがアーカイブされたかどうか

logical_name
required
string

利便上、ユーザーが呼称するオブジェクト名(論理名)

Responses

Request samples

Content type
application/json
{
  • "description": "2月の売上関連情報。月次レポートに使用してください。",
  • "is_archived": false,
  • "logical_name": "売上テーブル(2月)"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

update property #Asset

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

property_set_id
required
string
Example: ppst-7f7de432-e4e4-4dfc-9c0b-a3a399cdb28a

プロパティセットID

Request Body schema: application/json
required
Array of objects (AssetEditProperty)

Responses

Request samples

Content type
application/json
{
  • "properties": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

update stats #Asset

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Request Body schema: application/json
object (ExternalColumnStatistics)

External APIから更新するカラムの詳細な統計情報。この統計情報はMetadata Agent側で取得される通常の統計情報より優先的に画面に表示されます。

object (TableStatistics)

テーブルの統計情報

Responses

Request samples

Content type
application/json
{
  • "column_stats": {
    },
  • "table_stats": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

update tag #Asset

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Request Body schema: application/json
required
Array of objects (TagIDs)

Responses

Request samples

Content type
application/json
{
  • "manual_tag_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

get by ids #Asset

Authorizations:
OAuth2_header_Authorization
Request Body schema: application/json
ids
required
Array of strings <= 100 items

IDを指定してアセットを取得します。一度に取得できるオブジェクト数は最大100件までです。

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

get by type #Asset

Authorizations:
OAuth2_header_Authorization
Request Body schema: application/json
last_id
string
Default: ""

直前のレスポンス内の最後のオブジェクトに関するID。次回のリクエスト時に指定することで、続きのオブジェクトから取得することができます。レスポンス内に 'last_id' が存在しない場合は、そのレスポンス以降のオブジェクトは存在しません。

object_type
required
string
Value: "schema"

取得するオブジェクトタイプ。現在は、最上位の 'schema' 層に属するアセットのみを取得可能です。

size
integer <int64>
Default: 25

検索結果の最大件数

Responses

Request samples

Content type
application/json
{
  • "last_id": "Et nulla quia.",
  • "object_type": "schema",
  • "size": 25
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "last_id": "Sit est est dolorem."
}

#Tag

タグに関するAPIエンドポイント

delete child tag #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
{
  • "message": "successfully deleted"
}

get child tag #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

update child tag #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Request Body schema: application/json
child_tag_description
string

子タグ(タグ)に関する概要

child_tag_name
required
string non-empty ^[^/,]+$

子タグ(タグ)名

is_archived
required
boolean

オブジェクトがアーカイブされたかどうか

Responses

Request samples

Content type
application/json
{
  • "child_tag_description": "このタグが付与されているデータを扱う場合は、取り扱いに厳重注意してください。",
  • "child_tag_name": "社外秘",
  • "is_archived": false
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

list tag group #Tag

Authorizations:
OAuth2_header_Authorization

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

create tag group #Tag

Authorizations:
OAuth2_header_Authorization
Request Body schema: application/json
tag_group_color
string
Default: "gray"
Enum: "gray" "red" "yellow" "green" "blue" "purple" "pink"

タググループの色

tag_group_description
string

タググループに関する概要

tag_group_name
required
string [ 1 .. 20 ] characters ^[^/,]+$

タググループ名

Responses

Request samples

Content type
application/json
{
  • "tag_group_color": "purple",
  • "tag_group_description": "このグループには数種類のセキュリティに関するタグが含まれています。",
  • "tag_group_name": "セキュリティ"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

delete tag group #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
"Maiores quis."

get tag group #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

update tag group #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Request Body schema: application/json
tag_group_color
string
Default: "gray"
Enum: "gray" "red" "yellow" "green" "blue" "purple" "pink"

タググループの色

tag_group_description
string

タググループに関する概要

tag_group_name
required
string [ 1 .. 20 ] characters ^[^/,]+$

タググループ名

Responses

Request samples

Content type
application/json
{
  • "tag_group_color": "yellow",
  • "tag_group_description": "このグループには数種類のセキュリティに関するタグが含まれています。",
  • "tag_group_name": "セキュリティ"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

create parent tag #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Request Body schema: application/json
parent_tag_description
string

親タグ(タグカテゴリ)に関する概要

parent_tag_name
required
string non-empty ^[^/,]+$

親タグ(タグカテゴリ)名

Responses

Request samples

Content type
application/json
{
  • "parent_tag_description": "セキュリティを4段階のレベルに分けて管理します。",
  • "parent_tag_name": "セキュリティ種別"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

list parent tag #Tag

Authorizations:
OAuth2_header_Authorization

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

delete parent tag #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
{
  • "message": "successfully deleted"
}

get parent tag #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

update parent tag #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Request Body schema: application/json
is_archived
required
boolean

オブジェクトがアーカイブされたかどうか

parent_tag_description
string

親タグ(タグカテゴリ)に関する概要

parent_tag_name
required
string non-empty ^[^/,]+$

親タグ(タグカテゴリ)名

tag_group_id
required
string

タググループのID。

Responses

Request samples

Content type
application/json
{
  • "is_archived": true,
  • "parent_tag_description": "セキュリティを4段階のレベルに分けて管理します。",
  • "parent_tag_name": "セキュリティ種別",
  • "tag_group_id": "ttggp-31b039be-3768-417c-8fbc-f4de5378ee519"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

create child tag #Tag

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Request Body schema: application/json
child_tag_description
string

子タグ(タグ)に関する概要

child_tag_name
required
string non-empty ^[^/,]+$

子タグ(タグ)名

Responses

Request samples

Content type
application/json
{
  • "child_tag_description": "このタグが付与されているデータを扱う場合は、取り扱いに厳重注意してください。",
  • "child_tag_name": "社外秘"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

#AccessLog

アクセスログに関するAPIエンドポイント

list #AccessLog

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

#User

ユーザーに関するAPIエンドポイント

list #User

Authorizations:
OAuth2_header_Authorization
Request Body schema: application/json
last_id
string
Default: ""

直前のレスポンス内の最後のオブジェクトに関するID。次回のリクエスト時に指定することで、続きのオブジェクトから取得することができます。レスポンス内に 'last_id' が存在しない場合は、そのレスポンス以降のオブジェクトは存在しません。

size
integer <int64>
Default: 25

検索結果の最大件数

Responses

Request samples

Content type
application/json
{
  • "last_id": "Vel aperiam iste architecto.",
  • "size": 25
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "last_id": "Et ex."
}

get #User

Authorizations:
OAuth2_header_Authorization
path Parameters
id
required
string
Example: tbl-e58f6f262b78a6a10700e2114f798bea

オブジェクトタイプの接頭辞が付与されたID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}