콘텐츠로 건너뛰기

엔드포인트

Capgo 클라우드의 공개 API 문서입니다.

접근하려면 헤더에 API 키를 authorization으로 추가하세요

조직

이 엔드포인트는 조직과 구성원을 관리할 수 있게 해줍니다

GET

https://apicapgoapp/organization

조직 정보를 검색합니다. 파라미터로 orgId가 제공되면 단일 조직을 반환합니다. 그렇지 않으면 접근 가능한 모든 조직을 반환합니다

interface Organization {
id: string
created_by: string
created_at: string
updated_at: string
logo: string | null
name: string
management_email: string
customer_id: string | null
}

반환:

return Organization[] | Organization

POST

https://apicapgoapp/organization

기존 조직을 업데이트합니다. 관리자 권한이 필요합니다

interface OrganizationUpdate {
orgId: string
logo?: string
name?: string
management_email?: string
}

OrganizationUpdate 타입의 요청 본문이 필요합니다

성공 시 다음을 반환합니다:

return { status: 'Organization updated', data: Organization }

PUT

https://apicapgoapp/organization

새 조직을 생성합니다

interface OrganizationCreate {
name: string
}

OrganizationCreate 타입의 요청 본문이 필요합니다

성공 시 다음을 반환합니다:

return { status: 'Organization created', id: string }

API 키

이 엔드포인트는 Capgo API 접근을 위한 API 키를 관리할 수 있게 해줍니다

GET

https://apicapgoapp/apikey

계정의 API 키를 검색합니다. 접근 가능한 모든 API 키를 반환합니다

interface ApiKey {
created_at: string | null
id: number
key: string
mode: 'read' | 'write' | 'upload' | 'all'
name: string
updated_at: string | null
user_id: string
}

반환:

return ApiKey[]

POST

https://apicapgoapp/apikey

특정 조직을 위한 새 API 키를 생성합니다

쿼리 파라미터:

interface ApiKeyCreate {
org_id: string
mode: 'read' | 'write' | 'upload' | 'all'
}

반환:

return { apikey: ApiKey }

DELETE

https://apicapgoapp/apikey/:id

기존 API 키를 삭제합니다

파라미터:

  • id: 삭제할 API 키

성공 시 반환:

return { success: true }

실패 시 반환:

return { error: string, supabaseError?: any }

멤버 (/organization/members)

GET

조직 멤버를 검색합니다

{ orgId: string } 타입의 요청 본문(쿼리 파라미터)이 필요합니다

성공 시 다음을 반환합니다:

interface Member {
uid: string;
email: string;
image_url: string;
role: "invite_read" | "invite_upload" | "invite_write" | "invite_admin" | "invite_super_admin" | "read" | "upload" | "write" | "admin" | "super_admin";
}
return Member[]

DELETE

https://apicapgoapp/organization/members

조직 멤버를 삭제합니다

interface MemberDelete {
orgId: string
email: string
}

MemberDelete 타입의 요청 본문(쿼리 파라미터)이 필요합니다

성공 시 다음을 반환합니다:

return { status: 'OK' }

실패 시 다음을 반환합니다:

return { error: string, status: 'KO' }

통계

이 엔드포인트는 앱과 조직에 대한 다양한 통계를 검색할 수 있게 해줍니다

GET /statistics/app/:app_id

특정 앱의 통계를 검색합니다

쿼리 파라미터:

interface StatsQuery {
from: Date
to: Date
graph?: 'mau' | 'storage' | 'bandwidth'
}

반환:

interface Stats {
date: string
mau: number // 월간 활성 사용자
storage: number // 저장소 사용량(바이트)
bandwidth: number // 대역폭 사용량(바이트)
}

graph 파라미터가 제공되면 요청된 메트릭의 SVG 이미지 시각화를 반환합니다

GET /statistics/user

사용자가 접근할 수 있는 모든 조직의 집계된 통계를 검색합니다

쿼리 파라미터:

interface StatsQuery {
from: Date
to: Date
graph?: 'mau' | 'storage' | 'bandwidth'
}

반환: graph가 제공되지 않은 경우:

interface Stats {
date: string
mau: number // 월간 활성 사용자
storage: number // 저장소 사용량(바이트)
bandwidth: number // 대역폭 사용량(바이트)
}[]

graph 파라미터가 제공되면 요청된 메트릭의 SVG 이미지 시각화를 반환합니다

GET /statistics/org/:org_id

특정 조직의 통계를 검색합니다

쿼리 파라미터:

interface StatsQuery {
from: Date
to: Date
graph?: 'mau' | 'storage' | 'bandwidth'
}

반환: graph가 제공되지 않은 경우:

interface Stats {
date: string
mau: number // 월간 활성 사용자
storage: number // 저장소 사용량(바이트)
bandwidth: number // 대역폭 사용량(바이트)
}[]

graph 파라미터가 제공되면 요청된 메트릭의 SVG 이미지 시각화를 반환합니다

채널

이 엔드포인트는 앱의 모든 사용 가능한 채널을 확인하고 수정할 수 있게 해줍니다

POST

https://apicapgoapp/channel

채널을 생성하거나 업데이트하려면 다음을 전송하세요

type disable_update = "major" | "minor" | "version_number" | "none"
interface ChannelSet {
app_id: string
channel: string
version?: string
public?: boolean
disableAutoUpdateUnderNative?: boolean
disableAutoUpdate?: disable_update
ios?: boolean
android?: boolean
allow_device_self_set?: boolean
allow_emulator?: boolean
allow_dev?: boolean
}

다음을 수신합니다:

{ "status": "ok" }

GET

https://apicapgoapp/channel

URL 파라미터로 app_id를 보내면 처음 50개의 채널 배열을 수신합니다
page=1을 보내서 다음 것들을 얻을 수 있습니다

interface Channel {
id: number;
created_at: string;
name: string;
app_id: string;
version: {
id: number,
name: string
};
created_by: string;
updated_at: string;
public: boolean; // 기본값 여부
disableAutoUpdateUnderNative: boolean;
disableAutoUpdate: boolean;
allow_emulator: boolean;
allow_dev: boolean;
}[]

선택적으로 URL 파라미터로 channel 이름을 보내면 하나를 수신합니다:

interface Channel {
id: number;
created_at: string;
name: string;
app_id: string;
version: {
id: number,
name: string
};
created_by: string;
updated_at: string;
public: boolean; // 기본값 여부
disableAutoUpdateUnderNative: boolean;
disableAutoUpdate: boolean;
allow_emulator: boolean;
allow_dev: boolean;
}

DELETE

https://apicapgoapp/channel

다음을 쿼리 파라미터로 보내세요

interface Channel {
channel: string
app_id: string
}

다음을 수신합니다:

{ "status": "ok" }

디바이스

이 엔드포인트는 앱에 연결된 모든 디바이스를 확인하고 수정할 수 있게 해줍니다

POST

https://apicapgoapp/device

다음을 보내세요

interface DeviceLink {
app_id: string
device_id: string
version_id?: string // 버전 이름 (더 나은 이름으로 마이그레이션 될 예정)
channel?: string // 채널 이름
}

다음을 수신합니다:

{ "status": "ok" }

GET

https://apicapgoapp/device

URL 파라미터로 app_id를 보내면 처음 50개의 디바이스 배열을 수신합니다page=1을 전송하여 다음 항목을 얻을 수 있습니다

interface Device{
created_at?: string | undefined;
updated_at?: string | undefined;
device_id: string;
custom_id: string;
version: {
id: number,
name: string
};
app_id: string;
platform?: "ios" | "android" | undefined;
plugin_version: string;
os_version?: string | undefined;
version_build: string;
is_prod: boolean;
is_emulator: boolean;
}[]

그리고 선택적으로 하나를 받기 위해 URL 매개변수로 device_id 이름을 전송할 수 있습니다:

interface Device {
created_at?: string | undefined;
updated_at?: string | undefined;
device_id: string;
version: {
id: number,
name: string
};
app_id: string;
platform?: "ios" | "android" | undefined;
plugin_version: string;
os_version?: string | undefined;
}

DELETE

이 엔드포인트는 채널과 버전 오버라이드를 연결 해제하기 위한 것입니다. Capgo에서 디바이스를 삭제할 수는 없습니다

https://apicapgoapp/device

쿼리 매개변수로 다음을 전송하세요

interface Device {
device_id: string
app_id: string
}

다음을 수신합니다:

{ "status": "ok" }

번들

이 엔드포인트를 통해 앱에 연결된 모든 번들을 확인하고 삭제할 수 있습니다

GET

https://apicapgoapp/bundle

URL 매개변수로 app_id를 전송하면 처음 50개 번들의 배열을 수신합니다
page=1을 전송하여 다음 항목을 얻을 수 있습니다

interface Bundle {
app_id: string
bucket_id: string | null
checksum: string | null
created_at: string | null
deleted: boolean
external_url: string | null
id: number
minUpdateVersion: string | null
name: string
native_packages: Json[] | null
owner_org: string
r2_path: string | null
session_key: string | null
storage_provider: string
updated_at: string | null
user_id: string | null
}[]

DELETE

클라우드에서 하나의 번들을 삭제합니다

https://apicapgoapp/bundle

쿼리 매개변수로 다음을 전송하세요

interface Bundle {
app_id: string
version: string
}

다음을 수신합니다:

{ "status": "ok" }

또는 다음을 전송할 수 있습니다

interface Bundle {
app_id: string
}

모든 번들을 삭제하기 위해