이메일 템플릿 롤백
POST /v1/email-templates/{family}/{locale}:rollback · 권한 email-templates:write · Startup 플랜 이상
이전에 게시되었다가 지금은 보관된 버전의 내용을 다시 검증하고, source_version을 롤백한 버전으로 설정하여 새 버전으로 게시합니다. 기록은 다시 쓰이지 않습니다. 감사 기록 email_template.rolled_back이 같은 트랜잭션에서 기록됩니다.
한 번도 게시되지 않은 버전이거나 지금 게시된 버전이면 409를 반환합니다.
경로 매개변수
| 매개변수 | 설명 |
|---|---|
family |
이메일 패밀리(예: verify_email 또는 email_otp, 이메일 템플릿 목록 조회 참고). |
locale |
로케일 태그(예: en 또는 de). |
요청
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
version |
integer | 예 | 다시 게시할 보관된 버전(1 이상). |
응답
200 OK, 새 게시 버전과 함께.
{
"family": "verify_email",
"locale": "en",
"version": 4,
"status": "published",
"subject": "Confirm your email for {{ application.name }}",
"html": "<p><a href=\"{{ link }}\">Confirm your email</a></p>",
"text_body": "Confirm your email: {{ link }}",
"from_name": null,
"source_version": 1,
"created_at": "2026-10-19T10:00:00Z",
"published_at": "2026-10-19T10:00:00Z",
"latest_version": 4,
"published_version": 4
}
오류
| HTTP | code | 발생 시점 |
|---|---|---|
| 400 | unknown_field |
본문에 알 수 없는 필드가 있거나 JSON 객체가 아닙니다. |
| 404 | not_found |
패밀리 또는 로케일을 알 수 없거나 버전이 존재하지 않습니다. |
| 403 | plan_feature_unavailable |
환경의 플랜에 사용자 지정 이메일 템플릿이 포함되지 않습니다(Startup 이상; 필요한 플랜은 required_plan에 표시됩니다). |
| 409 | conflict |
버전이 한 번도 게시되지 않았거나, 지금 게시된 버전입니다. |
| 422 | validation_failed |
version이 없거나 1보다 작거나, 내용이 더 이상 검증을 통과하지 못합니다. |
| 401 | unauthenticated |
자격 증명이 없거나 잘못되었거나 취소되었습니다. |
| 403 | insufficient_permissions |
자격 증명에 필요한 권한이 없습니다. |
| 429 | rate_limited |
요청 속도 제한을 초과했습니다. Retry-After 기간 이후에 다시 시도하세요. |
| 503 | service_unavailable |
종속 서비스를 일시적으로 사용할 수 없습니다. Retry-After 기간 이후에 다시 시도하세요. |
예제
curl -X POST https://api.eu.keenauth.com/v1/email-templates/verify_email/en:rollback \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"version":1}'
CLI: keenauth email-templates rollback verify_email en --version 1 --yes