Create a Single Data Access Rule¶
POST /api/v1/data_query_rule/add_v2
Overview¶
Create a single data access rule, v2 supports cross-site data access configuration.
Body Request Parameters¶
Parameter Name | Type | Required | Description |
---|---|---|---|
name | string | Y | Name Allow null: False Allow empty string: False Max length: 64 |
desc | string | Description Example: Description1 Allow null: False Allow empty string: True Max length: 256 |
|
type | string | Y | Type Allow null: True Allowed values: ['logging', 'rum', 'tracing', 'metric'] |
regionCode | string | Y | Site-based data access authorization Allow null: False Allow empty string: False |
indexes | array | Log type, this field is required, index UUID, [""] means all Example: [''] Allow null: False |
|
sources | array | Resource UUID, ["*"] means all Example: ['appid_96357a78f84041d28b5d7aaa6201a424'] Allow null: False |
|
roleUUIDs | array | Y | List of roles Example: [] Allow null: False |
conditions | string | Filter search Example: search Allow null: False Allow empty string: True |
|
extend | json | Extended field Example: xxx Allow null: False |
|
logic | string | Logic field Example: or Allow null: False |
|
maskFields | string | Masked fields, multiple fields separated by commas Example: message,host Allow null: False Allow empty string: True |
|
reExprs | array | Regular expressions Example: [{'name': 'jjj', 'reExpr': '', 'enable': 0}, {'name': 'lll', 'reExpr': '', 'enable': 1}] Allow null: False |
Parameter Additional Information¶
Data Description.*
1. Role Authorization Access Description 1. Specified roles can only query data within the specified query scope. 2. If a user has multiple roles and one of the roles is not included in the rule roles, this data access rule will not apply to the user, i.e., the query scope will not be restricted. 3. The logic between multiple log data access rules in a workspace is OR.
2. Request Parameter Description
Parameter Name | Type | Required | Description |
---|---|---|---|
name | string | Y | Name |
desc | String | N | Description |
type | String | Y | Type (logging, rum, tracing, metric) |
indexes | array | Y | Required when type is logging, for non-workspace (must be workspace-authorized) index authorization, use workspaceUUID:indexUUID, e.g., ["wksp_111:lgim_222", "wksp_333:lgim_444"] |
sources | array | Y | Required when type is not logging, when type is rum, it is the appId list, when type is tracing, it is the service name list, when type is metric, it is the Measurement list |
roleUUIDs | array | Y | List of role UUIDs |
conditions | string | N | Actual data scope filter conditions, e.g., "device IN ['PC'] and session_has_replay IN ['1']" |
extend | dict | Y | Extended field, stores the structure content of conditions for front-end display, e.g., |
logic | string | N | Logic field, and/or, used to connect filter conditions |
maskFields | string | N | Masked fields, multiple fields separated by commas |
reExprs | array | N | Regular expressions, e.g., [{"name":"1111","enable":true,"reExpr":"tkn_[\da-z]*"},{"name":"liuyltest","enable":true,"reExpr":"test"}] |
regionCode | string | Y | Site code (can be obtained via workspace/website/list API) |
Request Example¶
curl 'https://openapi.guance.com/api/v1/data_query_rule/add' \
-H 'Accept: application/json, text/plain, */*' \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'DF-API-KEY: <DF-API-KEY>' \
--data-raw $'{"name":"rum test","desc":"","roleUUIDs":["role_a1e8215c25474f0bb3809f2d56749ed9"],"indexes":[],"sources":["*"],"extend":{"env":["front"]},"maskFields":"*","logic":"and","type":"rum","reExprs":[{"name":"IPv4 Address Scan","reExpr":"\\\\b((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\\\b","enable":true}],"conditions":"`env` IN [\'front\']"}' \
--compressed
Response¶
{
"code": 200,
"content": {
"conditions": "`env` IN ['front']",
"createAt": 1730532068,
"creator": "wsak_cd83804176e24ac18a8a683260ab0746",
"declaration": {
"asd": "aa,bb,cc,1,True",
"asdasd": "dawdawd",
"business": "aaa",
"dd": "dd",
"fawf": "afawf",
"organization": "64fe7b4062f74d0007b46676"
},
"deleteAt": -1,
"desc": "",
"extend": {
"env": [
"front"
]
},
"id": null,
"indexes": [],
"logic": "and",
"maskFields": "*",
"name": "rum test",
"reExprs": [
{
"enable": true,
"name": "IPv4 Address Scan",
"reExpr": "\\b((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\b"
}
],
"roleUUIDs": [
"role_a1e8215c25474f0bb3809f2d56749ed9"
],
"sources": [
"*"
],
"status": 0,
"type": "rum",
"updateAt": null,
"updator": null,
"uuid": "lqrl_dfe6330883ef4311afae5d380e2294a1",
"workspaceUUID": "wksp_4b57c7bab38e4a2d9630f675dc20015d"
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE-EF351570-B1E0-4263-87DC-85EE7E9345C5"
}