User management and access control
Actions are performed on Resources and can be granted to Users in the form of Permissions and Roles.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary identifier of this entity[queryable][sortable] |
Name | System.String | the public Name of the Action[required] |
Description | System.String | a longer description of the Action |
CreateDate | System.DateTime | UTC date of when this entity was created[readonly] |
ModifyDate | System.DateTime | UTC date of when this entity was last updated |
Applications are externally created consumers of the Phoenix API's and operate within a Project. Each Application has a Restricted Application User assigned to it.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary identifier of the entity[queryable][sortable] |
ProjectId | System.Int32 | the Project that this entity belongs to[required] |
ApplicationTypeId | ApplicationTypeEnum | the type of Application |
Name | System.String | the Name for this Application[sortable][required] |
Description | System.String | a longer description of the Application |
MetaDataParameters | List<KeyValuePair<string, string>> | optional XML data to associate with this Application |
ImageUrl | System.String | a thumbnail image for the Application |
UserId | System.Int32 | the User credentials associated with this Application[required] |
LatestVersion | System.String | the latest available version of the Application |
ForceUpgrade | System.Boolean | whether any existing Installations should be forced to upgrade to the InstallationUrl[required] |
InstallationUrl | System.String | the location of the latest version of the Application |
InstallationCount | System.Int32 | the number of times that this Application has been Installed[required] |
Reference | System.String | an optional tag to retrieve this Application by[queryable][required] |
CreateDate | System.DateTime | UTC date of when this entity was created[readonly] |
ModifyDate | System.DateTime | UTC date of when this entity was last updated |
PhoenixMessaging_AccountId | System.Int32 | the Messaging Account used for sending to Identifiers for this Application[queryable] |
Project | Project | Navigation property to Project [expandable] |
User | User | Navigation property to User [expandable] |
Companies are contained within Providers and can operate many Projects.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary Identier for the Company[queryable][sortable] |
ProviderId | System.Int32 | the Provider that this Company belongs to [queryable][readonly][sortable][required] |
Name | System.String | the Name of the Company[queryable][sortable][required] |
Reference | System.String | a label that a third party can use to retrieve this Company by[queryable][sortable][required] |
IsActive | System.Boolean | whether this Company is active or not, and displayed within the UI[queryable][sortable][required] |
LogoUrl | System.String | an optional absolute URL to the companys logo image |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
MetaDataParameters | List<KeyValuePair<string, string>> | optional XML data to associate with this Company |
Provider | Provider | Navigation property to Provider [expandable] |
Domains | ICollection | Navigation property to Domain [expandable] |
Name | Type | Description |
---|
A Company may own a number of email domains.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary identifier for the CompanyDomain[queryable][sortable] |
ProviderId | System.Int32 | the Provider that owns this Domain[queryable][sortable][required] |
CompanyId | System.Int32 | the Company that owns this Domain[queryable][sortable][required] |
Name | System.String | the Name of this CompanyDomain[queryable][sortable][required] |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
Provider | Provider | Navigation property to Provider [expandable] |
An Entity is an instance of a ResourceType, identified by it's Id
Name | Type | Description |
---|---|---|
ResourceType | System.String | Unavailable |
ResourceId | System.Int32 | Unavailable |
CreateDate | System.DateTime | Unavailable |
ModifyDate | System.DateTime | Unavailable |
Groups allow segmentation of Users or Identifiers and are leveraged by Phoenix modules - such as Messaging sending a broadcast to a Group of email Identifiers.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the identifier of the UserGroup[queryable][sortable] |
ProjectId | System.Int32 | the Project that this UserGroup belongs to[queryable][sortable][required] |
Title | System.String | the Title of this UserGroup[queryable][sortable][required] |
Reference | System.String | a Reference that an external system can use to retrieve this UserGroup |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
MemberCount | System.Int32 | the number of Memberships this Group contains[queryable][readonly][sortable][required] |
IsActive | System.Boolean | Whether this Group is active or not[queryable] |
Project | Project | Navigation property to Project [expandable] |
Identifiers are a means to contact an end user via Email (using an email address), SMS (using a Msisdn) or Push Notification (using an Apple Device Token or Android RegistrationId).
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary identifier of this Customer Identifier[queryable][sortable] |
ProjectId | System.Int32 | the Project that this Identiifer belongs to[queryable][sortable] |
UserId | System.Int32 | this Identifier may optionally belong to a User if known[queryable][sortable] |
IdentifierTypeId | IdentifierTypeEnum | the type of Identifier this is[queryable][sortable] |
IsConfirmed | System.Boolean | indicates whether the user has confirmed this Identifier (eg via a confirmation token in an SMS or Email)[queryable][sortable][required] |
Value | System.String | the value of this Identifier - eg MSISDN or Email[queryable][sortable][required] |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
ApplicationId | System.Int32 | the Application that this Identiifer belongs to[queryable] |
Project | Project | Navigation property to Project [expandable] |
Application | Application | Navigation property to Application [expandable] |
When an Application is installed on a Device, an Installation record is created with a InstallationId GUID issued and persisted on the device. This is required to uniquely identify the Application installed on that particular Device.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the internal Id of Installation[queryable][sortable] |
ProjectId | System.Int32 | the Project that this Installation relates to[required] |
InstallationId | System.Guid | The primary identifier for the Installation to be cached on external devices and sent in the header of subsequent requests[readonly][required] |
ApplicationId | System.Int32 | the Application that was installed[required] |
InstalledVersion | System.String | the version of the Application that was installed |
DeviceTypeId | DeviceTypeEnum | the type of device this Application was installed on[queryable][sortable] |
UserId | System.Int32 | the User account if known of the person owning the device that the Application is installed upon[queryable][sortable] |
IdentifierId | System.Int32 | the device token if known if the user has opted for push notifications |
CreateDate | System.DateTime | UTC date of when this entity was created[readonly] |
ModifyDate | System.DateTime | UTC date of when this entity last modified |
OperatingSystemVersion | System.String | the version of the OS of the device the Application was installed on |
ModelReference | System.String | a reference to the make and model of the device that the application was isntalled on |
Identifier | Identifier | Navigation property to Identifier [expandable] |
Project | Project | Navigation property to Project [expandable] |
User | User | Navigation property to User [expandable] |
Application | Application | Navigation property to Application [expandable] |
A Membership relates either a User or an Identifier to a Group. Memberships to Groups is leveraged by other Phoenix modules for purposes of segmentation.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary identifier for this entity[queryable][sortable] |
GroupId | System.Int32 | the UserGroup that either the User or an App Install on a Device is a member of[queryable][sortable][required] |
UserId | System.Int32 | the User that this Membership pertains to[queryable][sortable] |
IdentifierId | System.Int32 | memberships may involve an Identifier[queryable][sortable] |
JoinDate | System.DateTime | the date that the membership began[required] |
ExpiryDate | System.DateTime | an optional date of when the membership expires |
CreateDate | System.DateTime | UTC date of when this Object was created[readonly] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed |
Group | Group | Navigation property to Group [expandable] |
User | User | Navigation property to User [expandable] |
Identifier | Identifier | Navigation property to Identifier [expandable] |
Phoenix is comprised of a number of Modules, each with a distinct design goal.
Name | Type | Description |
---|---|---|
Id | ModuleEnum | the primary identifier of the Module[queryable][sortable] |
Name | System.String | the name of the Module[required] |
Reference | System.String | a unique label that this entity can be retrieved by[required] |
IsVisibleInPhoenix | System.Boolean | whether this Module is visible in the Phoenix UI[queryable][required] |
Rank | System.Int32 | the sort order of the Module in the UI[sortable][required] |
CreateDate | System.DateTime | UTC date of when this Object was created[readonly] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed |
The Phoenix platform is located in multiple geographical points of presence.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the Id of the entity |
Name | System.String | the Name of the entity[required] |
ConsoleUrl | System.String | the URL of the console for this instance[required] |
ApiUrl | System.String | the base URL of the APIs for this instance[required] |
CreateDate | System.DateTime | UTC date of when this object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this object was last modified[queryable][sortable] |
Projects (synonomous to a Campaign) are run by Companies and involve the use of one or more Phoenix modules.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary identifier of this entity[queryable][sortable] |
CompanyId | System.Int32 | The Company that this Project item belongs to [queryable][readonly][sortable][required] |
Name | System.String | The human readable name given to this Project[queryable][sortable][required] |
Reference | System.String | An option reference to a 3rd party system. An alternative identifier but not necessarily unique.[queryable][sortable][required] |
StartDate | System.DateTime | UTC date of when this Project started[queryable][sortable] |
EndDate | System.DateTime | UTC date of when this Project ends[queryable][sortable] |
IsActive | System.Boolean | Indicates whether this Project is visible or not[queryable][sortable][required] |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
MetaDataParameters | List<KeyValuePair<string, string>> | optional XML data to associate with this Project |
Company | Company | Navigation property to Company [expandable] |
This mapping reflects the activation of Modules for each Project.
Name | Type | Description |
---|---|---|
ProjectId | System.Int32 | the composite primary identifier of this entity[queryable][sortable][required] |
ModuleId | ModuleEnum | the composite primary identifier of this entity[queryable][sortable] |
MetaDataParameters | List<KeyValuePair<string, string>> | optional XML data to store against the ProjectModuleMap |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
Project | Project | Navigation property to Project [expandable] |
Providers are logical business units (eg Tigerspike APAC) which aggregate client Companies.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary identifier for the Provider[queryable][sortable] |
Name | System.String | the name of the Provider[queryable][sortable][required] |
LogoUrl | System.String | the optional logo for the Provider |
IsActive | System.Boolean | whether this Provider should appear in the UI or not[queryable][sortable][required] |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
MetaDataParameters | List<KeyValuePair<string, string>> | optional XML data to associate with this Provider |
PhoenixInstanceId | System.Int32 | the PlatformInstance that this Provider belongs to[queryable][sortable][required] |
PlatformInstance | PlatformInstance | Navigation property to PlatformInstance [expandable] |
Each Module contains a number of securable Resources.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary identifier of this entity[queryable][sortable] |
ModuleId | ModuleEnum | The Module that this Resource belongs to[queryable][sortable] |
CompanyId | System.Int32 | The Company that this Resource belongs to.[queryable] |
ProjectId | System.Int32 | The Project that this Resource belongs to.[queryable] |
Name | System.String | the name of this entity[required] |
Reference | System.String | a label that an external system may retrieve this entity by[queryable][sortable][required] |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
Roles are a set or performable Actions on Resrouces within the context of a Project.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary Id for Role[queryable][sortable] |
Name | System.String | the name of this entity[required] |
CompanyId | System.Int32 | the Company that this Role belongs to [queryable][readonly][sortable] |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
Company | Company | Navigation property to Company [expandable] |
Roles contain a number of Actions that can be performed on Resources.
Name | Type | Description |
---|---|---|
Id | System.Int32 | The primary Id for RolePermission[queryable][sortable] |
RoleId | System.Int32 | the composite primary identifier of this entity[queryable][sortable][required] |
ResourceId | System.Int32 | the composite primary identifier of this entity[queryable][sortable] |
ActionId | System.Int32 | the composite primary identifier of this entity[queryable][sortable] |
EntityId | System.Int32 | The Id of the Entity that this permission is restricted to[queryable][sortable] |
IsGrant | System.Boolean | Does this permission represent Grant (1) or Deny (0) access[required] |
CreateDate | System.DateTime | UTC date of when this Object was created[readonly] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed |
Action | Action | Navigation property to Action [expandable] |
Role | Role | Navigation property to Role [expandable] |
Resource | Resource | Navigation property to Resource [expandable] |
Name | Type | Description |
---|
Name | Type | Description |
---|
Users can be granted access to Phoenix. A user can be human or an application.
Name | Type | Description |
---|---|---|
Id | System.Int32 | the primary Identifier for a User[queryable][sortable] |
UserTypeId | UserTypeEnum | The user type that this user relates too[queryable][sortable] |
CompanyId | System.Int32 | The Company that this user belongs to [queryable][readonly][sortable][required] |
Username | System.String | The unique username for this user account[queryable][sortable][required] |
Password | System.String | The password for this user account[obscure] |
ImageUrl | System.String | The profile/avatar url for this user |
FirstName | System.String | The firstname of the user[queryable] |
LastName | System.String | The last name of the user[queryable] |
LockingCount | System.Byte | To store the locking count, must be increased by 1 for any login failure.[required] |
Reference | System.String | An external reference to identify the User[queryable] |
LastLoginDate | System.DateTime | Date the user last logged in[queryable][sortable] |
ExpiryDate | System.DateTime | Expiry date for the user[queryable][sortable] |
IsActive | System.Boolean | Indication of whether the user is able to access the system[queryable][sortable][required] |
CreateDate | System.DateTime | UTC date of when this Object was created[queryable][readonly][sortable] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed[queryable][sortable] |
MetaDataParameters | List<KeyValuePair<string, string>> | optional XML data to store against the User |
TimeZoneId | System.String | Unavailable |
Company | Company | Navigation property to Company [expandable] |
Identifiers | ICollection | Navigation property to Identifier [expandable] |
Each User can be mapped directly a series of Operations that they can access
Name | Type | Description |
---|---|---|
Id | System.Int32 | The primary Id for RolePermission[queryable][sortable] |
UserId | System.Int32 | the User that this permission is granted to[queryable][sortable][required] |
ResourceId | System.Int32 | the composite primary identifier of this entity[queryable][sortable] |
ActionId | System.Int32 | the composite primary identifier of this entity[queryable][sortable] |
ProviderId | System.Int32 | whether this permission applies to a single provider or platform wide[readonly] |
CompanyId | System.Int32 | whether this permission applies to a single company or any company[readonly] |
ProjectId | System.Int32 | whether this permission applies to a single project or any project[readonly] |
EntityId | System.Int32 | The Id of the Entity that this permission is restricted to[queryable][sortable] |
IsGrant | System.Boolean | Does this permission represent Grant (1) or Deny (0) access[required] |
CreateDate | System.DateTime | UTC date of when this Object was created[readonly] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed |
Action | Action | Navigation property to Action [expandable] |
Project | Project | Navigation property to Project [expandable] |
User | User | Navigation property to User [expandable] |
Company | Company | Navigation property to Company [expandable] |
Provider | Provider | Navigation property to Provider [expandable] |
Resource | Resource | Navigation property to Resource [expandable] |
Each Role that is mapped to a User is assigned a scope to whether it applies to a specific Project, Projects belonging to a specific Company, or Projects belonging to the Companies for a specific Provider
Name | Type | Description |
---|---|---|
Id | System.Int32 | Unavailable |
UserId | System.Int32 | the composite primary identifier of this entity[queryable][sortable][required] |
RoleId | System.Int32 | the composite primary identifier of this entity[queryable][sortable][required] |
ProviderId | System.Int32 | Unavailable |
CompanyId | System.Int32 | Unavailable |
ProjectId | System.Int32 | the composite primary identifier of this entity [queryable][readonly][sortable] |
CreateDate | System.DateTime | UTC date of when this Object was created[readonly] |
ModifyDate | System.DateTime | UTC date of when this Object last viewed |
Project | Project | Navigation property to Project [expandable] |
Role | Role | Navigation property to Role [expandable] |
User | User | Navigation property to User [expandable] |
Company | Company | Navigation property to Company [expandable] |
Provider | Provider | Navigation property to Provider [expandable] |