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, applicationsprojects, forms and flows.


Column
width400px
Table of Contents
maxLevel3


...

  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 in each of their user accounts.
  3. These designer users will download a finished and tested application project and check it in to a source code repository (a repository outside of a frevvo server) as the new version of the applicationproject. 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 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 to production or update one already in production, a frevvo.Publisher will check-out the new application project from source code (a repository outside of a frevvo server) and upload/replace the application 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.

...

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

...

  1. Create a generic production user (ex: “production@<your tenant>”) and give this user the frevvo.Designer role. All your production forms/flows 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/flow/application project for production or update one already in production, the designer will download the form/flow/application 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/flow/application project from the source code repository (outside of a frevvo server) and upload/replace the form/flow/application project into the generic production user account.

...

  1. Download the form from your production account.
  2. Upload the form to a NEW or Existing application  project in your development environment.
  3. Make the changes.
  4. Download the updated form/flow 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.
    Image RemovedImage Added
  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 list.

...

Info

When a production flow 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 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 and change business rule or add/remove fields, all the pending tasks pick up the latest version of the flow. Pending tasks for a form/flow 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 with the same ID as an existing form/flow, without checking Replace, a copy will be created and the designer will see an error message: "The form/flow that was uploaded matches the id of one that already existed so a copy was made. If you intended to replace the existing form/flow, delete the form/flow you just uploaded and upload it again but check off the ‘Replace’ option."

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

Form/Flow designer edit ACL

The Access Control feature in allows the designer to assign other users permission to make changes to forms and flows.

Warning

The ability to edit a Form/Flow should not be given to other users if the form/flow 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.

Multi-Tenant Scenario

Development Tenant

...

  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 in each of their user accounts using the test users and roles.
  3. The designer users will download a finished and tested application 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 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/flows.
  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 application 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 it’s 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 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).

...