Roller ve İzinler
Kullanıcı rolleri, mindzieStudio içinde erişim seviyelerini ve yetenekleri tanımlar. Her kullanıcı, platform genelindeki izinlerini belirleyen tek bir role atanır.
API'ye bir roleName değeri gönderirken, aşağıdaki API rol adı sütununda gösterilen tam metinleri kullanın.
Mevcut Roller
| Rol (görüntü) | API rol adı | Kapsam | Açıklama |
|---|---|---|---|
| Sunucu Yöneticisi | TenantAdmin |
Sistem | En yüksek erişim seviyesi. Tüm tenantlar ve sunucu üzerinde tam erişim. |
| Yönetici | Administrator |
Tenant | Bir tenant içinde tam idari yetki. |
| BT Yöneticisi | ITAdmin |
Tenant | Entegrasyonlar, bağlantılar ve global API anahtarları. |
| Analist | Analyst |
Proje | Analizler, panolar ve incelemeler oluşturma ve yönetme. |
| Geliştirici | Developer |
Proje | Entegrasyonlar oluşturma, eylemleri ve uygulamaları yönetme, istisna detayını görüntüleme. |
| Kullanıcı | User |
Sadece Okuma | Panoları ve analizleri görüntüler; içerik değiştiremez. |
İsimlendirme notu. API rol adı
TenantAdmin, mindzieStudio’daki en yüksek ayrıcalıklı roldür — ismine rağmen, sunucu çapında erişim hakkına sahiptir (tüm tenantları yönetme, tüm kullanıcıları yönetme, sunucu yönetimi). Bu sayfa açıklık için bu role Sunucu Yöneticisi olarak da atıfta bulunur. Rolü API üzerinden atarkenTenantAdmingönderin.
Rol Detayları
Sunucu Yöneticisi (TenantAdmin)
mindzieStudio'daki en yüksek ayrıcalık seviyesi.
Yetenekler:
- Tüm tenantları ve projeleri erişim ve yönetim
- Tenant oluşturma, değiştirme ve silme
- Sistem genelindeki tüm kullanıcıları yönetme
- Sunucu Yönetimi alanına erişim (sunucu belleği, yedekler, çalıştırmalar)
- Destek ve test için diğer rollere bürünme
- Global API anahtarları oluşturma
- Diğer tüm rollerin yeteneklerine sahip
Kullanım durumları:
- Platform sahipleri
- Dağıtımı yöneten güvenilir operatörler
Yönetici
Tenant içinde tam idari yetki, ancak sunucu çapında erişim yok.
Yetenekler:
- Tenant içindeki kullanıcıları yönetme — oluşturma, düzenleme, devre dışı bırakma, şifre sıfırlama
- Tenant içi rol atama
- Analiz şablonlarını yönetme
- Tenant içindeki tüm projeler, panolar, veri setleri, incelemeler ve uygulamaları yönetme
- Tenant API anahtarları oluşturma
- Tenant oluşturamaz veya silemez
- Sunucu Yönetimi alanına erişemez
Kullanım durumları:
- Bölüm yöneticileri
- Kendi tenantını yöneten müşteri yöneticileri
BT Yöneticisi (ITAdmin)
Entegrasyonlar ve veri altyapısına odaklanan teknik yapılandırma erişimi.
Yetenekler:
- Entegrasyonları, bağlantıları ve veri kaynaklarını yapılandırma
- Veri ve ETL işlemlerini yönetme
- Global API anahtarları oluşturma
- Sınırlı oluşturma erişimi — pano veya analiz oluşturmaz
Kullanım durumları:
- Kaynak sistemleri bağlayan BT ekibi
- Kimlik bilgilerini ve ETL’yi yöneten operatörler
Analist
Süreç madenciliği analizi için standart kullanıcı rolü.
Yetenekler:
- İncelemeler ve not defterleri oluşturma ve yönetme
- Veri setleri yükleme ve yapılandırma
- Panolar ve raporlar oluşturma
- Not defterleri ve blokları çalıştırma
- Eylemleri ve uygulamaları yönetme
- Analiz sonuçlarını dışa aktarma
Kullanım durumları:
- Süreç analistleri
- Veri bilimcileri
- İş analistleri
Geliştirici
Geliştirme araçları ve API’lere erişim.
Yetenekler:
- Geliştirme araçlarını ve platform API’lerini kullanma
- Özel entegrasyonlar ve uzantılar oluşturma
- Eylemleri ve uygulamaları yönetme
- Hata ayıklama için istisna detaylarını görme
- Analizler ve panolar oluşturma ve yönetme
Kullanım durumları:
- Entegrasyon geliştiren mühendisler
- Otomasyon ve API tüketicileri
Kullanıcı
Panoları ve analizleri yalnızca görüntüleme erişimi.
Yetenekler:
- Paylaşılan panoları görüntüleme
- Yayınlanmış analizleri görüntüleme
- Uyarıları görüntüleme
- Görünen verileri dışa aktarma
- Hiçbir içeriği değiştiremez
Kullanım durumları:
- Yöneticiler
- Paydaşlar
- Harici inceleyiciler
Rol Hiyerarşisi
Sunucu Yöneticisi (TenantAdmin)
|
+-- Yönetici
|
+-- Analist, Geliştirici, BT Yöneticisi
|
+-- Kullanıcı
TenantAdmin en geniş kapsama sahiptir (tüm tenantlar, sunucu yönetimi). Administrator kendi tenantı içinde tam yetkiye sahiptir. Diğer roller proje düzeyinde veya yalnızca okuma kapsamındadır.
Hizmet Hesapları
Hizmet hesapları, API entegrasyonları ve otomatik iş akışları için özel kullanıcı hesaplarıdır.
Gereksinimler
- Yalnızca Sunucu Yöneticisi (
TenantAdmin) ve Yönetici rolleri uygun - Hizmet hesaplarının bir ana tenant atanmış olmalıdır
- Hizmet hesapları kullanıcı girişi olmadan API üzerinden kimlik doğrulayabilir
Yapılandırma
Bir kullanıcıyı hizmet hesabına terfi ettirmek için:
{
"isServiceAccount": true,
"homeTenantId": "12345678-1234-1234-1234-123456789012"
}
Standart kullanıcıya düşürmek için:
{
"isServiceAccount": false
}
Kullanıcıyı düşürürken homeTenantId otomatik olarak temizlenir.
Kullanım Durumları
- CI/CD pipeline entegrasyonları
- Otomatik veri aktarma scriptleri
- Planlı rapor üretimi
- ETL süreçleri
- İzleme ve uyarı sistemleri
Rol Ataması
Kullanıcı Oluştururken
Oluşturma isteğinde rol belirtin:
{
"email": "john.smith@example.com",
"displayName": "John Smith",
"roleName": "Analyst"
}
Kullanıcı Güncellerken
Rolü güncelleme isteği ile değiştirin:
{
"roleName": "TenantAdmin"
}
API rol adını tablodaki gibi tam olarak gönderin (TenantAdmin, Administrator, ITAdmin, Analyst, Developer, veya User).
API Anahtarı Türleri ve Roller
| API Anahtarı Türü | Oluşturmaya Uygun Roller | Erişim Kapsamı |
|---|---|---|
| Global API Anahtarı | Sunucu Yöneticisi (TenantAdmin), BT Yöneticisi (ITAdmin) |
Tüm tenantlar, tüm uç noktalar |
| Tenant API Anahtarı | Sunucu Yöneticisi (TenantAdmin), Yönetici, Geliştirici |
Sadece tek tenant |
Global API Anahtar Uç Noktaları
Sadece Global API anahtarları erişebilir:
/api/user- Genel kullanıcı yönetimi/api/tenant- Tenant yönetimi- Tenantlar arası işlemler
Tenant API Anahtar Uç Noktaları
Tenant API anahtarları erişebilir:
/api/tenant/{tenantId}/user- Tenant kullanıcı yönetimi/api/{tenantId}/project- Proje işlemleri/api/{tenantId}/dataset- Veri seti işlemleri- Diğer tüm tenant kapsamlı uç noktalar
En İyi Uygulamalar
Asgari Ayrıcalık
Her kullanıcının iş işlevi için gerekli en düşük rolü atayın.
Panoları görüntüleyen yönetici -> Kullanıcı
İncelemeler yapan analist -> Analist
Bir tenantı yöneten takım lideri -> Yönetici
Tüm tenantları yöneten platform operatörü -> Sunucu Yöneticisi (TenantAdmin)
Hizmet Hesabı Güvenliği
- Her entegrasyon için özel hizmet hesapları oluşturun
- Açıklayıcı görüntü adları kullanın (örn. "CI/CD Pipeline Hizmet")
- API anahtarlarını düzenli olarak değiştirin
- Hizmet hesap aktivitelerini izleyin
Rol Geçişleri
- Kullanıcıları terfi ettirirken yeni sorumlulukları anladıklarından emin olun
- Düşürürken işlerini tamamlayacak erişime sahip olduklarından emin olun
- Rol değişikliklerini denetim için belgeleyin
Devre Dışı Bırakma vs Silme
- Denetim kayıtlarını korumak için silmek yerine devre dışı bırakmayı tercih edin
- Devre dışı bırakılan kullanıcılar giriş yapamaz ama geçmişleri saklanır
- Veri gizliliği nedeniyle yalnızca gerektiğinde silin
Uygulama Örnekleri
Python
import requests
BASE_URL = 'https://your-mindzie-instance.com'
class RoleManager:
def __init__(self, global_api_key):
self.headers = {
'Authorization': f'Bearer {global_api_key}',
'Content-Type': 'application/json'
}
def get_users_by_role(self, role_name):
"""Belirli bir role sahip tüm kullanıcıları getir."""
url = f'{BASE_URL}/api/user'
params = {'role': role_name, 'pageSize': 1000}
response = requests.get(url, headers=self.headers, params=params)
response.raise_for_status()
return response.json()
def promote_to_service_account(self, user_id, home_tenant_id):
"""Bir kullanıcıyı hizmet hesabına terfi ettir."""
url = f'{BASE_URL}/api/user/{user_id}'
payload = {
'isServiceAccount': True,
'homeTenantId': home_tenant_id
}
response = requests.put(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
def demote_from_service_account(self, user_id):
"""Bir hizmet hesabını tekrar standart kullanıcıya düşür."""
url = f'{BASE_URL}/api/user/{user_id}'
payload = {'isServiceAccount': False}
response = requests.put(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
def change_role(self, user_id, new_role):
"""Bir kullanıcının rolünü değiştir. API rol adlarını kullan: TenantAdmin, Administrator, ITAdmin, Analyst, Developer, User."""
url = f'{BASE_URL}/api/user/{user_id}'
payload = {'roleName': new_role}
response = requests.put(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
def disable_user(self, user_id):
"""Bir kullanıcı hesabını devre dışı bırak."""
url = f'{BASE_URL}/api/user/{user_id}'
payload = {'disabled': True}
response = requests.put(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
# Kullanım
manager = RoleManager('your-global-api-key')
# Tüm sunucu yöneticilerini listele (TenantAdmin rolü)
server_admins = manager.get_users_by_role('TenantAdmin')
print(f"Sistemde {server_admins['totalCount']} sunucu yöneticisi var")
# Kullanıcıyı hizmet hesabına terfi ettir
manager.promote_to_service_account(
user_id='a1b2c3d4-e5f6-7890-abcd-ef1234567890',
home_tenant_id='12345678-1234-1234-1234-123456789012'
)
# Bir Analisti Sunucu Yöneticisi yap
manager.change_role(
user_id='a1b2c3d4-e5f6-7890-abcd-ef1234567890',
new_role='TenantAdmin'
)
# Kullanıcıyı silmek yerine devre dışı bırak
manager.disable_user('departing-user-id')
JavaScript
class RoleManager {
constructor(globalApiKey) {
this.headers = {
'Authorization': `Bearer ${globalApiKey}`,
'Content-Type': 'application/json'
};
}
async getUsersByRole(roleName) {
const url = `${BASE_URL}/api/user?role=${roleName}&pageSize=1000`;
const response = await fetch(url, { headers: this.headers });
return await response.json();
}
async promoteToServiceAccount(userId, homeTenantId) {
const url = `${BASE_URL}/api/user/${userId}`;
const response = await fetch(url, {
method: 'PUT',
headers: this.headers,
body: JSON.stringify({
isServiceAccount: true,
homeTenantId
})
});
return await response.json();
}
async changeRole(userId, newRole) {
// API rol adlarını kullan: TenantAdmin, Administrator, ITAdmin, Analyst, Developer, User
const url = `${BASE_URL}/api/user/${userId}`;
const response = await fetch(url, {
method: 'PUT',
headers: this.headers,
body: JSON.stringify({ roleName: newRole })
});
return await response.json();
}
}
// Kullanım
const manager = new RoleManager('your-global-api-key');
// Tüm analistleri al
const analysts = await manager.getUsersByRole('Analyst');
console.log(`${analysts.totalCount} sistemde analist var`);
// Sunucu Yöneticisine yükselt
await manager.changeRole('user-id', 'TenantAdmin');