Domain Functionality in Journyx Timesheet 5.5


Journyx Timesheet 5.5 provides a simple and powerful method of using one installation to handle multiple organizations through use of the Domains feature. Timesheet uses Domains to provide a series of unique sub-installations that are largely independent of the master, or "root," domain. Each of these sub-domains inherit certain characteristics, most notably the Global Preferences, of the root domain while at the same time having a degree of functional autonomy and database independence.

Please Note: If your organization will be using the Domains feature of Timesheet 5.5, you should note that the root domain should only be used for basic system administration. Projects, Tasks, Pay Types, Bill Types, and any other items should not be created within the root domain. Additionally, User accounts other than Root Domain Administrators should not be created within the root domain. At least one sub-domain should be created to handle these normal use objects.

Each of the sub-domains in Timesheet may be thought of as separate branches of a tree - that is, each is dependent on the trunk (the root domain) for certain aspects of its existence, but each remains unique from any others as well as from the trunk itself. Each domain is, essentially, a separate installation of Timesheet.

Each sub-domain is created by the administrator of the root domain, who designates a domain administrator for each of these sub-domains. Each of the sub-domain administrators may add users, projects, and the like to his new domain. All domains, root and sub-, are fully independent of one another in terms of projects, users, tasks, pay types, and bill types.

Items in separate domains are completely isolated from one another. A user, project, task, etc., that is in one domain can never be viewed by a user who is logged into a different domain, including any reports. Any item that is created in one domain can never be moved to a different domain.

At this time the Journyx PS Tools have not been tested or certified for use with domain-enabled Timesheet sites. Journyx is working towards a domain-enabled version of the PS Tools.


Server and Database Considerations

Data from different domains is all stored within the single Timesheet database. Therefore all domains will have to coordinate back-end maintenance and backup schedules.

Because there is a single database containing all domains' data, external reporting is slightly more complex than with a non-domain Timesheet installation. The data for separate domains is all stored in the same tables, that is, there are not separate tables for separate domains. Users, Projects, Tasks, and other items that are assigned to domains all have a field in their primary table called <domain_id>. If you are writing an external report for "all time for users in X domain" then you will need to query for all of the users in the user table that are in that domain, and then query for all of the time records for those users.

Because of this table structure, external reporting can cross the domains. This is simultaneously a feature and a security issue. It is possible to have external reports that contain data from all domains, if desired. However, there is no way to ensure that external reports written by users in one domain do not access data in other domains. Please keep this factor in mind when planning your external reporting strategies.


Domains and Users

Users who are created within a sub-domain are unique to that sub-domain and cannot interact with users, projects, reports, et. al., of other sub-domains or the root domain. The only crossing of these boundaries occurs at the main login screen, which is the same for all users and is controlled by the root domain. The root domain main login screen can be modified by following the Modify the Login Screen Appearance link from the Global Preferences Modification screen in the root domain.

Please Note: While users are unique to each domain, because the initial login for every domain is handled through the root domain, User Login IDs must be unique for each user, regardless of which domain that user occupies. Therefore, no user may have the same login ID as any other.


Licenses and Domains

Your Timesheet installation has a single license. That license allows a certain number of users and certain features. The license key is installed into the root domain. When you create sub-domains you will grant each sub-domain a certain number of users. You can configure your sub-domains with a total number of users that exceeds the total licenses available. The number of active users in each sub-domain is subtracted from the number of users available to the root domain. The term active user refers to any user who has entered time or accessed Timesheet in any way within the past 30 days. Thus it is possible for all of your domains to have fewer users than the number that you have set for them and yet your overall Timesheet installation to be over its number of licensed users.

If you have purchased the Rates and Rules Module, the Custom Roles Module, or the Custom Error Reporting Module then you can turn those modules on or off for each domain that you create. Additionally, you can enable or disable the Timekeeping functionality in each sub-domain.

Disconnected User, Projectlink, and Accountlink are not accessible to sub-domains in the current version of Timesheet. Therefore these features will not be enabled in the root domain's license key. Journyx is currently examining the possibility of extending the Disconnected User feature to work in domains, although no official release date for this feature has been set. There are no plans to extend Accountlink or Projectlink into domains at this time.


Migrating to Domains

The Domains feature of Timesheet was designed as an all-or-nothing feature and no allowance has ever been made for migrating existing non-Domain databases into Domains; or for migrating data from a Domain into a stand-alone Timesheet database.

Either of these migrations can be accomplished by Journyx Professional Services; however, this is not included in the base cost of the Domains feature. The cost for the work of migrating into our out of Domains will be assessed on a case-by-case basis. If your organization would like to migrate from a non-domain installation of Timesheet to a domain installation (or vice versa) you will need to work with the Journyx Professional Services Team to scope that effort. As part of this process, the PS Team will require a copy of any existing database for evaluation.


The Root Domain

The root domain is an administrative domain only. There are several configuration and maintenance tasks that can only be performed in the root domain. Outside of these tasks, nothing, including time tracking, project creation or reporting, should ever be done in the root domain.

The Administrator login to the root domain is incredibly important. It is critical that you create a second root administrator as soon as you begin configuring your root domain for use. This second admin account will be your backup in case you ever lose your primary admin's password. If you lock yourself out of the root domain then the only way to get back in will be to take your database offline and have the Journyx support team hand-modify your database.

Following is a list of the tasks that should occur in the root domain:

Optionally, you can define Extra Fields in the root domain and have new sub-domains inherit them. This will be useful for standardizing your Extra Fields across domains. This feature applies to all types of Extra Fields. Changes to the root domain's Extra Fields after a particular sub-domain is created cannot be pushed to that existing sub-domain.


Sub-Domains

Sub-domains inherit all of their settings from the root domain at the moment that they are created. This includes color schemes, logos, and all of the other configuration settings. If no one in the sub-domain ever modifies a preference (like the colors) and that preference is changed in the root domain, then the sub-domain will inherit the color change automatically. But it is impossible to tell by looking whether or not the sub-domain is going to inherit those changes. The safest course of action is to never change the other preferences and configuration settings in the root domain.

All of the preferences and configuration options that are available in the core Timesheet product which are not listed above as being disabled or limited to the root domain are available within the sub-domains. So two sub-domains can have entirely different color schemes, logos, names for the entry columns, project management page configurations, etc.

Before you begin your implementation it would be a good idea to plan out any cross-domain reporting that you are going to do. You will want to consider the external cross-domain reporting as you plan each domain's configuration. For instance if you want to have projects with identical names in multiple domains, and then report on that project time, then you should ensure that all sub-domains use the same column for projects.

In the current Timesheet release, sub-domains cannot be deleted. Therefore you should not create extraneous sub-domains. If you need to do testing it is imperative that you establish a test server and not do your testing in sub-domains on the production environment.


Creating And Modifying Sub-Domains

Please Note: The Global Preferences for the root domain must be accessed and saved at least once before any new domains are created. This includes every page of the Global Preferences within the root domain. You can simply click through each page and hit the [Modify] button on each page. Failure to perform this action may render sub-domains unstable.

Sub-domains are created by an administrator in the root domain. Each sub-domain is assigned a maximum number of users, a "termination date," access to certain portions of the root domain's functionality, and an administrator who will be the primary admin for that domain. Domain creation functions are available from the main admin screen, under the Advanced Settings heading.

Clicking the Domains link will take the admin to the Domain Creation and Modification Screen. This screen lists any currently existing sub-domains, making them available for modification. Further, this screen provides the interface for creating new sub-domains.

Creating New Sub-Domains

To create a new sub-domain, you will need to provide the following information for the domain to be created:

Once these required parameters have been defined, click the Create button at the bottom of this screen. The Domain Modification Screen will be displayed, along with a green text message indicating that the domain in question has been created. Additionally, this message will provide information relating to the domain admin for this sub-domain. This screen provides access to the tools needed to make modifications to the newly created domain. If you do not need to make any modifications, simply click the Modify button and you will be returned to the Domain Modification and Creation screen and the newly created domain will now appear in the list of existing domains. The domain modification process is covered in detail below.

Modifying Sub-Domains

Each sub-domain may be modified to: increase the number of allowed users; to increase the length of time they are valid; and to allow or disallow the use of certain Timesheet expansion module functions. Additionally, the admin of the root domain may create new admin accounts for each sub-domain. To modify an existing sub-domain, simply select that sub-domain from the list of existing domains on the Domain Modification and Addition Screen and click the Select button. This screen is also displayed automatically whenever a new sub-domain is created.

Sub-Domain Properties

Each of the potential modifications for sub-domains is outlined in the table below. Default values are listed in bold text.

Option Setting Result
Number of users allowed in this domain: Number As with sub-domain creation, this field allows the administrator of the root domain to specify a maximum number of users this sub-domain will hold.
     
Number of days (from creation) valid: Number As with sub-domain creation, this field allows the administrator for the root domain to specify a number of days that this sub-domain will be valid. The current termination date for this domain is listed beneath this option.

Please Note: This number of days is based on the date this sub-domain was created.

     
Allow use of Timekeeping ability? no Prevents users in this domain from having the Timekeeper role assigned to them. For more information on roles, please see the Roles section of the Timesheet User Manual.
  yes Allows use of the Timekeeper role in this domain.
     
Allow ability to re-rout extended tracebacks? no Prevents the use of customizable error reporting in this domain.

Please Note: If your organization has not purchased the customizable error reporting module for the root domain, this functionality will not be available in any sub-domain, although this option will still be listed on the Domain Modification Screen.

  yes Enables the use of the customizable error reporting expansion module, if it has been purchased for the root domain.
     
Allow creation of new Roles? no Prevents the use of customizable roles expansion module in this domain.

Please Note: If your organization has not purchased the customizable roles module for the root domain, this functionality will not be available in any sub-domain, although this option will still be listed on the Domain Modification Screen.

  yes Enables the use of the customizable roles expansion module, if it has been purchased for the root domain.
     
Allow use of Rate Rules and Policies? no Prevents the use of rate rules & policies expansion module in this domain.

Please Note: If your organization has not purchased the rate rules & policies module for the root domain, this functionality will not be available in any sub-domain, although this option will still be listed on the Domain Modification Screen.

  yes Enables the use of the rate rules & policies expansion module, including rate reporting, if it has been purchased for the root domain.

Once the desired modifications have been indicated, simply click the modify button beneath the Options area on this screen. The Domain Modification and Addition Screen will be displayed along with a green text message confirming that the domain was modified.

Sub-Domain Admins

The Domain Modification Screen also provides the root domain administrator with an interface for creating additional administrators for the sub-domain in question. Each sub-domain has at least one administrator, who is created at the time the sub-domain is created. Every admin in a particular sub-domain is displayed in the list of Current Domain Administrators located at the bottom of this screen. To create a new admin for the domain that is being modified:

The Domain Modification Screen will refresh, displaying a green text message indicating that a new admin has been created as well as indicating the password for the new admin.


Removing Sub-Domains

Timesheet does not currently support the deletion of sub-domains. However, if your organization has created a sub-domain that must be removed from active use, there is a method for effectively removing sub-domains. This process is outlined below.

  1. From the Domain Modification Screen, create a new sub-domain admin account for yourself in the sub-domain to be removed. The process of creating a new domain admin is discussed above.
  2. Log out and log in to the sub-domain in question using the new domain admin created in step 1. above.
  3. Modify all user accounts for the sub-domain to be removed by setting each account to hidden status.
  4. Log out of the sub-domain in question

Every user who has been set to hidden status will no longer be able to access Timesheet. Once a user has not accessed Timesheet for 30 consecutive days, he will be effectively removed from the system and will no longer count against the number of users for which your organization purchased a license key. After this thirty day period, the sub-domain in question is effectively deleted.