Etiketler API
Etiketler modülünün tüm işlemleri (6) ve veri modelleri (2): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
Tüm kayıtlar için tek ortak etiket listesi, kendi renklerinizle.
Modül kodu tags · 6 işlem · 2 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ı: tags (hepsi), tags:read (yalnız okuma) ya da tags:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
tag_links | tag_link | /api/v1/tag_links | |||
tags | tag | /api/v1/tags | tags.create | tags.update | tags.delete |
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 |
|---|---|---|
tags.attach | tags:read | Kaydı etiketle |
tags.create | tags:manage | Etiket oluştur |
tags.delete | tags:manage | Etiketi sil |
tags.detach | tags:read | Etiketi kayıttan kaldır |
tags.merge | tags:manage | İki etiketi birleştir |
tags.update | tags:manage | Etiketi yeniden adlandır veya renklendir |
tags.attach
Kaydı etiketle — Var olan bir etiketi bir kayda koyar. O kaydı düzenleme yetkisi gerekir.
Gereken izin tags:read · veriyi değiştirir
https://app.getera.io/api/v1/tag_links/actions/attach- Asıl adres:
POST /api/v1/actions/tags.attach
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
tagId | uuid | evet | Etiket · kimliği: tag |
recordType | string | evet | Kayıt türü · en çok 60 |
recordId | uuid | evet | Kayıt |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
unknown_record_type | Kayıt türü bir modülün sahip olduğu türlerden olmalı. |
cannot_write_record | Bir kaydı etiketlemek, o kaydın modülünde yazma yetkisi gerektirir. |
tag_not_found | Etiket bu çalışma alanında bulunmalı. |
record_not_found | Kayıt bulunmalı. |
Yayımladığı olaylar: tags.attached
Neye yazar: tag_link (insert) — Attaches the tag
curl -X POST https://app.getera.io/api/v1/tag_links/actions/attach \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"tagId":"TAG_ID","recordType":"Record type","recordId":"RECORD_ID"}'{
"ok": true,
"result": "…",
"events": [
"tags.attached"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.tagLinks.attach({
tagId: "TAG_ID",
recordType: "Record type",
recordId: "RECORD_ID"
})era tag_links attach \
--tag-id "TAG_ID" \
--record-type "Record type" \
--record-id "RECORD_ID"{
"name": "era__tags__attach",
"arguments": {
"tagId": "TAG_ID",
"recordType": "Record type",
"recordId": "RECORD_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tags:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 unknown_record_type, cannot_write_record, tag_not_found, record_not_found · 429 çok sık istek
tags.create
Etiket oluştur — Her modülün paylaştığı çalışma alanı sözlüğüne bir kayıt ekler.
Gereken izin tags:manage · veriyi değiştirir
https://app.getera.io/api/v1/tags/actions/create- REST kısayolu:
POST /api/v1/tags - Asıl adres:
POST /api/v1/actions/tags.create
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
name | string | evet | Ad · en çok 120 |
color | string | Renk · Kare işaretinden sonra altı onaltılık rakam. Boş bırakılırsa etiket, kimliğinden türetilen sabit bir renk alır. · en çok 7 | |
description | string | Açıklama · en çok 2000 | |
isPinned | boolean | Filtrelere sabitle |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
empty_name | Etiketin anahtara dönüşebilen bir adı olmalı. |
slug_taken | İki etiket aynı anahtara dönüşemez. |
bad_colour | Renk, diyez işaretinden sonra altı onaltılık rakam olmalı. |
Yayımladığı olaylar: tags.created
Neye yazar: tag (insert) — Writes the vocabulary entry
curl -X POST https://app.getera.io/api/v1/tags/actions/create \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"tags.created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.tags.create({
name: "Name"
})era tags create \
--name "Name"{
"name": "era__tags__create",
"arguments": {
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tags:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_name, slug_taken, bad_colour · 429 çok sık istek
tags.delete
Etiketi sil — Kaydı ve tüm eklendiği yerleri kaldırır. Önce kaç tane olduğunu söyler.
Gereken izin tags:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/tags/{id}/actions/delete- REST kısayolu:
DELETE /api/v1/tags/{id} - Asıl adres:
POST /api/v1/actions/tags.delete
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Etiket · kimliği: tag |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Etiket bu çalışma alanında bulunmalı. |
Yayımladığı olaylar: tags.deleted
Neye yazar: tag (delete) — Removes the entry; tag_link (delete) — Its attachments go with it, by cascade
curl -X POST https://app.getera.io/api/v1/tags/TAG_ID/actions/delete \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"tags.deleted"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.tags.delete("TAG_ID")era tags delete TAG_ID{
"name": "era__tags__delete",
"arguments": {
"id": "TAG_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tags:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek
tags.detach
Etiketi kayıttan kaldır — Sözlüğe dokunmadan etiketi kayıttan çıkarır.
Gereken izin tags:read · veriyi değiştirir
https://app.getera.io/api/v1/tag_links/actions/detach- Asıl adres:
POST /api/v1/actions/tags.detach
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
tagId | uuid | evet | Etiket · kimliği: tag |
recordType | string | evet | Kayıt türü · en çok 60 |
recordId | uuid | evet | Kayıt |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
unknown_record_type | Kayıt türü bir modülün sahip olduğu türlerden olmalı. |
cannot_write_record | Bir kayıttan etiket kaldırmak, o kaydın modülünde yazma yetkisi gerektirir. |
not_tagged | Etiket gerçekten kayıtta olmalı. |
Yayımladığı olaylar: tags.detached
Neye yazar: tag_link (delete) — Detaches the tag
curl -X POST https://app.getera.io/api/v1/tag_links/actions/detach \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"tagId":"TAG_ID","recordType":"Record type","recordId":"RECORD_ID"}'{
"ok": true,
"result": "…",
"events": [
"tags.detached"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.tagLinks.detach({
tagId: "TAG_ID",
recordType: "Record type",
recordId: "RECORD_ID"
})era tag_links detach \
--tag-id "TAG_ID" \
--record-type "Record type" \
--record-id "RECORD_ID"{
"name": "era__tags__detach",
"arguments": {
"tagId": "TAG_ID",
"recordType": "Record type",
"recordId": "RECORD_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tags:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 unknown_record_type, cannot_write_record, not_tagged · 429 çok sık istek
tags.merge
İki etiketi birleştir — Bir kayıttaki her şeyi diğerine taşır ve boş kalanı kaldırır.
Gereken izin tags:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/tags/{id}/actions/merge- Asıl adres:
POST /api/v1/actions/tags.merge
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
winnerId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tut · kimliği: tag |
loserId | uuid | evet | Birleştirilip kaldırılacak · kimliği: tag |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
same_tag | Bir etiket kendisiyle birleştirilemez. |
not_found | İki etiket de bu çalışma alanında bulunmalı. |
Yayımladığı olaylar: tags.merged
Neye yazar: tag_link (update) — Repoints the attachments; tag (delete) — Removes the entry that was merged away
curl -X POST https://app.getera.io/api/v1/tags/TAG_ID/actions/merge \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"loserId":"TAG_ID"}'{
"ok": true,
"result": "…",
"events": [
"tags.merged"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.tags.merge("TAG_ID", {
loserId: "TAG_ID"
})era tags merge TAG_ID \
--loser-id "TAG_ID"{
"name": "era__tags__merge",
"arguments": {
"winnerId": "TAG_ID",
"loserId": "TAG_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tags:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 same_tag, not_found · 429 çok sık istek
tags.update
Etiketi yeniden adlandır veya renklendir — Kaydın kendisini değiştirir. Etiketlenmiş hiçbir şeye dokunulmaz.
Gereken izin tags:manage · veriyi değiştirir
https://app.getera.io/api/v1/tags/{id}/actions/update- REST kısayolu:
PATCH /api/v1/tags/{id} - Asıl adres:
POST /api/v1/actions/tags.update
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Etiket · kimliği: tag |
name | string | Ad · en çok 120 | |
color | string | Renk · Kare işaretinden sonra altı onaltılık rakam. Boş bırakılırsa etiket, kimliğinden türetilen sabit bir renk alır. · en çok 7 | |
description | string | Açıklama · en çok 2000 | |
isPinned | boolean | Filtrelere sabitle |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Etiket bu çalışma alanında bulunmalı. |
empty_name | Etiketin anahtara dönüşebilen bir adı olmalı. |
slug_taken | İki etiket aynı anahtara dönüşemez. |
bad_colour | Renk, diyez işaretinden sonra altı onaltılık rakam olmalı. |
Yayımladığı olaylar: tags.updated
Neye yazar: tag (update) — Rewrites the entry
curl -X POST https://app.getera.io/api/v1/tags/TAG_ID/actions/update \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"tags.updated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.tags.update("TAG_ID", {
name: "Name"
})era tags update TAG_ID \
--name "Name"{
"name": "era__tags__update",
"arguments": {
"id": "TAG_ID",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tags:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, empty_name, slug_taken, bad_colour · 429 çok sık istek
Veri modelleri
TagLink
Tablo tag_link · Kaynak tag_links
GET /api/v1/tag_linksGET /api/v1/tag_links/{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 | ||
tag_id | string (uuid) · uuid | tag | ||
record_type | string · text | |||
record_id | string (uuid) · uuid | |||
tagged_by_user_id | string (uuid) · uuid | evet | app_user | |
created_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tag
Tablo tag · Kaynak tags
GET /api/v1/tagsGET /api/v1/tags/{id}POST /api/v1/tags→tags.createPATCH /api/v1/tags/{id}→tags.updateDELETE /api/v1/tags/{id}→tags.delete
| 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 | ||
name | string · text | |||
slug | string · text | |||
color | string · text | evet | ||
description | string · text | evet | ||
is_pinned | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Denetimler:
CHECK (((color IS NULL) OR (color ~ '^#[0-9A-Fa-f]{6}$'::text)))CHECK (((name = btrim(name)) AND (length(name) > 0)))CHECK (((slug = lower(slug)) AND (slug = btrim(slug)) AND (length(slug) > 0)))
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
tags.attached | Bir kayıt etiketlendi. | id, recordType, recordId |
tags.created | Sözlüğe bir etiket eklendi. | id, name, slug |
tags.deleted | Bir etiket ve eklendiği yerler kaldırıldı. | id, name, detached |
tags.detached | Bir kayıttan bir etiket kaldırıldı. | id, recordType, recordId |
tags.merged | İki etiket birleşti. | id, losingId, moved |
tags.updated | Bir etiket yeniden adlandırıldı ya da rengi değişti. | id, name, slug |