User

The User Table contains a list of the UserIds that are used by individuals to log into the Trading System. Every User belongs to a single Firm.

Metadata

  • Base Table Class: Static
  • Default Size: 100

Fields

NameTypeSize (bytes)Description
IdInteger (signed)8The unique identifier of this User.
StatusSet of Status4
UserIdString200The Id that the User uses when logging into the Trading System via an API or the UI.
UserTypeOne of UserType1The type of this User.
TemplateUserForeign key to User8The Id of the template user from which to inherit permissions, Status and Groups (only copies Groups if in the same Firm).
LoggedInInteger (unsigned)1Whether this particular User is currently logged in and how many sessions are currently active. If zero, the User is not logged in.
MaxLoginsInteger (unsigned)1The maximum number of simultaneous logins allowed for the User. Zero means no limit up to the system maximum defined by the constant MaxLoginSessions.
FailedLoginsInteger (unsigned)1The number of times since the Trading System was started that the User has had a failed login (such as for an incorrect password).
MaxFailedLoginsInteger (unsigned)1The maximum number of failed logins that the User may have before they are locked out of the Trading System.
LockedOutInteger (unsigned)1Set to true if the User has been locked out of the Trading System. They will be unable to login again until this field is reset to false by an administrator.
PasswordMustChangeInteger (unsigned)1Whether the User must change their password before being allowed to proceed with actions in the system.
FirmForeign key to Firm8The Firm to which the User belongs.
GroupsInteger (unsigned)8A bitfield that can be used to set to which Groups in the User's Firm the user belongs.
PasswordString128The password for this account. Passwords are stored in the trading system as a one way encrypted hash and so the plain text password (required to login) cannot be inferred/retrieved from the system.
- Password must be at least 16 characters
- New password cannot be the same as the old password when resetting, but no historical passwords are kept
- Password cannot be based on a dictionary word, or a reversed dictionary word
- Password can't be too simplistic or systematic e.g. obvious repetition or sequence of characters
WorkingStatusSet of Status4
PasswordValidUntilInteger (unsigned)4The date and time at which the User's password expires at which point they will be unable to log into the Trading System until assigned a new password by an administrator. This date/time is reset whenever the User changes their password.
ShortNameString24The short text identifier of this User.
NameString48The long text identifier of this User.
CheckLimitsInteger (unsigned)1If true, trading limits will be checked for the User.
WarnPercentInteger (signed)8A percentage of each limit beyond which the User's LimitStatus will be set to a warning.
LimitStatusOne of LimitStatus1
PlannedBuyValInteger (signed)8
ActualBuyValInteger (signed)8
PlannedSellValInteger (signed)8
ActualSellValInteger (signed)8
BuyValLimitInteger (signed)8
SellValLimitInteger (signed)8
NetValLimitInteger (signed)8User's value limit for their net trading activity. That is the difference between ActualBuyVal and ActualSellVal plus the value of all Planned Buy orders.
GrossValLimitInteger (signed)8User's value limit for all outstanding orders and confirmed trades (Buy + Sell). That is the sum of ActualBuyVal, ActualSellVal, PlannedBuyVal and PlannedSellVal.
BuyOrderValInteger (signed)8
SellOrderValInteger (signed)8
MaintainPositionsInteger (unsigned)1
LoginMethodSet of LoginMethod4
UseFullChangeTablesInteger (unsigned)1
UpdateNumberInteger (unsigned)8A number that records every change that happens to a record. It is primarily used to avoid write after read problems when an intermediate write has changed the originally read record.
OwnerUserForeign key to User8The Id of the User that owns this User.
OwnerGroupForeign key to Group8The Id of the Group that owns this User.
OwnerFirmForeign key to Firm8The Id of the Firm that owns this User.
CreateUserForeign key to User8The Id of the User that created this User.
CreateTimestampInteger (unsigned)8The time at which this User was created.
UpdateUserForeign key to User8The Id of the User that last updated this User.
UpdateTimestampInteger (unsigned)8The time at which this User was last updated.

Foreign Keys

The following diagram shows the tables that have a foreign key link to the User table. All Table nodes can be clicked to take you to that table's definition page.

graph LR;
	ContactDetail-->|User|User
	click ContactDetail "/marketgrid/developer/model/tables/ContactDetail"
	GroupUser-->|User|User
	click GroupUser "/marketgrid/developer/model/tables/GroupUser"
	Auction-->|TerminateRequestedUser|User
	click Auction "/marketgrid/developer/model/tables/Auction"
	Permission-->|User|User
	click Permission "/marketgrid/developer/model/tables/Permission"
	UserLogin-->|User|User
	click UserLogin "/marketgrid/developer/model/tables/UserLogin"
	Reply-->|user|User
	click Reply "/marketgrid/developer/model/tables/Reply"
	Order-->|User|User
	Order-->|AmendUser|User
	Order-->|OriginatingUser|User
	Order-->|CounterParty|User
	click Order "/marketgrid/developer/model/tables/Order"
	Blotter-->|User|User
	click Blotter "/marketgrid/developer/model/tables/Blotter"
	Trade-->|User|User
	click Trade "/marketgrid/developer/model/tables/Trade"
	RFQ-->|User|User
	RFQ-->|CounterPartyUser|User
	click RFQ "/marketgrid/developer/model/tables/RFQ"
	RFQCounterParty-->|User|User
	RFQCounterParty-->|CPUser|User
	click RFQCounterParty "/marketgrid/developer/model/tables/RFQCounterParty"
	RFQRecipient-->|User|User
	click RFQRecipient "/marketgrid/developer/model/tables/RFQRecipient"