Skip to main content
Skip table of contents

External API 변경사항 (9.8.10 버전 > 9.9.4 버전)

External API 변경사항 바로가기


API Docs json file

9810_external.json 994_external.json


1. Authentication

  • API Key HTTP Header name이 변경되었습니다

변경 전

변경 후

Header Parameter name

X-QueryPie-Api-Token

Authorization


2. Alert API

변경/개선 사항

API(9.8.10)

변경점

(GET) List

  • 각 Alert의 모든 정보를 반환
    → 각 Alert의 간단한 정보를 반환하도록 변경되었습니다.

  • 각 Alert Type 별로 Alert의 자세한 정보를 반환하는 Detail API 추가되었습니다.

(POST) Create

  • 하나의 API로 모든 Type의 Alert를 생성 가능
    → 각 Alert Type 별로 생성 API가 분리하였습니다.

  • 기존 Create API 삭제되었습니다.

(PUT) Update

  • 하나의 API로 모든 Type의 Alert를 수정 가능
    → 각 Alert Type 별로 수정 API을 분리하였습니다.

  • 기존 Update API 삭제되었습니다.

(Delete) Delete

  • 변경점 없음.

[신규] (POST) Create, (PUT) Update, (GET) Detail API

  • 자세한 요청 내용은 Docs 참조

Alert Type(9.8.10 기준)

Docs 위치(9.9.4)

SQL_EXECUTION

[SQL Execution]
/api/external/alerts/sql-execution

SQL_EXECUTION_PREVENTED

[Prevented SQL Execution]
/api/external/alerts/prevented-sql-execution

DATABASE_AUTHENTICATION_FAILED

[DB Connection Attempt]
/api/external/alerts/db-connection-attempt

SENSITIVE_DATA_BY_POLICY

[Sensitive Data Access]
api/external/alerts/sensitive-data-access

  • policy

SENSITIVE_DATA_BY_LEVEL

[Sensitive Data Access]
api/external/alerts/sensitive-data-access

  • level

EXCEL_EXPORT

[Data Export]
api/external/alerts/data-export

APPROVAL_REQUESTED

[Workflow New Request]
/api/external/alerts/workflow-new-request

[Unusual Login Attempt](신규)
/api/external/alerts/unusual-login-attempt

(GET) List

/api/external/notifications

Request
  • 변경점 없음

Response

변경 전

변경 후

JSON
{
  "list": [
    {
      "condition": {...},
      "description": "",
      "lastAt": "2019-08-24T14:15:22Z",
      "lastStatus": "UNDEFINED",
      "notification": {...},
      "policy": {...},
      "template": "{{userName}} executed {{expRows}} rows.",
      "uuid": "a5ac2279-b715-4819-a00d-daba81739057"
    },
    ...
  ],
  "page": {...}
}
JSON
{
  "list": [
    {
      "alertType": "SQL Execution",
      "lastAt": "2019-08-24T14:15:22Z",
      "lastStatus": "UNDEFINED",
      "name": "string",
      "template": "{{userName}} executed {{expRows}} rows.",
      "uuid": "a5ac2279-b715-4819-a00d-daba81739057"
    },
    ...
  ],
  "page": {...}
}


3. Approval Rule API

(GET) List

/api/external/approval-rules

Request
  • Query Parameter

  • RequestTypeSQL, ACCESSSQL, EXPORT, ACCESSEXPORT가 추가되었습니다.

Response
  • 변경점 없음


4. Audit Log API

(GET) List of Approval

/api/external/audit-logs

Request
  • Query Parameter

변경 전

변경 후

  • pageNumber

  • pageSize

  • actionType

  • clusterGroupId

  • clusterId

  • startDate

  • endDate

  • databaseType

  • sqlFullText

  • cursor

  • count

  • actionType

  • clusterGroupId

  • clusterId

  • startDate

  • endDate

  • databaseType

  • sqlFullText

  • cursor 는 Response 의 nextCursor그대로 쓰면 됩니다.. 첫 호출이라면 비워놓습니다.

    • /api/docs 에 나와있는 내용은 잘못된 내용으로 이후 버전에서 수정 예정입니다.

  • count는 기존 pageSize 와 동일하며, max 값은 100입니다.

  • databaseTypeRedis추가되었습니다.

Response

변경 전

변경 후

{
"list": [
{

"execMillis": 200,
"execResult": false,
"executedAt": "2019-08-24T14:15:22Z",

}
],
"page": {
"currentPage": 0,
"pageSize": 0,
"totalElements": 0,
"totalPages": 0
}
}

{
"hasNext": true,
"list": [
{

"execMillis": 200,
"execResult": false, (Deprecated)
"executedAt": "2019-08-24T14:15:22Z",

}
],
"nextCursor": "2019-08-24T16:15:22Z"
}

  • hasNext 필드가 추가되었습니다. Response 이후 다음 데이터가 있는지를 나타냅니다.

  • execResult Deprecated 되었습니다. 이후 버전에서 삭제됩니다.

  • page 필드가 사라지고 nextCursor추가되었습니다.

    • Request 의 startDate 와 endDate 사이에서 현재 Response 의 list 중 가장 마지막 요소의 executedAt 을 의미합니다.

    • Request 의 cursor 에 해당 값을 넣으면 해당 시간부터 이어서 데이터를 가져옵니다. (startDate, endDate 는 변경하지 않아도 됩니다.)

    • /api/docs 에 나와있는 내용은 잘못된 내용으로 이후 버전에서 수정 예정입니다.


(GET) Detail

/api/external/audit-logs/{id}

Request
  • 변경점 없음

Response

변경 전

변경 후

{

"execMillis": 200,
"execResult": false,
"executedAt": "2019-08-24T14:15:22Z",

}

{

"execMillis": 200,
"execResult": false, (Deprecated)
"executedAt": "2019-08-24T14:15:22Z",

}

  • execResult Deprecated 되었습니다. 이후 버전에서 삭제됩니다.

(GET) Detail

/api/external/audit-logs/{uuid}

Request
  • 변경점 없음

Response

변경 전

변경 후

{

"execMillis": 200,
"execResult": false,
"executedAt": "2019-08-24T14:15:22Z",

}

{

"execMillis": 200,
"execResult": false, (Deprecated)
"executedAt": "2019-08-24T14:15:22Z",

}

  • execResult Deprecated 되었습니다. 이후 버전에서 삭제됩니다.


5. Authentication History API

(GET) List of Authentication

/api/external/connection-auth-logs

Request
  • Query Parameter

변경 전

변경 후

  • pageNumber

  • pageSize

  • actionType

  • clusterGroupId

  • clusterId

  • startDate

  • endDate

  • databaseType

  • sqlFullText

  • pageNumber

  • pageSize

  • actionType

  • clusterGroupId

  • clusterId

  • startDate

  • endDate

  • databaseType

  • sqlFullText

  • actionType 에서 LOGIN, LOGOUT, LOCKED, EXPIRED, LOCKED_MANUALLY, UNLOCK제거 되었습니다.

    • CONNECT, DISCONNECT 만 사용합니다.

  • databaseTypeRedis추가되었습니다.

Response
  • 변경점 없음


6. User Access History API

(GET) List of User Access History

/api/external/system-auth-logs

Request & Response
  • actionType 에서 CONNECT, DISCONNECT제거 되었습니다.

    • LOGIN, LOGOUT, LOCKED, EXPIRED, LOCKED_MANUALLY, UNLOCK 만 사용합니다.


7. Cloud Provider API

(GET) List of Cloud Provider

/api/external/cloud-providers

Request
  • 변경점 없음

Response

변경 전

변경 후

{
"list": [
{

"subscriptionId": "string",
"targetArn": "string",

}
],
"page": {

}
}

{
"list": [
{

"subscriptionId": "string",
"synchronizableDatabaseTypes": [],
"targetArn": "string",

}
],
"page": {

}
}

  • synchronizableDatabaseTypes추가되었습니다.

    • 싱크하고자 하는 데이터베이스의 타입 (벤더) 를 출력 필드입니다.

    • AURORA_MY_SQL, AURORA_POSTGRESQL, MY_SQL, POSTGRESQL, MARIA_DB, ORACLE, SQL_SERVER, DYNAMO_DB, DOCUMENT_DB, REDSHIFT, ATHENA

(POST) Create Cloud Provider

/api/external/cloud-providers

Request

변경 전

변경 후

{

"subscriptionId": "string",
"targetArn": "string",

}

{

"subscriptionId": "string",
"synchronizableDatabaseTypes": [],
"targetArn": "string",

}

  • synchronizableDatabaseTypes추가되었습니다.

    • 싱크하고자 하는 데이터베이스의 타입 (벤더) 를 입력하는 필드입니다.

    • AURORA_MY_SQL, AURORA_POSTGRESQL, MY_SQL, POSTGRESQL, MARIA_DB, ORACLE, SQL_SERVER, DYNAMO_DB, DOCUMENT_DB, REDSHIFT, ATHENA

Response

변경 전

변경 후

{

"subscriptionId": "string",
"targetArn": "string",

}

{

"subscriptionId": "string",
"synchronizableDatabaseTypes": [],
"targetArn": "string",

}

  • synchronizableDatabaseTypes추가되었습니다.

    • 싱크하고자 하는 데이터베이스의 타입 (벤더) 를 출력하는 필드입니다.

    • AURORA_MY_SQL, AURORA_POSTGRESQL, MY_SQL, POSTGRESQL, MARIA_DB, ORACLE, SQL_SERVER, DYNAMO_DB, DOCUMENT_DB, REDSHIFT, ATHENA

(PUT) Update Cloud Provider

/api/external/cloud-providers/{cloudProviderUuid}

Request

변경 전

변경 후

{
"cronExpression": "0 0 6 * * ?",
"name": "AWS",
"proxyAuthType": "QUERYPIE",
"proxyEnabled": true,
"replicationMode": "MANUAL"
}

{
"cronExpression": "0 0 6 * * ?",
"name": "AWS",
"proxyAuthType": "QUERYPIE",
"proxyEnabled": true,
"replicationMode": "MANUAL",
"synchronizableDatabaseTypes": [
"AURORA_MY_SQL"
]
}

  • synchronizableDatabaseTypes추가되었습니다.

    • 싱크하고자 하는 데이터베이스의 타입 (벤더) 를 입력하는 필드입니다.

    • AURORA_MY_SQL, AURORA_POSTGRESQL, MY_SQL, POSTGRESQL, MARIA_DB, ORACLE, SQL_SERVER, DYNAMO_DB, DOCUMENT_DB, REDSHIFT, ATHENA

Response

변경 전

변경 후

{

"subscriptionId": "string",
"targetArn": "string",

}

{

"subscriptionId": "string",
"synchronizableDatabaseTypes": [],
"targetArn": "string",

}

  • synchronizableDatabaseTypes추가되었습니다.

    • 싱크하고자 하는 데이타베이스의 타입 (벤더) 를 출력하는 필드입니다.

    • AURORA_MY_SQL, AURORA_POSTGRESQL, MY_SQL, POSTGRESQL, MARIA_DB, ORACLE, SQL_SERVER, DYNAMO_DB, DOCUMENT_DB, REDSHIFT, ATHENA


8. Cluster Role API

(GET) List of Role

/api/external/roles

Request
  • 변경점 없음

Response

변경 전

변경 후

JSON
{
  "list": [
    {
      ...
      “privilegeTypes”: “SELECT“,
      ...
    },
    ...
  ],
  "page": {...}
}
CODE
{
  "list": [
    {
      ...
      “privilegeTypes”: “SELECT“,
      “privilegeVendor”: “SQL",
      ...
    },
    ...
  ],
  "page": {...}
}
  • privilegeVendor추가되었습니다.

    • SQL, REDIS

(POST) Create Role

/api/external/roles

Request & Response

변경 전

변경 후

JSON
{
  …
  “privilegeTypes”: “ALL“,
  …
}
CODE
{
  …
  “privilegeTypes”: “ALL“,
  “privilegeVendor”: “SQL",
  …
}
  • privilegeVendor추가되었습니다.

    • SQL, REDIS

(PUT) Update Role

/api/external/roles/{roleUuid}

Request & Response

변경 전

변경 후

JSON
{
  …
  “privilegeTypes”: “ALL“,
  …
}
CODE
{
  …
  “privilegeTypes”: “ALL“,
  “privilegeVendor”: “SQL",
  …
}
  • privilegeVendor추가되었습니다.

    • SQL, REDIS


9. Connection API

(GET) List of Cluster Group

/api/external/connections

Request
  • 변경점 없음

Response

변경 전

변경 후

Request

-

없음

Response

{
"list": [
{

"clusters": [

],
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"dbUserInfos": [
{
"dbUserType": "string",
"dbUsername": "string"
}
],
"deleted": false,

"schemaName": "test_db",
"useMultipleAccount": true,
"useProxy": true,

}
],
"page": {

}
}

{
"list": [
{

"clusters": [

],
"connectionAccount": {
"kerberosProtocols": {
"admin": {
"principal": "string",
"realm": "string",
"serviceName": "string"
},
"common": {
"principal": "string",
"realm": "string",
"serviceName": "string"
}
},
"type": "UIDPWD",
"useMultipleAccount": false,
"usernamePasswords": {
"admin": {
"username": "string"
},
"common": {
"username": "string"
},
"proxy": {
"username": "string"
}
}
},
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"deleted": false,

"schemaName": "test_db",
"useProxy": true,

}
],
"page": {

}
}

  • dbUserInfo삭제되었습니다. userMultipleAccount삭제되었습니다.

    • 해당 필드의 내용은 connectionAccount 을 통해 전달됩니다.

  • connectionAccount추가되었습니다.

    • 커넥션의 account 정보를 전달하는 필드입니다.

    • type은 account 의 타입을 의미합니다.

      • NOAUTH SASL_KERBEROS SASL_PLAIN_UID UIDPWD SASL_PLAIN_UIDPWD_SSL NOAUTH_SSL DELEGATION_TOKEN O_AUTH_CLIENT_CREDENTIALS

    • useMultipleAccount멀티 어카운트를 사용하는지에 대한 boolean 값입니다.

    • KerberosProtocols커버로스 어카운트 정보를 전달하는 필드입니다.

      • 커버로스 어카운트는 proxy 어카운트지원하지 않습니다.

    • usernamePasswordsusernamePassword 어카운트 정보를 전달하는 필드입니다.

(POST) Create Cluster Group

/api/external/connections

Request

변경 전

변경 후

Request

-

없음

Response

{
"clusters": [

],
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"dbUserInfos": [
{
"dbUserType": "string",
"dbUsername": "string"
}
],
"deleted": false,

}

{

"clusters": [

],
"connectionAccount": {
"kerberosProtocols": {
"admin": {
"principal": "string",
"realm": "string",
"serviceName": "string"
},
"common": {
"principal": "string",
"realm": "string",
"serviceName": "string"
}
},
"type": "UIDPWD",
"useMultipleAccount": false,
"usernamePasswords": {
"admin": {
"username": "string"
},
"common": {
"username": "string"
},
"proxy": {
"username": "string"
}
}
},
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"deleted": false,

}

  • dbUserInfo삭제되었습니다. userMultipleAccount삭제되었습니다.

    • 해당 필드의 내용은 connectionAccount 을 통해 전달됩니다.

  • connectionAccount추가되었습니다.

    • 커넥션의 account 정보를 전달하는 필드입니다.

    • type은 account 의 타입을 의미합니다.

      • NOAUTH SASL_KERBEROS SASL_PLAIN_UID UIDPWD SASL_PLAIN_UIDPWD_SSL NOAUTH_SSL DELEGATION_TOKEN O_AUTH_CLIENT_CREDENTIALS

    • useMultipleAccount멀티 어카운트를 사용하는지에 대한 boolean 값입니다.

    • KerberosProtocols커버로스 어카운트 정보를 전달하는 필드입니다.

      • 커버로스 어카운트는 proxy 어카운트지원하지 않습니다.

    • usernamePasswordsusernamePassword 어카운트 정보를 전달하는 필드입니다.

Response

변경 전

변경 후

Request

-

없음

Response

{

"clusters": [

],
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"dbUserInfos": [
{
"dbUserType": "string",
"dbUsername": "string"
}
],
"deleted": false,

"schemaName": "test_db",
"useMultipleAccount": true,
"useProxy": true,

}

{

"clusters": [

],
"connectionAccount": {
"kerberosProtocols": {
"admin": {
"principal": "string",
"realm": "string",
"serviceName": "string"
},
"common": {
"principal": "string",
"realm": "string",
"serviceName": "string"
}
},
"type": "UIDPWD",
"useMultipleAccount": false,
"usernamePasswords": {
"admin": {
"username": "string"
},
"common": {
"username": "string"
},
"proxy": {
"username": "string"
}
}
},
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"deleted": false,

"schemaName": "test_db",
"useProxy": true,

}

  • dbUserInfo삭제되었습니다. userMultipleAccount삭제되었습니다.

    • 해당 필드의 내용은 connectionAccount 을 통해 전달됩니다.

  • connectionAccount추가되었습니다.

    • 커넥션의 account 정보를 전달하는 필드입니다.

    • type은 account 의 타입을 의미합니다.

      • NOAUTH SASL_KERBEROS SASL_PLAIN_UID UIDPWD SASL_PLAIN_UIDPWD_SSL NOAUTH_SSL DELEGATION_TOKEN O_AUTH_CLIENT_CREDENTIALS

    • useMultipleAccount멀티 어카운트를 사용하는지에 대한 boolean 값입니다.

    • KerberosProtocols커버로스 어카운트 정보를 전달하는 필드입니다.

      • 커버로스 어카운트는 proxy 어카운트지원하지 않습니다.

    • usernamePasswordsusernamePassword 어카운트 정보를 전달하는 필드입니다.


(PATCH) Update Cluster Group

/api/external/connections/{uuid}

Request

변경 전

변경 후

Request

-

없음

Response

{
"clusters": [

],
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"dbUserInfos": [
{
"dbUserType": "string",
"dbUsername": "string"
}
],
"deleted": false,

}

{

"clusters": [

],
"connectionAccount": {
"kerberosProtocols": {
"admin": {
"principal": "string",
"realm": "string",
"serviceName": "string"
},
"common": {
"principal": "string",
"realm": "string",
"serviceName": "string"
}
},
"type": "UIDPWD",
"useMultipleAccount": false,
"usernamePasswords": {
"admin": {
"username": "string"
},
"common": {
"username": "string"
},
"proxy": {
"username": "string"
}
}
},
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"deleted": false,

}

  • dbUserInfo삭제되었습니다. userMultipleAccount삭제되었습니다.

    • 해당 필드의 내용은 connectionAccount 을 통해 전달됩니다.

  • connectionAccount추가되었습니다.

    • 커넥션의 account 정보를 전달하는 필드입니다.

    • type은 account 의 타입을 의미합니다.

      • NOAUTH SASL_KERBEROS SASL_PLAIN_UID UIDPWD SASL_PLAIN_UIDPWD_SSL NOAUTH_SSL DELEGATION_TOKEN O_AUTH_CLIENT_CREDENTIALS

    • useMultipleAccount멀티 어카운트를 사용하는지에 대한 boolean 값입니다.

    • KerberosProtocols커버로스 어카운트 정보를 전달하는 필드입니다.

      • 커버로스 어카운트는 proxy 어카운트지원하지 않습니다.

    • usernamePasswordsusernamePassword 어카운트 정보를 전달하는 필드입니다.

Response

변경 전

변경 후

Request

-

없음

Response

{

"clusters": [

],
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"dbUserInfos": [
{
"dbUserType": "string",
"dbUsername": "string"
}
],
"deleted": false,

"schemaName": "test_db",
"useMultipleAccount": true,
"useProxy": true,

}

{

"clusters": [

],
"connectionAccount": {
"kerberosProtocols": {
"admin": {
"principal": "string",
"realm": "string",
"serviceName": "string"
},
"common": {
"principal": "string",
"realm": "string",
"serviceName": "string"
}
},
"type": "UIDPWD",
"useMultipleAccount": false,
"usernamePasswords": {
"admin": {
"username": "string"
},
"common": {
"username": "string"
},
"proxy": {
"username": "string"
}
}
},
"connectionOwners": [

],
"databaseType": "MySQL",
"databaseVersion": "5.7.10",
"deleted": false,

"schemaName": "test_db",
"useProxy": true,

}

  • dbUserInfo삭제되었습니다. userMultipleAccount삭제되었습니다.

    • 해당 필드의 내용은 connectionAccount 을 통해 전달됩니다.

  • connectionAccount추가되었습니다.

    • 커넥션의 account 정보를 전달하는 필드입니다.

    • type은 account 의 타입을 의미합니다.

      • NOAUTH SASL_KERBEROS SASL_PLAIN_UID UIDPWD SASL_PLAIN_UIDPWD_SSL NOAUTH_SSL DELEGATION_TOKEN O_AUTH_CLIENT_CREDENTIALS

    • useMultipleAccount멀티 어카운트를 사용하는지에 대한 boolean 값입니다.

    • KerberosProtocols커버로스 어카운트 정보를 전달하는 필드입니다.

      • 커버로스 어카운트는 proxy 어카운트지원하지 않습니다.

    • usernamePasswordsusernamePassword 어카운트 정보를 전달하는 필드입니다.


10. Notification Channels API

(GET) List of Notification channel

/api/external/notification-channels

Request
  • Query Parameter 필드추가

변경 전

변경 후

  • dataFlowRequest.filterKey

  • dataFlowRequest.filterValue

  • dataFlowRequest.sortKey

  • dataFlowRequest.sortType

  • dataflowRequest.filterKey필터 키를 넣습니다.. ex) “Title”

  • dataflowRequest.filterValue필터 값 (검색어)를 넣습니다. ex) “channelName123”

  • dataflowRequest.sortKeysort칼럼 명을 넣습니다. ex ) “createdAt”

  • dataflowRequest.sortTypesort내림차순으로 할지, 오름차순으로 할지를 입력합니다. ex) “ASC”, “DESC”

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.