List of Persistent Chat Server tables

The Persistent Chat database schema consists of the following tables.

Active Directory Sync

Table Description
tblADCookie
Contains the current Lightweight Directory Access Protocol (LDAP) Sync cookies. Each row corresponds to an Active Directory Domain Services domain that Persistent Chat Server is actively monitoring for changes. (Only the Active Directory domains that are relevant for Persistent Chat Server are represented in this table.)
tblPrincipalMemberDifference
Contains group membership changes (both added and removed members) that have not yet been processed by the later Active Directory Sync steps and is one of the temporary tables (along with tblADUpdates table) that is used in the first step of Active Directory Sync.
Membership changes are stored, processed, or both, only for groups that are listed in the tblPrincipal table or that already have members listed there.
tblADUpdates
Contains changes to Active Directory Domain Services that have not yet been processed by the later Active Directory Sync steps and is one of the temporary tables (along with the tblPrincipalMemberDifference table) that is used in the first step of Active Directory Sync.
Changes to Active Directory are stored, processed, or both only for principals that are already listed in the tblPrincipal table.
tblPrincipalMembers
Contains principal memberships.
tblPrincipalMeta
Contains the principals that have to be refreshed from Active Directory.
tblSkippedAffiliations
Contains affiliations that could not be refreshed for some reason, usually due to Active Directory access errors.
This table is for informational purposes only. Its content is not used.
The principals with affiliations that could not be refreshed properly are kept in the tblPrincipalMeta table and are given another chance to be refreshed.

Principals, Affiliations, Nodes, Scopes, and Roles

Table Description
tblPrincipalType
Contains principal types to categorize what is in the tblPrincipal table. This table is static. It is set up during database creation and does not change.
tblPrincipal
Contains all principals (users, folders, groups, and so on). Persistent Chat Server handles this as a flat heterogeneous list. Various columns are based on the type of each principal.
Most of these principals are cached copies of objects stored in Active Directory. Creating the cached copy in the Principal table of these Active Directory objects is referred as provisioning.
Some principals are created more aggressively than others, and some Active Directory objects are ignored altogether.
tblPrincipalAffiliations
Contains principal affiliations that describe memberships in Active Directory security groups, Active Directory containers, and so on.
tblNode
Contains the category node, as managed in the control panel.
tblRoleType
Contains role types and their associated permission sets. This lookup table is static.
tblScopePrincipal
Contains scopes assigned to nodes.
tblPrincipalRole
Contains roles assigned to nodes.
tblSiopWhiteList
Contains the registered Add-ins that can be associated with nodes.
tblEnumAttribute
Contains only the hardcoded "Visibility" and "Behavior" attributes that are used in the tblNode table.
tblEnumValue
Contains the values of the hardcoded "Visibility" and "Behavior" attributes that are used in the tblNode table.

Invites, Chats, and Other Client Support

Table Description
tblPrincipalInvites
Contains invites for all provisioned users in the system for all nodes with Auto Invite enabled.
tblChat
Contains all chat messages.
tblLastInviteId
Contains the last invite ID that was generated (and used in the tblPrincipalInvites table) for each user.
tblLastChatId
Contains the last chat ID that was generated (and used in the tblChat table) for each user.
tblPreference
Contains user client preferences (used by legacy clients only).
tblFileToken
Contains temporary tokens for file transfer purposes. Each time a file is uploaded or downloaded, the Persistent Chat service generates a token that the client uses to access the Web service file store.

Server Support

Table Description
tblServerIdentity
Contains the active servers in the Persistent Chat Server pool.
tblAdminLock
Contains the administrator lock to run some administrator commands. The system revision entry in the tblSystemRevision table is incremented after each release of the lock.
tblSystemRevision
Contains the revision number entry used (along with the tblAdminLock table) for achieving consistency across multiple servers.
tblActivePeers
Contains current peer-to-peer connections between Persistent Chat services.
tblConfig
Contains the Persistent Chat Server unsupported configuration.