메인 콘텐츠로 건너뛰기
Operator 범위는 Gateway 클라이언트가 인증 후 수행할 수 있는 작업을 정의합니다. 이는 하나의 신뢰할 수 있는 Gateway 운영자 도메인 안의 제어 플레인 가드레일이며, 적대적인 다중 테넌트 격리가 아닙니다. 사람, 팀 또는 머신 사이에 강력한 분리가 필요하다면 별도의 OS 사용자 또는 호스트에서 별도의 Gateway를 실행하세요. 관련 항목: 보안, Gateway 프로토콜, Gateway 페어링, 디바이스 CLI.

역할

Gateway WebSocket 클라이언트는 하나의 역할로 연결합니다.
  • operator: CLI, Control UI, 자동화, 신뢰할 수 있는 헬퍼 프로세스와 같은 제어 플레인 클라이언트.
  • node: node.invoke를 통해 명령을 노출하는 macOS, iOS, Android 또는 헤드리스 노드와 같은 기능 호스트.
Operator RPC 메서드에는 operator 역할이 필요합니다. Node에서 시작된 메서드에는 node 역할이 필요합니다.

범위 수준

범위의미
operator.read읽기 전용 상태, 목록, 카탈로그, 로그, 세션 읽기 및 기타 변경을 일으키지 않는 제어 플레인 호출.
operator.write메시지 보내기, 도구 호출, 대화/음성 설정 업데이트, 노드 명령 릴레이와 같은 일반적인 변경 operator 작업. operator.read도 충족합니다.
operator.admin관리용 제어 플레인 액세스. 모든 operator.* 범위를 충족합니다. 구성 변경, 업데이트, 네이티브 훅, 민감한 예약 네임스페이스, 고위험 승인에 필요합니다.
operator.pairing페어링 기록 또는 디바이스 토큰의 나열, 승인, 거부, 제거, 순환, 폐지를 포함한 디바이스 및 노드 페어링 관리.
operator.approvalsExec 및 Plugin 승인 API.
operator.talk.secrets비밀이 포함된 Talk 구성 읽기.
알 수 없는 미래의 operator.* 범위는 호출자가 operator.admin을 보유하지 않는 한 정확한 일치가 필요합니다.

메서드 범위는 첫 번째 게이트일 뿐입니다

각 Gateway RPC에는 최소 권한 메서드 범위가 있습니다. 해당 메서드 범위는 요청이 핸들러에 도달할 수 있는지를 결정합니다. 일부 핸들러는 이후 승인되거나 변경되는 구체적인 대상에 따라 더 엄격한 승인 시점 검사를 적용합니다. 예시:
  • device.pair.approveoperator.pairing으로 도달할 수 있지만, operator 디바이스를 승인할 때는 호출자가 이미 보유한 범위만 발급하거나 유지할 수 있습니다.
  • node.pair.approveoperator.pairing으로 도달할 수 있으며, 이후 대기 중인 노드 명령 목록에서 추가 승인 범위를 파생합니다.
  • chat.send는 일반적으로 쓰기 범위 메서드이지만, 영구적인 /config set/config unset은 명령 수준에서 operator.admin이 필요합니다.
이를 통해 낮은 범위의 operator가 모든 페어링 승인을 관리자 전용으로 만들지 않고도 저위험 페어링 작업을 수행할 수 있습니다.

디바이스 페어링 승인

디바이스 페어링 기록은 승인된 역할과 범위의 지속적인 원본입니다. 이미 페어링된 디바이스는 조용히 더 넓은 액세스를 얻지 않습니다. 더 넓은 역할이나 더 넓은 범위를 요청하는 재연결은 새로운 대기 중인 업그레이드 요청을 만듭니다. 디바이스 요청을 승인할 때:
  • operator 역할이 없는 요청에는 operator 토큰 범위 승인이 필요하지 않습니다.
  • node와 같은 비 operator 디바이스 역할 요청에는 device.pair.approveoperator.pairing으로 도달 가능하더라도 operator.admin이 필요합니다.
  • operator.read, operator.write, operator.approvals, operator.pairing 또는 operator.talk.secrets 요청에는 호출자가 해당 범위 또는 operator.admin을 보유해야 합니다.
  • operator.admin 요청에는 operator.admin이 필요합니다.
  • 명시적 범위가 없는 복구 요청은 기존 operator 토큰 범위를 상속할 수 있습니다. 해당 기존 토큰이 관리자 범위라면 승인에는 여전히 operator.admin이 필요합니다.
관리자가 아닌 공유 비밀 및 신뢰할 수 있는 프록시 세션은 자신이 선언한 operator 범위 안에서만 operator 디바이스 요청을 승인할 수 있습니다. 이러한 세션이 그 외에는 operator.pairing을 사용할 수 있더라도 비 operator 역할 승인은 관리자 전용입니다. 페어링된 디바이스 토큰 세션의 경우 호출자가 operator.admin을 보유하지 않으면 관리도 자체 범위로 제한됩니다. 관리자가 아닌 호출자는 자신의 페어링 항목만 볼 수 있고, 자신의 대기 중인 요청만 승인하거나 거부할 수 있으며, 자신의 디바이스 항목만 순환, 폐지 또는 제거할 수 있습니다.

Node 페어링 승인

레거시 node.pair.*는 별도의 Gateway 소유 노드 페어링 저장소를 사용합니다. WS 노드는 role: node로 디바이스 페어링을 사용하지만, 동일한 승인 수준 어휘가 적용됩니다. node.pair.approve는 대기 중인 요청 명령 목록을 사용해 필요한 추가 범위를 파생합니다.
  • 명령이 없는 요청: operator.pairing
  • Exec이 아닌 노드 명령: operator.pairing + operator.write
  • system.run, system.run.prepare 또는 system.which: operator.pairing + operator.admin
Node 페어링은 ID와 신뢰를 설정합니다. 이는 노드 자체의 system.run exec 승인 정책을 대체하지 않습니다.

공유 비밀 인증

공유 Gateway 토큰/비밀번호 인증은 해당 Gateway에 대해 신뢰할 수 있는 operator 액세스로 취급됩니다. OpenAI 호환 HTTP 표면, /tools/invoke, HTTP 세션 기록 엔드포인트는 호출자가 더 좁은 선언 범위를 보내더라도 공유 비밀 bearer 인증에 대해 일반적인 전체 operator 기본 범위 집합을 복원합니다. 신뢰할 수 있는 프록시 인증 또는 private-ingress none과 같은 ID 보유 모드는 명시적으로 선언된 범위를 계속 존중할 수 있습니다. 실제 신뢰 경계 분리에는 별도의 Gateway를 사용하세요.