Uygulamalar API

Uygulamalar modülünün tüm işlemleri (14) ve veri modelleri (1): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Bağladığınız uygulama ve servisler ile onlara gönderilen güncellemeler.

Modül kodu apps · 14 işlem · 1 veri modeli · 12 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: apps (hepsi), apps:read (yalnız okuma) ya da apps:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
app_connection_choicesapp_connection_choice/api/v1/app_connection_choices

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
apps.add_connectionapps:readHesap ekle
apps.connectapps:manageBağlantıyı kaydet
apps.connect_whatsappapps:readWhatsApp Business bağla
apps.disconnectapps:deleteBağlantıyı kes
apps.record_failureapps:handleBağlantı hatasını kaydet
apps.record_healthyapps:handleBaşarılı bağlantı testini kaydet
apps.record_pollapps:handleBağlı uygulamanın yoklamasını kaydet
apps.register_installationapps:manageKurulumu kaydet
apps.rotate_secretapps:handleBağlantının anahtarını yenile
apps.set_connection_choiceapps:readHangi hesabın kullanılacağını seç
apps.set_connection_ownerapps:readBağlantının kimin olduğunu değiştir
apps.set_pausedapps:manageBağlantıyı duraklat veya sürdür
apps.store_secretapps:manageSır sakla
apps.update_connectionapps:manageBağlantıyı değiştir

apps.add_connection

Hesap ekle — Bir uygulamaya bir hesap daha bağlar — senin ya da şirketin. Anahtar şifrelenip saklanır.

Gereken izin apps:read · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/actions/apps.add_connection
API anahtarı ya da OAuth token · apps:read

Girdi

AlanTürZorunluAçıklama
providerstringevetUygulama · en çok 64
labelstringevetAd · en çok 160
kindstring (enum)evetTür · İzin verilen değerler: oauth2, api_key, basic
valuestringAnahtar · en çok 16000
secretRefstringGizli anahtarın saklandığı yer · en çok 200
accountRefstringHesap (örneğin info@…) · en çok 200
ownerstring (enum)Kimin · İzin verilen değerler: me, workspace
sharestring (enum)Kimler kullanabilir · İzin verilen değerler: me, team, workspace
teamIduuidEkip

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_labelBağlantının bir adı olmalı.
bad_providerUygulama adı küçük harfli bir kısa ad olmalı.
not_managerŞirket bağlantısını yalnızca sahip ya da yönetici ekleyebilir.
team_requiredBir ekiple paylaşmak için ekibi seçmeniz gerekir.
no_secretBağlantı için bir anahtar ya da giriş yapılmış bir hesap gerekir.
label_takenAynı uygulamanın iki etkin bağlantısı aynı adı taşıyamaz.

Yayımladığı olaylar: apps.connected

Neye yazar: secret (insert) — Seals the key, when one is given; credential (insert) — Writes the connection with its owner and share

curl -X POST https://app.getera.io/api/v1/actions/apps.add_connection \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"provider":"App","label":"Name","kind":"oauth2"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connected"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.add_connection", {
  provider: "App",
  label: "Name",
  kind: "oauth2"
})
era apps add_connection \
  --provider "App" \
  --label "Name" \
  --kind "oauth2"
tools/call
{
  "name": "era__apps__add_connection",
  "arguments": {
    "provider": "App",
    "label": "Name",
    "kind": "oauth2"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_label, bad_provider, not_manager, team_required, no_secret, label_taken · 429 çok sık istek

apps.connect

Bağlantıyı kaydet — Bu çalışma alanının bir şeye bağlı olduğunu söyleyen tek satırı yazar.

Gereken izin apps:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/actions/apps.connect
API anahtarı ya da OAuth token · apps:manage

Girdi

AlanTürZorunluAçıklama
providerstringevetSağlayıcı · en çok 64
labelstringevetAd · en çok 160
kindstring (enum)evetTür · İzin verilen değerler: oauth2, api_key, basic, mcp, signing
secretRefstringevetGizli anahtarın saklandığı yer · Saklanan gizli anahtarın adı — asla anahtarın kendisi değil. Buraya hiçbir zaman erişim anahtarı yazılmaz. · en çok 200
accountRefstringSağlayıcıdaki hesap · en çok 200
scopesobject / arrayVerilen izinler
expiresAtdate-timeSona erme

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_labelBağlantının bir adı olmalı.
bad_providerSağlayıcı küçük harfli bir kısa addır.
bad_scopesKapsamlar bir metin listesidir.
label_takenAynı sağlayıcıya ait iki etkin bağlantı aynı adı taşıyamaz.

Yayımladığı olaylar: apps.connected

Neye yazar: credential (insert) — Writes the connection. Never the secret

curl -X POST https://app.getera.io/api/v1/actions/apps.connect \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"provider":"Provider","label":"Name","kind":"oauth2","secretRef":"Where the secret is kept"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connected"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.connect", {
  provider: "Provider",
  label: "Name",
  kind: "oauth2",
  secretRef: "Where the secret is kept"
})
era apps connect \
  --provider "Provider" \
  --label "Name" \
  --kind "oauth2" \
  --secret-ref "Where the secret is kept"
tools/call
{
  "name": "era__apps__connect",
  "arguments": {
    "provider": "Provider",
    "label": "Name",
    "kind": "oauth2",
    "secretRef": "Where the secret is kept"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_label, bad_provider, bad_scopes, label_taken · 429 çok sık istek

apps.connect_whatsapp

WhatsApp Business bağla — Bir WhatsApp Business numarasını (Meta kaydından) senin ya da şirketin bağlantısı olarak kaydeder; erişim anahtarı kasada şifreli saklanır.

Gereken izin apps:read · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/actions/apps.connect_whatsapp
API anahtarı ya da OAuth token · apps:read

Girdi

AlanTürZorunluAçıklama
phoneNumberIdstringevetTelefon numarası kimliği · en çok 40
wabaIdstringevetWhatsApp Business hesap kimliği · en çok 40
businessIdstringİşletme portföyü kimliği · en çok 40
displayNumberstringevetSayı · en çok 40
verifiedNamestringGörünen ad · en çok 200
tokenstringevetİşletme erişim anahtarı · en çok 4000
pinstringİki adımlı PIN · en çok 6
viastring (enum)Bağlayan · İzin verilen değerler: embedded_signup, manual
ownerstring (enum)Kimin · İzin verilen değerler: me, workspace
sharestring (enum)Kimler kullanabilir · İzin verilen değerler: me, team, workspace
teamIduuidEkip

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
bad_whatsapp_idsKimlikler Meta’nın sayısal kimlikleri, numara ise ülke koduyla birlikte tam numara olmalı.
not_managerŞirketin WhatsApp hesabını yalnızca sahip ya da yönetici ekleyebilir.
team_requiredBir ekiple paylaşmak için ekibi seçmeniz gerekir.
whatsapp_number_takenBu numara bir iş arkadaşınızın kişisel bağlantısı (ya da yönetici değilseniz şirketin bağlantısı) olduğu için devralınamaz.

Yayımladığı olaylar: apps.connected, apps.connection_updated

Neye yazar: secret (upsert) — Seals the business token (and the PIN), rotating in place on a reconnect; credential (upsert) — One connection per number, with its owner and Meta ids

curl -X POST https://app.getera.io/api/v1/actions/apps.connect_whatsapp \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"phoneNumberId":"Phone number id","wabaId":"WhatsApp Business Account id","displayNumber":"Number","token":"Business token"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connected",
    "apps.connection_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.connect_whatsapp", {
  phoneNumberId: "Phone number id",
  wabaId: "WhatsApp Business Account id",
  displayNumber: "Number",
  token: "Business token"
})
era apps connect_whatsapp \
  --phone-number-id "Phone number id" \
  --waba-id "WhatsApp Business Account id" \
  --display-number "Number" \
  --token "Business token"
tools/call
{
  "name": "era__apps__connect_whatsapp",
  "arguments": {
    "phoneNumberId": "Phone number id",
    "wabaId": "WhatsApp Business Account id",
    "displayNumber": "Number",
    "token": "Business token"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 bad_whatsapp_ids, not_manager, team_required, whatsapp_number_taken · 429 çok sık istek

apps.disconnect

Bağlantıyı kes — Bağlantıyı gizler ve iptal edildi işaretler. Onunla imzalanan her şey başarısız olmaya başlar.

Gereken izin apps:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/actions/apps.disconnect
API anahtarı ya da OAuth token · apps:delete

Girdi

AlanTürZorunluAçıklama
iduuidevetBağlantı · kimliği: credential

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBağlantı bu çalışma alanında bulunmalı.

Yayımladığı olaylar: apps.disconnected

Neye yazar: credential (update) — Writes the tombstone, through sql/057’s door

curl -X POST https://app.getera.io/api/v1/actions/apps.disconnect \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CREDENTIAL_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.disconnected"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.disconnect", {
  id: "CREDENTIAL_ID"
})
era apps disconnect \
  --id "CREDENTIAL_ID"
tools/call
{
  "name": "era__apps__disconnect",
  "arguments": {
    "id": "CREDENTIAL_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

apps.record_failure

Bağlantı hatasını kaydet — Sağlayıcının kendi hata mesajını bağlantıda aynen saklar.

Gereken izin apps:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/actions/apps.record_failure
API anahtarı ya da OAuth token · apps:handle

Girdi

AlanTürZorunluAçıklama
iduuidevetBağlantı · kimliği: credential
messagestringevetSağlayıcının yanıtı · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBağlantı bu çalışma alanında bulunmalı.

Yayımladığı olaylar: apps.connection_failed

Neye yazar: credential (update) — Marks it in error and keeps the message

curl -X POST https://app.getera.io/api/v1/actions/apps.record_failure \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CREDENTIAL_ID","message":"What the provider said"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connection_failed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.record_failure", {
  id: "CREDENTIAL_ID",
  message: "What the provider said"
})
era apps record_failure \
  --id "CREDENTIAL_ID" \
  --message "What the provider said"
tools/call
{
  "name": "era__apps__record_failure",
  "arguments": {
    "id": "CREDENTIAL_ID",
    "message": "What the provider said"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

apps.record_healthy

Başarılı bağlantı testini kaydet — Testi geçen bağlantının hatasını temizler ve zamanını işler.

Gereken izin apps:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/actions/apps.record_healthy
API anahtarı ya da OAuth token · apps:handle

Girdi

AlanTürZorunluAçıklama
iduuidevetBağlantı · kimliği: credential

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBağlantı bu çalışma alanında bulunmalı.

Yayımladığı olaylar: apps.connection_healthy

Neye yazar: credential (update) — Back to active, error cleared, test time stamped

curl -X POST https://app.getera.io/api/v1/actions/apps.record_healthy \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CREDENTIAL_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connection_healthy"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.record_healthy", {
  id: "CREDENTIAL_ID"
})
era apps record_healthy \
  --id "CREDENTIAL_ID"
tools/call
{
  "name": "era__apps__record_healthy",
  "arguments": {
    "id": "CREDENTIAL_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

apps.record_poll

Bağlı uygulamanın yoklamasını kaydet — Bir kurulumun bir akışının kontrol noktasını ilerletir ve her yeni öğeyi bir kez kabul eder.

Gereken izin apps:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/actions/apps.record_poll
API anahtarı ya da OAuth token · apps:handle

Girdi

AlanTürZorunluAçıklama
credentialIduuidevetBağlantı · kimliği: credential
feedstringevetAkış · en çok 64
cursorstringKontrol noktası · en çok 2000
itemsobject / arrayYeni öğeler
errorstringSağlayıcının yanıtı · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBağlantı bu çalışma alanında bulunmalı.
invalid_feedAkış adı küçük harf, rakam ve alt çizgiden oluşur.

Yayımladığı olaylar: apps.app_event, apps.poll_failed, apps.connection_failed

Neye yazar: app_poll_state (upsert) — Moves the checkpoint, or counts the failure; app_poll_seen (insert) — Admits each item id once per feed; credential (update) — Stamps last use; goes red after three failures in a row

curl -X POST https://app.getera.io/api/v1/actions/apps.record_poll \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"credentialId":"CREDENTIAL_ID","feed":"Feed"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.app_event",
    "apps.poll_failed",
    "apps.connection_failed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.record_poll", {
  credentialId: "CREDENTIAL_ID",
  feed: "Feed"
})
era apps record_poll \
  --credential-id "CREDENTIAL_ID" \
  --feed "Feed"
tools/call
{
  "name": "era__apps__record_poll",
  "arguments": {
    "credentialId": "CREDENTIAL_ID",
    "feed": "Feed"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, invalid_feed · 429 çok sık istek

apps.register_installation

Kurulumu kaydet — Bağlanan bir konektörü, OAuth hesabını veya MCP sunucusunu bu çalışma alanının kurulum kaydı yapar; test, duraklatma ve kaldırma tek yerden yapılır.

Gereken izin apps:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/actions/apps.register_installation
API anahtarı ya da OAuth token · apps:manage

Girdi

AlanTürZorunluAçıklama
sourcestring (enum)evetBağlandığı yer · İzin verilen değerler: connector, oauth, mcp_server, engine_credential
sourceRefstringevetMotor kaydı · en çok 200
providerstringevetSağlayıcı · en çok 64
labelstringevetAd · en çok 160
kindstring (enum)evetTür · İzin verilen değerler: oauth2, api_key, basic, mcp, signing
accountRefstringSağlayıcıdaki hesap · en çok 200
scopesobject / arrayVerilen izinler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_labelBağlantının bir adı olmalı.
bad_providerSağlayıcı küçük harfli bir kısa addır.
bad_scopesKapsamlar bir metin listesidir.

Yayımladığı olaylar: apps.connected

Neye yazar: credential (insert) — Writes the installation row, or returns the existing one

curl -X POST https://app.getera.io/api/v1/actions/apps.register_installation \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"source":"connector","sourceRef":"Engine row","provider":"Provider","label":"Name","kind":"oauth2"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connected"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.register_installation", {
  source: "connector",
  sourceRef: "Engine row",
  provider: "Provider",
  label: "Name",
  kind: "oauth2"
})
era apps register_installation \
  --source "connector" \
  --source-ref "Engine row" \
  --provider "Provider" \
  --label "Name" \
  --kind "oauth2"
tools/call
{
  "name": "era__apps__register_installation",
  "arguments": {
    "source": "connector",
    "sourceRef": "Engine row",
    "provider": "Provider",
    "label": "Name",
    "kind": "oauth2"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_label, bad_provider, bad_scopes · 429 çok sık istek

apps.rotate_secret

Bağlantının anahtarını yenile — Yenilenen OAuth anahtarını aynı kasa kaydının üzerine şifreler.

Gereken izin apps:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/actions/apps.rotate_secret
API anahtarı ya da OAuth token · apps:handle

Girdi

AlanTürZorunluAçıklama
credentialIduuidevetBağlantı · kimliği: credential
valuestringevetGizli anahtar · en çok 16000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu bağlantı bulunamadı.
no_vault_secretYalnız kasadaki bir anahtar yenilenir.

Yayımladığı olaylar: apps.connection_updated

Neye yazar: secret (update) — Rotates the sealed value in place

curl -X POST https://app.getera.io/api/v1/actions/apps.rotate_secret \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"credentialId":"CREDENTIAL_ID","value":"Secret"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connection_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.rotate_secret", {
  credentialId: "CREDENTIAL_ID",
  value: "Secret"
})
era apps rotate_secret \
  --credential-id "CREDENTIAL_ID" \
  --value "Secret"
tools/call
{
  "name": "era__apps__rotate_secret",
  "arguments": {
    "credentialId": "CREDENTIAL_ID",
    "value": "Secret"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, no_vault_secret · 429 çok sık istek

apps.set_connection_choice

Hangi hesabın kullanılacağını seç — Bir Era’nın, iş akışının ya da sohbetlerinin bir uygulamada hangi hesabı kullanacağı: kendi hesabın, şirketinki ya da adıyla biri.

Gereken izin apps:read · veriyi değiştirir

POSThttps://app.getera.io/api/v1/app_connection_choices/actions/set_connection_choice
API anahtarı ya da OAuth token · apps:read
  • Asıl adres: POST /api/v1/actions/apps.set_connection_choice

Girdi

AlanTürZorunluAçıklama
subjectTypestring (enum)evetİçin · İzin verilen değerler: chat, agent, workflow, voice_agent
subjectIdstringHangisi · en çok 200
familystringevetUygulama · en çok 64
pickstring (enum)evetKullan · İzin verilen değerler: mine, workspace, connection
connectionIduuidBağlantı · kimliği: credential

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
subject_requiredBir Era, iş akışı ya da sesli ajan seçilmeli.
connection_requiredBelirli bir bağlantı seçimi için bağlantıyı seçmeniz gerekir.
connection_not_foundBağlantı bu çalışma alanında bulunmalı.
provider_mismatchBağlantı aynı uygulamaya ait olmalı.
connection_not_usableYalnızca seçen kişinin kullanabildiği bir bağlantı seçilebilir.

Yayımladığı olaylar: apps.connection_choice_set

Neye yazar: app_connection_choice (upsert) — One row per thing and app

curl -X POST https://app.getera.io/api/v1/app_connection_choices/actions/set_connection_choice \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"subjectType":"chat","family":"App","pick":"mine"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connection_choice_set"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appConnectionChoices.setConnectionChoice({
  subjectType: "chat",
  family: "App",
  pick: "mine"
})
era app_connection_choices set_connection_choice \
  --subject-type "chat" \
  --family "App" \
  --pick "mine"
tools/call
{
  "name": "era__apps__set_connection_choice",
  "arguments": {
    "subjectType": "chat",
    "family": "App",
    "pick": "mine"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 subject_required, connection_required, connection_not_found, provider_mismatch, connection_not_usable · 429 çok sık istek

apps.set_connection_owner

Bağlantının kimin olduğunu değiştir — Kişisel mi şirketin mi, ve başka kimlerin kullanabileceği. Kişisel bağlantıyı yalnız sahibi değiştirir.

Gereken izin apps:read · veriyi değiştirir

POSThttps://app.getera.io/api/v1/actions/apps.set_connection_owner
API anahtarı ya da OAuth token · apps:read

Girdi

AlanTürZorunluAçıklama
iduuidevetBağlantı · kimliği: credential
ownerstring (enum)evetKimin · İzin verilen değerler: me, workspace
sharestring (enum)Kimler kullanabilir · İzin verilen değerler: me, team, workspace
teamIduuidEkip

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBağlantı bu çalışma alanında bulunmalı.
not_ownerKişisel bir bağlantıyı yalnızca sahibi değiştirebilir.
not_managerŞirket bağlantılarını yalnızca sahip ya da yönetici değiştirebilir.
workspace_ownedŞirket bağlantısı birinin kişisel bağlantısına dönüştürülemez.
team_requiredBir ekiple paylaşmak için ekibi seçmeniz gerekir.

Yayımladığı olaylar: apps.connection_updated

Neye yazar: credential (update) — Sets owner_user_id, share_scope and share_team_id

curl -X POST https://app.getera.io/api/v1/actions/apps.set_connection_owner \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CREDENTIAL_ID","owner":"me"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connection_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.set_connection_owner", {
  id: "CREDENTIAL_ID",
  owner: "me"
})
era apps set_connection_owner \
  --id "CREDENTIAL_ID" \
  --owner "me"
tools/call
{
  "name": "era__apps__set_connection_owner",
  "arguments": {
    "id": "CREDENTIAL_ID",
    "owner": "me"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_owner, not_manager, workspace_owned, team_required · 429 çok sık istek

apps.set_paused

Bağlantıyı duraklat veya sürdür — Duraklatılmış bağlantı sırrını ve geçmişini korur; sohbetler, ajanlar ve iş akışları onu atlar.

Gereken izin apps:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/actions/apps.set_paused
API anahtarı ya da OAuth token · apps:manage

Girdi

AlanTürZorunluAçıklama
iduuidevetBağlantı · kimliği: credential
pausedbooleanevetDuraklatıldı

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBağlantı bu çalışma alanında bulunmalı.
not_pausableİptal edilmiş veya süresi dolmuş bir bağlantı duraklatılmaz, yeniden bağlanır.
no_secretHiçbir sırrı göstermeyen bir bağlantı sürdürülemez.

Yayımladığı olaylar: apps.paused, apps.resumed

Neye yazar: credential (update) — Flips the status between paused and active

curl -X POST https://app.getera.io/api/v1/actions/apps.set_paused \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CREDENTIAL_ID","paused":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.paused",
    "apps.resumed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.set_paused", {
  id: "CREDENTIAL_ID",
  paused: true
})
era apps set_paused \
  --id "CREDENTIAL_ID" \
  --paused true
tools/call
{
  "name": "era__apps__set_paused",
  "arguments": {
    "id": "CREDENTIAL_ID",
    "paused": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_pausable, no_secret · 429 çok sık istek

apps.store_secret

Sır sakla — Bir anahtarı, erişim anahtarını veya şifreyi kasada mühürler. Değiştirilebilir, asla geri okunamaz.

Gereken izin apps:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/actions/apps.store_secret
API anahtarı ya da OAuth token · apps:manage

Girdi

AlanTürZorunluAçıklama
credentialIduuidBağlantı · kimliği: credential
valuestringevetGizli anahtar · en çok 16000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBağlantı bu çalışma alanında bulunmalı.

Yayımladığı olaylar: apps.connection_updated

Neye yazar: secret (upsert) — Seals the value; a second call rotates it in place; credential (update) — Points the connection at the vault secret

curl -X POST https://app.getera.io/api/v1/actions/apps.store_secret \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"value":"Secret"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connection_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.store_secret", {
  value: "Secret"
})
era apps store_secret \
  --value "Secret"
tools/call
{
  "name": "era__apps__store_secret",
  "arguments": {
    "value": "Secret"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

apps.update_connection

Bağlantıyı değiştir — Yeniden adlandırır, başka bir saklı sırra bağlar veya süresi doldu işaretler.

Gereken izin apps:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/actions/apps.update_connection
API anahtarı ya da OAuth token · apps:manage

Girdi

AlanTürZorunluAçıklama
iduuidevetBağlantı · kimliği: credential
labelstringAd · en çok 160
secretRefstringGizli anahtarın saklandığı yer · Saklanan gizli anahtarın adı — asla anahtarın kendisi değil. Buraya hiçbir zaman erişim anahtarı yazılmaz. · en çok 200
accountRefstringSağlayıcıdaki hesap · en çok 200
scopesobject / arrayVerilen izinler
expiresAtdate-timeSona erme
statusstring (enum)Durum · İzin verilen değerler: active, expired, revoked, error

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBağlantı bu çalışma alanında bulunmalı.
empty_labelBağlantının bir adı olmalı.
bad_scopesKapsamlar bir metin listesidir.

Yayımladığı olaylar: apps.connection_updated

Neye yazar: credential (update) — Rewrites the connection

curl -X POST https://app.getera.io/api/v1/actions/apps.update_connection \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CREDENTIAL_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "apps.connection_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("apps.update_connection", {
  id: "CREDENTIAL_ID"
})
era apps update_connection \
  --id "CREDENTIAL_ID"
tools/call
{
  "name": "era__apps__update_connection",
  "arguments": {
    "id": "CREDENTIAL_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde apps:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, empty_label, bad_scopes · 429 çok sık istek

Veri modelleri

AppConnectionChoice

Tablo app_connection_choice · Kaynak app_connection_choices

  • GET /api/v1/app_connection_choices
  • GET /api/v1/app_connection_choices/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
subject_typestring · textchat, agent, workflow, voice_agent
subject_idstring · text
familystring · text
pickstring · textmine, workspace, connection
connection_idstring (uuid) · uuidevetcredential
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, subject_type, subject_id, family

Denetimler:

  • CHECK ((family ~ '^[a-z][a-z0-9_]{1,63}$'::text))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
apps.app_eventBağlı bir uygulama yeni bir şey bildirdi (yoklandı, bir kez kabul edildi).id, provider, feed, external_id, occurred_at, summary, item
apps.connectedBu çalışma alanına bir uygulama bağlandı.id, provider, kind
apps.connection_choice_setBir Era’ya, iş akışına ya da sohbete bir uygulamanın hangi hesabını kullanacağı söylendi.subject_type, subject_id, family, pick
apps.connection_failedBir sağlayıcı bir bağlantıyı reddetti.id, provider
apps.connection_healthyBir bağlantı testi geçti.id, provider
apps.connection_updatedBir bağlantı yeniden adlandırıldı ya da yeniden yönlendirildi.id, provider
apps.deliveredGiden bir webhook teslim edildi.webhook_id, event_name
apps.delivery_failedGiden bir webhook teslim edilemedi.webhook_id, event_name, status
apps.disconnectedBir bağlantı iptal edildi.id, provider
apps.pausedBiri bir bağlantıyı duraklattı; çalışma zamanı onu atlar.id, provider
apps.poll_failedBağlı bir uygulama bir yoklamayı reddetti.id, provider, feed, failures, message
apps.resumedDuraklatılmış bir bağlantı yeniden açıldı.id, provider
Bu sayfa yardımcı oldu mu?