ERD¶
ERD is just an overview
The following ERD provides a high-level overview of the system's structure. While it does not include all properties of the entities, it is designed to highlight their relationships and dependencies.
erDiagram
USER {
int Id
string Name
int TenantId
}
TENANT {
int Id
string TenantKey
string Name
}
USERCLAIM {
int Id
int Type
string Value
}
TENANTCLAIM {
int Id
int Type
string Value
}
CLAIMDEFINITION {
int Id
string Type
Rules Rule
}
GLOBALCLAIM {
int Id
int Type
string Value
}
USER ||--o{ USERCLAIM : has
TENANT ||--o{ TENANTCLAIM : has
USER }o--|| TENANT : belongs_to
TENANTCLAIM }o--|| CLAIMDEFINITION : describes
USERCLAIM }o--|| CLAIMDEFINITION : describes
GLOBALCLAIM }o--|| CLAIMDEFINITION : describes
Entities¶
User¶
The User entity represents an individual within the system who can have associated claims. Each user is linked to a specific tenant and may have one or more claims associated with them.
Tenant¶
The Tenant entity represents a group or organization that owns users and their associated claims. A tenant can have multiple users, and each user in the tenant can have claims related to them.
Claim¶
The Claim entity represents specific pieces of information or attributes that are associated with a user within a particular tenant. Claims are tied to a ClaimDefinition, which provides the schema or structure for the claim's data.
GlobalClaim¶
The GlobalClaim entity represents a claim that is not tied to a specific user or tenant but still has a definition. It can be used for global attributes or system-wide claims that apply across multiple
ClaimDefinition¶
The ClaimDefinition entity defines the structure and type of a claim. Each claim references a ClaimDefinition to ensure that claims adhere to a consistent format and provide meaningful data.
A ClaimDefinition has a type and says what entity the claim belongs (User, Tenant or global). It also says who (Role) can edit the claim. More information under Change Role. The claim definition describes also some rules of what a claim value could be. Those are:
- types (diffent possible datatypes)
- string (text)
- date (without time part)
- bool
- number
- rules
- Max/Min Value (only for date and number)
- Max/Min Length (only for strings)
- Regex (only for strings)
- Selectable Values (selection list of predefined values)