Güvenlik ve erişim API

Güvenlik ve erişim modülünün tüm işlemleri (14) ve veri modelleri (6): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Roller ve her rolün neyi görüp yapabileceği.

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

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
access_grantsaccess_grant/api/v1/access_grants
blueprint_installsblueprint_install/api/v1/blueprint_installs
role_module_capabilitiesrole_module_capability/api/v1/role_module_capabilities
rolesrole/api/v1/rolessecurity_access.create_role
workspace_membersworkspace_member/api/v1/workspace_members
workspace_modulesworkspace_module/api/v1/workspace_modules

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
security_access.apply_blueprintsecurity_access:manageHazır kurulumu yükle
security_access.create_rolesecurity_access:manageRol oluştur
security_access.delete_rolesecurity_access:deleteRolü sil
security_access.grantsecurity_access:manageBir kişiye erişim ver
security_access.open_shopsecurity_access:manageMağazayı aç
security_access.remove_blueprint_samplessecurity_access:manageÖrnek verileri kaldır
security_access.revokesecurity_access:manageKişisel yetkiyi geri al
security_access.set_capabilitysecurity_access:manageYetki ver veya geri al
security_access.set_masked_fieldssecurity_access:manageBir kişiden alanları gizle
security_access.set_member_rolesecurity_access:manageÜyenin rolünü değiştir
security_access.set_reports_tosecurity_access:manageÜyenin kime bağlı olduğunu belirle
security_access.set_role_channelssecurity_access:manageBir rolü satış kanallarıyla sınırla
security_access.toggle_featuresecurity_access:manageModülün bir bölümünü aç veya kapat
security_access.toggle_modulesecurity_access:manageModülü aç veya kapat

security_access.apply_blueprint

Hazır kurulumu yükle — Bir işletme türü için modül paketini açar — bağımlılıkları, sözlüğü, ayarları ve rolleriyle — ya da yeniden uygular.

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

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

Girdi

AlanTürZorunluAçıklama
codestringevetHazır kurulum · en çok 41
choicesobject / arrayKurulum tercihleri · Yanıtlar, modül açma kapamaları, düzenlenen kurulum alanları, ajanlar, iş akışları, örnek veriler.

Ön koşullar

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

KodNe zaman reddedilir
unknown_blueprintHazır kurulum ve belirttiği her modül bu sürümde bulunmalı.
blueprint_downgradeBu sürümden daha yeni bir sürümün üzerine eskisi yazılamaz.
invalid_choicesKurulum sihirbazındaki seçimler, listelerden ve yanıtlardan oluşmalı.
blueprint_step_failedHer kurulum adımı kendi kurallarına uymalı; biri uymazsa hiçbir şey kurulmaz.

Yayımladığı olaylar: security_access.blueprint_applied, security_access.module_enabled

Neye yazar: workspace_module (upsert) — Switches the pack’s modules on, and sets their sidebar order once; role (insert) — Creates the pack’s roles; role_module_capability (insert) — Grants those roles their starting capabilities; blueprint_install (upsert) — Records the version applied and the choices it was applied with

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workspaceModules.applyBlueprint({
  code: "Blueprint"
})
era workspace_modules apply_blueprint \
  --code "Blueprint"
tools/call
{
  "name": "era__security_access__apply_blueprint",
  "arguments": {
    "code": "Blueprint"
  }
}

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

security_access.create_role

Rol oluştur — Bu çalışma alanı için hiçbir şeye erişimi olmadan başlayan bir rol tanımlar.

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

POSThttps://app.getera.io/api/v1/roles/actions/create_role
API anahtarı ya da OAuth token · security_access:manage
  • REST kısayolu: POST /api/v1/roles
  • Asıl adres: POST /api/v1/actions/security_access.create_role

Girdi

AlanTürZorunluAçıklama
codestringevetKod · en çok 40
labelstringevetAd · en çok 80
descriptionstringAçıklama · en çok 500

Ön koşullar

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

KodNe zaman reddedilir
code_formatKod bir harfle başlamalı ve yalnızca küçük harf, rakam ve alt çizgi içermeli.
code_takenBu çalışma alanında bu kodda bir rol zaten var.

Yayımladığı olaylar: security_access.role_created

Neye yazar: role (insert) — Creates the role; role_module_capability (insert) — Grants the personal modules (each person’s own Era Station rows), by trigger (sql/818)

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.roles.create({
  code: "Code",
  label: "Name"
})
era roles create \
  --code "Code" \
  --label "Name"
tools/call
{
  "name": "era__security_access__create_role",
  "arguments": {
    "code": "Code",
    "label": "Name"
  }
}

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

security_access.delete_role

Rolü sil — Kimsenin sahip olmadığı bir rolü kaldırır.

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

POSThttps://app.getera.io/api/v1/roles/actions/delete_role
API anahtarı ya da OAuth token · security_access:delete
  • Asıl adres: POST /api/v1/actions/security_access.delete_role

Girdi

AlanTürZorunluAçıklama
role_iduuidevetRol

Ön koşullar

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

KodNe zaman reddedilir
system_role_protectedAltı sistem rolü silinemez.
role_in_useBu rolde hâlâ üyeler var. Önce onları taşıyın.

Yayımladığı olaylar: security_access.role_deleted

Neye yazar: role (delete) — Deletes the role and its capability rows

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.roles.deleteRole({
  role_id: "ROLE_ID"
})
era roles delete_role \
  --role-id "ROLE_ID"
tools/call
{
  "name": "era__security_access__delete_role",
  "arguments": {
    "role_id": "ROLE_ID"
  }
}

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

security_access.grant

Bir kişiye erişim ver — Bir kişiye tek bir şeye erişim verir; isteğe bağlı olarak daraltılmış veya alanları gizlenmiş.

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

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

Girdi

AlanTürZorunluAçıklama
user_iduuidevetÜye
subject_typestring (enum)evetTür · İzin verilen değerler: module, report, view
subject_keystringevetHangisi · en çok 80
capabilitystringevetYetenek · en çok 24
row_scopestring (enum)Gördüğü kayıtlar · İzin verilen değerler: all, own_records, own_and_reports
masked_fieldsobject / arrayGizlenecek ölçüler · Bu iznin göstermemesi gereken ölçülerin adları. Yalnızca bir rapor için anlamlıdır.
channel_idsobject / arrayİzin verilen satış kanalları · Yalnızca perakende: null = hepsi, boş liste = hiçbiri. Rol kapsamını daraltır.
expires_atdate-timeSona erme

Ön koşullar

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

KodNe zaman reddedilir
channel_scope_invalidKanal kapsamı bu çalışma alanının kanallarını içermeli ve mağazayı hedeflemeli.
not_a_memberBu kişi bu çalışma alanının üyesi değil.
subject_not_foundRapor yetkisi, kayıtlı bir raporu belirtmeli.
measure_not_maskableBir rapordan yalnızca gerçekten gösterdiği bir ölçüyü gizlemesi istenebilir.

Yayımladığı olaylar: security_access.access_granted

Neye yazar: access_grant (upsert) — Records the grant

curl -X POST https://app.getera.io/api/v1/access_grants/actions/grant \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"user_id":"USER_ID","subject_type":"module","subject_key":"Which one","capability":"Capability"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "security_access.access_granted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.accessGrants.grant({
  user_id: "USER_ID",
  subject_type: "module",
  subject_key: "Which one",
  capability: "Capability"
})
era access_grants grant \
  --user-id "USER_ID" \
  --subject-type "module" \
  --subject-key "Which one" \
  --capability "Capability"
tools/call
{
  "name": "era__security_access__grant",
  "arguments": {
    "user_id": "USER_ID",
    "subject_type": "module",
    "subject_key": "Which one",
    "capability": "Capability"
  }
}

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

security_access.open_shop

Mağazayı aç — Mağaza modüllerini açar ve çalışma alanının adıyla, TL cinsinden bir satış kanalı açar — tek adımda.

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

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

Girdi

AlanTürZorunluAçıklama
namestringAd · Boş = çalışma alanının adı. · en çok 250
currencyCodestringPara birimi · ISO-4217. Boş = TRY. · en çok 3
defaultCountrystringVarsayılan ülke · Boş = TR. · en çok 2

Ön koşullar

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

KodNe zaman reddedilir
module_limit_reachedPaketinde mağaza modüllerine yer yok.
invalid_currencyPara birimi bir ISO-4217 kodu olmalı.

Yayımladığı olaylar: security_access.module_enabled, security_access.shop_opened

Neye yazar: workspace_module (upsert) — Switches retail and its dependencies on; retail’s opening code then opens the shop channel, as a seed would

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workspaceModules.openShop({
  name: "Name"
})
era workspace_modules open_shop \
  --name "Name"
tools/call
{
  "name": "era__security_access__open_shop",
  "arguments": {
    "name": "Name"
  }
}

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

security_access.remove_blueprint_samples

Örnek verileri kaldır — Yalnızca hazır kurulumun oluşturduğu kayıtları, her kaydın kendi modül aksiyonuyla kaldırır; yeniden çalıştırmak güvenlidir.

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

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

Girdi

Bu işlem girdi almaz.

Neye yazar: blueprint_install (update) — Marks successfully handled sample records removed

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blueprintInstalls.removeBlueprintSamples()
era blueprint_installs remove_blueprint_samples
tools/call
{
  "name": "era__security_access__remove_blueprint_samples",
  "arguments": {}
}

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

security_access.revoke

Kişisel yetkiyi geri al — Doğrudan bir kişiye verilen erişimi geri alır.

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

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

Girdi

AlanTürZorunluAçıklama
grant_iduuidevetHediye

Ön koşullar

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

KodNe zaman reddedilir
grant_not_foundBu yetki artık yok.

Yayımladığı olaylar: security_access.access_revoked

Neye yazar: access_grant (delete) — Removes the grant

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.accessGrants.revoke({
  grant_id: "GRANT_ID"
})
era access_grants revoke \
  --grant-id "GRANT_ID"
tools/call
{
  "name": "era__security_access__revoke",
  "arguments": {
    "grant_id": "GRANT_ID"
  }
}

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

security_access.set_capability

Yetki ver veya geri al — Bir rolün bir modülde neler yapabileceğine karar verir.

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

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

Girdi

AlanTürZorunluAçıklama
role_iduuidevetRol · kimliği: role
module_codestringevetModül · en çok 41
capabilitystringevetYetenek · en çok 24
grantedbooleanevetVerildi
own_records_scopestring (enum)Erişim · Yalnızca “sadece kendi kayıtları” için anlamlıdır. · İzin verilen değerler: self_only, self_and_reports

Ön koşullar

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

KodNe zaman reddedilir
system_role_protectedSahip rolü her zaman her şeye ulaşır.
module_not_enabledBu modül bu çalışma alanında açık değil.
capability_not_declaredBu modül bu yetkiyi sunmuyor.
last_owner_protectedBirinin rollere erişimi kalmalı.

Yayımladığı olaylar: security_access.capability_granted, security_access.capability_revoked

Neye yazar: role_module_capability (upsert) — Adds or removes the matrix row

curl -X POST https://app.getera.io/api/v1/role_module_capabilities/actions/set_capability \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"role_id":"ROLE_ID","module_code":"Module","capability":"Capability","granted":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "security_access.capability_granted",
    "security_access.capability_revoked"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.roleModuleCapabilities.setCapability({
  role_id: "ROLE_ID",
  module_code: "Module",
  capability: "Capability",
  granted: true
})
era role_module_capabilities set_capability \
  --role-id "ROLE_ID" \
  --module-code "Module" \
  --capability "Capability" \
  --granted true
tools/call
{
  "name": "era__security_access__set_capability",
  "arguments": {
    "role_id": "ROLE_ID",
    "module_code": "Module",
    "capability": "Capability",
    "granted": true
  }
}

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

security_access.set_masked_fields

Bir kişiden alanları gizle — Satırlar görünür kalır, belirtilen alanlar gizlenir.

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

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

Girdi

AlanTürZorunluAçıklama
grant_iduuidevetHediye
fieldsstringGizlenecek alanlar · Virgülle ayrılmış.

Ön koşullar

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

KodNe zaman reddedilir
grant_not_foundBu yetki artık yok.
measure_not_maskableRapor yetkisi yalnızca o raporun gerçekten gösterdiği bir ölçüyü gizleyebilir.

Yayımladığı olaylar: security_access.access_granted

Neye yazar: access_grant (update) — Updates the hidden field list

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.accessGrants.setMaskedFields({
  grant_id: "GRANT_ID"
})
era access_grants set_masked_fields \
  --grant-id "GRANT_ID"
tools/call
{
  "name": "era__security_access__set_masked_fields",
  "arguments": {
    "grant_id": "GRANT_ID"
  }
}

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

security_access.set_member_role

Üyenin rolünü değiştir — Birini bu çalışma alanında başka bir role taşır.

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

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

Girdi

AlanTürZorunluAçıklama
user_iduuidevetÜye
role_iduuidevetRol · kimliği: role

Ön koşullar

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

KodNe zaman reddedilir
cannot_change_own_roleKendi rolünüzü değiştiremezsiniz.
role_not_in_workspaceBu rol başka bir çalışma alanına ait.
not_a_memberBu kişi bu çalışma alanının üyesi değil.

Yayımladığı olaylar: security_access.role_changed

Neye yazar: workspace_member (update) — Points the member at the new role

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workspaceMembers.setMemberRole({
  user_id: "USER_ID",
  role_id: "ROLE_ID"
})
era workspace_members set_member_role \
  --user-id "USER_ID" \
  --role-id "ROLE_ID"
tools/call
{
  "name": "era__security_access__set_member_role",
  "arguments": {
    "user_id": "USER_ID",
    "role_id": "ROLE_ID"
  }
}

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

security_access.set_reports_to

Üyenin kime bağlı olduğunu belirle — “Kendi kayıtları ve ekibininkiler” rolünün izlediği hiyerarşiyi kurar.

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

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

Girdi

AlanTürZorunluAçıklama
user_iduuidevetÜye
reports_touuidBağlı olduğu kişi · kimliği: app_user

Ön koşullar

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

KodNe zaman reddedilir
cannot_report_to_selfKimse kendine bağlı olamaz.
would_create_cycleBu, iki kişiyi birbirine bağlı hâle getirir.
not_a_memberİkisi de bu çalışma alanının üyesi olmalı.

Yayımladığı olaylar: security_access.reports_to_changed

Neye yazar: workspace_member (update) — Sets the reporting line

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workspaceMembers.setReportsTo({
  user_id: "USER_ID"
})
era workspace_members set_reports_to \
  --user-id "USER_ID"
tools/call
{
  "name": "era__security_access__set_reports_to",
  "arguments": {
    "user_id": "USER_ID"
  }
}

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

security_access.set_role_channels

Bir rolü satış kanallarıyla sınırla — Mağaza erişimini seçilen kanallarla sınırlar; hiçbir kanal seçilmezse rol hiçbir kanala erişemez.

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

POSThttps://app.getera.io/api/v1/roles/{id}/actions/set_role_channels
API anahtarı ya da OAuth token · security_access:manage
  • Asıl adres: POST /api/v1/actions/security_access.set_role_channels

Girdi

AlanTürZorunluAçıklama
role_iduuidevetDoldurulduğu yer: adresteki {id} · Rol · kimliği: role
restrictedbooleanevetKanalları sınırla
channel_idsobject / arrayKanallar

Ön koşullar

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

KodNe zaman reddedilir
system_role_protectedSahip rolü sınırlandırılamaz.
channel_scope_invalidSeçilen her kanal bu çalışma alanına ait olmalı.

Yayımladığı olaylar: security_access.role_channels_changed

Neye yazar: role (update) — Sets the sales channel scope of this role

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.roles.setRoleChannels("ROLE_ID", {
  restricted: true
})
era roles set_role_channels ROLE_ID \
  --restricted true
tools/call
{
  "name": "era__security_access__set_role_channels",
  "arguments": {
    "role_id": "ROLE_ID",
    "restricted": true
  }
}

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

security_access.toggle_feature

Modülün bir bölümünü aç veya kapat — Bir modülün tek bir bölümünü açar — randevular, grup dersleri, paketler.

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

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

Girdi

AlanTürZorunluAçıklama
module_codestringevetModül · en çok 41
featurestringevetBölüm · en çok 41
enabledbooleanevetEtkin

Ön koşullar

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

KodNe zaman reddedilir
module_not_enabledModülün kendisi kapalı.
unknown_featureBu modülün böyle bir bölümü yok.

Yayımladığı olaylar: security_access.feature_enabled, security_access.feature_disabled

Neye yazar: workspace_module (update) — Updates the enabled parts

curl -X POST https://app.getera.io/api/v1/workspace_modules/actions/toggle_feature \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"module_code":"Module","feature":"Part","enabled":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "security_access.feature_enabled",
    "security_access.feature_disabled"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workspaceModules.toggleFeature({
  module_code: "Module",
  feature: "Part",
  enabled: true
})
era workspace_modules toggle_feature \
  --module-code "Module" \
  --feature "Part" \
  --enabled true
tools/call
{
  "name": "era__security_access__toggle_feature",
  "arguments": {
    "module_code": "Module",
    "feature": "Part",
    "enabled": true
  }
}

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

security_access.toggle_module

Modülü aç veya kapat — Bu çalışma alanına bir modül ekler ya da verisini silmeden kaldırır.

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

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

Girdi

AlanTürZorunluAçıklama
module_codestringevetModül · en çok 41
enabledbooleanevetEtkin
with_dependenciesbooleanGerekenleri de kur · Önce eksik her bağımlılığı aynı işlemde açar.

Ön koşullar

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

KodNe zaman reddedilir
shell_moduleBu, temel sistemin bir parçası ve her zaman açık.
missing_dependencyBu modül, kapalı olan başka bir modüle ihtiyaç duyuyor.
dependents_enabledAçık olan başka modüller bu modüle bağlı.
module_limit_reachedÇalışma alanının planında bu modül ve bağlı olduğu modüller için yer olmalı.

Yayımladığı olaylar: security_access.module_enabled, security_access.module_disabled

Neye yazar: workspace_module (upsert) — Switches the module on or off

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workspaceModules.toggleModule({
  module_code: "Module",
  enabled: true
})
era workspace_modules toggle_module \
  --module-code "Module" \
  --enabled true
tools/call
{
  "name": "era__security_access__toggle_module",
  "arguments": {
    "module_code": "Module",
    "enabled": true
  }
}

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

Veri modelleri

AccessGrant

Tablo access_grant · Kaynak access_grants

  • GET /api/v1/access_grants
  • GET /api/v1/access_grants/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
user_idstring (uuid) · uuidapp_user
subject_typestring · textmodule, report, view
subject_keystring · text
capabilitystring · text
row_scopestring · textall, own_records, own_and_reports
masked_fieldsstring[] · text[]
granted_bystring (uuid) · uuidevetapp_user
expires_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
channel_idsstring[] · uuid[]evet

Birincil anahtar: id

Tekil: workspace_id, user_id, subject_type, subject_key, capability

BlueprintInstall

Tablo blueprint_install · Kaynak blueprint_installs

  • GET /api/v1/blueprint_installs
  • GET /api/v1/blueprint_installs/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
blueprint_codestring · text
versioninteger · int4
modulesstring[] · text[]
applied_by_user_idstring (uuid) · uuidevetapp_user
first_applied_atstring (date-time) · timestamptz
applied_atstring (date-time) · timestamptz
apply_countinteger · int4
choicesobject · jsonbevet
sample_recordsobject · jsonb

Birincil anahtar: id

Tekil: workspace_id, blueprint_code

Denetimler:

  • CHECK ((apply_count > 0))
  • CHECK ((blueprint_code ~ '^[a-z][a-z0-9_]{1,40}$'::text))
  • CHECK (((choices IS NULL) OR (jsonb_typeof(choices) = 'object'::text)))
  • CHECK ((jsonb_typeof(sample_records) = 'array'::text))
  • CHECK ((version > 0))

RoleModuleCapability

Tablo role_module_capability · Kaynak role_module_capabilities

  • GET /api/v1/role_module_capabilities
  • GET /api/v1/role_module_capabilities/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
role_idstring (uuid) · uuidrole
module_codestring · textmodule
capabilitystring · textread, write, delete, manage, approve, export, comment, handle, import, impersonate, own_records_only, computer_use, computer_control
own_records_scopestring · textself_only, self_and_reports

Birincil anahtar: id

Tekil: role_id, module_code, capability

Denetimler:

  • CHECK (((capability = 'own_records_only'::text) OR (own_records_scope = 'self_only'::text)))

Role

Tablo role · Kaynak roles

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
codestring · text
labelstring · text
descriptionstring · textevet
is_systemboolean · bool
created_atstring (date-time) · timestamptz
sort_orderinteger · int4
updated_atstring (date-time) · timestamptz
channel_idsstring[] · uuid[]evet

Birincil anahtar: id

Tekil: workspace_id, code

Denetimler:

  • CHECK ((code ~ '^[a-z][a-z0-9_]{1,40}$'::text))

WorkspaceMember

Tablo workspace_member · Kaynak workspace_members

  • GET /api/v1/workspace_members
  • GET /api/v1/workspace_members/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
user_idstring (uuid) · uuidapp_user
role_idstring (uuid) · uuidrole
created_atstring (date-time) · timestamptz
statusstring · textactive, suspended
updated_atstring (date-time) · timestamptz
reports_tostring (uuid) · uuidevetapp_user
colorstring · textevet

Birincil anahtar: id

Tekil: workspace_id, user_id

Denetimler:

  • CHECK (((color IS NULL) OR (color ~ '^#[0-9A-Fa-f]{6}$'::text)))
  • CHECK (((reports_to IS NULL) OR (reports_to <> user_id)))

WorkspaceModule

Tablo workspace_module · Kaynak workspace_modules

  • GET /api/v1/workspace_modules
  • GET /api/v1/workspace_modules/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
module_codestring · textmodule
enabledboolean · bool
sidebar_groupstring · textevet
sidebar_orderinteger · int4
enabled_atstring (date-time) · timestamptz
enabled_featuresstring[] · text[]
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, module_code

Olaylar

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

OlayNe olurTaşıdığı alanlar
security_access.access_grantedBir kişiye doğrudan erişim verildi.user_id, subject_type, subject_key
security_access.access_revokedKişisel bir erişim izni geri alındı.grant_id
security_access.blueprint_appliedBir sektör planı yüklendi ya da yeniden uygulandı.blueprint_code, version, installed, first
security_access.capability_grantedBir role bir yetenek verildi.role_id, module_code, capability
security_access.capability_revokedBir rolden bir yetenek alındı.role_id, module_code, capability
security_access.feature_disabledBir modülün bir parçası kapatıldı.module_code, feature
security_access.feature_enabledBir modülün bir parçası açıldı.module_code, feature
security_access.module_disabledBir modül kapatıldı.module_code
security_access.module_enabledÇalışma alanı için bir modül açıldı.module_code
security_access.reports_to_changedBir raporlama hattı değişti.user_id, reports_to
security_access.role_changedBir üyenin rolü değiştirildi.user_id, role_id
security_access.role_channels_changedBir rolün satış kanalı kapsamı değişti.role_id, channel_ids
security_access.role_createdBir çalışma alanı rolü oluşturuldu.role_id, code
security_access.role_deletedBir çalışma alanı rolü silindi.role_id, code
security_access.shop_openedMağaza tek adımda açıldı: mağaza modülleri açık, bir satış kanalı açık.channelId, name, currency, installed
Bu sayfa yardımcı oldu mu?