알림 채널¶
/admin/notifications admin
경보와 플랫폼 이벤트를 받을 채널을 등록합니다. 화면 설명 그대로 "백업 실패 같은 플랫폼 이벤트를 Telegram · 이메일 · Slack 으로 보냅니다".

쓸 수 있는 채널 세 가지¶
| 종류 | 비밀 항목 | 설정 항목 |
|---|---|---|
| telegram | 봇 토큰 | chat_id (숫자/음수 또는 @채널명) |
| slack | Incoming Webhook URL (https 만, loopback 만 http 허용) | 없음 |
| SMTP 비밀번호 (계정을 쓸 때만) | smtp_host · smtp_port · smtp_security(starttls·tls·none) · username · from · to(1~20개) |
이메일 포트 기본값은 보안 방식에 따라 starttls 587 · tls 465 · none 25 입니다. 받는 주소는 형식을 검사하고 줄바꿈 문자가 들어가면 거부합니다.
범용 webhook 채널은 없습니다
위 세 종류뿐입니다.
채널 등록하기¶
창에서 채우는 것은 이름(100자 이내) · 종류 라디오(수정할 때는 잠김) · 종류별 항목 · 받을 이벤트 체크박스 · 켜기 입니다.
이벤트 목록은 서버가 주는 카탈로그를 그대로 그립니다.
종류는 나중에 바꿀 수 없습니다
수정 요청에 종류 항목이 없습니다. 바꾸려면 새로 만들어야 합니다.
이메일은 서버·포트·보안 방식·계정을 바꾸면 비밀번호를 다시 입력해야 합니다.
받을 수 있는 이벤트¶
| 이벤트 | 기본값 | 언제 |
|---|---|---|
backup_failed |
켜짐 | 백업이 실패로 끝났을 때 |
backup_partial |
켜짐 | 백업이 일부 항목을 빠뜨린 채 끝났을 때 |
backup_succeeded |
꺼짐 | 백업이 성공했을 때 |
alert_fired |
켜짐 | 스택에서 심각 경보가 발생했을 때 |
alert_resolved |
켜짐 | 그 경보가 해제됐을 때 |
stack_cve_found |
켜짐 | 스택이 설치한 OSS 이미지에서 수정판 있는 CRITICAL 취약점이 새로 발견됐을 때 |
이 여섯이 전부입니다. 경보가 어떻게 수집돼 전달되는지는 관측성을 보세요.
stack_cve_found 는 설치 이미지 재스캔(기본 24시간)이 아직 알리지 않은 "수정판 있는 CRITICAL" 을 찾았을
때 스택당 한 건으로 묶어 보냅니다. 클러스터 밖에 열린 이미지(게이트웨이 · LoadBalancer · NodePort)의 것이 있으면 심각도가 critical,
아니면 warning 입니다. 본문에는 CVE 다섯 개까지(패키지 설치→수정 버전 · 이미지 · 노출 호스트)가 실리고,
나머지는 스택 상세의 이미지 취약점 탭에 있습니다. 스택마다 처음 보내는 것은 "첫 고지" 로 지금 있는 것을
한 번에 알립니다 — 새 스택이면 설치 시점에 있던 것, 이 기능 전에 설치한 스택이면 지금의 현황입니다. 한 번 알린
CVE 는 그 스택에서 다시 알리지 않습니다 — 이미지 하나의 스캔이 실패했다가 돌아와도, 어느 채널에서 발송이
실패해도(실패는 발송 이력에 남습니다) 그렇습니다. 이 이벤트가 생기기 전에 만든 채널은 저절로 받지 않으니, 받으려면 채널을
편집해 체크합니다.
표 두 개¶
채널 표 — 이름 · 종류 · 보내는 곳 · 받는 이벤트 · 상태 · 작업 (행 동작: 테스트 전송 · 편집 · 삭제). 저장된 비밀을 복호화하지 못하면 경고가 표시됩니다.
최근 발송 표 — 시각 · 채널 · 이벤트 · 내용 · 결과 · 시도.
결과는 전송됨 또는 실패 이고 실패 사유가 함께 나옵니다.
비밀 원문은 응답에 담기지 않습니다
채널 조회 응답에는 "비밀이 설정됐는지", "힌트", "읽을 수 없음" 표시만 들어갑니다.
테스트 전송¶
그 채널의 정식 발송 경로를 그대로 타서 실제로 메시지를 보냅니다 — 재시도 3회까지 포함입니다. 결과는 응답으로 돌아오면서 발송 이력에도 한 줄 남습니다.
꺼진 채널에도 보냅니다
active 가 아니어도 테스트 전송은 나갑니다.
실패해도 200 입니다
HTTP 상태는 성공이고, 본문의 status · error · attempts 를 봐야
결과를 알 수 있습니다.
보내는 내용은 제목 "Nullus 알림 테스트", 요약 "'<이름>' 채널 설정이 맞습니다…",
필드 채널=<종류> 입니다. 이벤트 종류는 test 로 기록되며 구독 대상이
아닙니다.
발송은 어떻게 되나¶
이벤트가 생기면 조직의 켜져 있고 그 이벤트를 구독한 채널마다 동시에 보냅니다. 한 번 보낼 때 최대 3회 시도하고, 1초 → 2초로 기다리며(상한 10초) 한 번 시도의 제한 시간은 20초입니다. 각 결과가 발송 이력에 남습니다.
호출하는 API¶
| 동작 | 엔드포인트 |
|---|---|
| 이벤트 카탈로그 | GET /api/v1/admin/notifications/events |
| 목록 | GET /api/v1/admin/notifications/channels |
| 생성 | POST …/channels |
| 조회 | GET …/channels/{id} |
| 수정 | PATCH …/channels/{id} |
| 삭제 | DELETE …/channels/{id} |
| 테스트 전송 | POST …/channels/{id}/test |
| 발송 이력 | GET …/notifications/history?limit= (기본 50, 최대 200) |