Users

사용자 데이터를 관리하고 제어하는 방법.

Users

프로젝트에서 사용자를 검색합니다. 속성(사용자 ID, 이메일, 국가 등)으로 필터링하고, 필요하면 자유 텍스트 query로 범위를 좁히며, 결과를 페이지네이션할 수 있습니다.

POST

/public/:projectKey/users

이름유형설명
projectKeystring프로젝트 키(필수)
qstring선택 사항인 자유 텍스트 쿼리(URL 쿼리 매개변수). q와 본문의 query가 모두 제공되면 q가 우선합니다.
이름유형설명
filtersarray필터 목록(선택 사항)
querystring사용자 ID / 이메일 / 이름에 대한 자유 텍스트 쿼리(최대 100)
startTimestampepoch (ms)시간 범위의 시작(선택 사항, 최소 946684800000)
endTimestampepoch (ms)시간 범위의 끝(선택 사항, > startTimestamp)
limitinteger페이지 크기, 1-200(선택 사항, 기본값: 50)
pageinteger페이지 번호, 1부터 시작(선택 사항, 기본값: 1)
sortBystring정렬 기준 사용자 컬럼(선택 사항)
sortOrderstringasc 또는 desc(선택 사항)
columnsarray응답에 추가로 포함할 사용자 컬럼

Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}

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"
  }'
{
  "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
      }
    ]
  }
}

특정 사용자의 식별 속성과 주요 통계를 조회합니다.

GET

/public/:projectKey/users/:userId

이름유형설명
projectKeystring프로젝트 키(필수)
userIdstringtracker.setUserID로 설정한 ID(필수, 최대 256)

Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}

200: 응답이 본문에 JSON으로 전송됩니다
400: 잘못된 userId(비어 있거나 > 256자)
404: 사용자를 찾을 수 없음

curl -X GET \
  {BASE_URL}/public/3sWXSsqHgSKnE87YkNJK/users/mickael@openreplay.com \
  -H 'Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}'
{
  "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
  }
}

사용자와 연관된 모든 데이터를 삭제합니다. 백그라운드 작업이 예약되며, 응답에 포함된 jobId로 Jobs API를 통해 진행 상황을 확인할 수 있습니다.

DELETE

/public/:projectKey/users/:userId

이름유형설명
projectKeystring프로젝트 키(필수)
userIdstringtracker.setUserID로 설정한 ID(필수, 최대 256)

Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}

200: 작업이 예약되어 본문에 반환됨
400: 잘못된 userId(비어 있거나 > 256자)
409: 이 사용자에 대한 삭제 작업이 이미 예약되어 있거나 실행 중임

curl -X DELETE \
  {BASE_URL}/public/3sWXSsqHgSKnE87YkNJK/users/mickael@example.com \
  -H 'Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}'
{
  "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(기본 설치)를 사용 중이며 기본 만료/수명 주기 정책을 변경하려면 아래 안내를 따르세요.

  1. 서버에서 openreplay -e를 실행합니다.
  2. chalice 섹션에서 삭제하기 전에 리플레이 파일을 보관할 일수(0 이상)를 값으로 하는 새 환경 변수 SCH_DELETE_DAYS를 정의합니다.
  3. :wq를 입력하여 저장하고 종료합니다.
  4. k9s -n db를 실행합니다.
  5. 키보드 화살표로 목록을 탐색하여 minio-* 컨테이너로 이동합니다.
  6. s를 눌러 Minio(오브젝트 스토리지) 컨테이너의 셸에 접속합니다.
  7. mc alias set minio http://localhost:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY를 실행합니다.
  8. 삭제 작업 실행 14일 후에 리플레이 파일을 삭제하려면 다음을 실행합니다.
export EXPIRATION_DAYS=14
mc ilm add --expiry-days $EXPIRATION_DAYS --tags "to_delete_in_days=${EXPIRATION_DAYS}" minio/mobs
  1. exit를 사용하여 Minio 컨테이너에서 나옵니다.
  2. :quit를 실행하여 Kubernetes CLI를 종료합니다.