Paylaşılan görünümler ve formlar API
Paylaşılan görünümler ve formlar modülünün tüm işlemleri (3) ve veri modelleri (1): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
Bir Base görünümünü gizli bir bağlantıyla paylaşın ya da form olarak yayımlayın.
Modül kodu data_sharing · 3 işlem · 1 veri modeli · 3 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ı: data_sharing (hepsi), data_sharing:read (yalnız okuma) ya da data_sharing:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
data_shares | data_share | /api/v1/data_shares |
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 |
|---|---|---|
data_sharing.create_link | data_sharing:manage | Görünümü paylaş |
data_sharing.revoke_link | data_sharing:manage | Paylaşılan bağlantıyı iptal et |
data_sharing.update_link | data_sharing:manage | Paylaşılan bağlantıyı değiştir |
data_sharing.create_link
Görünümü paylaş — Bir görünümü gizli bir bağlantıyla yayımlar — salt okunur ya da yabancıların doldurabileceği bir form.
Gereken izin data_sharing:manage · veriyi değiştirir
https://app.getera.io/api/v1/data_shares/actions/create_link- Asıl adres:
POST /api/v1/actions/data_sharing.create_link
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
savedViewId | uuid | evet | Görüntüle · kimliği: saved_view |
scope | string (enum) | evet | Bağlantıya sahip olanlar şunu yapabilir · İzin verilen değerler: read, submit |
password | string | Şifre · en çok 200 | |
expiresAt | date-time | Sona erme | |
allowDownload | boolean | CSV indirmeye izin ver |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
view_not_found | Görünüm bu çalışma alanında bir Base görünümü olmalı. |
wrong_view_kind | Formlar doldurulmak için, diğer görünümler okunmak için paylaşılır. |
form_not_built | Form görünümü, formu oluşturulduktan sonra paylaşılır. |
password_too_short | Bağlantı şifresi en az altı karakterdir. |
expiry_in_past | Bağlantının süresi gelecekte dolmalı. |
Yayımladığı olaylar: data_sharing.link_created
Neye yazar: data_share (insert) — Creates the link
curl -X POST https://app.getera.io/api/v1/data_shares/actions/create_link \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"savedViewId":"SAVED_VIEW_ID","scope":"read"}'{
"ok": true,
"result": "…",
"events": [
"data_sharing.link_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.dataShares.createLink({
savedViewId: "SAVED_VIEW_ID",
scope: "read"
})era data_shares create_link \
--saved-view-id "SAVED_VIEW_ID" \
--scope "read"{
"name": "era__data_sharing__create_link",
"arguments": {
"savedViewId": "SAVED_VIEW_ID",
"scope": "read"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde data_sharing:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 view_not_found, wrong_view_kind, form_not_built, password_too_short, expiry_in_past · 429 çok sık istek
data_sharing.revoke_link
Paylaşılan bağlantıyı iptal et — Bağlantı, elinde olan herkes için hemen çalışmaz olur.
Gereken izin data_sharing:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/data_shares/{id}/actions/revoke_link- Asıl adres:
POST /api/v1/actions/data_sharing.revoke_link
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Bağlantı · kimliği: data_share |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
link_not_found | Bağlantı bulunmalı ve hâlâ geçerli olmalı. |
Yayımladığı olaylar: data_sharing.link_revoked
Neye yazar: data_share (update) — Switches the link off
curl -X POST https://app.getera.io/api/v1/data_shares/DATA_SHARE_ID/actions/revoke_link \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"data_sharing.link_revoked"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.dataShares.revokeLink("DATA_SHARE_ID")era data_shares revoke_link DATA_SHARE_ID{
"name": "era__data_sharing__revoke_link",
"arguments": {
"id": "DATA_SHARE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde data_sharing:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 link_not_found · 429 çok sık istek
data_sharing.update_link
Paylaşılan bağlantıyı değiştir — Şifresini ve son tarihini koyar veya kaldırır; indirmeye izin verip vermediğini belirler.
Gereken izin data_sharing:manage · veriyi değiştirir
https://app.getera.io/api/v1/data_shares/{id}/actions/update_link- Asıl adres:
POST /api/v1/actions/data_sharing.update_link
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Bağlantı · kimliği: data_share |
password | string | Yeni şifre · en çok 200 | |
removePassword | boolean | Şifreyi kaldır | |
expiresAt | date-time | Sona erme | |
removeExpiry | boolean | Süresiz | |
allowDownload | boolean | CSV indirmeye izin ver |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
link_not_found | Bağlantı bulunmalı ve hâlâ geçerli olmalı. |
password_too_short | Bağlantı şifresi en az altı karakterdir. |
expiry_in_past | Bağlantının süresi gelecekte dolmalı. |
Yayımladığı olaylar: data_sharing.link_changed
Neye yazar: data_share (update) — Changes the link
curl -X POST https://app.getera.io/api/v1/data_shares/DATA_SHARE_ID/actions/update_link \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"password":"New password"}'{
"ok": true,
"result": "…",
"events": [
"data_sharing.link_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.dataShares.updateLink("DATA_SHARE_ID", {
password: "New password"
})era data_shares update_link DATA_SHARE_ID \
--password "New password"{
"name": "era__data_sharing__update_link",
"arguments": {
"id": "DATA_SHARE_ID",
"password": "New password"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde data_sharing:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 link_not_found, password_too_short, expiry_in_past · 429 çok sık istek
Veri modelleri
DataShare
Tablo data_share · Kaynak data_shares
GET /api/v1/data_sharesGET /api/v1/data_shares/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
data_table_id | string (uuid) · uuid | |||
saved_view_id | string (uuid) · uuid | |||
scope | string · text | read, submit | ||
expires_at | string (date-time) · timestamptz | evet | ||
allow_download | boolean · bool | |||
is_active | boolean · bool | |||
created_by | string (uuid) · uuid | app_user | ||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: token
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
data_sharing.link_changed | Paylaşılan bir bağlantının şifresi ya da son kullanma tarihi değişti. | id |
data_sharing.link_created | Bir görünüm bir bağlantıyla paylaşıldı. | id, savedViewId, scope |
data_sharing.link_revoked | Paylaşılan bir bağlantı kapatıldı. | id |