本文档为用户数据删除相关openapi接口的说明文档。使用提供的OpenAPI可以删除一组已知user_unique_id或ssid用户的数据。(私有化版本4.1(含)后开始支持)
一个数据删除请求对应一个Job,Job创建成功后,处于PENDING状态,将会有24小时的等待时间。在24小时内如果想要取消删除操作,可以调用对应的OpenAPI执行取消操作。在不进行取消操作的情况下,24小时后Job变为STARTED状态,处于该状态的Job无法取消。Job的状态可以通过提供的OpenAPI查询获得。
状态 | 含义 |
---|---|
PENDING | Job创建后,24小时内处于该状态。处于该状态的Job支持取消 |
STARTED | Job创建超过24小时后更新为该状态。处于该状态的Job不支持取消 |
REVOKED | 取消状态。处于该状态的Job不会被调度 |
SUCCESS | 执行成功 |
FAILURE | 执行失败 |
该接口用于创建删除Job,可以混合传递user_unique_id和ssid,单次删除请求最多支持删除100个用户的数据,同一个应用在同一时间最多只能有一个Job在执行。
Path: /datafinder/openapi/v1/{app_id}/data-deletions
Method: POST
Content-type: application/json
Path-parameters:
Field | Type | Description | Required |
---|---|---|---|
app_id | int | 应用ID | true |
Body:
{ "uuids": ["uuid-1", "uuid-2"], "ssids": ["ssid-3", "ssid-4"] }
Field | Type | Description | Required |
---|---|---|---|
uuids | List | 待删除的user_unique_id列表 | False |
ssids | List | 待删除的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" } }
返回状态码说明:
code | description |
---|---|
200 | 任务创建成功 |
400 | 任务创建失败,错误信息以具体的message为准 |
429 | 任务创建失败,存在未结束的数据删除任务。 |
DeletionJob
Field | Type | Description |
---|---|---|
app_id | int | 应用id |
job_id | string | Job创建后生成的唯一id |
status | string | Job当前的状态 |
uuids | List | 待删除的uuid列表 |
ssids | List | 待删除的ssid列表 |
creator | string | Job创建人 |
updater | string | Job的最近更新人 |
created_at | string | Job创建时间 |
updated_at | string | Job更新时间 |
started_at | string | Job开始执行的时间 |
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())
Path: /datafinder/openapi/v1/{app_id}/data-deletions/search
Method: POST
Content-type: application/json
Path-parameters:
Field | Type | Description | Required |
---|---|---|---|
app_id | int | 应用ID | true |
Body:
{ "uuids": ["uuid-1", "uuid-2"], "ssids": ["ssid-3", "ssid-4"], "job_ids": ["6950255124627325442"], "statuses": ["STARTED"] }
Field | Type | Description | Required |
---|---|---|---|
uuids | List | 根据uuid查询满足条件的Job | False |
ssids | List | 根据ssid查询满足条件的Job | False |
job_ids | List | 根据job_id查询满足条件的Job | False |
statuses | List | 根据status查询满足条件的Job | False |
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作为过滤条件,可使用单独字段或者组合多个字段进行过滤。若不指定任何过滤条件,则默认查询全部。
返回状态码说明:
code | description |
---|---|
200 | 查询成功 |
400 | 查询失败,错误信息以具体的message为准 |
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())
Path: /datafinder/openapi/v1/{app_id}/data-deletions/{job_id}
Method: DELETE
Content-type: application/json
Path-parameters:
Field | Type | Description | Required |
---|---|---|---|
app_id | int | 应用ID | true |
job_id | str | 任务ID | true |
Response:
{ "code": 200, "message": "success" }
返回状态码说明:
code | description |
---|---|
200 | 取消成功 |
400 | 取消失败,错误信息以具体的message为准 |
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())
任务状态变更时请求方会收到站内信通知,具体可以收到四种类型的站内信。
Job状态 | 站内信 |
---|---|
PENDING | 调用Job创建API创建成功后,Job处于该状态。收到的站内信内容为: |
STARETED | Job创建24小时后,Job处于该状态。收到的站内信内容为: |
REVOKED | 调用Job取消API取消成功后,Job处于该状态。收到的站内信内容为: |
SUCCESS | Job执行成功之后,Job处于该状态。收到的站内信内容为: 尊敬的用户 {username},您好: 您提交的删除数据的请求已执行成功。 任务ID:{job_id} 应用:{app_name}({app_id}) 集团:{org_name}({org_id}) |