Gizlilik API

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

Kişisel veri talepleri — müşterinin verisini dışa aktarın veya silin, kaydı tutulsun.

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

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
privacy_requestsprivacy_request/api/v1/privacy_requests

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
privacy.approve_erasureprivacy:approveOnayla ve sil
privacy.cancel_erasureprivacy:writeSilme talebini geri çek
privacy.export_dataprivacy:exportKişisel veriyi dışa aktar
privacy.purge_exportsprivacy:manageDışa aktarım saklama kuralını uygula
privacy.reject_erasureprivacy:approveSilme talebini reddet
privacy.request_erasureprivacy:writeKişisel verinin silinmesini talep et
privacy.request_my_erasureprivacy:writeVerilerimin silinmesini iste

privacy.approve_erasure

Onayla ve sil — Bir silme talebini onaylar. Müşterinin adı, iletişim bilgileri, kimlikleri ve kayıtlı adresleri temizlenir.

Gereken izin privacy:approve · 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/privacy_requests/actions/approve_erasure
API anahtarı ya da OAuth token · privacy:approve
  • Asıl adres: POST /api/v1/actions/privacy.approve_erasure

Girdi

AlanTürZorunluAçıklama
iduuidevetTalep
notestringNot · en çok 500

Ön koşullar

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

KodNe zaman reddedilir
request_not_foundSilme talebi bu çalışma alanında bulunmalı.
request_not_pendingYalnızca bekleyen bir talep karara bağlanabilir.
self_approvalÇalışma alanı izin vermedikçe talep eden kişi onaylayamaz.

Yayımladığı olaylar: privacy.erasure_approved

Neye yazar: privacy_request (update) — Marks the request approved and carried out

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.privacyRequests.approveErasure({
  id: "ID_ID"
})
era privacy_requests approve_erasure \
  --id "ID_ID"
tools/call
{
  "name": "era__privacy__approve_erasure",
  "arguments": {
    "id": "ID_ID"
  }
}

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

privacy.cancel_erasure

Silme talebini geri çek — Bekleyen bir silme talebini geri çeker (müşteri fikrini değiştirdi ya da yanlışlıkla açıldı).

Gereken izin privacy:write · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/privacy_requests/actions/cancel_erasure
API anahtarı ya da OAuth token · privacy:write
  • Asıl adres: POST /api/v1/actions/privacy.cancel_erasure

Girdi

AlanTürZorunluAçıklama
iduuidevetTalep
notestringNot · en çok 500

Ön koşullar

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

KodNe zaman reddedilir
request_not_foundSilme talebi bu çalışma alanında bulunmalı.
request_not_pendingYalnızca bekleyen bir talep geri çekilebilir.

Yayımladığı olaylar: privacy.erasure_cancelled

Neye yazar: privacy_request (update) — Marks the request cancelled

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.privacyRequests.cancelErasure({
  id: "ID_ID"
})
era privacy_requests cancel_erasure \
  --id "ID_ID"
tools/call
{
  "name": "era__privacy__cancel_erasure",
  "arguments": {
    "id": "ID_ID"
  }
}

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

privacy.export_data

Kişisel veriyi dışa aktar — Bu çalışma alanının bir müşteri hakkında tuttuğu her satırı indirilebilir tek bir dosyada toplar ve bunu kaydeder.

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

POSThttps://app.getera.io/api/v1/privacy_requests/actions/export_data
API anahtarı ya da OAuth token · privacy:export
  • Asıl adres: POST /api/v1/actions/privacy.export_data

Girdi

AlanTürZorunluAçıklama
customer_iduuidevetMüşteri
reasonstringNeden (ör. talebin referansı) · en çok 500

Ön koşullar

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

KodNe zaman reddedilir
customer_not_foundMüşteri bu çalışma alanında bulunmalı.

Yayımladığı olaylar: privacy.exported

Neye yazar: privacy_request (insert) — A completed export in the register, with the collected rows

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.privacyRequests.exportData({
  customer_id: "CUSTOMER_ID"
})
era privacy_requests export_data \
  --customer-id "CUSTOMER_ID"
tools/call
{
  "name": "era__privacy__export_data",
  "arguments": {
    "customer_id": "CUSTOMER_ID"
  }
}

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

privacy.purge_exports

Dışa aktarım saklama kuralını uygula — Saklama süresini geçmiş dışa aktarımların toplanan verisini siler. Kayıt satırı ve sayıları kalır.

Gereken izin privacy:manage · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/privacy_requests/actions/purge_exports
API anahtarı ya da OAuth token · privacy:manage
  • Asıl adres: POST /api/v1/actions/privacy.purge_exports

Girdi

Bu işlem girdi almaz.

Yayımladığı olaylar: privacy.exports_purged

Neye yazar: privacy_request (update) — Clears export_payload on expired exports

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.privacyRequests.purgeExports()
era privacy_requests purge_exports
tools/call
{
  "name": "era__privacy__purge_exports",
  "arguments": {}
}

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

privacy.reject_erasure

Silme talebini reddet — Bir silme talebini nedeniyle (örneğin açık bir sözleşme veya yasal saklama) reddeder.

Gereken izin privacy:approve · veriyi değiştirir

POSThttps://app.getera.io/api/v1/privacy_requests/actions/reject_erasure
API anahtarı ya da OAuth token · privacy:approve
  • Asıl adres: POST /api/v1/actions/privacy.reject_erasure

Girdi

AlanTürZorunluAçıklama
iduuidevetTalep
notestringevetNeden · en çok 500

Ön koşullar

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

KodNe zaman reddedilir
request_not_foundSilme talebi bu çalışma alanında bulunmalı.
request_not_pendingYalnızca bekleyen bir talep karara bağlanabilir.

Yayımladığı olaylar: privacy.erasure_rejected

Neye yazar: privacy_request (update) — Marks the request rejected

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.privacyRequests.rejectErasure({
  id: "ID_ID",
  note: "Reason"
})
era privacy_requests reject_erasure \
  --id "ID_ID" \
  --note "Reason"
tools/call
{
  "name": "era__privacy__reject_erasure",
  "arguments": {
    "id": "ID_ID",
    "note": "Reason"
  }
}

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

privacy.request_erasure

Kişisel verinin silinmesini talep et — Bir müşteri için silme talebi açar. Onaylanana kadar hiçbir şey silinmez.

Gereken izin privacy:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/privacy_requests/actions/request_erasure
API anahtarı ya da OAuth token · privacy:write
  • Asıl adres: POST /api/v1/actions/privacy.request_erasure

Girdi

AlanTürZorunluAçıklama
customer_iduuidevetMüşteri
reasonstringNeden (ör. talebin referansı) · en çok 500

Ön koşullar

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

KodNe zaman reddedilir
customer_not_foundMüşteri bu çalışma alanında bulunmalı.
already_anonymizedVerisi zaten silinmiş bir müşteri yeniden silinemez.
erasure_already_openMüşteri başına tek açık silme talebi.

Yayımladığı olaylar: privacy.erasure_requested

Neye yazar: privacy_request (insert) — A pending erasure in the register

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.privacyRequests.requestErasure({
  customer_id: "CUSTOMER_ID"
})
era privacy_requests request_erasure \
  --customer-id "CUSTOMER_ID"
tools/call
{
  "name": "era__privacy__request_erasure",
  "arguments": {
    "customer_id": "CUSTOMER_ID"
  }
}

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

privacy.request_my_erasure

Verilerimin silinmesini iste — Giriş yapmış müşteri, işletmeden kişisel verilerinin silinmesini ister. Onaylanana kadar hiçbir şey silinmez.

Gereken izin privacy:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/privacy_requests/actions/request_my_erasure
API anahtarı ya da OAuth token · privacy:write
  • Asıl adres: POST /api/v1/actions/privacy.request_my_erasure

Girdi

AlanTürZorunluAçıklama
reasonstringNeden · en çok 500

Ön koşullar

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

KodNe zaman reddedilir
erasure_already_openMüşteri başına tek açık silme talebi.

Yayımladığı olaylar: privacy.erasure_requested

Neye yazar: privacy_request (insert) — A pending erasure in the register

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

Veri modelleri

PrivacyRequest

Tablo privacy_request · Kaynak privacy_requests

  • GET /api/v1/privacy_requests
  • GET /api/v1/privacy_requests/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
customer_idstring (uuid) · uuid
subject_labelstring · text
kindstring · textexport, erase
statusstring · textpending, completed, rejected, cancelled
reasonstring · textevet
requested_bystring (uuid) · uuidevetapp_user
requested_atstring (date-time) · timestamptz
decided_bystring (uuid) · uuidevetapp_user
decided_atstring (date-time) · timestamptzevet
decision_notestring · textevet
completed_atstring (date-time) · timestamptzevet
export_summaryobject · jsonbevet
export_expires_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Olaylar

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

OlayNe olurTaşıdığı alanlar
privacy.erasure_approvedBir silme onaylandı; veriyi tutan modüller onu temizler.id, customerId
privacy.erasure_cancelledBir silme isteği geri çekildi.id, customerId
privacy.erasure_rejectedBir silme isteği reddedildi.id, customerId
privacy.erasure_requestedBir silme isteği açıldı.id, customerId
privacy.exportedBir müşterinin kişisel verileri dışa aktarıldı.id, customerId, tables, rows
privacy.exports_purgedSüresi dolan dışa aktarımlar temizlendi.removed
Bu sayfa yardımcı oldu mu?