Identifiers
This chapter covers the principal types and identifier system in MSST-Net.
Principal Types
In MSST-Net, a principal is the basic unit of identity in the network.
MSST-Net currently supports the following principal types:
- User
- Device
- Room (space)
Each principal has its own identifier, used for identification, management, and access control.
User
A user is a basic principal that identifies all devices associated with the same user.
For unauthenticated users, the system automatically creates a local user principal associated only with the current device, so this user typically has only one device.
For authenticated users, all devices logged into the same account are associated with the same user principal.
User principals are primarily used to manage the identity relationship of multiple devices.
Device
A device is a basic principal that identifies a unique client instance.
Each client instance connected to MSST-Net corresponds to an independent device principal.
In the current version, MSST-Net access control uses the device as the minimum control unit.
Room
A room is a temporary principal that identifies a Room Mode session.
The room ID (space-{8 hex digits}) is generated at creation and can be used in access control rules to match current room members.
See: Room Mode
Identifier System
Each principal has the following three types of identifiers:
- ID (unique identifier)
- Mnemonic (human-readable identifier)
- Display name (presentation identifier)
Different identifier types are suited to different use cases.
ID
An ID is the unique identifier for a principal.
Each principal's ID is fixed at creation and cannot be changed.
All other identifiers are built on top of the ID.
Format
User ID:
user-{8 hex digits}Device ID:
device-{8 hex digits}Room ID:
space-{8 hex digits}Examples
User ID:
user-1a2b3c4dDevice ID:
device-a7f29b3eRoom ID:
space-7e3a9f12Properties
- Globally unique
- Cannot be changed
- Can be used in rule references
- Recommended for precise identification
Mnemonic
A mnemonic is the human-readable identifier for a principal.
Mnemonics are used to simplify references, generate readable names, and build rules.
Mnemonics can be changed by the user, but uniqueness depends on the principal type and scope.
Mnemonic Types
MSST-Net currently supports the following mnemonic types:
- User mnemonic
- Device mnemonic
- Combined mnemonic
User Mnemonic
A user mnemonic identifies a user principal.
User mnemonics are globally unique.
Example
abjustProperties
- Globally unique
- Can be changed
- Can be used in rule references
- Used to identify users
Device Mnemonic
A device mnemonic identifies a device principal.
Device mnemonics are only guaranteed to be unique within the same user's scope.
This means:
- Different users can have the same device mnemonic
- Duplicate device mnemonics within the same user will trigger conflict resolution
Example
archlinuxCombined Mnemonic
Since device mnemonics are not globally unique, MSST-Net provides a combined mnemonic for globally unique device identification.
The combined mnemonic format:
{device}.{user}Where:
{device}is the device mnemonic{user}is the user mnemonic
Combined mnemonics are globally unique.
Example
archlinux.abjustProperties
- Globally unique
- Can be used in rule references
- Used to uniquely identify devices across users
- Formed by combining user and device mnemonics
Conflict Resolution
When a mnemonic conflict occurs, the system automatically appends an incrementing number:
example
example-1
example-2Conflict resolution applies to mnemonics within the same scope.
For example:
- User mnemonics resolve conflicts globally
- Device mnemonics resolve conflicts within the same user's scope
Format Rules
Mnemonics only allow the following characters:
- Lowercase letters (a-z)
- Digits (0-9)
- Hyphens (-)
The . in combined mnemonics is used only as a separator.
Mnemonics do not include any type prefix.
Uses
Mnemonics are primarily used for:
- Generating human-readable MSST-Net ezPlay hostnames
- Simplified references in rules
- Quickly locating principals
Combined mnemonics are primarily used for:
- Uniquely identifying devices
- Cross-user device references
| Type | Globally Unique | Changeable | Usable in Rules | Primary Use |
|---|---|---|---|---|
| User mnemonic | Yes | Yes | Yes | Identify users |
| Device mnemonic | No (unique per user) | Yes | Yes | Identify devices |
| Combined mnemonic | Yes | Indirectly | Yes | Uniquely identify devices |
Display Name
A display name is the name presented externally for a principal.
Display names are used for UI display and user recognition.
Display names may be duplicated and are not guaranteed to be unique.
Properties
- Not guaranteed to be unique
- Can be changed
- Cannot be used in rule references
- Used for UI display
Example
Device display name:
Abjust's ComputerIdentifier Comparison
| Identifier | Uniqueness | Changeable | Usable in Rules | Primary Use |
|---|---|---|---|---|
| ID | Yes | No | Yes | Precise identification |
| Mnemonic | No (conflicts auto-resolved) | Yes | Yes | Simplified reference |
| Display name | No | Yes | No | External display |