Zum Inhalt springen

Endpunkte

Dies ist die Dokumentation der öffentlichen API von Capgo Cloud

Fügen Sie in den Headers Ihren API-Schlüssel als authorization hinzu

Organisationen

Dieser Endpunkt ermöglicht die Verwaltung von Organisationen und deren Mitgliedern

GET

https://apicapgoapp/organization

Ruft Organisationsinformationen ab. Wenn orgId in den Parametern angegeben ist, wird eine einzelne Organisation zurückgegeben. Andernfalls werden alle zugänglichen Organisationen zurückgegeben

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
}

Rückgabe:

return Organization[] | Organization

POST

https://apicapgoapp/organization

Aktualisiert eine bestehende Organisation. Erfordert Admin-Rolle

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

Erfordert einen Request-Body vom Typ OrganizationUpdate

Bei Erfolg wird Folgendes zurückgegeben:

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

PUT

https://apicapgoapp/organization

Erstellt eine neue Organisation

interface OrganizationCreate {
name: string
}

Erfordert einen Request-Body vom Typ OrganizationCreate

Bei Erfolg wird Folgendes zurückgegeben:

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

API-Schlüssel

Dieser Endpunkt ermöglicht die Verwaltung von API-Schlüsseln für den Zugriff auf die Capgo API

GET

https://apicapgoapp/apikey

Ruft API-Schlüssel für Ihr Konto ab. Gibt alle zugänglichen API-Schlüssel zurück

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

Rückgabe:

return ApiKey[]

POST

https://apicapgoapp/apikey

Erstellt einen neuen API-Schlüssel für eine bestimmte Organisation

Abfrageparameter:

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

Rückgabe:

return { apikey: ApiKey }

DELETE

https://apicapgoapp/apikey/:id

Löscht einen bestehenden API-Schlüssel

Parameter:

  • id: Der zu löschende API-Schlüssel

Bei Erfolg wird zurückgegeben:

return { success: true }

Bei Fehler wird zurückgegeben:

return { error: string, supabaseError?: any }

Mitglieder (/organization/members)

GET

Ruft Organisationsmitglieder ab

Erfordert einen Request-Body (Abfrageparameter) vom Typ { orgId: string }

Bei Erfolg wird Folgendes zurückgegeben:

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

Löscht ein Organisationsmitglied

interface MemberDelete {
orgId: string
email: string
}

Erfordert einen Request-Body (Abfrageparameter) vom Typ MemberDelete

Bei Erfolg wird Folgendes zurückgegeben:

return { status: 'OK' }

Bei Fehler wird Folgendes zurückgegeben:

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

Statistiken

Dieser Endpunkt ermöglicht es Ihnen, verschiedene Statistiken über Ihre Apps und Organisationen abzurufen

GET /statistics/app/:app_id

Ruft Statistiken für eine bestimmte App ab

Abfrageparameter:

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

Rückgabe:

interface Stats {
date: string
mau: number // Monatlich aktive Benutzer
storage: number // Speichernutzung in Bytes
bandwidth: number // Bandbreitennutzung in Bytes
}

Wenn der graph-Parameter angegeben ist, wird eine SVG-Bildvisualisierung der angeforderten Metrik zurückgegeben

GET /statistics/user

Ruft aggregierte Statistiken über alle Organisationen ab, auf die der Benutzer Zugriff hat

Abfrageparameter:

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

Rückgabe: Wenn graph nicht angegeben ist:

interface Stats {
date: string
mau: number // Monatlich aktive Benutzer
storage: number // Speichernutzung in Bytes
bandwidth: number // Bandbreitennutzung in Bytes
}[]

Wenn der graph-Parameter angegeben ist, wird eine SVG-Bildvisualisierung der angeforderten Metrik zurückgegeben

GET /statistics/org/:org_id

Ruft Statistiken für eine bestimmte Organisation ab

Abfrageparameter:

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

Rückgabe: Wenn graph nicht angegeben ist:

interface Stats {
date: string
mau: number // Monatlich aktive Benutzer
storage: number // Speichernutzung in Bytes
bandwidth: number // Bandbreitennutzung in Bytes
}[]

Wenn der graph-Parameter angegeben ist, wird eine SVG-Bildvisualisierung der angeforderten Metrik zurückgegeben

Kanäle

Dieser Endpunkt ermöglicht es Ihnen, alle verfügbaren Kanäle Ihrer App zu überprüfen und zu ändern

POST

https://apicapgoapp/channel

Senden Sie dies, um einen Kanal zu erstellen oder zu aktualisieren

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
}

Empfangen Sie dies:

{ "status": "ok" }

GET

https://apicapgoapp/channel

Senden Sie app_id als URL-Parameter und empfangen Sie ein Array der ersten 50 Kanäle
Sie können die nächsten erhalten, indem Sie page=1 senden

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; // Standard oder nicht
disableAutoUpdateUnderNative: boolean;
disableAutoUpdate: boolean;
allow_emulator: boolean;
allow_dev: boolean;
}[]

und optional channel Name als URL-Parameter, um einen zu empfangen:

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; // Standard oder nicht
disableAutoUpdateUnderNative: boolean;
disableAutoUpdate: boolean;
allow_emulator: boolean;
allow_dev: boolean;
}

DELETE

https://apicapgoapp/channel

Senden Sie dies als Abfrageparameter

interface Channel {
channel: string
app_id: string
}

Empfangen Sie dies:

{ "status": "ok" }

Geräte

Dieser Endpunkt ermöglicht es Ihnen, alle mit Ihrer App verknüpften Geräte zu überprüfen und zu ändern

POST

https://apicapgoapp/device

Senden Sie dies

interface DeviceLink {
app_id: string
device_id: string
version_id?: string // Versionsname (wird zu einem besseren Namen migriert)
channel?: string // Kanalname
}

Empfangen Sie dies:

{ "status": "ok" }

GET

https://apicapgoapp/device

Senden Sie app_id als URL-Parameter und empfangen Sie ein Array der ersten 50 GeräteSie können den nächsten erhalten, indem Sie page=1 senden

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;
}[]

und optional den device_id Namen als URL-Parameter, um einen zu erhalten:

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

Dieser Endpunkt dient zum Trennen des Kanals und der Versionsüberschreibung. Sie können ein Gerät nicht von Capgo löschen

https://apicapgoapp/device

Senden Sie dies als Query-Parameter

interface Device {
device_id: string
app_id: string
}

erhalten Sie dies:

{ "status": "ok" }

Bundles

Dieser Endpunkt ermöglicht es Ihnen, alle mit Ihrer App verknüpften Bundles zu überprüfen und zu löschen

GET

https://apicapgoapp/bundle

Senden Sie app_id als URL-Parameter und erhalten Sie ein Array der ersten 50 Bundles Sie können die nächsten erhalten, indem Sie page=1 senden

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

Löscht ein Bundle in der Cloud

https://apicapgoapp/bundle

Senden Sie dies als Query-Parameter

interface Bundle {
app_id: string
version: string
}

erhalten Sie dies:

{ "status": "ok" }

Alternativ können Sie senden

interface Bundle {
app_id: string
}

Um alle Bundles zu löschen