Skip to Content
문서SDK개요

SDK

Deplite는 네 가지 언어의 공식 SDK를 제공해요.
모두 동일한 API 표면을 그 언어의 관용 스타일로 노출해요.

언어 매트릭스

언어패키지최소 요구사항비동기 스타일이벤트 스트림 타입
JavaScript / TypeScript@deplite/sdk (npm)Node.js 20+Promise / async-awaitAsyncIterable<AgentEvent>
Android (Kotlin)io.deplite:sdk-android (Maven Central)JVM 17+suspend / 코루틴Flow<AgentEvent>
iOS (Swift)Deplite/sdk-ios (SwiftPM)iOS 15 · macOS 12 · tvOS 15 · watchOS 8 · visionOS 1async / throwsAsyncThrowingStream<AgentEvent, Error>
Flutter (Dart)deplite (pub.dev)Dart 3.0+Future / awaitStream<AgentEvent>

두 가지 모드

모든 SDK는 두 가지 모드를 제공해요.
자세한 비교는 인증 모드에서 확인해주세요.

ExternalEmbedded
진입 클래스DepliteDepliteAgent
인증API 토큰 (dpl_...)1회용 설치 코드 (en_...) → 공개·개인 키쌍
시작 방법new Deplite({ apiToken })Deplite.enroll({ installCode, name })new DepliteAgent({ identity, privateKey })
키 보관 책임호출자호출자 (SDK는 저장하지 않음)

Enrollment 결과는 SDK가 저장하지 않아요

Deplite.enroll(...)이 반환하는 Enrollment { identity, privateKey }는 SDK가 디스크에 쓰지 않아요.
호출자가 암호화 후 저장하는 것을 추천드려요.

identity는 비밀이 아니므로 일반 저장소에 둬도 되고, privateKey(raw 32바이트)만 안전하게 보관하면 충분해요.

4언어 공통 API 표면

모든 SDK가 노출하는 객체 구조와 메소드는 동일해요.
언어별 시그니처는 각 SDK 페이지에서 확인해주세요.

External 매니저 (Deplite)

매니저메소드
triggersrun
filesupload, presignUpload, completeUpload, downloadUrl, download, get, list, delete

Embedded 매니저 (DepliteAgent)

매니저메소드
(agent 자체)heartbeat, updateIdentity, events
workflowsreport
jobsappendLogs, reportResult
filesupload, presignUpload, complete, downloadUrl, download, get, delete (no list)

공통 모델

모델설명
Enrollment{ identity, privateKey } — enroll 결과
AgentIdentity{ agentId, organizationId, baseUrl, serverPublicKeyPem }
AgentEventDeploy · Revoke · SyncWorkflows · Ping · Unknown (sealed)
DeployPayload{ jobId, workflowName, debug, ref?, params?, issuedAt, nonce, force, forceReason? }
TriggerRunResult{ jobId, status, idempotent, timedOut, exitCode?, errorMessage?, output?, statusUrl? }
FileMeta{ id, bindingId?, jobId?, filename?, contentType?, size?, status?, ... }
CleanupRuleTtl(seconds) · Persistent · OnJobEnd (sealed)
LogItem{ seq, stream, content, stepName?, level? }
JobResultfactories: running()·success()·failed()·timeout()·rejected()
WorkflowReport{ name, verboseSteps[], secretsKeys[] }

공통 예외 계층

예외발생 시점
DepliteAuthException / DepliteAuthError / DepliteError.unauthorizedHTTP 401·403
DepliteApiException / DepliteApiError / DepliteError.api그 외 4xx·5xx
DepliteException / DepliteError / DepliteError.transport etc.네트워크·키·디스크 등

REST·Actions와 어떻게 다른가요?

SDKREST APIGitHub Actions
코드 작성필요 (앱·서버 안에서)필요 (HTTP 클라이언트)불필요 (YAML만)
타입 안전
Embedded 모드✅ (직접 구현)
서명 자동 처리❌ (직접)
Streaming 이벤트 수신✅ (agent.events())✅ (SSE 직접 구현)
어디서 도는지앱·서버·CI어디서나GitHub Actions runner

REST API는 어떤 언어에서도 가능하지만 직접 서명·재시도·SSE를 구현해야 해요.
SDK는 그걸 라이브러리로 감춰줘요.
GitHub Actions는 가장 단순하지만 External 모드만 지원해요.

관련 문서

언어별 상세 페이지로 이동하세요.

최종 수정 일자: