APIアクセスキーの操作 (テクニカルプレビュー)

REST APIを使用して、APIアクセスキーを作成および管理できます。

APIアクセスキーの作成

例:

POST /api/shared_spaces/1001/api_accesses?fields=client_id

Body:

{
    "data": [
        {
            "client_secret": "9011@83sd!f1042ds+f19fg86M",
            "name": "myKey03",
            "workspace_roles": {
                "data": [
                    {
                        "type": "workspace_role",
                        "id": "1028"
                    },
                    {
                        "type": "workspace_role",
                        "id": "1009"
                    }
                ]
            }
        }
    ]
}

応答:

{
    "total_count": 1,
    "data": [
        {
            "type": "api_access",
            "id": "1003",
            "client_id": "myKey03_l2j4391xlw0k2ipwx5ejmdor8",
            "is_valid": true
        }
    ],
    "exceeds_total_count": false
}

client_secret:

APIキーのパスワード。ユーザーが生成して保存する必要があります。

長さ: 10~30文字。

大文字、小文字、数字、および特殊文字 (少なくとも3つのカテゴリー) を含める必要があります。

name:

APIキーclient_idの一部になります (応答を参照)。

workspace_roles:

目的のworkspace_roleを見つけるには、ユーザーはワークスペースごとにクエリを実行できます。

GET /api/shared_spaces/1001/workspace_roles?fields=role&query="(workspace={id=1002})"

応答:

{
    "total_count": 11,
    "data": [
        {
            "type": "workspace_role",
            "id": "1027",
            "role": {
                "type": "role",
                "id": "1002",
                "logical_name": "role.workspace.ci_cd_agent.configure",
                "name": "CI/CD Integration"
            }
        },
        {
            "type": "workspace_role",
            "id": "1028",
            "role": {
                "type": "role",
                "id": "1005",
                "logical_name": "role.workspace.devops.admin",
                "name": "DevOps Admin"
            }
        },
       .
       .
       .
       .
        {
            "type": "workspace_role",
            "id": "1037",
            "role": {
                "type": "role",
                "id": "1007",
                "logical_name": "role.workspace.admin",
                "name": "Workspace Admin"
            }
        }
    ],
    "exceeds_total_count": false
}

または、次を送信します。

GET /api/shared_spaces/1001/roles

応答:

{
    "total_count": 15,
    "data": [
        {
            "type": "role",
            "logical_name": "role.shared.space.admin",
            "based_on_system": null,
            "last_modified": "2021-04-28T11:29:44Z",
            "workspace_id": 1001,
            "id": "1015",
            "is_system": true,
            "name": "Space Admin",
            "version_stamp": 1,
            "creation_time": "2021-04-28T11:29:44Z"
        },
       .
       .
       .
       .
        {
            "type": "role",
            "logical_name": "role.workspace.admin",
            "based_on_system": null,
            "last_modified": "2021-04-28T11:29:44Z",
            "workspace_id": 1001,
            "id": "1007",
            "is_system": true,
            "name": "Workspace Admin",
            "version_stamp": 1,
            "creation_time": "2021-04-28T11:29:44Z"
        }
    ],
    "exceeds_total_count": false
}

次に、ロールとワークスペースでworkspace_rolesをクエリします。

GET /api/shared_spaces/1001/workspace_roles?fields=role&query="(role={id=1007};workspace={id=1003})"

{
    "total_count": 1,
    "data": [
        {
            "type": "workspace_role",
            "id": "1037",
            "role": {
                "type": "role",
                "id": "1007",
                "logical_name": "role.workspace.admin",
                "name": "Workspace Admin"
            }
        }
    ],
    "exceeds_total_count": false
}

共有スペース管理者ロールの場合、ロールのみで検索します。

GET /api/shared_spaces/1001/workspace_roles?fields=role&query="(role={id=1015})"

応答:

{
    "total_count": 1,
    "data": [
        {
            "type": "workspace_role",
            "id": "1009",
            "role": {
                "type": "role",
                "id": "1015",
                "logical_name": "role.shared.space.admin",
                "name": "Space Admin"
            }
        }
    ],
    "exceeds_total_count": false
}

トップに戻る

APIアクセスキーの取り消し

例:

PUT /api/shared_spaces/1001/api_accesses/1003

Body:

{
    "is_valid": false
}

トップに戻る

Re-generate API Access key

Example:

PUT /api/shared_spaces/1001/api_accesses/1003?fields=client_id

Body:

{
    "is_valid": true,
    "client_secret": "kj@s$dfS124GDd35"
}

Response:

{
    "type": "api_access",
    "id": "1003",
    "client_id": "myKey03_l2j4391xlw0k2ipwx5ejmdor8",
    "is_valid": true
}

新しいclient_secretが生成され、ユーザーが保存する必要があります。以前のclient_idは保持されます。

トップに戻る

参照情報: