# Dapr v1.19.0

> Orchestration & Management · 2026-10-22

기능 확장과 성능 및 정확성 개선이 포함된 릴리스지만, 동작과 기본값도 바뀝니다. 기본값 변경, 호환성 조건, 배포 제약, 보안 관련 수정이 있어 운영자는 업그레이드 전에 환경별 영향을 검토해야 합니다.

## 조치 필요
- **[breaking]** metrics server의 지원하지 않는 메서드 응답 변경
  - metrics server가 이제 POST, PUT, PATCH, DELETE 요청에 `405`와 `Allow: GET, HEAD`를 반환합니다.

## 영향 확인
- **[breaking]** sidecar 버전 업그레이드 선행 조건
  - 모든 sidecar가 1.19 이상을 실행하기 전에 활성화하면 적용됩니다.
  - 활성화하기 전에 모든 sidecar를 1.19 이상으로 업그레이드해야 합니다.
- **[breaking]** 배치 차트 렌더링 조건 변경
  - `global.scheduler.enabled`, `global.actors.enabled`, `global.actors.serviceName`을 설정한 경우 적용됩니다.
  - 차트는 `global.scheduler.enabled`, `global.actors.enabled`, `global.actors.serviceName=placement`가 설정되어야 렌더링됩니다.
- **[breaking]** 사용자 지정 RBAC 권한 추가 조건
  - 사용자 지정 RBAC를 사용하는 경우 적용됩니다.
  - 사용자 지정 RBAC를 쓰는 환경에서는 1.19로 업그레이드하기 전에 권한을 추가해야 합니다.
- **[breaking]** `global.scheduler.placement.enabled` 업그레이드 순서 변경
  - 모든 sidecar가 1.19 이상을 실행하기 전에 컨트롤 플레인을 업그레이드하거나, 그 뒤에 애플리케이션을 다시 시작하지 않으면 적용됩니다.
  - 컨트롤 플레인을 업그레이드하기 전에 모든 sidecar를 1.19 이상으로 올리고, 업그레이드가 끝난 뒤 애플리케이션을 다시 시작해야 합니다.
- **[breaking]** `Sentry` 롤백 대상 제한
  - 1.19에서 1.17.6 이하로 직접 롤백하는 경우 적용됩니다.
  - 1.19에서 1.17.6 이하로 직접 되돌리는 경로는 안전하지 않습니다. 안전한 롤백 대상은 1.18.x입니다.
- **[breaking]** `WorkflowAccessPolicy` 다운그레이드 호환성 변경
  - `WorkflowAccessPolicy`에서 `requires`를 사용하는 경우 적용됩니다.
  - 1.18 컨트롤 플레인과 sidecar는 해당 필드를 인식하지 못하므로 게이트 없이 규칙을 적용합니다. 다운그레이드하기 전에 해당 규칙을 제거하거나 범위를 좁혀야 합니다.
- **[breaking]** `WorkflowAccessPolicy` CRD 적용 전 `requires` 처리
  - 1.19 `WorkflowAccessPolicy` CRD를 적용하지 않은 상태에서 `requires`를 사용하는 경우 적용됩니다.
  - 1.19 `WorkflowAccessPolicy` CRD를 적용하기 전에는 API 서버가 새 `requires` 필드를 삭제하므로, `requires`로 작성한 규칙이 해당 게이트 없이 적용됩니다.
- **[breaking]** `Scheduler`의 Pod 조회 권한 추가
  - `Scheduler`를 배포하는 경우 적용됩니다.
  - 차트가 Dapr 네임스페이스에 `dapr-scheduler-pods` Role과 RoleBinding을 추가합니다. 이 권한으로 `Scheduler`가 `pods`에 대해 `get`, `list`, `watch`를 수행합니다.
- **[breaking]** etcd 압축 보존 기본값 변경
  - `--etcd-compaction-retention`이나 `dapr_scheduler.etcdCompactionRetention` 중 어느 것도 설정하지 않은 경우 적용됩니다.
  - 플래그 `--etcd-compaction-retention`과 Helm 값 `dapr_scheduler.etcdCompactionRetention`의 기본 보존값이 `1000000`에서 `10000`으로 낮아집니다.
- **[breaking]** actor 소유 sidecar 외부의 timer operation 처리
  - actor를 소유하지 않은 sidecar에서 timer operation을 사용하는 경우 적용됩니다.
  - actor를 소유하지 않은 sidecar에서 [timer operation](https://v1-19.docs.dapr.io/developing-applications/building-blocks/actors/actors-timers-reminders/)을 실행하면 이제 실패합니다.
- **[breaking]** 일반 AMQP URL의 TLS 설정 검증
  - 일반 `amqp://` URL에 `caCert`, `clientCert`, `clientKey` 중 하나를 설정한 경우 적용됩니다.
  - 일반 `amqp://` URL에 설정한 TLS 설정인 `caCert`, `clientCert`, `clientKey`를 컴포넌트 초기화 시 거부합니다.
- **[breaking]** 서비스 호출 메서드의 금지 문자 처리
  - 서비스 호출 메서드에 `%2F`, `%5C`, `%2E`, 리터럴 `\\` 중 하나가 포함된 경우 적용됩니다.
  - `%2F`, `%5C`, `%2E`가 포함되거나 리터럴 `\\`를 포함한 메서드는 접근 제어 검사 전에 실패합니다.
- **[breaking]** 내부 actor 유형 호출 제한
  - gRPC `InvokeActor` 또는 HTTP `/v1.0/actors/{type}/{id}/method/{method}`로 `dapr.internal.*` actor 유형을 호출하는 경우 적용됩니다.
  - gRPC `InvokeActor`와 HTTP `/v1.0/actors/{type}/{id}/method/{method}`가 모든 `dapr.internal.*` actor 유형을 거부합니다.
- **[breaking]** `GetConfiguration` 구성 범위 제한
  - 호출 앱의 Pod 중 하나에 `dapr.io/config` 주석을 지정하고 `GetConfiguration`을 사용하는 경우 적용됩니다.
  - `GetConfiguration`은 호출 앱의 Pod 중 하나에 있는 `dapr.io/config` 주석에 지정된 구성만 반환합니다. 해당 주석이 없으면 `PermissionDenied`를 반환합니다.
- **[breaking]** 시간대가 포함된 `@every` 일정 제한
  - 시간대와 함께 `@every` 일정을 사용하는 경우 적용됩니다.
  - 시간대를 포함한 `@every` 일정은 파싱 시 실패하며, `timezone is not supported for @every schedules` 오류를 반환합니다.

## 그 밖에 기록된 변경
- 83 (added 45, value_changed 23, defect_corrected 9, default_changed 3, constraint_changed 2, removed 1)

[분석 자세히 보기](https://ratatosk.io/ko/releases/dapr/v1.19.0)

[원본 릴리스 노트](https://github.com/dapr/dapr/releases/tag/v1.19.0)
