Overview
The Test to Production (T2P) feature facilitates the tracking and promotion of configuration changes on a project-specific basis. This functionality enables teams to independently implement changes within a project and subsequently promote those changes to another SmartSimple environment. For instance, modifications can be transitioned from a dedicated development environment to a testing environment and ultimately to a production environment. This innovative feature significantly expedites the promotion of changes between instances, completing the process in a fraction of the time compared to the desktop tool.
Notes:
- This feature is exclusively available to clients with dedicated environments.
- Configuration changes are promoted based on individual objects. For example, if two projects modify the same object (such as a report), both sets of changes to that object will be promoted when either project involving that object is promoted.
- Certain data will not be promoted when T2P is executed. This includes details regarding the last and next run for autoloaders and scheduled exports, as well as associated organization IDs in signup pages and autoloader configurations. Other items that will not be promoted include SmartFolder content (excluding System Folders) and Question Set Builder fields. Generally, if an item was not copied over using the legacy desktop tool, it will continue to be excluded.
- This article pertains to the online version of T2P, not the desktop tool. The online version of the T2P tool operates differently from the Desktop version. Each functions uniquely, allowing users to select the option that best suits their preferences. For instance, the project-based T2P does not connect to both databases simultaneously. Instead, whenever a configuration change is made anywhere in the system, it is logged as a candidate for promotion. Subsequently, these changes can be exported to the target instance, where users can review and select which changes to promote. In a future release, we plan to introduce the ability to roll back changes in the Testing environment for instances where a change is not promoted.
Logging Changes Against a Project
Once this feature has been configured, you can begin logging changes for a specific project by adhering to the following steps:
- Navigate to User Menu > Personal Settings > Other tab > Under T2P Project Assignment, select the desired project to track changes against.
- Click Save. An orange header will appear at the top of the screen indicating that any changes to the system are being logged against the selected project.
- Implement the desired configuration changes. Click the Pause button in the header if you wish to pause tracking changes against the selected project.
Exporting Changes to Another Environment
To export your changes to another environment, please follow these steps:
- Go to Menu Icon > T2P
- On the Export tab, select the project to promote under Projects.
- Check the desired export setting under Export Name.
- Review the changes logged against the project.
- (Optional) To include any additional changes, check the desired rows under “Changes Not Logged Against This Project” and click the Move Non-Project Changes to Current Project button.
- (Optional) Utilize the “Show Exported Changes” toggle to display or hide changes that have already been exported, allowing you to view more or less information as needed.
- Click Export.
- Allow the export a few minutes to complete, then click the Export History button located just below the header, represented by a clock icon with an arrow pointing counterclockwise.
Note: Changes promoted from a Development Environment are initiated from the Menu Icon > T2P > Export tab. Changes promoted from the Testing Environment to the production environment are executed through an Export button on the Menu Icon > T2P > Import tab.
Deleting a Change
You may optionally delete changes from the T2P Export tab, regardless of whether the change has been logged against a project. Deleting a change will prevent it from being promoted and remove it from the list, but it will not revert the change itself.
Change Not Logged Against This Project
This section enumerates changes that have not been associated with any project. To include a change in the current project, simply check its box and click the “Move Changes Into Current Project” button, represented by a curved arrow icon.
Importing Changes from Another Environment
To import changes within the target environment, please follow these steps:
- Go to Menu Icon > T2P.
- Select the Import tab.
- Review the list of packages imported and their status.
- For any packages marked as Promotable, click the View button (represented by an eye icon) to view the details of the changes contained within the package.
- Select or deselect any changes from this package that you wish to import into your current environment, and then click the Promote button to apply those changes. Note that changes in the package are compared with the configurations in the target environment, and only the differences will be displayed on the comparison page.
- Allow the system a few minutes to execute the promotion. The Status will update to Promoted, and you may now test your changes in the test environment.
- (Optional) You may also view packages that have already been promoted to obtain further details.
After testing in the test environment, if you are satisfied with the changes, you can promote the changes to your production environment. To do this, navigate to the Import tab where the list of packages is displayed, and click the Export button for packages that were promoted to send the package to the next environment (for example, from Test to Production).
In a future release, we plan to introduce the ability to roll back changes in the Testing environment for instances where you choose not to promote a change to the production environment.
Configuration
Enable T2P
To configure and utilize T2P, it is necessary to first enable it by navigating to Global Settings > System and activating the toggle.
Configuring Feature Permissions
To establish feature permissions for T2P, please follow these steps:
- Navigate to Global Settings > Security tab > System Feature Permissions > Features tab.
- Under the Test to Production (T2P) - Access section, select which roles are permitted to choose a project under their personal settings and log configuration changes against a project.
- Under the Test to Production (T2P) - Manager section, select which roles are authorized to import and export configuration changes from the Menu Icon.
- Click Save.
Creating a New Project to Record Changes
- Navigate to Global Settings > System tab > T2P Projects.
- Click the New Project button (represented by a plus sign).
- Complete the relevant fields and click Save.
- For Assigned Users, select which users will be permitted to add configuration changes to this project.
- When you are prepared to commence tracking configuration changes, switch the Status to In Progress. This will make the project available for selection from the user’s menu under Personal Settings.
Configuring Export Settings
Export settings facilitate the transfer of configuration changes from the current environment to another environment. For instance, changes may be moved from the development environment to the testing environment and subsequently from the testing environment to the production environment. As part of this process, it is essential to configure the export settings in the current environment and the import settings in the target environment concurrently.
- Navigate to Global Settings > System tab > T2P Export Settings in the source environment (for example, the testing instance).
- Click New T2P Export Settings (represented by a plus sign).
- Complete the relevant fields.
- Generate a key pair and click Save.
- Copy the public key. This public key will be utilized when configuring the import settings. You will need to establish the import settings in the other environment now—please refer to the instructions below. Keep this window open to complete the setup once the import configuration is finalized.
- Activate the Activate toggle and click Save.
You are now able to commence promoting configuration changes between SmartSimple environments.
Configuring Import Settings
Import settings enable you to apply configuration changes to the current environment from another environment (for example, applying changes sent from test to production).
- Navigate to Global Settings > System tab > T2P Import Settings in the target environment (for example, the production instance).
- Click the New T2P Import Setting button (represented by a plus sign).
- Complete the relevant fields.
- For Public Key, click the edit button (represented by a pencil) and paste the key generated in the export settings of the other environment.
- Activate the Activate toggle and click Save.
- Return to the Export settings in the other environment to ensure they have been activated and saved.
You may now begin applying configuration changes made in another SmartSimple environment.
Viewing the Export History
To view projects that have been exported and their status, please follow these steps in the source environment (for example, the testing instance).
- Navigate to Menu Icon > T2P > Export tab.
- Click the Export History button located at the top left (represented by a clock icon with an arrow pointing counterclockwise).
Viewing the Import History
To view projects that have been imported and their status, please follow these steps in the target environment (for example, the production instance):
- Navigate to Menu Icon > T2P > Import tab.
- Click the View button (represented by an eye icon) to see the contents of the package that was imported.
FAQ
Q: If I make multiple changes to the same report, will each change appear as a separate row in the export package?
A: No. If an update to the report is already included in the export package, additional updates will not create separate rows. Only one entry is displayed per report for changes of the same type.
Q: What occurs if I modify a report that has already been exported?
A: If a report has already been exported and marked with the "Exported" flag as "Yes," any new changes will reset the flag to "No" until the latest change is exported again.
Online Test to Production (T2P) Tool (Beta)
The Test to Production (T2P) tool enables users to transfer configuration changes between environments. Users can select or deselect changes based on categories, such as all configurations related to custom fields or all modifications applied to workflows.
The new project-based T2P tool allows users to organize their changes into specific projects and transfer only the changes associated with those projects between systems—for example, all custom fields and workflow changes related to a designated project.
Unlike the previous tool, which required a time-consuming comparison between source and target systems to identify necessary changes, the new tool tracks changes as they occur on the source system, eliminating the need for a comparison step.
To enable the new T2P tool on your system, navigate to:
Grid Menu (nine-square icon in the top right corner) > “Global Settings” > “System” tab > scroll down to the “Test to Production” section at the bottom of the page > click “Enable T2P” and then click Save.
Upon enabling, the following new options will appear:
“T2P Projects” is where you create named projects to group related changes.
“T2P Export Settings” is where you configure the connection on the source instance for T2P.
“T2P Import Settings” is where you configure the connection on the target instance for T2P.
To create a project, click the “T2P Projects” link and select the plus button to add a new project.
The project creation form includes the following fields:
“Name”: designated by the user.
“Description”: optional notes may be added here.
“Status”: can be set to “Draft,” “In Progress,” or “Closed.”
“Assigned Users”: specific users assigned to manage and work on the project’s T2P activities.
A project must be in the “In Progress” status to be editable by users. Projects marked as “Closed” or “Draft” are not available for editing. The “Assigned Users” field determines which users have permission to modify the project; if no users are assigned, no one can work on the project.
Only users with roles authorized to use the T2P tool are eligible for assignment. To enable T2P access for a role, navigate to “Global Settings” > “Security” tab > “System Feature Permissions” > “Features” tab > scroll down to the fields “Test to Production (T2P) - Access” and “Test to Production (T2P) - Manager.”
“Test to Production (T2P) – Access”: allows users to select a project under personal settings and log configuration changes against that project.
“Test to Production (T2P) – Manager”: grants users the ability to import and export configuration changes via the menu icon.
Once granted access through the aforementioned steps, users can begin recording changes against the created project. Click the profile icon located at the top right of the screen and select “Personal Settings” from the dropdown menu.
Within the “Other” tab of Personal Settings, at the bottom, users can select their project from a dropdown menu. This option is available only if there is a project in the “In Progress” status to which the user is assigned. After selecting the project, click Save. An amber/orange banner will appear at the top of the screen, indicating that the user is now working on the selected project:
Any changes made while this notification is displayed will be recorded against the selected project. If this message is not visible, changes are not being recorded. Additionally, clicking the pause button to the right of the project name in the banner will suspend change recording:
Always verify the message displayed at the top of the screen before making changes if you are assigned to a T2P project. If you pause a project and log out, the project will not be active upon your next login. However, if the project is active in the banner, it will remain active after logging out and back in.
If your role has manager access within “System Feature Permissions” (as detailed above), you will be able to configure import and export settings that establish connections between the two servers or instances involved in T2P transfers. New export and import settings must be configured for each server pair you intend to connect.
Begin by accessing the source instance where the project is being developed. Navigate to:
Grid Menu > “Global Settings” > “System” tab > scroll down to the “Test to Production” section at the bottom of the page > click “T2P Export Settings.”
This will open the export settings page. Click the plus button to add new export settings for a specific target server.
“Name”: user-defined name for this connection.
“Local Identifier”: automatically populated by the system.
“Target Identifier”: enter the Local Identifier of the target server here (refer to the import settings section for locating this information).
“Target URL”: enter the URL of the target server.
“Description”: optional field for notes.
The “Activate” button enables the settings after all fields are completed. The “Generate Key Pairs” button creates two keys: a private key and a public key. The public key must be copied and pasted into the Import Settings on the target server or instance.
To configure import settings on the target instance where you intend to import the project, navigate to:
Grid Menu > “Global Settings” > “System” tab > scroll down to the “Test to Production” section at the bottom of the page > click “T2P Import Settings.”
This page allows you to establish the connection to your source instance. Click the plus button to create new import settings.
“Name”: user-defined name.
“Local Identifier”: automatically populated.
“Source Identifier”: a user-defined name for the source instance, which is where the project is being developed.
“Source URL”: the exact URL of the source instance.
“Description”: optional notes for the project.
“Public Key”: paste the public key generated during the export settings configuration.
Once these settings are configured, click “Activate” to establish the connection between the source and target instances.
With import and export settings established, you may now perform the T2P transfer. On your source instance, navigate to:
Grid Menu > “Tools” > “T2P.”
This page provides options for import and export:
Under Export options, select the project you wish to transfer and the export connection to determine the destination for the configuration changes. The export settings configured earlier will appear as options. The sections below display a list of changes logged against the project and those not associated with the project. Click the “Export” button at the bottom to transfer only the changes logged against the selected project. Alternatively, to include changes not logged against the project, select those items and click “Move Non-Project Changes to Current Project.” Then, when you click “Export,” all listed changes will be transferred, typically within a minute.
The T2P process is not complete until you perform the import and promotion of the configuration changes on the target server. To do so, navigate to:
Grid Menu > “Tools” > “T2P.”
Select the Import tab to view available projects for promotion. Click the View button (eye icon) on the left of the item to review the settings to be imported.
Scroll to the bottom of the screen beneath the list of changes and click the “Promote” button to apply the settings to the target server.
Returning to Grid Menu > “Tools” > “T2P” will show the importing project’s status as “Promoting” while changes are applied. Refresh the page after a few minutes; the status should update to “Promoted.”
This completes the transfer of your configuration to the target server or instance.
The standard post-T2P procedure is as follows:
Navigate to Grid Menu > “Global Settings” and click the “Refresh Settings Cache” button at the top of the screen.
Within the “System” tab, scroll down to the “System Configuration” section and click the “System Variables” link.
Click the “Refresh Cache” button on this page as well. The T2P process is now complete.