Altyapı API

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

Başka araçları bağlamak için API anahtarları, webhook’lar ve arka plan işleri.

Modül kodu platform · 19 işlem · 1 veri modeli · 16 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ı: platform (hepsi), platform:read (yalnız okuma) ya da platform:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
event_subscriber_skipsevent_subscriber_skip/api/v1/event_subscriber_skips

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
platform.cancel_jobplatform:manageİşi iptal et
platform.create_api_keyplatform:manageAPI anahtarı oluştur
platform.create_webhookplatform:manageWebhook kaydet
platform.delete_webhookplatform:deleteWebhook’u kaldır
platform.end_session_keyplatform:readEra oturum anahtarını kapat
platform.enqueue_jobplatform:handleİşi sıraya koy
platform.issue_session_keyplatform:readEra oturum anahtarı başlat
platform.issue_station_keyplatform:readEra’nın motorunu benim için başlat
platform.pair_deviceplatform:readBilgisayarımı bağla
platform.purge_historyplatform:deleteTeslimat geçmişini temizle
platform.record_deliveryplatform:handleWebhook teslimatını kaydet
platform.rename_api_keyplatform:manageAPI anahtarını yeniden adlandır
platform.retry_jobplatform:manageİşi yeniden dene
platform.revoke_api_keyplatform:manageAPI anahtarını iptal et
platform.rotate_webhook_secretplatform:manageİmzalama anahtarını yenile
platform.send_test_deliveryplatform:manageTest gönder veya teslimatı tekrarla
platform.set_webhook_activeplatform:manageWebhook’u aç veya kapat
platform.unpair_deviceplatform:readBilgisayarımı kaldır
platform.update_webhookplatform:manageWebhook’u düzenle

platform.cancel_job

İşi iptal et — Sıradaki bir işi kuyruktan alır. Çalışmakta olan işe dokunulmaz.

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

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

Girdi

AlanTürZorunluAçıklama
job_iduuidevetİş

Ön koşullar

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

KodNe zaman reddedilir
job_not_foundBu çalışma alanında böyle bir iş yok.
job_already_finishedBu iş zaten bitmiş.
job_runningBu iş çalışıyor ve buradan iptal edilemez.

Yayımladığı olaylar: platform.job_cancelled

Neye yazar: job (update) — Marks the job cancelled

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.cancel_job", {
  job_id: "JOB_ID"
})
era platform cancel_job \
  --job-id "JOB_ID"
tools/call
{
  "name": "era__platform__cancel_job",
  "arguments": {
    "job_id": "JOB_ID"
  }
}

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

platform.create_api_key

API anahtarı oluştur — Bu çalışma alanı için bir anahtar üretir. Anahtarın kendisi bir kez gösterilir ve hiç saklanmaz.

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

Yalnız Era uygulamasından: bu işlem kimlik bilgisi üretir; anahtar ya da token ile istek reddedilir (403).
POSThttps://app.getera.io/api/v1/actions/platform.create_api_key
API anahtarı ya da OAuth token · platform:manage

Girdi

AlanTürZorunluAçıklama
namestringevetAd · Bu anahtarın ne için olduğu. Sonradan onu tanımanın tek yolu budur. · en çok 120
key_hashstringevetAnahtar özeti · Anahtarın SHA-256 özeti. Anahtarın kendisi sunucuya ikinci kez ulaşmaz. · en çok 64
key_prefixstringevetAnahtar öneki · İlk birkaç karakter; böylece anahtar ekranda diğerlerinden ayırt edilebilir. · en çok 16
scopesstringModüller · Virgülle ayrılmış modül kodları. Oluşturan kişinin sahip olduklarını devralmak için boş bırakın. · en çok 500
expires_atdate-timeSona erme

Ön koşullar

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

KodNe zaman reddedilir
not_a_digestAnahtar özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı.
name_takenBu çalışma alanında bu adda bir anahtar zaten var.
expiry_in_pastSon tarih zaten geçmiş.
key_limit_reachedBu çalışma alanı etkin anahtar sınırına ulaştı.

Yayımladığı olaylar: platform.key_created

Neye yazar: api_key (insert) — Stores the digest, the prefix and who issued it

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

platform.create_webhook

Webhook kaydet — Bu çalışma alanının gönderi yaptığı ya da dış dünyanın bu alana gönderi yaptığı bir uç nokta.

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

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

Girdi

AlanTürZorunluAçıklama
directionstring (enum)evetYön · İzin verilen değerler: outbound, inbound
namestringevetAd · en çok 120
target_urlstringURL · Yalnızca giden. · en çok 2000
pathstringYol · Yalnızca gelen. Gönderdikleri adresin son bölümü. · en çok 80
eventsstringEtkinlikler · Virgülle ayrılmış. Her olay için boş bırakın. · en çok 1000
secret_hashstringİmzalama gizli anahtarı özeti · Yalnızca gelen: imzaları doğrulamakta kullanılan ortak gizli anahtarın SHA-256 özeti. · en çok 64
credential_iduuidKimlik bilgisi · Yalnızca giden: imzalama gizli anahtarını tutan kimlik bilgisi.
timeout_msnumberZaman aşımı (ms) · Yalnızca giden. Alıcının ne kadar bekleneceği. · en az 1000 · en çok 30000
max_attemptsnumberDenemeler · Yalnızca giden. Bir gönderimden vazgeçilmeden önceki deneme sayısı. · en az 1 · en çok 10
rate_limit_per_minutenumberDakikadaki istek sayısı · Yalnızca gelen. Arayan adresi başına; 0 sınırsız demektir. · en az 0 · en çok 6000

Ön koşullar

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

KodNe zaman reddedilir
address_missingGiden webhook bir URL, gelen webhook bir yol gerektirir.
invalid_urlBu bir web adresine benzemiyor.
insecure_urlAdres https kullanmalı.
invalid_pathYol yalnızca küçük harf, rakam, tire ve alt çizgi içerebilir.
path_takenBu yolda zaten başka bir uç nokta yanıt veriyor.
name_takenBu çalışma alanında bu adda bir webhook zaten var.
not_a_digestİmzalama anahtarı özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı.
unsigned_inboundGelen webhook bir imzalama anahtarı taşımalı.

Yayımladığı olaylar: platform.webhook_created

Neye yazar: webhook (insert) — Registers the endpoint, inactive failures counted from zero

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.create_webhook", {
  direction: "outbound",
  name: "Name"
})
era platform create_webhook \
  --direction "outbound" \
  --name "Name"
tools/call
{
  "name": "era__platform__create_webhook",
  "arguments": {
    "direction": "outbound",
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 address_missing, invalid_url, insecure_url, invalid_path, path_taken, name_taken, not_a_digest, unsigned_inbound · 429 çok sık istek

platform.delete_webhook

Webhook’u kaldır — Uç noktayı ve teslimat geçmişini kaldırır.

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

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

Girdi

AlanTürZorunluAçıklama
webhook_iduuidevetWebhook

Ön koşullar

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

KodNe zaman reddedilir
webhook_not_foundBu çalışma alanında böyle bir webhook yok.

Yayımladığı olaylar: platform.webhook_deleted

Neye yazar: webhook (delete) — Removes the endpoint; its deliveries cascade

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.delete_webhook", {
  webhook_id: "WEBHOOK_ID"
})
era platform delete_webhook \
  --webhook-id "WEBHOOK_ID"
tools/call
{
  "name": "era__platform__delete_webhook",
  "arguments": {
    "webhook_id": "WEBHOOK_ID"
  }
}

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

platform.end_session_key

Era oturum anahtarını kapat — Era’nın motorunun bir çalıştırma için kullandığı kısa ömürlü anahtarı, çalıştırma biter bitmez iptal eder.

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

Yalnız Era uygulamasından: bu işlem kimlik bilgisi üretir; anahtar ya da token ile istek reddedilir (403).
POSThttps://app.getera.io/api/v1/actions/platform.end_session_key
API anahtarı ya da OAuth token · platform:read

Girdi

AlanTürZorunluAçıklama
key_iduuidevetOturum anahtarı

Ön koşullar

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

KodNe zaman reddedilir
session_key_not_foundBu çalışma alanında bu kimlikle geçerli bir Era oturum anahtarı yok.
not_your_session_keyBir Era oturum anahtarını yalnızca adına çalıştığı kişi sonlandırabilir; bu yalnızca oturum anahtarları için geçerlidir.

Yayımladığı olaylar: platform.key_revoked

Neye yazar: api_key (update) — Stamps the session key revoked

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

platform.enqueue_job

İşi sıraya koy — Bir işçinin alacağı bir iş ekler. Aynı anahtarla yeniden sıraya koymak ilk işi döndürür.

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

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

Girdi

AlanTürZorunluAçıklama
typestringevetTür · en çok 80
payloadstringYük · JSON. İçe aktarma işlerinde büyüktür (crm.import_leads satırlarını taşır). · en çok 20000000
run_atdate-timeÇalışma zamanı · Bir çalışan boşalır boşalmaz çalışması için boş bırakın.
max_attemptsnumberDenemeler · en az 1 · en çok 20
idempotency_keystringTekrar önleme anahtarı · en çok 200

Ön koşullar

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

KodNe zaman reddedilir
invalid_payloadVeri bir JSON nesnesi olmalı.
queue_fullBu çalışma alanı sıradaki iş sınırına ulaştı.

Yayımladığı olaylar: platform.job_enqueued

Neye yazar: job (insert) — Adds the job, pending, due at run_at

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.enqueue_job", {
  type: "Type"
})
era platform enqueue_job \
  --type "Type"
tools/call
{
  "name": "era__platform__enqueue_job",
  "arguments": {
    "type": "Type"
  }
}

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

platform.issue_session_key

Era oturum anahtarı başlat — Era’nın motoru isteğin üzerinde çalışırken Era’nın araçlarını senin adına kullanabilsin diye kısa ömürlü bir anahtar.

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

Yalnız Era uygulamasından: bu işlem kimlik bilgisi üretir; anahtar ya da token ile istek reddedilir (403).
POSThttps://app.getera.io/api/v1/actions/platform.issue_session_key
API anahtarı ya da OAuth token · platform:read

Girdi

AlanTürZorunluAçıklama
key_hashstringevetAnahtar özeti · en çok 64
key_prefixstringevetAnahtar öneki · en çok 16
expires_atdate-timeevetSona erme
parent_key_iduuidBağlı olduğu anahtar · Eşleştirdiğiniz bilgisayarın (ya da Era motorunun) anahtarı; o iptal edilirse bu da iptal edilir.

Ön koşullar

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

KodNe zaman reddedilir
not_a_digestAnahtar özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı.
session_too_longOturum anahtarı gelecekte, en geç altı saat içinde sona ermeli.
parent_key_not_foundBağlı olduğu anahtar, bu çalışma alanında sizin geçerli bilgisayar ya da Era motoru anahtarınız olmalı.

Yayımladığı olaylar: platform.key_created

Neye yazar: api_key (insert) — Stores the session key’s digest, scoped to Era sessions and this person

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

platform.issue_station_key

Era’nın motorunu benim için başlat — Bilgisayarınız kapalıyken Era’nın kendi motorunun sohbetlerinizi sizin adınıza yanıtlamak için kullandığı anahtar.

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

Yalnız Era uygulamasından: bu işlem kimlik bilgisi üretir; anahtar ya da token ile istek reddedilir (403).
POSThttps://app.getera.io/api/v1/actions/platform.issue_station_key
API anahtarı ya da OAuth token · platform:read

Girdi

AlanTürZorunluAçıklama
key_hashstringevetAnahtar özeti · en çok 64
key_prefixstringevetAnahtar öneki · en çok 16
expires_atdate-timeevetSona erme

Ön koşullar

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

KodNe zaman reddedilir
not_a_digestAnahtar özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı.
station_key_too_longMotor anahtarının süresi gelecekte, en fazla sekiz gün içinde dolmalı.

Yayımladığı olaylar: platform.key_created, platform.key_revoked

Neye yazar: api_key (insert) — Stores the engine key’s digest, scoped to Era’s engine and this person; api_key (update) — Revokes the person’s earlier engine keys

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

platform.pair_device

Bilgisayarımı bağla — Kendi bilgisayarını (Era Desktop ya da bulut bilgisayarın) Era’ya bağlar; aboneliklerin ve görevlerin orada çalışır.

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

Yalnız Era uygulamasından: bu işlem kimlik bilgisi üretir; anahtar ya da token ile istek reddedilir (403).
POSThttps://app.getera.io/api/v1/actions/platform.pair_device
API anahtarı ya da OAuth token · platform:read

Girdi

AlanTürZorunluAçıklama
namestringevetBilgisayar · en çok 120
key_hashstringevetAnahtar özeti · en çok 64
key_prefixstringevetAnahtar öneki · en çok 16
replacesstringYerine geçtiği · Aynı bilgisayarın daha önceki eşleştirmeniz, adıyla. · en çok 120

Ön koşullar

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

KodNe zaman reddedilir
not_a_digestAnahtar özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı.
device_limit_reachedZaten on bilgisayarın bağlı.
computer_access_requiredBir bilgisayara yalnızca çalışma alanının sahibi ya da bilgisayar erişimi verilmiş bir üye ulaşabilir.

Yayımladığı olaylar: platform.key_created, platform.key_revoked

Neye yazar: api_key (insert) — Stores the device key’s digest, scoped to this computer and this person; api_key (update) — Revokes the person’s earlier pairing of the same computer

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

platform.purge_history

Teslimat geçmişini temizle — Saklama süresinden eski teslimat kayıtlarını ve süresi dolan tekrar koruma anahtarlarını kaldırır.

Gereken izin platform:delete · siler ya da geri alınamaz

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

Girdi

AlanTürZorunluAçıklama
daysnumberSaklama süresi (gün) · en çok 3650

Ön koşullar

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

KodNe zaman reddedilir
retention_too_shortSaklama süresi en az bir gün olmalı.

Yayımladığı olaylar: platform.history_purged

Neye yazar: webhook_delivery (delete) — Removes delivery attempts older than the window; idempotency_key (delete) — Removes keys whose window has passed

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.purge_history", {
  days: 1
})
era platform purge_history \
  --days 1
tools/call
{
  "name": "era__platform__purge_history",
  "arguments": {
    "days": 1
  }
}

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

platform.record_delivery

Webhook teslimatını kaydet — Her deneme için yanıt ve süresiyle bir satır.

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

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

Girdi

AlanTürZorunluAçıklama
webhook_iduuidevetWebhook
event_namestringevetEtkinlik · en çok 120
successbooleanevetBaşarılı
attemptnumberDeneme · en az 1 · en çok 100
idempotency_keystringTekrar önleme anahtarı · en çok 200
response_statusnumberYanıt durumu · en az 100 · en çok 599
response_bodystringYanıt gövdesi · en çok 8000
error_messagestringHata · en çok 2000
duration_msnumberSüre (ms) · en az 0
request_bodystringGönderilen gövde · JSON. Denemenin bayt bayt aynı şekilde yeniden gönderilebilmesi için saklanır. · en çok 262144
event_idstringEtkinlik · en çok 64

Ön koşullar

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

KodNe zaman reddedilir
webhook_not_foundBu çalışma alanında böyle bir webhook yok.
duplicate_attemptBu deneme zaten kaydedilmiş.

Yayımladığı olaylar: platform.delivery_recorded, platform.webhook_disabled

Neye yazar: webhook_delivery (insert) — Writes the attempt; webhook (update) — Moves the consecutive-failure count, and disables the endpoint when it crosses the threshold

curl -X POST https://app.getera.io/api/v1/actions/platform.record_delivery \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"webhook_id":"WEBHOOK_ID","event_name":"Event","success":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "platform.delivery_recorded",
    "platform.webhook_disabled"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.record_delivery", {
  webhook_id: "WEBHOOK_ID",
  event_name: "Event",
  success: true
})
era platform record_delivery \
  --webhook-id "WEBHOOK_ID" \
  --event-name "Event" \
  --success true
tools/call
{
  "name": "era__platform__record_delivery",
  "arguments": {
    "webhook_id": "WEBHOOK_ID",
    "event_name": "Event",
    "success": true
  }
}

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

platform.rename_api_key

API anahtarını yeniden adlandır — Üretildikten sonra bir anahtarı tanımlayan tek şey adıdır.

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

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

Girdi

AlanTürZorunluAçıklama
key_iduuidevetAnahtar
namestringevetAd · en çok 120

Ön koşullar

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

KodNe zaman reddedilir
key_not_foundBu çalışma alanında böyle bir anahtar yok.
name_takenBu çalışma alanında bu adda bir anahtar zaten var.
already_revokedİptal edilmiş bir anahtar yeniden adlandırılamaz — adı kaydın bir parçası.

Yayımladığı olaylar: platform.key_renamed

Neye yazar: api_key (update) — Changes the key’s name

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.rename_api_key", {
  key_id: "KEY_ID",
  name: "Name"
})
era platform rename_api_key \
  --key-id "KEY_ID" \
  --name "Name"
tools/call
{
  "name": "era__platform__rename_api_key",
  "arguments": {
    "key_id": "KEY_ID",
    "name": "Name"
  }
}

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

platform.retry_job

İşi yeniden dene — Başarısız bir işi, hemen çalışmak üzere sıraya geri koyar.

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

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

Girdi

AlanTürZorunluAçıklama
job_iduuidevetİş

Ön koşullar

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

KodNe zaman reddedilir
job_not_foundBu çalışma alanında böyle bir iş yok.
job_not_failedYalnızca başarısız bir iş yeniden denenebilir.
attempts_exhaustedBu iş tüm denemelerini kullanmış.

Yayımladığı olaylar: platform.job_retried

Neye yazar: job (update) — Returns the job to pending, due now, and raises its attempt ceiling by one

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.retry_job", {
  job_id: "JOB_ID"
})
era platform retry_job \
  --job-id "JOB_ID"
tools/call
{
  "name": "era__platform__retry_job",
  "arguments": {
    "job_id": "JOB_ID"
  }
}

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

platform.revoke_api_key

API anahtarını iptal et — Anahtarı hemen çalışmaz hâle getirir. Kayıt, eski istekler açıklanabilsin diye kalır.

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

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

Girdi

AlanTürZorunluAçıklama
key_iduuidevetAnahtar

Ön koşullar

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

KodNe zaman reddedilir
key_not_foundBu çalışma alanında böyle bir anahtar yok.
already_revokedBu anahtar zaten iptal edilmiş.

Yayımladığı olaylar: platform.key_revoked

Neye yazar: api_key (update) — Stamps the key revoked, and by whom

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.revoke_api_key", {
  key_id: "KEY_ID"
})
era platform revoke_api_key \
  --key-id "KEY_ID"
tools/call
{
  "name": "era__platform__revoke_api_key",
  "arguments": {
    "key_id": "KEY_ID"
  }
}

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

platform.rotate_webhook_secret

İmzalama anahtarını yenile — Yeni bir gizli anahtar üretir. Eskisi 24 saat daha çalışır.

Gereken izin platform: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/platform.rotate_webhook_secret
API anahtarı ya da OAuth token · platform:manage

Girdi

AlanTürZorunluAçıklama
webhook_iduuidevetWebhook
secret_hashstringYeni gizli anahtar özeti · Yalnızca gelen: yeni ortak gizli anahtarın SHA-256 özeti. · en çok 64

Ön koşullar

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

KodNe zaman reddedilir
webhook_not_foundBu çalışma alanında böyle bir webhook yok.
digest_requiredGelen uç noktanın anahtarı, yeni anahtarın özeti gönderilerek yenilenir.
not_a_digestİmzalama anahtarı özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı.

Yayımladığı olaylar: platform.webhook_secret_rotated

Neye yazar: webhook (update) — Moves the current secret to the overlap slot and stores the new one

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.rotate_webhook_secret", {
  webhook_id: "WEBHOOK_ID"
})
era platform rotate_webhook_secret \
  --webhook-id "WEBHOOK_ID"
tools/call
{
  "name": "era__platform__rotate_webhook_secret",
  "arguments": {
    "webhook_id": "WEBHOOK_ID"
  }
}

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

platform.send_test_delivery

Test gönder veya teslimatı tekrarla — Uç noktaya imzalı bir teslimat sıraya koyar. Tekrarlamada o denemenin gövdesini aynen yeniden gönderir.

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

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

Girdi

AlanTürZorunluAçıklama
webhook_iduuidevetWebhook
replay_ofuuidYeniden gönderilecek teslimat · Deneme olayı göndermek için boş bırakın.

Ön koşullar

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

KodNe zaman reddedilir
webhook_not_foundBu çalışma alanında böyle bir webhook yok.
not_outboundYalnızca bu çalışma alanının çağırdığı bir uç noktaya teslimat gönderilebilir.
webhook_inactiveUç nokta kapalı.
nothing_to_replayBu teslimatın yeniden gönderilecek gövdesi saklanmamış.

Yayımladığı olaylar: platform.test_delivery_queued

Neye yazar: job (insert) — Queues an apps.deliver job for the endpoint

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.send_test_delivery", {
  webhook_id: "WEBHOOK_ID"
})
era platform send_test_delivery \
  --webhook-id "WEBHOOK_ID"
tools/call
{
  "name": "era__platform__send_test_delivery",
  "arguments": {
    "webhook_id": "WEBHOOK_ID"
  }
}

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

platform.set_webhook_active

Webhook’u aç veya kapat — Yeniden açmak hata sayacını sıfırlar; kapatma eşiği baştan başlar.

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

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

Girdi

AlanTürZorunluAçıklama
webhook_iduuidevetWebhook
activebooleanevetAktif

Ön koşullar

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

KodNe zaman reddedilir
webhook_not_foundBu çalışma alanında böyle bir webhook yok.
no_changeWebhook zaten bu durumda.

Yayımladığı olaylar: platform.webhook_enabled, platform.webhook_disabled

Neye yazar: webhook (update) — Flips the active flag and, when enabling, resets the failure count

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.set_webhook_active", {
  webhook_id: "WEBHOOK_ID",
  active: true
})
era platform set_webhook_active \
  --webhook-id "WEBHOOK_ID" \
  --active true
tools/call
{
  "name": "era__platform__set_webhook_active",
  "arguments": {
    "webhook_id": "WEBHOOK_ID",
    "active": true
  }
}

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

platform.unpair_device

Bilgisayarımı kaldır — Kendi bilgisayarlarından birinin Era bağlantısını keser. Oradaki girişlerin bilgisayarda kalır.

Gereken izin platform: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/platform.unpair_device
API anahtarı ya da OAuth token · platform:read

Girdi

AlanTürZorunluAçıklama
key_iduuidevetBilgisayar

Ön koşullar

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

KodNe zaman reddedilir
key_not_foundBu çalışma alanında böyle bir bilgisayar yok.
not_your_deviceBir bilgisayarı burada yalnızca onu bağlayan kişi kaldırabilir.

Yayımladığı olaylar: platform.key_revoked

Neye yazar: api_key (update) — Stamps the device key revoked, and by whom

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.unpair_device", {
  key_id: "KEY_ID"
})
era platform unpair_device \
  --key-id "KEY_ID"
tools/call
{
  "name": "era__platform__unpair_device",
  "arguments": {
    "key_id": "KEY_ID"
  }
}

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

platform.update_webhook

Webhook’u düzenle — Ad, adres, olaylar, zaman aşımı, deneme sayısı ve gelen istek sınırı.

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

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

Girdi

AlanTürZorunluAçıklama
webhook_iduuidevetWebhook
namestringAd · en çok 120
target_urlstringURL · Yalnızca giden. · en çok 2000
eventsstringEtkinlikler · Virgülle ayrılmış. Boş, her olay demektir. · en çok 1000
timeout_msnumberZaman aşımı (ms) · en az 1000 · en çok 30000
max_attemptsnumberDenemeler · en az 1 · en çok 10
rate_limit_per_minutenumberDakikadaki istek sayısı · en az 0 · en çok 6000

Ön koşullar

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

KodNe zaman reddedilir
webhook_not_foundBu çalışma alanında böyle bir webhook yok.
name_takenBu çalışma alanında bu adda bir webhook zaten var.
invalid_urlBu bir web adresine benzemiyor.
insecure_urlAdres https kullanmalı.

Yayımladığı olaylar: platform.webhook_updated

Neye yazar: webhook (update) — Rewrites the endpoint’s settings

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.update_webhook", {
  webhook_id: "WEBHOOK_ID"
})
era platform update_webhook \
  --webhook-id "WEBHOOK_ID"
tools/call
{
  "name": "era__platform__update_webhook",
  "arguments": {
    "webhook_id": "WEBHOOK_ID"
  }
}

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

Veri modelleri

EventSubscriberSkip

Tablo event_subscriber_skip · Kaynak event_subscriber_skips

  • GET /api/v1/event_subscriber_skips
  • GET /api/v1/event_subscriber_skips/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
event_idstring (int64) · int8event
subscriberstring · text
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
reasonstring · text
skipped_atstring (date-time) · timestamptz

Birincil anahtar: event_id, subscriber

Olaylar

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

OlayNe olurTaşıdığı alanlar
platform.delivery_recordedBir webhook teslim denemesi bitti.webhook_id, success, response_status
platform.history_purgedTeslim geçmişi ve süresi dolan tekrarsızlık anahtarları temizlendi.days, removed
platform.job_cancelledKuyruktaki bir iş iptal edildi.job_id
platform.job_enqueuedKuyruğa bir iş kondu.job_id, type
platform.job_retriedBaşarısız bir iş kuyruğa geri kondu.job_id
platform.key_createdBir API anahtarı verildi.key_id, prefix
platform.key_renamedBir API anahtarı yeniden adlandırıldı.key_id, name
platform.key_revokedBir API anahtarı iptal edildi.key_id, prefix
platform.test_delivery_queuedBir test ya da yeniden oynatılan teslim kuyruğa kondu.webhook_id, job_id, replay_of
platform.webhook_createdBir webhook uç noktası kaydedildi.webhook_id, direction
platform.webhook_deletedBir webhook uç noktası kaldırıldı.webhook_id
platform.webhook_disabledBir webhook uç noktası kapatıldı.webhook_id, reason
platform.webhook_enabledBir webhook uç noktası yeniden açıldı.webhook_id
platform.webhook_receivedGelen bir webhook kabul edildi.webhook_id, path, name, body
platform.webhook_secret_rotatedBir webhook imzalama sırrı değiştirildi; eskisi geçiş süresince çalışmaya devam eder.webhook_id, overlap_until
platform.webhook_updatedBir webhook uç noktasının adresi, olayları ya da sınırları değişti.webhook_id
Bu sayfa yardımcı oldu mu?