본문으로 건너뛰기
개념

설정의 소유권

App 설정을 저장할 곳을 고르고, 호스트 설정을 SDK로 읽는 방법을 설명합니다.

설정의 소유권

값을 둘 곳 결정하기

업무 설정은 App 소유 테넌트 데이터에 저장하고 인가된 API로 변경합니다. 호스트가 소유한 설정은 SDK 계약으로 읽습니다. 배포 자격 증명과 프로세스 설정은 운영자가 관리하며 App 폼에 두지 않습니다.

설정값소유 주체와 변경 경로
DB 주소·배포 서비스 자격 증명·서명 비밀키배포 환경·secret store에서 운영자가 반영
런타임 기본값버전 관리하는 Core 설정
지원되는 플랫폼 설정의 즉시 변경정해진 Central 관리 설정 화면
테넌트 업무 타임존·locale호스트가 검증·인가하는 테넌트 설정
App 고유 동작·선호값App 소유 모델·검증·설정 화면

App 설정 메뉴를 추가하려면 설정 페이지 추가, 호스트 환경을 구성하려면 환경변수를 참고하세요.

호스트 설정 읽기

테넌트 문맥에서 실행하는 App handler는 컨테이너에서 공개 서비스를 가져옵니다.

코드 예시
PHP
use Nexia\Tenancy\Contracts\TenantSettings;

$timezone = app(TenantSettings::class)->businessTimezone();

TenantSettings는 SDK 계약이고 Core가 구현을 바인딩합니다. App이 Core 설정 모델을 조회하거나 저장 key를 복제하지 않습니다. 계약 소스는 packages/app-sdk/packages/laravel/src/Tenancy/Contracts/TenantSettings.php입니다.

App 설정 구성하기

  1. App이 소유하는 값과 입력 검증 규칙을 정합니다.
  2. 테넌트가 명시적으로 선택한 값을 App 데이터로 저장합니다.
  3. 조회·변경에 App permission과 레코드 규칙을 적용합니다.
  4. 내비게이션 계약으로 설정 목적지를 공개합니다.
  5. 테넌트 선택이 없을 때만 기본값을 적용합니다.

설정 목적지를 공개해도 저장·인가·설정 병합이 자동 구현되지는 않습니다. 이는 App이 작성합니다. 백엔드는 보호된 API 추가하기, 화면은 App 화면 만들기에서 이어갑니다.

변경 반영 시점 이해하기

환경변수와 캐시된 부팅 설정은 배포·worker 재시작이 필요할 수 있습니다. 지원되는 실시간 설정은 소유 런타임의 갱신 규칙을 따릅니다. 테넌트 설정은 제품 데이터이므로 .env를 수정하거나 다른 테넌트의 선택을 바꾸는 근거가 되지 않습니다.

새 기본값을 출시할 때 명시적인 테넌트 값을 덮어쓰지 마세요. 데이터 의미를 바꾸는 마이그레이션이 필요하면 App 릴리스하기에 따라 업데이트 경로를 계획합니다.

비밀값을 브라우저 번들에 포함하거나 일반 조회 응답으로 저장된 값을 돌려주지 않습니다. 테넌트 BYOK·SSO처럼 지원되는 자격 증명 관리 화면은 관리자의 입력을 받아 보호된 서버 경로로 저장할 수 있습니다. 일반 App 설정을 만들어 이 경로를 우회하지 마세요. 선택 서비스의 설정은 소비 기능별로 다릅니다. 검색·Agent 화면 검색·가져오기 헤더 매칭이 provider나 실패 정책을 암묵적으로 공유하지 않습니다. 구체적인 항목은 환경변수, Search 설정 프로필, Agent Gateway 켜기에서 확인하세요.

원본 위치: docs/developers/content/ko/architecture/configuration-ownership.md