
# keenauth_branding

`keenauth_branding` 리소스는 브랜딩 초안의 환경 테마를 관리합니다. 라이트 및 다크 변형의 색상, 글꼴, 모서리 반경, 레이아웃과 로고가 여기에 포함됩니다.

## 초안 작성 후 게시

변경 사항은 초안에 반영됩니다. 대시보드에서 게시하거나 `keenauth branding publish`로 게시하세요. 게시하면 환경의 모든 브랜딩 초안(애플리케이션 및 조직 테마, 텍스트, 사용자 지정 CSS, 페이지 템플릿)이 한꺼번에 게시되고 명암비도 검사하므로, 프로바이더가 자동으로 게시하지는 않습니다. [로그인 페이지 브랜딩](/docs/guides/branding)을 참조하세요.

브랜딩 초안은 환경마다 하나만 존재합니다. 프로바이더 구성마다 이 리소스는 최대 한 번만 선언하세요. 삭제하면 상태에서만 제거되며, 초안과 게시된 버전은 그대로 유지됩니다.

## 전체 테마 작성

`theme`은 JSON 객체이므로 `jsonencode`를 사용하세요. JSON으로 비교되므로 키 순서만 바꾸면 빈 플랜이 나옵니다. 구성에서 제거한 토큰은 지워지고 플랫폼 기본값을 상속합니다. JSON `null`과 빈 객체는 허용되지 않습니다. `theme`을 생략하면 현재 테마가 유지됩니다.

```terraform
resource "keenauth_branding" "this" {
  theme = jsonencode({
    mode   = "system"
    layout = "center"
    font   = { size_base = 16 }
    radius = { card = 12, control = 8 }
    light  = { color = { primary = "#4f46e5", background = "#ffffff" } }
    dark   = { color = { primary = "#818cf8", background = "#0b0b0f" } }
  })
}
```

`logo`, `favicon`, `background_image`에는 업로드된 브랜딩 자산의 ID를 지정합니다. 사용자 지정 CSS와 페이지 템플릿은 이 리소스가 관리하지 않습니다.

## 안전한 변경

업데이트는 변경된 토큰만 `If-Match`와 함께 JSON 병합 패치로 보냅니다. 계획을 세운 뒤 누군가 초안을 바꾸었다면 API는 `412`를 반환하고 아무것도 바뀌지 않습니다. `plan`을 다시 실행하세요. 대시보드에서 추가된 토큰은 드리프트로 나타나며, `apply`를 실행하면 제거됩니다.

## 가져오기

```shell
tofu import keenauth_branding.this branding
```
