openclaw secrets apply가 강제하는 엄격한 계약을 정의합니다.
대상이 이 규칙과 일치하지 않으면, 구성 변경 전에 apply가 실패합니다.
계획 파일 형태
openclaw secrets apply --from <plan.json>은 계획 대상의 targets 배열을 예상합니다.
Provider 업서트와 삭제
계획에는 대상별 쓰기와 함께secrets.providers 맵을 변경하는 두 개의 선택적 최상위 필드도 포함할 수 있습니다.
providerUpserts— provider 별칭을 키로 사용하는 객체입니다. 각 값은 provider 정의(openclaw.json의secrets.providers.<alias>아래에서 허용되는 것과 동일한 형태, 예:exec또는fileprovider)입니다.providerDeletes— 제거할 provider 별칭의 배열입니다.
providerUpserts는 targets보다 먼저 실행되므로, target.ref.provider가
동일한 계획이 providerUpserts에서 도입하는 provider 별칭을 참조할 수 있습니다.
이것이 없으면 아직 openclaw.json에 구성되지 않은 별칭을 참조하는 계획은
provider "<alias>" is not configured 오류로 실패합니다.
providerUpserts를 통해 도입된 Exec provider도 Exec provider 동의 동작의
exec 동의 규칙이 적용됩니다. exec provider가 포함된 계획은 쓰기 모드에서
--allow-exec가 필요합니다.
지원되는 대상 범위
계획 대상은 다음의 지원되는 자격 증명 경로에 대해 허용됩니다.대상 유형 동작
일반 규칙:target.type은 인식되어야 하며 정규화된target.path형태와 일치해야 합니다.
models.providers.apiKeyskills.entries.apiKeychannels.googlechat.serviceAccount
경로 검증 규칙
각 대상은 다음 모두로 검증됩니다.type은 인식되는 대상 유형이어야 합니다.path는 비어 있지 않은 점 경로여야 합니다.pathSegments는 생략할 수 있습니다. 제공된 경우path와 정확히 동일한 경로로 정규화되어야 합니다.- 금지된 세그먼트는 거부됩니다:
__proto__,prototype,constructor. - 정규화된 경로는 대상 유형에 등록된 경로 형태와 일치해야 합니다.
providerId또는accountId가 설정된 경우, 경로에 인코딩된 id와 일치해야 합니다.auth-profiles.json대상에는agentId가 필요합니다.- 새
auth-profiles.json매핑을 만들 때는authProfileProvider를 포함하세요.
실패 동작
대상이 검증에 실패하면 apply는 다음과 같은 오류와 함께 종료됩니다.Exec provider 동의 동작
--dry-run은 기본적으로 exec SecretRef 검사를 건너뜁니다.- exec SecretRef/provider가 포함된 계획은
--allow-exec가 설정되지 않는 한 쓰기 모드에서 거부됩니다. - exec가 포함된 계획을 검증/적용할 때는 dry-run 및 쓰기 명령 모두에
--allow-exec를 전달하세요.
런타임 및 감사 범위 참고 사항
- ref 전용
auth-profiles.json항목(keyRef/tokenRef)은 런타임 해석 및 감사 범위에 포함됩니다. secrets apply는 지원되는openclaw.json대상, 지원되는auth-profiles.json대상, 선택적 스크럽 대상에 씁니다.
운영자 검사
openclaw secrets configure로 계획을 다시 생성하거나 대상 경로를 위의 지원되는 형태로 수정하세요.