You need to enable JavaScript to run this app.
导航

数据删除OpenAPI(私有化查看)

最近更新时间2022.08.31 13:44:09

首次发布时间2022.08.31 13:44:09

1.概述

本文档为用户数据删除相关openapi接口的说明文档。使用提供的OpenAPI可以删除一组已知user_unique_id或ssid用户的数据。(私有化版本4.1(含)后开始支持)

1.1 数据删除请求

一个数据删除请求对应一个Job,Job创建成功后,处于PENDING状态,将会有24小时的等待时间。在24小时内如果想要取消删除操作,可以调用对应的OpenAPI执行取消操作。在不进行取消操作的情况下,24小时后Job变为STARTED状态,处于该状态的Job无法取消。Job的状态可以通过提供的OpenAPI查询获得。

1.2 Job状态含义

状态含义
PENDINGJob创建后,24小时内处于该状态。处于该状态的Job支持取消
STARTEDJob创建超过24小时后更新为该状态。处于该状态的Job不支持取消
REVOKED取消状态。处于该状态的Job不会被调度
SUCCESS执行成功
FAILURE执行失败
2.Job创建API

该接口用于创建删除Job,可以混合传递user_unique_id和ssid,单次删除请求最多支持删除100个用户的数据,同一个应用在同一时间最多只能有一个Job在执行。

2.1 API定义

Path: /datafinder/openapi/v1/{app_id}/data-deletions
Method: POST
Content-type: application/json
Path-parameters:

FieldTypeDescriptionRequired
app_idint应用IDtrue

Body:

{
    "uuids": ["uuid-1", "uuid-2"],
    "ssids": ["ssid-3", "ssid-4"]
}
FieldTypeDescriptionRequired
uuidsList待删除的user_unique_id列表False
ssidsList待删除的ssid列表False

注:如果uuids和ssids都指定,那么将会根据uuid查询出ssid,合并后的结果作为待删除列表
Response

{
    "code": 200,
    "message": "success",
    "data": {
            "app_id": 1234,
        `   "job_id": "job_id",
            "status": "STARTED",
            "uuids": ["uuid-1", "uuid-2"],
            "ssids": ["ssid-3", "ssid-4"],
            "creator": "user_1",
            "updater": "user_1",
            "created_at": "2022-08-15",
            "updated_at": "2022-08-15",
            "started_at": "2022-08-15"
    }
}

返回状态码说明:

codedescription
200任务创建成功
400任务创建失败,错误信息以具体的message为准
429任务创建失败,存在未结束的数据删除任务。

DeletionJob

FieldTypeDescription
app_idint应用id
job_idstringJob创建后生成的唯一id
statusstringJob当前的状态
uuidsList待删除的uuid列表
ssidsList待删除的ssid列表
creatorstringJob创建人
updaterstringJob的最近更新人
created_atstringJob创建时间
updated_atstringJob更新时间
started_atstringJob开始执行的时间

2.2 OpenAPI SDK使用样例

rc 为创建的 RangersClient, 其初始化请参考 “OpenAPI SDK 使用说明”, 各语言的 SDK 都提供了类似的接口
调用(Python):

ak = 'xxx' # ak
sk = 'xxx' # sk

# 需要指定url地址
url = '{使用Finder服务域名替换}'
rc = RangersClient(ak, sk, url=url)

body = {
   "uuids": ["uuid-1", "uuid-2"]
}

resp = rc.request(
    "/datafinder/openapi/v1/{app_id}/data-deletions",
     method="POST",
     body=body
 )
print(resp.json())
3.Job查询API

3.1 API定义

Path: /datafinder/openapi/v1/{app_id}/data-deletions/search
Method: POST
Content-type: application/json
Path-parameters:

FieldTypeDescriptionRequired
app_idint应用IDtrue

Body:

{
    "uuids": ["uuid-1", "uuid-2"],
    "ssids": ["ssid-3", "ssid-4"],
    "job_ids": ["6950255124627325442"],
    "statuses": ["STARTED"]
}
FieldTypeDescriptionRequired
uuidsList根据uuid查询满足条件的JobFalse
ssidsList根据ssid查询满足条件的JobFalse
job_idsList根据job_id查询满足条件的JobFalse
statusesList根据status查询满足条件的JobFalse

Response

{
    "code": 200,
    "message": "success",
    "data": [
        {
            "app_id": 1234,
        `   "job_id": "job_id",
            "status": "STARTED",
            "uuids": ["uuid-1", "uuid-2"],
            "ssids": ["ssid-3", "ssid-4"],
            "creator": "user_1",
            "updater": "user_1",
            "created_at": "2022-08-15",
            "updated_at": "2022-08-15",
            "started_at": "2022-08-15"
        }
    ]
}

Job字段含义见:DeletionJob
注:查询接口可以根据uuids、ssids、job_ids、statuses作为过滤条件,可使用单独字段或者组合多个字段进行过滤。若不指定任何过滤条件,则默认查询全部。
返回状态码说明:

codedescription
200查询成功
400查询失败,错误信息以具体的message为准

3.2 OpenAPI SDK使用样例

rc 为创建的 RangersClient, 其初始化请参考 “OpenAPI SDK 使用说明”, 各语言的 SDK 都提供了类似的接口
调用(Python):

ak = 'xxx' # ak
sk = 'xxx' # sk

# 需要指定url地址
url = '{使用Finder服务域名替换}'
rc = RangersClient(ak, sk, url=url)

body = {
   "statuses": ["STARTED"]
}

resp = rc.request(
    "/datafinder/openapi/v1/{app_id}/data-deletions/search",
     method="POST",
     body=body
 )
print(resp.json())
4.Job取消API

4.1 API定义

Path: /datafinder/openapi/v1/{app_id}/data-deletions/{job_id}
Method: DELETE
Content-type: application/json
Path-parameters:

FieldTypeDescriptionRequired
app_idint应用IDtrue
job_idstr任务IDtrue

Response

{
    "code": 200,
    "message": "success"
}

返回状态码说明:

codedescription
200取消成功
400取消失败,错误信息以具体的message为准

4.2 OpenAPI SDK使用样例

rc 为创建的 RangersClient, 其初始化请参考 “OpenAPI SDK 使用说明”, 各语言的 SDK 都提供了类似的接口
调用(Python):

ak = 'xxx' # ak
sk = 'xxx' # sk

# 需要指定url地址
url = '{使用Finder服务域名替换}'
rc = RangersClient(ak, sk, url=url)

resp = rc.request(
    "/datafinder/openapi/v1/{app_id}/data-deletions/{job_id}",
     method="DELETE"
 )
print(resp.json())
5.站内信通知

任务状态变更时请求方会收到站内信通知,具体可以收到四种类型的站内信。

Job状态站内信

PENDING

调用Job创建API创建成功后,Job处于该状态。收到的站内信内容为:
尊敬的用户 {username},您好: 您提交的删除数据的请求已成功创建,我们正在为您处理。如果您想撤回本次请求,请在24小时内提交撤销请求。 删除数据仅影响任务提交之前已经入库的数据,停止数据上报需在SDK端完成。
任务ID:{job_id} 应用:{app_name}({app_id}) 集团:{org_name}({org_id})

STARETED

Job创建24小时后,Job处于该状态。收到的站内信内容为:
尊敬的用户 {username},您好: 您提交的删除数据的请求已开始执行。该任务已无法撤回。
任务ID:{job_id} 应用:{app_name}({app_id}) 集团:{org_name}({org_id})

REVOKED

调用Job取消API取消成功后,Job处于该状态。收到的站内信内容为:
尊敬的用户 {username},您好: 您提交的删除数据的请求已撤回成功。 任务ID:{job_id} 应用:{app_name}({app_id}) 集团:{org_name}({org_id})

SUCCESSJob执行成功之后,Job处于该状态。收到的站内信内容为: 尊敬的用户 {username},您好: 您提交的删除数据的请求已执行成功。 任务ID:{job_id} 应用:{app_name}({app_id}) 集团:{org_name}({org_id})