Environments
What is an environment?​
An environment is a server where you can host your projects and run production data. The performance of your projects will depend on the package you select. You can have multiple projects running in parallel on different environments or consolidate them in a single environment, depending on your needs and server capacity.
Flowize Designer​
cloud.flowize.com (a.k.a Designer) is the place where you will set up your flows, interfaces, apps, contents, etc. organized in projects, and you will be able to run testing data. Data run on the Designer platform will be kept for 7 days, and webhook responses will only be retained for 24 hours.
Create an environment​
To create an environment, you only need to open the left menu and, at the bottom, you will have a link to create your first environment.
- Name your environment: give your environment a useful name so you can distinguish it from others.
- Select a Package: packages differ mainly in two things:
- Storage: It's the hard disk space that the database and the file manager of each project can use.
- Actions per minutes: This is an estimation of the performance of the threads that execute flows in your server. That performance will also depend on the App that is running. For example, the speed of executing a custom App that connects to an external API will depend, mainly, in how fast that API sends back the response.
- Select a Region: When choosing a server location for your environment, it's important to consider the geographical location of your target audience. For example, if most of your traffic originates from the US, placing your server in an area such as New York or San Francisco would be beneficial. There are eight regions to choose from, including three in Europe, three in America, and two in Asia. You can also configure your server's timezone, which will affect time-related features such as Schedules and date operations.
After that, the button to Create environment will be enabled, and after some minutes, your server will be ready!
Threads performance​
On the Designer platform, the performance of the threads that execute your flows may be lower compared to a dedicated server, as they are shared among all users. Additionally, only one thread can execute a flow at a time, so parallel processing is not possible when running data in the Designer.
Update an environment​
Once you have your environment ready, you can start adding new projects to it, update existing ones, configure URL mapping or watch the log. In order to change the "Configuration" you can access clicking on the Environment shown in the left panel.
Details​
In the Details tab, you will find general data about your environment: name, description, URLs, etc. Let's go step by step, explaining each of them.
URLs: In the URLs table, you will see three entries or endpoints. Each one has it's own functionality and objective.
Frontend Endpoint: This URL serves as the entry point to your production environment, where you can configure and edit your flows, contents, etc. It is similar to the Designer, but with certain limitations on what can be edited. You can visually differentiate the Designer and your production environment by the color of the header (bright blue) and the logo. In your production Frontend, you will be able to modify existing items, but not add new ones:
Item | Changes |
---|---|
Static | You can modify the schema and change values. If you update the project, the Static schema will be left untouched |
Data | You can change your Data record schema. If you update the project, any change done here, will be overwritten |
Keystore | You can modify both schemas and data. Only the configuration will be overwritten if you update the project |
Table | You can modify both table structure and data. Only the structure of the table will be overwritten if you update the project |
Analytics | You can modify any of the Analytics reports. If you update the project, any change done here, will be overwritten |
File manager | You can add, delete or edit any file that you have in the file manager. |
Interfaces | You can modify the schema of the interface. If you update the project, any change done here, will be overwritten |
OCDB Connectors | You can modify the information of the Connectors. If you update the project, the OCDB commands won't be updated |
Webhooks | You can modify your webhooks configuration. If you update the project, any change done here, will be overwritten. Webhook responses will be left untouched |
URLs | You can modify your URLs configuration. If you update the project, any change done here, will be overwritten |
Batches | You can add batches, and they won't be modified when updating the project |
Flows | You can modify App parameters within the flow, but you cannot create versions or modify the flow design. If you update the project, any change done here, will be overwritten |
Reports | Your data records will be left untouched when updating a project |
Apps | You can modify the Apps configuration. If you update the project, any change done here, will be overwritten |
Contents | You can modify your Contents. If you update the project, any change done here, will be overwritten |
Conditions | You can change your Conditions configuration. If you update the project, any change done here, will be overwritten |
API Endpoint: this URL is where you send data into your environment. It could be via a "Direct URL", "batches" or simple data record inserts. Remember, that you have the API documentation here.
WEB Endpoint: this URL is a new feature of Flowize, and it can only be used to render Website URLs and your Website
Pages generated in a flow. This endpoint is where you can configure the mapping of those URLs that are
like
https://web-7700a1341ea7b49f33464f576ca78110.onflowize.com/v1/dynamicurl/1d-362936aa8106d1af2127bba0e4f13-99542e1565c1b17c65c3763
to something more user-friendly as
https://web-7700a1341ea7b49f33464f576ca78110.onflowize.com/home
External IPs: here it's where the external IP of your server is shown, just in case you need to whitelist it to send data.
Package details: you can see which is the current package of your environment, in which region is located and the timezone with the current local time.
Delete environment: in case you don't want to keep using the environment, you can delete it. Keep in mind that this action is irreversible and all data within the environment is deleted.
Projects Hosted​
In this tab, you can decide to update a project already hosted in the environment or add a new project to it.
When adding or updating a project you will have two options to choose from:
- From Designer: This option is always available and this project's configuration will be moved to the environment:
- Project configuration. Parameters like "Number of Flow Retries" are not updated.
- Storage. Data, Keystore structure, Tables structure and Analytics
- Triggers. Interfaces, ODBC Connectors (only the configuration, not the commands to be executed), Webhooks ( configuration, not the webhook responses received in the Designer platform) and URLs)
- Flows. All versions, in Draft or Published
- Apps. All of them
- Contents. All of them, in Draft or Published
- Conditions.
- From another environment: This option will only be visible if you have more than one Environment. If you select an
Environment, the current configuration of that project will be moved to the new Environment:
- Project configuration. Parameters like "Number of Flow Retries" are not updated.
- Storage. Data, Keystore structure, Tables structure and Analytics
- Triggers. Interfaces, ODBC Connectors (only the configuration, not the commands to be executed), Webhooks ( configuration, not the webhook responses received in the Designer platform) and URLs)
- Flows. All versions, in Draft or Published
- Apps. All of them
- Contents. All of them, in Draft or Published
- Conditions.
Regarding the data of the project, you have some possibilities to choose from:
- Static schema. If you choose to update this schema, the current values you already have in the Environment won't be overwritten. Only new keys which are not present in the Environment's project will be added.
- File Manager. You can select which files/folders will be copied to the Environment. If the files selected have the same name, they will be overwritten. If the folders selected already exists, the content of the folders will be merged.
- Keystore data and Tables data. Both options work in the same way, and it will add all the data of each
keystore/table that you select to the Environment. You have three options to choose how the data selected will be
updated in the environment:
- Insert only new data. It won't delete or update any data which is already in the Environment. It will only insert the data which is not in the Environment.
- Insert new data and/or update if data matches. It won't delete any data which is already in the Environment. It will update the data whose ids match and it will add the new ones.
- Delete current data and then Insert data. It will delete any data which is already in the Environment. It will empty the selected keystore/table and then insert all the data.
Log​
In this tab, you can check the process the environment has gone through to verify that everything went well. In case there is an error while creating the server or updating a project, it will be shown here.
URL mapping​
Mapping URLs is very handy when you want to build a website, and you want to have control in how the URLs look like in the browser. This way, the navigation between pages is easy to create as you can know the URLs beforehand and put them in your contents.
In this tab, you will be able to map your Website URLs, created in "URLs" to a custom URL of your election. These URLs
are only used in the WEB endpoint, and it let us convert an ugly URL like
/v1/dynamicurl/1d-362936aa8106d1af2127bba0e4f13-99542e1565c1b17c65c3763
to something more friendly like /home
.
You can add as many mappings as you want, and you can even create the mapping without choosing a Website URL. That way, you can configure the mapping before even having the Website URL created. To create a new URL mapping, you only need to click on "Add new URL mapping". Then a new row will appear where you have to fill:
- Relative URL. This is the URL that you want to see in your browser. Some examples:
URL | LINK |
---|---|
"/" | Root of the website: https://web-7700a1341ea7b49f33464f576ca78110.onflowize.com/ |
"/home" | https://web-7700a1341ea7b49f33464f576ca78110.onflowize.com/home |
"/contact" | https://web-7700a1341ea7b49f33464f576ca78110.onflowize.com/contact |
Remember that relative URLs with GET parameters like "/home?user=1" cannot be created, and everything after the "?" will be removed.
- Website URL. Here you will have all the Website URL's of the projects already hosted in this environment organized per project. You can choose one or leave it unselected to, later on, configure it.
Remember to click "Save all URL mappings" after making any changes to ensure that they are saved to the environment. Failure to do so will result in the changes not taking effect. Additionally, be cautious when deleting a mapping as it will have an immediate effect on the environment.
SSL Certificates​
In your environments, now you can use your own domain for the Web Endpoint instead of something
like https://web-5d45ad53dasd35a43as43da.onflowize.com
. So if you want to use https://www.mydomain.com
to render the
Website URLs of your environment, now it's possible. To do so, you need to follow two steps.
- Add or modify the DNS entry of the domain/subdomain in your domain provider and redirect it to the IP of your environment. These are two examples of two different providers in how to do this change.
- Upload the SSL certificate of that domain to your environment. Otherwise, the URLs won't work as they need to be over https (HyperText Transfer Protocol Secure)
What is an SSL certificate?​
SSL Certificates are small data files that digitally bind a cryptographic key to an organization's details. When installed on a web server, it activates the padlock and the https protocol and allows secure connections from a web server to a browser.
SSL Certificates bind together a domain name, server name or hostname and an organizational identity (i.e. company name) and location.
You need to install the SSL Certificate onto your environment to initiate a secure session with browsers. Once a secure connection is established, all web traffic between the environment and the web browser will be secured.
Upload SSL Certificate​
To upload your SSL certificate, you need to "Edit" your environment and open the tab "SSL Certificate". You will see that you currently don't have any SSL certificate and below you have two options to upload your SSL Certificate. Those two are the most common ways Certificate providers can give your the SSL certificate, as a single PEM file or some separated certificate files. Let's explain each of the options.
Upload a PEM file​
A PEM file is a type of certificate file used to authenticate secure websites. It typically contains a private key, a certificate, and other certificates from a certificate authority (CA) that make up the trust chain. PEM files are commonly used on Unix-based web servers and are compatible with OpenSSL applications. If your certificate provider only provides one file, it is likely a PEM file. After uploading it, Flowize will verify if it is valid or expired. Once uploaded, you can check the certificate details and delete it if you no longer wish to use it. Alternatively, you can upload a new SSL certificate, for example, if the current one has expired. Note that uploading a new certificate will always overwrite the current one.
Upload separate certificate files​
Firstly, let's go through some basics.
Public Key Infrastructure (PKI) security is about using two unique keys:
- the Public Key, which is encrypted within your SSL Certificate.
- the Private Key, which is generated on your server and kept secret.
All the information sent from a browser to a website server is encrypted with the Public Key, and gets decrypted on the server side with the Private Key. Together the key pair keeps communication secured, and one key will not work without the other.
Typically, the CSR/RSA Private Key pairs on Linux-based operating systems are generated using the OpenSSL cryptographic engine, and saved as files with ".key" or ".pem" extensions on the server. But no specific extensions are mandatory for text files in Linux so, the key file may have any name and extension, or no extension at all.
A Domain Certificate file is the end-entity certificate, the one issued to your domain name, for example: web.mydomain.com or *.mydomain.com
A Root or an Intermediate certificate, in order to constitute the certificate chain, along with the Domain Certificate (end-entity certificate), a CA Bundle is needed, which is a file that contains root and intermediate certificates.
The chain is required to improve the compatibility of the certificates with web browsers and other kinds of clients so that browsers recognize your certificate and no security warnings appear.
When uploading a certificate to your environment, you can upload a file with a .ca-bundle extension or upload root and intermediate certificates separately, depending on how your certificate provider delivers them to you. When uploading a PEM file, the system will validate the certificates and, if valid, display the information on the certificate.
Upgrade an environment​
When you find that you are Environment is running out of storage or its performance is not what your projects demand, you have the option to upgrade your server to higher package.
Upgrading will increase the storage, and the capability of running more actions per minute of your Environment. This is a permanent change and it cannot be reversed or to choose a lower package.
The upgrade process takes some minutes to complete and to do so, the environment needs to be shutdown. That means that there is a gap of time of downtime where your environment won't be able to receive or process data. When choosing to upgrade, you have the possibility to schedule it for the best suitable time, so the processes that you run on it aren't affected.
To help you detect when your Environment needs an upgrade, in the list of Environments of your Organization, there is now new information about their performance and the actions per minute executed.