멀티테넌시 & 자산 계층
멀티테넌트 계층
SystemAdmin
└── Tenant (조직/회사)
├── TenantAdmin
└── Customer (고객사)
├── CustomerAdmin
└── User
RBAC 역할
| 역할 | 범위 | 설명 |
|---|---|---|
SYSTEM_ADMIN | 전체 시스템 | 테넌트 생성/삭제, 시스템 설정 |
TENANT_ADMIN | 테넌트 내 전체 | 장치/자산/대시보드/사용자 관리 |
CUSTOMER_ADMIN | 고객사 내 전체 | 고객사 소속 장치/대시보드 관리 |
USER | 할당된 리소스 | 대시보드 조회, 장치 모니터링 |
장치·자산·대시보드는 고객사(Customer) 단위로 할당(assign)할 수 있어, 고객사 계정은 자신에게 할당된 리소스만 보게 됩니다. 테넌트별 엔티티 한도(Tenant Profile)를 지정하면 장치/자산/사용자 생성 수를 제한할 수도 있습니다.
자산 계층
Tenant
└── AssetGroup (공장)
└── Asset (라인/구역)
├── DeviceAttribute (SERVER_SCOPE)
└── Device (센서/장비)
├── DeviceAttribute (SERVER_SCOPE)
├── DeviceAttribute (CLIENT_SCOPE)
├── DeviceAttribute (SHARED_SCOPE)
└── Telemetry (시계열 데이터)
자산·장치 사이에는 이 계층 외에도 임의의 관계(relation)를 타입·방향과 함께 정의할 수 있고, 관계 그래프로 시각화할 수 있습니다.
Attribute 3종 스코프
| 스코프 | 쓰기 권한 | 예시 |
|---|---|---|
SERVER_SCOPE | 서버만 씀, 장치는 읽기만 | location, owner, asset_tag |
CLIENT_SCOPE | 장치만 씀, 서버는 읽기만 | fw_version, battery, last_boot |
SHARED_SCOPE | 서버가 쓰고, 장치가 구독 | sampling_interval, threshold |
Shared Attribute를 저장하면 EMQX MQTT를 통해 해당 장치로 즉시 푸시됩니다.