Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
Column

There are many paths to Rome.... frevvo suggests the following best practices for managing your tenants, projects, forms and flowsworkflows.


Column
width400px
Table of Contents
maxLevel3


...

Multiple Live Forms server installations are the most flexible and best practice for maintaining a production environment. In this scenario, you may have a development server, a test/staging server and a production server. Or you may have only a development server also used for testing and a production server for deployed forms/flowsworkflows.

  1. Create roles and users in your development environment. If you are using the default security manager, simply create the users and roles in the tenant, otherwise refer to customers using the LDAP/SAML/Azure Security Manager.

    Tip

    The role names in your development environment should be the same as the role names in your production environment. If they are different, modifications to your workflows will have to be made to users and workflows to reflect the production roles when they are moved to the production.

  2. Multiple designer users can create and test forms/flows workflows in each of their user accounts.
  3. These designer users will download a finished and tested project and check it in to a source code repository (a repository outside of a frevvo server) as the new version of the project. Ex: SVN, CVS, Google drive.
  4. Create a generic production user account (ex: “production@<your tenant>”) in your production environment and give this user the frevvo.Designer role. All your production forms/flows workflows will be in this user account.

    Tip

    If you are using a non-default security manager, this step and the next step would be done via your IDP software.

  5. Assign the frevvo.Publisher role to one or more other users in your production environment.
  6.  When a designer is ready to deploy a form/flow workflow to production or update one already in production, a frevvo.Publisher will check-out the new project from source code (a repository outside of a frevvo server) and upload/replace the project into the generic production user account in your production environment.

  7. Step 6 can be performed by the tenant admin or your generic production user if you prefer not to create users with the frevvo.Publisher role.

...

Cloud customers have a single tenant. In this scenario, best practices are to create a set of test roles and test users. Your form/flow workflow designers will use test roles/users during the dev/test phase.

  • Test roles & users allow your designers to test workflow email notifications and workflow task navigation without spamming real users' email inboxes and task lists.
  •  When a form/flow workflow is in development you may consider:
  • When your form/flow workflow is ready to deploy to production switch the roles/users from your test roles/users back to your production roles/users, and if desired re-enable task history search and view/edit submissions ACL.
  • Follow the detailed steps below for Publishing Forms/Flows Workflows from Development to Production and Updating a Form or Flow Workflow in Production noting that your generic production users account (ex: "production@<your tenant>") will be in the same tenant as your designer's user accounts.

Cloud customers may optionally purchase a 2nd tenant for development and testing.

Details

Publishing Forms/

...

Workflows from Development to Production

We recommend that the forms/flows workflows be created & tested by one/multiple designers in their own accounts. After the forms are designed/tested, they can be downloaded from the individual designer user accounts and uploaded to a generic production user account (ex: “production@<your tenant>" where the forms can be published and used by your end users.

We recommend using a generic production user account to publish projects/forms/flows workflows into production for the following reasons:

  • If designers publish production forms/flows workflows from their individual designer accounts and edit a production form/flowworkflow, they will be editing a live form. This does not give any source code / QA control.
  • If there are multiple designer publishing production forms/flows workflows from their own accounts, then your production forms/flows workflows will be scattered around between different user accounts and it will be more challenging to maintain them.
  • The username of the user account where the form/flow workflow is published is used in the form/flow url workflow URL and you might not want the username to be known to all other form users.
  • Designer users have permission to view submissions. Publishing in a generic production account prevents the designer from viewing production submissions.

...

  1. Create a generic production user (ex: “production@<your tenant>”) and give this user the frevvo.Designer role. All your production forms/flows workflows will be in this user account.

    Tip

    If you are using a non-default security manager, this step and the next step would be done via your IDP software.

  2. Assign the frevvo.Publisher role to one or more other users.
  3. When a designer is ready to deploy a form/flowworkflow/project for production or update one already in production, the designer will download the form/flowworkflow/project zipfile and check it into a source code repository (outside of a frevvo server).
  4. A user with the frevvo.Publisher role will check-out the new form/flowworkflow/project from the source code repository (outside of a frevvo server) and upload/replace the form/flowworkflow/project into the generic production user account.

Updating a Form or

...

Workflow in Production

If you need to update a form/flow workflow that has been deployed to production, there are specific steps to follow to avoid issues with submissions. Submissions are tied to a specific form/flowworkflow. It is very important that you make your changes to the form/flow workflow that has the same typeId as the production version. This ensures that the production version of your form/flow workflow will be replaced by the updated version when you upload it to your production account and check the Replace checkbox on the Upload screen.

Let's say you have a form/flow workflow in production that requires some changes. Follow these steps:

  1. Download the form from your production account.
  2. Upload the form to a NEW or Existing project in your development environment.
  3. Make the changes.
  4. Download the updated form/flow workflow from your development account.
  5. Upload it to your production account. Be sure to check the Replace checkbox on the Upload screen. The XML schema checkbox will automatically be checked.
  6. The existing version in your production environment will be replaced with the modified version from the development environment. You will see it at the end of the form/flow workflow list.

The typeId of a form/flow workflow can be seen in the URL when you edit it in the form/flow workflow designer.

Info

When a production flow workflow that has pending tasks associated with it is edited and replaced with an updated version, pending tasks will contain the changes the next time they are "performed" from the task list. For example, let's say you

  • Add or delete controls in a signed section and there are flows workflows pending in flight that have already been signed.
  • Add/remove a field that was used in a business rule; ex: Add/remove a column from a table that was used in a calculation.
  • Change a spreadsheet that you are reading from or writing to using the Google connector.

When you edit a flow workflow and change business rule or add/remove fields, all the pending tasks pick up the latest version of the flowworkflow. Pending tasks for a form/flow workflow that integrates with a Google sheet reflects any changes made to the Google sheet while the tasks are in-flight.

When uploading a form/flow workflow with the same ID as an existing form/flowworkflow, without checking Replace, a copy will be created and the designer will see an error message: "The form/flow workflow that was uploaded matches the id of one that already existed so a copy was made. If you intended to replace the existing form/flowworkflow, delete the form/flow workflow you just uploaded and upload it again but check off the ‘Replace’ option."

When uploading a form/flow workflow with Replace checked that is currently being edited by another user, the designer will see this error message: "This form/flow workflow is currently being edited by <user@tenant>. Please try again later."

Form/

...

Workflow designer edit ACL

The Access Control feature in

Frevvoproduct
allows the designer to assign other users permission to make changes to forms and flowsworkflows.

Warning

The ability to edit a Formform/Flow workflow should not be given to other users if the form/flow workflow is in production. Giving this permission would enable those users to edit your production forms directly thereby subverting the best practices described in this guide.

...

It is best to have the roles in your test tenant match the roles in your production tenant. This enables testing of forms/flow workflow in development for ACL and navigation without having to edit your form/flow workflow before deploying the updated form/flow workflow to production.

  1. Create test users in your development tenant. If you are using the default security manager, simply create the test users in the tenant. Refer to Customers using the LDAP/SAML/Azure Security Manager if you are not using the default security manager.

    Tip

    The role names in your development tenant should be the same as the role names in your production tenant. If they are different, modifications to your workflows will have to be made to users and workflows to reflect the production roles.

  2. Multiple designer users can create and test forms/flows workflows in each of their user accounts using the test users and roles.
  3. The designer users will download a finished and tested project and check it in to a source code repository (versioning) as the new version of the application. Ex: SVN, CVS, Google drive.
  4. When further updates/modifications are required, the forms/flows workflows should again be edited in the designer user accounts and then upload/replaced in the generic production user account. 

...

  1. Create a generic production user account that has the frevvo.designer role (ex: “production@<your tenant>") on your production tenant to which you publish all forms/flowsworkflows.
  2. Assign the frevvo.publisher role to one or more users. These users have permission to upload new versions of your applications to your production user account.
  3. One of the users with the frevvo.Publisher role will check-out the new project from source code (a repository outside of a frevvo server) and upload/replace the application into the generic production user account 

...

  • The only way to guarantee the same behavior for both tenants is to configure both with the same security manager.
  • Each tenant should point to its own instance of your security manager.
  • For example if you are using LDAP, a development LDAP domain with a set of LDAP groups that are EXACTLY the same as your production LDAP domain is suggested. This way flows workflows can be moved from your development tenant to your production tenant and workflow navigation w/roles is guaranteed to work correctly.
  • The generic production user account (ex: "production") must be created in your IDP (LDAP, Azure, SAML).

...