새 데이터 액세스 규칙 생성¶
POST /api/v1/data_query_rule/add_v2
개요¶
새 데이터 액세스 규칙을 생성합니다. v2는 크로스 사이트 데이터 액세스 구성을 지원합니다.
Body 요청 매개변수¶
| 매개변수명 | 유형 | 필수 | 설명 |
|---|---|---|---|
| name | string | Y | 이름 빈 값 허용: False 빈 문자열 허용: False 최대 길이: 64 |
| desc | string | 설명 예시: 설명1 빈 값 허용: False 빈 문자열 허용: True 최대 길이: 256 |
|
| type | string | Y | 유형 빈 값 허용: True 선택 가능 값: ['logging', 'rum', 'tracing', 'metric'] |
| regionCode | string | Y | 사이트 기반 데이터 액세스 권한 부여 빈 값 허용: False 빈 문자열 허용: False |
| indexes | array | 로그 유형의 경우 필수 입력, 인덱스 uuid, [""]는 전체를 의미 예시: [''] 빈 값 허용: False |
|
| sources | array | 리소스 uuid, ["*"]는 전체를 의미 예시: ['appid_96357a78f84041d28b5d7aaa6201a424'] 빈 값 허용: False |
|
| roleUUIDs | array | Y | 역할 목록 예시: [] 빈 값 허용: False |
| conditions | string | 필터 검색 예시: search 빈 값 허용: False 빈 문자열 허용: True |
|
| extend | json | 확장 필드 예시: xxx 빈 값 허용: False |
|
| logic | string | 논리 필드 예시: or 빈 값 허용: False |
|
| maskFields | string | 마스킹 필드, 여러 필드는 쉼표로 구분 예시: message,host 빈 값 허용: False 빈 문자열 허용: True |
|
| reExprs | array | 정규 표현식 예시: [{'name': 'jjj', 'reExpr': '', 'enable': 0}, {'name': 'lll', 'reExpr': '', 'enable': 1}] 빈 값 허용: False |
추가 매개변수 설명¶
데이터 설명.*
1. 역할 권한 부여 설명 1. 지정된 역할은 지정된 쿼리 범위 내의 데이터만 조회 가능 2. 사용자가 여러 역할을 가지고 있고 그 중 하나라도 이 규칙에 포함된 역할이 아닌 경우, 해당 데이터 액세스 규칙은 사용자에게 적용되지 않음 (즉, 쿼리 범위가 제한되지 않음) 3. 하나의 워크스페이스에 여러 로그 데이터 액세스 규칙이 있을 경우 규칙 간 논리 관계는 or
2. 요청 매개변수 설명
| 매개변수명 | 유형 | 필수 | 설명 |
|---|---|---|---|
| name | string | Y | 이름 |
| desc | String | N | 설명 |
| type | String | Y | 유형 (logging, rum, tracing, metric) |
| indexes | array | Y | type이 logging인 경우 필수 입력, 워크스페이스 외부 인덱스 권한(워크스페이스 권한 필요)인 경우 워크스페이스 UUID:인덱스 UUID 형식 사용, 예: ["wksp_111:lgim_222", "wksp_333:lgim_444"] |
| sources | array | Y | type이 logging이 아닌 경우 필수 입력, type이 rum인 경우 앱 appId 목록, type이 tracing인 경우 서비스 이름 목록, type이 metric인 경우 메저먼트 목록 |
| roleUUIDs | array | Y | 역할 UUID 목록 |
| conditions | string | N | 실제 사용되는 데이터 범위의 필터 조건, 예: "device IN ['PC'] and session_has_replay IN ['1']" |
| extend | dict | Y | 확장 필드, conditions의 구조적 내용을 저장하여 프론트엔드 페이지 표시에 사용, 예: |
| logic | string | N | 논리 필드, and/or, 필터 조건 연결에 사용 |
| maskFields | string | N | 마스킹 필드, 여러 필드는 쉼표로 구분 |
| reExprs | array | N | 정규 표현식, 예: [{"name":"1111","enable":true,"reExpr":"tkn_[\da-z]*"},{"name":"liuyltest","enable":true,"reExpr":"test"}] |
| regionCode | string | Y | 사이트 코드(workspace/website/list API를 통해 조회 가능) |
요청 예시¶
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 Scanning","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
응답¶
{
"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 Scanning",
"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"
}