
# keenauth events tail로 이벤트 따라가기

`keenauth events tail`은 환경의 이벤트 API를 읽고, 고객 이벤트가 발생할 때마다 예를 들어 `user.created`처럼 하나씩 출력합니다. 이 이벤트는 웹훅 전송과 같은 이벤트이며, 봉투(envelope) 형식과 `id`도 동일합니다. 통합 시스템이 받을 내용을 확인하거나, 특정 작업이 기대한 이벤트를 발생시켰는지 점검할 때 사용하세요. 중지하려면 Ctrl-C를 누르세요. 그러면 명령이 종료 코드 0으로 끝납니다.

이 명령에는 `events:read` 권한이 필요합니다. API 키와 `keenauth login` 세션 모두로 사용할 수 있습니다.

## 사용법

```sh
keenauth events tail --types user.created,user.updated
```

| 플래그 | 설명 |
|---|---|
| `--types` | 이 이벤트 유형만 출력합니다. 쉼표로 구분하거나 여러 번 지정할 수 있습니다. |
| `--org` | 이 조직(`org_…`)의 이벤트만 출력합니다. |
| `--payload` | `thin`(기본값) 또는 `full`입니다. `full`은 리소스를 포함하며 `users:read` 권한도 필요합니다. |
| `--after` | 시작 위치입니다. `latest`(기본값)는 지금부터 발생하는 이벤트만 출력하고, 이전 실행에서 출력된 커서를 지정하면 그 지점부터 이어서 출력합니다. |
| `--interval` | 새 이벤트가 없을 때 확인하는 간격으로, `1s`부터 `60s`까지 설정할 수 있습니다. 기본값: `5s`. |
| `--output`, `-o` | `table`, `json` 또는 `yaml`입니다. 플래그를 생략하면 터미널에서는 표를, 그 밖의 경우에는 JSON을 출력합니다. |

잘못된 필터, 커서 또는 간격이 지정되면 어떤 요청도 보내기 전에 명령이 종료 코드 2로 끝납니다.

## 출력

- `table`: 이벤트마다 한 줄씩, 시간, 유형, 시퀀스 번호, 이벤트 ID를 출력합니다.
- `json`: 서버가 보낸 그대로의 각 이벤트를 한 줄에 JSON 객체 하나씩 출력합니다(줄 단위 JSON). stdout이 터미널이 아닐 때의 기본값입니다.
- `yaml`: 이벤트마다 `---`로 시작하는 YAML 문서 하나씩 출력합니다.

이벤트는 환경의 이벤트 순서(`seq`)대로 출력됩니다. 명령을 중지하면, 이어서 실행할 때 사용할 커서를 stderr에 출력합니다:

```text
to continue from here: --after <cursor>
```

나중에 `keenauth events tail --after <cursor>`를 실행하면 그 사이에 놓친 이벤트를 출력할 수 있습니다. 이벤트는 30일 동안 보관됩니다.

## 따라가는 방식

명령은 자신의 커서 이후의 이벤트를 요청하고, 이벤트를 출력한 뒤 응답이 반환한 값으로 커서를 옮깁니다. 응답에서 대기 중인 이벤트가 더 있다고 알려 주면 즉시 다시 요청합니다. 그렇지 않으면 `--interval`만큼 기다린 후 다시 요청합니다.

## 종료 코드

| 코드 | 의미 |
|---|---|
| `0` | Ctrl-C로 중지했습니다. |
| `1` | 서버 오류 또는 네트워크 오류가 발생했습니다(예: 다른 환경의 커서를 사용한 경우). |
| `2` | 사용법 오류입니다. 필터, 커서, 간격 또는 출력 형식이 잘못되었습니다. 요청은 전송되지 않았습니다. |
| `3` | 자격 증명이 없거나 서버가 `401` 또는 `403`으로 응답했습니다. |
| `4` | 요금제에 해당 기능이 포함되어 있지 않습니다(`plan_feature_unavailable`과 함께 `403`). |
