Users
사용자 검색
Section titled 사용자 검색프로젝트에서 사용자를 검색합니다. 속성(사용자 ID, 이메일, 국가 등)으로 필터링하고, 필요하면 자유 텍스트 query로 범위를 좁히며, 결과를 페이지네이션할 수 있습니다.
POST
/public/:projectKey/users
| 이름 | 유형 | 설명 |
|---|---|---|
| projectKey | string | 프로젝트 키(필수) |
| q | string | 선택 사항인 자유 텍스트 쿼리(URL 쿼리 매개변수). q와 본문의 query가 모두 제공되면 q가 우선합니다. |
| 이름 | 유형 | 설명 |
|---|---|---|
| filters | array | 필터 목록(선택 사항) |
| query | string | 사용자 ID / 이메일 / 이름에 대한 자유 텍스트 쿼리(최대 100) |
| startTimestamp | epoch (ms) | 시간 범위의 시작(선택 사항, 최소 946684800000) |
| endTimestamp | epoch (ms) | 시간 범위의 끝(선택 사항, > startTimestamp) |
| limit | integer | 페이지 크기, 1-200(선택 사항, 기본값: 50) |
| page | integer | 페이지 번호, 1부터 시작(선택 사항, 기본값: 1) |
| sortBy | string | 정렬 기준 사용자 컬럼(선택 사항) |
| sortOrder | string | asc 또는 desc(선택 사항) |
| columns | array | 응답에 추가로 포함할 사용자 컬럼 |
요청 헤더
Section titled 요청 헤더Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}
요청 예시
Section titled 요청 예시curl -X POST \
{BASE_URL}/public/3sWXSsqHgSKnE87YkNJK/users \
-H 'content-type: application/json' \
-H 'Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}' \
--data-raw '{
"query": "mickael",
"limit": 50,
"page": 1,
"sortOrder": "desc"
}'
응답 예시
Section titled 응답 예시{
"data": {
"total": 1,
"users": [
{
"$user_id": "mickael@openreplay.com",
"$email": "mickael@openreplay.com",
"$name": "Mickael",
"$first_name": "Mickael",
"$last_name": "",
"$created_at": 1623440822825,
"$last_seen": 1623689478617
}
]
}
}
사용자 조회
Section titled 사용자 조회특정 사용자의 식별 속성과 주요 통계를 조회합니다.
GET
/public/:projectKey/users/:userId
| 이름 | 유형 | 설명 |
|---|---|---|
| projectKey | string | 프로젝트 키(필수) |
| userId | string | tracker.setUserID로 설정한 ID(필수, 최대 256) |
요청 헤더
Section titled 요청 헤더Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}
상태 코드
Section titled 상태 코드200: 응답이 본문에 JSON으로 전송됩니다
400: 잘못된 userId(비어 있거나 > 256자)
404: 사용자를 찾을 수 없음
요청 예시
Section titled 요청 예시curl -X GET \
{BASE_URL}/public/3sWXSsqHgSKnE87YkNJK/users/mickael@openreplay.com \
-H 'Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}'
응답 예시
Section titled 응답 예시{
"data": {
"$user_id": "mickael@openreplay.com",
"$email": "mickael@openreplay.com",
"$name": "Mickael",
"$first_name": "Mickael",
"$last_name": "",
"$phone": "",
"$avatar": "",
"$created_at": 1623440822825,
"distinct_ids": ["15bd70f6-aedf-4544-8ae6-57eb66398e94"],
"$country": "FR",
"$state": "",
"$city": "",
"$first_event_at": 1623440822825,
"$last_seen": 1623689478617
}
}
사용자 삭제
Section titled 사용자 삭제사용자와 연관된 모든 데이터를 삭제합니다. 백그라운드 작업이 예약되며, 응답에 포함된 jobId로 Jobs API를 통해 진행 상황을 확인할 수 있습니다.
DELETE
/public/:projectKey/users/:userId
| 이름 | 유형 | 설명 |
|---|---|---|
| projectKey | string | 프로젝트 키(필수) |
| userId | string | tracker.setUserID로 설정한 ID(필수, 최대 256) |
요청 헤더
Section titled 요청 헤더Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}
상태 코드
Section titled 상태 코드200: 작업이 예약되어 본문에 반환됨
400: 잘못된 userId(비어 있거나 > 256자)
409: 이 사용자에 대한 삭제 작업이 이미 예약되어 있거나 실행 중임
요청 예시
Section titled 요청 예시curl -X DELETE \
{BASE_URL}/public/3sWXSsqHgSKnE87YkNJK/users/mickael@example.com \
-H 'Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}'
응답 예시
Section titled 응답 예시{
"data": {
"jobId": 22345,
"description": "Delete user sessions of userId = mickael@example.com",
"status": "scheduled",
"projectId": 1,
"action": "delete_user_data",
"referenceId": "mickael@example.com",
"createdAt": 1623912962910,
"updatedAt": null,
"startAt": 1623954600000,
"errors": null
}
}
리플레이 파일 삭제 시점을 변경하려면?
Section titled 리플레이 파일 삭제 시점을 변경하려면?삭제 작업은 2단계로 진행됩니다. 먼저 세션과 이에 연쇄된 이벤트가 밤사이 데이터베이스에서 삭제됩니다. 그다음 리플레이 파일이 오브젝트 스토리지에서 (30일 후) 만료되도록 예약됩니다.
minio(기본 설치)를 사용 중이며 기본 만료/수명 주기 정책을 변경하려면 아래 안내를 따르세요.
- 서버에서
openreplay -e를 실행합니다. chalice섹션에서 삭제하기 전에 리플레이 파일을 보관할 일수(0 이상)를 값으로 하는 새 환경 변수 SCH_DELETE_DAYS를 정의합니다.:wq를 입력하여 저장하고 종료합니다.k9s -n db를 실행합니다.- 키보드 화살표로 목록을 탐색하여
minio-*컨테이너로 이동합니다. s를 눌러 Minio(오브젝트 스토리지) 컨테이너의 셸에 접속합니다.mc alias set minio http://localhost:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY를 실행합니다.- 삭제 작업 실행 14일 후에 리플레이 파일을 삭제하려면 다음을 실행합니다.
export EXPIRATION_DAYS=14
mc ilm add --expiry-days $EXPIRATION_DAYS --tags "to_delete_in_days=${EXPIRATION_DAYS}" minio/mobs
exit를 사용하여 Minio 컨테이너에서 나옵니다.:quit를 실행하여 Kubernetes CLI를 종료합니다.