Panolar API

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

Base tablolarınızdan sayılar, grafikler ve tablolarla panolar.

Modül kodu dashboards · 6 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ı: dashboards (hepsi), dashboards:read (yalnız okuma) ya da dashboards:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
dashboard_widgetsdashboard_widget/api/v1/dashboard_widgets
dashboardsdashboard/api/v1/dashboardsdashboards.create_dashboarddashboards.update_dashboarddashboards.delete_dashboard

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
dashboards.arrange_widgetsdashboards:writeBileşenleri yeniden düzenle
dashboards.create_dashboarddashboards:writeYeni pano
dashboards.delete_dashboarddashboards:deletePanoyu sil
dashboards.remove_widgetdashboards:writeBileşeni kaldır
dashboards.save_widgetdashboards:writeBileşen ekle veya düzenle
dashboards.update_dashboarddashboards:writePanoyu yeniden adlandır

dashboards.arrange_widgets

Bileşenleri yeniden düzenle — Panonun bileşenlerini yeni bir sıraya koyar.

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

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

Girdi

AlanTürZorunluAçıklama
dashboardIduuidevetPano · kimliği: dashboard
orderobject / arrayevetSipariş

Ön koşullar

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

KodNe zaman reddedilir
dashboard_not_foundPano bulunmalı.

Yayımladığı olaylar: dashboards.dashboard_changed

Neye yazar: dashboard_widget (update) — Renumbers the widgets

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.dashboardWidgets.arrangeWidgets({
  dashboardId: "DASHBOARD_ID",
  order: {}
})
era dashboard_widgets arrange_widgets --data '{"dashboardId":"DASHBOARD_ID","order":{}}'
tools/call
{
  "name": "era__dashboards__arrange_widgets",
  "arguments": {
    "dashboardId": "DASHBOARD_ID",
    "order": {}
  }
}

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

dashboards.create_dashboard

Yeni pano — Sayılar ve grafikler koymak için boş bir pano açar.

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

POSThttps://app.getera.io/api/v1/dashboards/actions/create_dashboard
API anahtarı ya da OAuth token · dashboards:write
  • REST kısayolu: POST /api/v1/dashboards
  • Asıl adres: POST /api/v1/actions/dashboards.create_dashboard

Girdi

AlanTürZorunluAçıklama
titlestringevetAd · en çok 200
descriptionstringAçıklama · en çok 2000

Ön koşullar

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

KodNe zaman reddedilir
title_requiredPanonun bir adı olmalı.
name_takenİki pano aynı adı paylaşamaz.

Yayımladığı olaylar: dashboards.dashboard_created

Neye yazar: dashboard (insert) — Creates the board

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.dashboards.create({
  title: "Name"
})
era dashboards create \
  --title "Name"
tools/call
{
  "name": "era__dashboards__create_dashboard",
  "arguments": {
    "title": "Name"
  }
}

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

dashboards.delete_dashboard

Panoyu sil — Panoyu ve bileşenlerini kaldırır. Okuduğu tablolara dokunulmaz.

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

POSThttps://app.getera.io/api/v1/dashboards/{id}/actions/delete_dashboard
API anahtarı ya da OAuth token · dashboards:delete
  • REST kısayolu: DELETE /api/v1/dashboards/{id}
  • Asıl adres: POST /api/v1/actions/dashboards.delete_dashboard

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Pano · kimliği: dashboard

Ön koşullar

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

KodNe zaman reddedilir
dashboard_not_foundPano bulunmalı.

Yayımladığı olaylar: dashboards.dashboard_deleted

Neye yazar: dashboard (delete) — Deletes the board; dashboard_widget (delete) — And every widget on it

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.dashboards.deleteDashboard("DASHBOARD_ID")
era dashboards delete_dashboard DASHBOARD_ID
tools/call
{
  "name": "era__dashboards__delete_dashboard",
  "arguments": {
    "id": "DASHBOARD_ID"
  }
}

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

dashboards.remove_widget

Bileşeni kaldır — Bir bileşeni panosundan çıkarır.

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

POSThttps://app.getera.io/api/v1/dashboard_widgets/{id}/actions/remove_widget
API anahtarı ya da OAuth token · dashboards:write
  • Asıl adres: POST /api/v1/actions/dashboards.remove_widget

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Bileşen · kimliği: dashboard_widget

Ön koşullar

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

KodNe zaman reddedilir
widget_not_foundBileşen bulunmalı.

Yayımladığı olaylar: dashboards.dashboard_changed

Neye yazar: dashboard_widget (delete) — Deletes the widget

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.dashboardWidgets.removeWidget("DASHBOARD_WIDGET_ID")
era dashboard_widgets remove_widget DASHBOARD_WIDGET_ID
tools/call
{
  "name": "era__dashboards__remove_widget",
  "arguments": {
    "id": "DASHBOARD_WIDGET_ID"
  }
}

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

dashboards.save_widget

Bileşen ekle veya düzenle — Panoya bir Base tablosu veya görünümünü okuyan bir sayı, grafik, tablo veya not koyar.

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

POSThttps://app.getera.io/api/v1/dashboard_widgets/{id}/actions/save_widget
API anahtarı ya da OAuth token · dashboards:write
  • Asıl adres: POST /api/v1/actions/dashboards.save_widget

Girdi

AlanTürZorunluAçıklama
dashboardIduuidevetPano · kimliği: dashboard
iduuidDoldurulduğu yer: adresteki {id} · Bileşen · kimliği: dashboard_widget
kindstring (enum)evetTür · İzin verilen değerler: metric, bar, line, donut, table, text
titlestringevetBaşlık · en çok 200
dataTableIduuidTablo · kimliği: data_table
savedViewIduuidGörüntüle · kimliği: saved_view
datasetKeystringRapor · en çok 120
configobject / arrayAyarlar
widthnumberGenişlik · en az 1 · en çok 4

Ön koşullar

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

KodNe zaman reddedilir
dashboard_not_foundPano bulunmalı.
widget_not_foundDüzenlenen bileşen bu panoda olmalı.
source_table_not_foundVeri bileşeni bir Base tablosunu ve o tablonun bir görünümünü okur.
dataset_not_foundRapor bileşeni bu çalışma alanında bulunan ve sizin açabildiğiniz bir raporu göstermeli.
invalid_widget_configBileşenin topladığı veya grupladığı alanlar ona uygun olmalı.

Yayımladığı olaylar: dashboards.dashboard_changed

Neye yazar: dashboard_widget (upsert) — Writes the widget

curl -X POST https://app.getera.io/api/v1/dashboard_widgets/DASHBOARD_WIDGET_ID/actions/save_widget \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"dashboardId":"DASHBOARD_ID","kind":"metric","title":"Title"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "dashboards.dashboard_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.dashboardWidgets.saveWidget("DASHBOARD_WIDGET_ID", {
  dashboardId: "DASHBOARD_ID",
  kind: "metric",
  title: "Title"
})
era dashboard_widgets save_widget DASHBOARD_WIDGET_ID \
  --dashboard-id "DASHBOARD_ID" \
  --kind "metric" \
  --title "Title"
tools/call
{
  "name": "era__dashboards__save_widget",
  "arguments": {
    "id": "DASHBOARD_WIDGET_ID",
    "dashboardId": "DASHBOARD_ID",
    "kind": "metric",
    "title": "Title"
  }
}

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

dashboards.update_dashboard

Panoyu yeniden adlandır — Panonun adını veya açıklamasını değiştirir.

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

POSThttps://app.getera.io/api/v1/dashboards/{id}/actions/update_dashboard
API anahtarı ya da OAuth token · dashboards:write
  • REST kısayolu: PATCH /api/v1/dashboards/{id}
  • Asıl adres: POST /api/v1/actions/dashboards.update_dashboard

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Pano · kimliği: dashboard
titlestringAd · en çok 200
descriptionstringAçıklama · en çok 2000

Ön koşullar

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

KodNe zaman reddedilir
dashboard_not_foundPano bulunmalı.
name_takenİki pano aynı adı paylaşamaz.
no_changeBir şeyin değişmesi gerekiyor.

Yayımladığı olaylar: dashboards.dashboard_changed

Neye yazar: dashboard (update) — Renames the board

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.dashboards.updateDashboard("DASHBOARD_ID", {
  title: "Name"
})
era dashboards update_dashboard DASHBOARD_ID \
  --title "Name"
tools/call
{
  "name": "era__dashboards__update_dashboard",
  "arguments": {
    "id": "DASHBOARD_ID",
    "title": "Name"
  }
}

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

Veri modelleri

DashboardWidget

Tablo dashboard_widget · Kaynak dashboard_widgets

  • GET /api/v1/dashboard_widgets
  • GET /api/v1/dashboard_widgets/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
dashboard_idstring (uuid) · uuiddashboard
kindstring · textmetric, bar, line, donut, table, text
titlestring · text
data_table_idstring (uuid) · uuidevet
saved_view_idstring (uuid) · uuidevet
configobject · jsonb
widthinteger · int2
positionnumber · float8
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
dataset_keystring · textevet

Birincil anahtar: id

Denetimler:

  • CHECK ((jsonb_typeof(config) = 'object'::text))
  • CHECK (((dataset_key IS NULL) OR (dataset_key ~ '^[a-z0-9_]+\.[a-z0-9_]+$'::text)))
  • CHECK (((kind = 'text'::text) OR (data_table_id IS NOT NULL) OR (dataset_key IS NOT NULL)))
  • CHECK (((width >= 1) AND (width <= 4)))

Dashboard

Tablo dashboard · Kaynak dashboards

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
titlestring · text
descriptionstring · textevet
sort_ordernumber · float8
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((btrim(title) <> ''::text))

Olaylar

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

OlayNe olurTaşıdığı alanlar
dashboards.dashboard_changedBir pano ya da bileşenleri değişti.id
dashboards.dashboard_createdBir pano oluşturuldu.id
dashboards.dashboard_deletedBir pano silindi.id