Skip to Content
문서인증 모드

인증 모드 — External vs Embedded

Deplite와 통신하는 모든 클라이언트(REST, SDK, GitHub Actions, 자체 Agent)는 두 가지 인증 모드 중 하나로 동작해요.
어떤 트랙을 쓰든 이 구분은 동일하게 적용돼요.

한눈에 비교

ExternalEmbedded
방향내 시스템 → DepliteDeplite → 내 시스템
역할Deplite를 호출하는 쪽Deplite의 작업 노드가 되는 쪽
인증 자격API 토큰 (dpl_...)1회용 설치 코드 (en_...) → 공개·개인 키쌍
인증 헤더Authorization: Bearer dpl_...X-Agent-Id, X-Timestamp, X-Nonce, X-Signature
키 보관호출자 측 안전 저장소호출자 측 안전 저장소 (SDK는 저장하지 않음)
회전대시보드에서 Rotate, 평문 재배포디바이스 재등록 (1회용 설치 코드 재발급)
대표 사용처백엔드, CI, 운영 콘솔, 자동화 스크립트키오스크, 무인 단말기, IoT, 자체 Agent

External 모드

내 시스템에서 Deplite API를 호출하는 모드예요.
가장 흔히 쓰이는 형태로, REST API, 모든 SDK의 호출 기능, GitHub Actions가 모두 이 모드를 사용해요.

사용 흐름

  1. 대시보드 API 토큰에서 토큰 발급
  2. 발급 직후 한 번만 보이는 평문 토큰(dpl_...)을 안전한 곳에 저장
  3. 모든 요청에 Authorization: Bearer dpl_... 헤더 첨부

토큰 스코프

토큰 발급 시 두 가지 스코프 중 필요한 것을 선택해요.

스코프권한
trigger지정한 trigger ID들만 호출 가능
storage지정한 storage binding에 대해 read/write/delete

같은 토큰에 여러 스코프를 함께 줄 수도 있어요.

토큰은 환경별·용도별로 분리해서 발급하는 걸 추천드려요.
회전과 회수 관리가 훨씬 수월해져요.

옵션 (선택)

옵션설명
rateLimit분·시간·일당 호출 제한
expiresAt토큰 만료 시각
allowedRefs워크플로우 측에서 허용할 git ref 패턴 제한 (트리거 단위)

Embedded 모드

내 앱·기기가 Deplite의 작업 노드가 되는 모드예요.
공식 deplite-agent 바이너리뿐 아니라, SDK의 Embedded 기능을 쓰면 일반 앱 안에도 Agent를 심을 수 있어요.

사용 흐름

  1. 대시보드 에이전트 → 에이전트 추가에서 1회용 설치 코드(en_...) 발급
  2. 앱(또는 Agent 바이너리)이 첫 실행 시 설치 코드로 enrollment 호출
  3. 서버가 Agent에게 고유 ID(ag-...)를 발급, Agent는 자체 키쌍을 디바이스 안전 스토리지에 보관
  4. 이후 모든 요청은 서명된 헤더로 인증

요청 서명, 서버가 보내는 deploy 이벤트의 검증, 재생 공격 방지에 필요한 nonce·timestamp 체크는 모두 SDK 또는 공식 Agent 바이너리가 내부에서 처리해요.
호출 측 코드에서 직접 서명을 만들 일은 없어요.

트랙별 모드 매핑

트랙ExternalEmbedded
REST API✅ 기본 사용✅ 자체 Agent 구현 시
SDK (JS, Android, iOS, Flutter)Deplite 클래스DepliteAgent 클래스
GitHub Actions✅ 전용 (api-token)❌ 해당 없음
Agent 바이너리❌ 해당 없음✅ 전용

관련 문서

최종 수정 일자: