Görünümler API
Görünümler modülünün tüm işlemleri (5) ve veri modelleri (2): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
Kayıtlı listeler — seçtiğiniz sütunlar, filtreler ve sıralama.
Modül kodu view_grid · 5 işlem · 2 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ı: view_grid (hepsi), view_grid:read (yalnız okuma) ya da view_grid:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
saved_views | saved_view | /api/v1/saved_views | |||
view_states | view_state | /api/v1/view_states |
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 |
|---|---|---|
view_grid.copy_base_views | view_grid:write | Tablo görünümlerini kopyala |
view_grid.delete | view_grid:write | Görünümü sil |
view_grid.remember | view_grid:read | Bu listeyi bıraktığım gibi hatırla |
view_grid.save | view_grid:write | Bu görünümü kaydet |
view_grid.update | view_grid:write | Kayıtlı görünümü değiştir |
view_grid.copy_base_views
Tablo görünümlerini kopyala — Paylaşılan görünümleri ve kişisel görünümlerinizi kopyalanan tablolara taşır.
Gereken izin view_grid:write · veriyi değiştirir
https://app.getera.io/api/v1/saved_views/actions/copy_base_views- Asıl adres:
POST /api/v1/actions/view_grid.copy_base_views
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
tableMap | object / array | evet | Tablo kimlikleri |
columnMap | object / array | evet | Alan kimlikleri |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
invalid_shape | Eşleme listesi UUID çiftlerinden oluşmalı. |
Yayımladığı olaylar: view_grid.saved
Neye yazar: saved_view (insert) — Copies visible views onto the copied tables
curl -X POST https://app.getera.io/api/v1/saved_views/actions/copy_base_views \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"tableMap":{},"columnMap":{}}'{
"ok": true,
"result": "…",
"events": [
"view_grid.saved"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.savedViews.copyBaseViews({
tableMap: {},
columnMap: {}
})era saved_views copy_base_views --data '{"tableMap":{},"columnMap":{}}'{
"name": "era__view_grid__copy_base_views",
"arguments": {
"tableMap": {},
"columnMap": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde view_grid:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_shape · 429 çok sık istek
view_grid.delete
Görünümü sil — Kayıtlı bir görünümü kaldırır.
Gereken izin view_grid:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/saved_views/actions/delete- Asıl adres:
POST /api/v1/actions/view_grid.delete
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
view_id | uuid | evet | Görüntüle |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Bu görünüm bu çalışma alanında değil. |
not_yours | Paylaşılan bir görünümü yalnızca bir yönetici kaldırabilir. |
Yayımladığı olaylar: view_grid.deleted
Neye yazar: saved_view (delete) — Deletes the view
curl -X POST https://app.getera.io/api/v1/saved_views/actions/delete \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"view_id":"VIEW_ID"}'{
"ok": true,
"result": "…",
"events": [
"view_grid.deleted"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.savedViews.delete({
view_id: "VIEW_ID"
})era saved_views delete \
--view-id "VIEW_ID"{
"name": "era__view_grid__delete",
"arguments": {
"view_id": "VIEW_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde view_grid:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_yours · 429 çok sık istek
view_grid.remember
Bu listeyi bıraktığım gibi hatırla — Bir kişinin bir listedeki kaydedilmemiş düzenini saklar.
Gereken izin view_grid:read · veriyi değiştirir
https://app.getera.io/api/v1/view_states/actions/remember- Asıl adres:
POST /api/v1/actions/view_grid.remember
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
module_code | string | evet | Modül · en çok 41 |
view_key | string | evet | Liste · en çok 80 |
state | string | evet | Düzen |
saved_view_id | uuid | Temel alınan |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
unknown_module | Böyle bir modül yok. |
invalid_shape | Düzen bir nesne olmalı. |
Neye yazar: view_state (update) — Stores the arrangement
curl -X POST https://app.getera.io/api/v1/view_states/actions/remember \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"module_code":"Module","view_key":"List","state":"Arrangement"}'{
"ok": true,
"result": "…",
"events": []
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.viewStates.remember({
module_code: "Module",
view_key: "List",
state: "Arrangement"
})era view_states remember \
--module-code "Module" \
--view-key "List" \
--state "Arrangement"{
"name": "era__view_grid__remember",
"arguments": {
"module_code": "Module",
"view_key": "List",
"state": "Arrangement"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde view_grid:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 unknown_module, invalid_shape · 429 çok sık istek
view_grid.save
Bu görünümü kaydet — Listenin mevcut düzenine ad verir, böylece ona geri dönülebilir.
Gereken izin view_grid:write · veriyi değiştirir
https://app.getera.io/api/v1/saved_views/actions/save- Asıl adres:
POST /api/v1/actions/view_grid.save
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
module_code | string | evet | Modül · en çok 41 |
view_key | string | evet | Liste · en çok 80 |
name | string | evet | Ad · en çok 80 |
kind | string (enum) | Tür · İzin verilen değerler: grid, kanban, gallery, calendar, timeline, form, map | |
columns | string | Sütunlar | |
sorts | string | Sıralama | |
conditions | string | Filtre | |
options | string | Seçenekler | |
shared | boolean | Çalışma alanıyla paylaş · Herkes görür. Yalnızca bir yönetici yayımlayabilir. | |
is_default | boolean | Bu listeyi bununla aç |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
unknown_module | Böyle bir modül yok. |
invalid_shape | Düzen beklenen biçimde değil. |
name_taken | Bu listede bu adda bir görünüm zaten var. |
cannot_share | Bir görünümü çalışma alanıyla paylaşmak yönetim yetkisi gerektirir. |
Yayımladığı olaylar: view_grid.saved, view_grid.shared
Neye yazar: saved_view (insert) — Saves the view
curl -X POST https://app.getera.io/api/v1/saved_views/actions/save \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"module_code":"Module","view_key":"List","name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"view_grid.saved",
"view_grid.shared"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.savedViews.save({
module_code: "Module",
view_key: "List",
name: "Name"
})era saved_views save \
--module-code "Module" \
--view-key "List" \
--name "Name"{
"name": "era__view_grid__save",
"arguments": {
"module_code": "Module",
"view_key": "List",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde view_grid:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 unknown_module, invalid_shape, name_taken, cannot_share · 429 çok sık istek
view_grid.update
Kayıtlı görünümü değiştir — Görünümü yeniden adlandırır ya da şu an gösterdiği düzeni kaydeder.
Gereken izin view_grid:write · veriyi değiştirir
https://app.getera.io/api/v1/saved_views/actions/update- Asıl adres:
POST /api/v1/actions/view_grid.update
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
view_id | uuid | evet | Görüntüle |
name | string | Ad · en çok 80 | |
columns | string | Sütunlar | |
sorts | string | Sıralama | |
conditions | string | Filtre | |
options | string | Seçenekler | |
is_default | boolean | Bu listeyi bununla aç |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Bu görünüm bu çalışma alanında değil. |
not_yours | Paylaşılan bir görünümü yalnızca bir yönetici değiştirebilir. |
invalid_shape | Düzen beklenen biçimde değil. |
name_taken | Bu listede bu adda bir görünüm zaten var. |
no_change | Bir şeyin değişmesi gerekiyor. |
view_locked | Kilitli bir görünüm, bir yönetici kilidini açana kadar değiştirilemez. |
Yayımladığı olaylar: view_grid.saved
Neye yazar: saved_view (update) — Rewrites the view
curl -X POST https://app.getera.io/api/v1/saved_views/actions/update \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"view_id":"VIEW_ID"}'{
"ok": true,
"result": "…",
"events": [
"view_grid.saved"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.savedViews.update({
view_id: "VIEW_ID"
})era saved_views update \
--view-id "VIEW_ID"{
"name": "era__view_grid__update",
"arguments": {
"view_id": "VIEW_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde view_grid:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_yours, invalid_shape, name_taken, no_change, view_locked · 429 çok sık istek
Veri modelleri
SavedView
Tablo saved_view · Kaynak saved_views
GET /api/v1/saved_viewsGET /api/v1/saved_views/{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 | ||
module_code | string · text | module | ||
view_key | string · text | |||
name | string · text | |||
owner_id | string (uuid) · uuid | evet | app_user | |
is_default | boolean · bool | |||
columns | object · jsonb | |||
sorts | object · jsonb | |||
conditions | object · jsonb | |||
options | object · jsonb | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz | |||
kind | string · text | grid, kanban, gallery, calendar, timeline, form, map |
Birincil anahtar: id
Denetimler:
CHECK ((jsonb_typeof(columns) = 'array'::text))CHECK ((jsonb_typeof(conditions) = 'object'::text))CHECK ((jsonb_typeof(options) = 'object'::text))CHECK ((jsonb_typeof(sorts) = 'array'::text))
ViewState
Tablo view_state · Kaynak view_states
GET /api/v1/view_statesGET /api/v1/view_states/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
user_id | string (uuid) · uuid | app_user | ||
module_code | string · text | module | ||
view_key | string · text | |||
saved_view_id | string (uuid) · uuid | evet | saved_view | |
state | object · jsonb | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: workspace_id, user_id, module_code, view_key
Denetimler:
CHECK ((jsonb_typeof(state) = 'object'::text))
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
view_grid.deleted | Bir görünüm silindi. | view_id |
view_grid.saved | Bir görünüm kaydedildi. | view_id, name |
view_grid.shared | Özel bir görünüm çalışma alanına yayımlandı. | view_id |