Aktivite API
Aktivite modülünün tüm işlemleri (2) ve veri modelleri (2): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
Çalışma alanınızda olan her şeyin canlı akışı.
Modül kodu activity · 2 işlem · 2 veri modeli · 2 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ı: activity (hepsi), activity:read (yalnız okuma) ya da activity:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
activities | activity | /api/v1/activities | |||
events | event | /api/v1/events |
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
| İşlem | Gereken izin | Ne yapar |
|---|---|---|
activity.purge | activity:manage | Etkinlik saklama kuralını uygula |
activity.seal | activity:manage | Denetim kaydını mühürle |
activity.purge
Etkinlik saklama kuralını uygula — Çalışma alanının saklama süresinden eski etkinlikleri siler. 0 her şeyi saklar.
Gereken izin activity:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/activities/actions/purge- Asıl adres:
POST /api/v1/actions/activity.purge
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
days | number | Sakla (gün) |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
retention_too_short | Saklama süresi 0 (her şeyi sakla) ya da en az 30 gün olmalı. |
Yayımladığı olaylar: activity.purged
Neye yazar: activity (delete) — Removes rows older than the window
curl -X POST https://app.getera.io/api/v1/activities/actions/purge \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"days":1}'{
"ok": true,
"result": "…",
"events": [
"activity.purged"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.activities.purge({
days: 1
})era activities purge \
--days 1{
"name": "era__activity__purge",
"arguments": {
"days": 1
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde activity:manage 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
activity.seal
Denetim kaydını mühürle — Kesinleşmiş her etkinlik satırını bir öncekine zincirler; sonradan yapılan değişiklik fark edilir.
Gereken izin activity:manage · veriyi değiştirir
https://app.getera.io/api/v1/activities/actions/seal- Asıl adres:
POST /api/v1/actions/activity.seal
Girdi
Bu işlem girdi almaz.
Yayımladığı olaylar: activity.sealed
Neye yazar: activity (update) — Writes prev_hash and row_hash on unsealed rows
curl -X POST https://app.getera.io/api/v1/activities/actions/seal \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"activity.sealed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.activities.seal()era activities seal{
"name": "era__activity__seal",
"arguments": {}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde activity:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 429 çok sık istek
Veri modelleri
Activity
Tablo activity · Kaynak activities
GET /api/v1/activitiesGET /api/v1/activities/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (int64) · int8 | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
actor_type | string · text | |||
actor_id | string (uuid) · uuid | evet | ||
actor_label | string · text | evet | ||
module_code | string · text | |||
record_type | string · text | evet | ||
record_id | string (uuid) · uuid | evet | ||
verb | string · text | |||
summary | string · text | |||
diff | object · jsonb | evet | ||
source | string · text | |||
occurred_at | string (date-time) · timestamptz | |||
reason | string · text | evet | ||
correlation_id | string (uuid) · uuid | evet | ||
run_id | string · text | evet | ||
job_id | string · text | evet | ||
source_ip | string · text | evet | ||
user_agent | string · text | evet | ||
sealed_at | string (date-time) · timestamptz | evet |
Birincil anahtar: id
Event
Tablo event · Kaynak events
GET /api/v1/eventsGET /api/v1/events/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (int64) · int8 | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
name | string · text | |||
module_code | string · text | |||
record_id | string (uuid) · uuid | evet | ||
payload | object · jsonb | |||
source | string · text | |||
occurred_at | string (date-time) · timestamptz | |||
dispatched_at | string (date-time) · timestamptz | evet | ||
attempts | integer · int4 | |||
last_error | string · text | evet | ||
next_attempt_at | string (date-time) · timestamptz | evet | ||
correlation_id | string (uuid) · uuid | evet |
Birincil anahtar: id
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
activity.purged | Saklama süresini aşan etkinlik silindi. | days, removed |
activity.sealed | Kesinleşen etkinlik satırları denetim mührüne zincirlendi. | sealed |