Insert excerpt | ||||||||
---|---|---|---|---|---|---|---|---|
|
Adding Authentication to an API End Point
Step 1 - Enable Authentication
- Open the Incoming API/API End Point Actionflow
- On the toolbar click
Insert excerpt _property_settings _property_settings nopanel true - In the API section, disable
Allow Anonymous ConnectionInsert excerpt _toggle_off _toggle_off nopanel true - This will then only allow authenticated calls to the API
the changesInsert excerpt _save _save nopanel true
Step 2 - Create an Authentication User
- In the
, expand the application with the Incoming APIInsert excerpt _repository _repository nopanel true - Expand
and create an New Role by clickingInsert excerpt _roles _roles nopanel true Insert excerpt _addIcon _addIcon nopanel true - Pin the tab as we will need it to remain open
- Provide a useful Name, e.g. GenerateToken
- In the Privileges section, click
Insert excerpt _privilege _privilege nopanel true - Search for the privilege in the Full Repository :
Use API Key
- Drag the Use API Key into the Privileges section of the Role
Insert excerpt _property_settings _property_settings nopanel true
the changesInsert excerpt _save _save nopanel true
- In the
section, clickInsert excerpt _user_group _user_group nopanel true Insert excerpt _user_group _user_group nopanel true - Add a new Group for you Role
- Give it a useful Name e.g. API Users
- Add any users you require to be able to run the API. This could be a dedicated API user with limited privileges
- To create a user see Managing User Accounts → Creating Users
- Click
and close the tabInsert excerpt _save _save nopanel true
- Now drag the new user group into the
section of the new privilegeInsert excerpt _user_group _user_group nopanel true
the changesInsert excerpt _save _save nopanel true
- Add a new Group for you Role
- The setup should look similar to:
Step 3 - Authentication Token KeyStore
A signing key is used to generate the PhixFlow API key and this is stored on the server to ensure secure access.
Using the page Configure a Keystore and Aliases, configure phixflow-api-key to be used as the signing key for PhixFlow API Keys in the same way as the pepperKey is configured. This secret string must be a minimum of 32 bytes length.
Step 4 - Generate Authentication Token
- The Incoming API will run as a specified user, this means that when it is called the audit trail will show the specified user as having performed the Incoming API Actionflow
- You do not need to login as this user, however, if you were already logged in as this user, you will need to logout and login again to pick up the user group change
- In the
, scroll down to the Full Repository section and expand itInsert excerpt _repository _repository nopanel true - Expand the
sectionInsert excerpt _user _user nopanel true - Double click on the user who will run the Incoming API
- Click the 3-dot more menu in the top right of the user properties
- Click Generate API Key
- Copy the value displayed and store it somewhere safe
Step 5 - Send Authorization
When calling the Incoming API, the authorisation token must be passed in as a header called: Authorization.
Worked Example
Here's a worked example using the Company Data (available from the Learning Centre).
In this example, we are using:
- A Company Orders screen containing two grids of the Orders and OrderLines data - this screen was created using the Multi-tile template
Tip |
---|
If you are completing this chapter as part of the Actionflow course and using a training instance, the data and screens have already been pre-loaded into the Actionflow Advanced Application. For this example, we'll be working on the Company Orders screen. |
Stop Multiple Processes Running While Performing Data Import
In this example, we'll create an Actionflow to import the AdditionalCompanies_Processed data and add the Status of New to each company on that table before adding it to the Companies table. We'll add this Actionflow to an Exclusion Group with other Actionflows on the same screen so that other processes cannot be triggered while the import is taking place.
Actionflow Setup
- Open the Company Approval Review screen
- Create an Actionflow on the Import button to import the AdditionalCompanies_Processed data
- Name:
ImportCompanies
- If you have completed the Actionflow Intermediate Course, chapter 2.15 Analysis Action Configuration, this Actionflow setup is similar
- Name:
- Add a
action to the canvas and connect theInsert excerpt _action_calculate _action_calculate nopanel true
node to itInsert excerpt _input _input nopanel true - On the Calculate action, add the following Output Attribute that will be used to update the Status of all imported companies:
- Name:
Status
- Type:
String
- Expression:
"New"
- Type:
- Name:
- On the Calculate action, add another Output Attribute that will be used to add a 20 second delay into the Actionflow, this will simulate a large data import and allow time to trigger the Actionflow twice:
- Name:
Delay
- Type:
Integer
- Expression:
sleep(20)
- This will add a delay into the Actionflow for demonstration purposes. See sleep
- Name:
- Add a
action to the canvasInsert excerpt _action_analysis _action_analysis nopanel true - On its Properties, in the Tables section, click the
iconInsert excerpt _tables _tables name icon nopanel true - Drag across the AdditionalCompanies_Processed table from the Repository to the Analysis action properties
Connect the Calculate action to the Analysis action and map across the attribute
Expand title Checkpoint
Table Attributes Setup
- On the Analysis Model, Actionflow Advanced Data, click on the table, AdditionalCompanies_Processed
- Double-click on the attribute, Status, and change the Expression to
_context.Status
- This is then referring to the attribute setup on the Calculate action
- Save the Analysis Model
Combine Data & Display
- On the Actionflow, create a
action with the Primary Table, AdditionalCompanies_Processed, and connect the Analysis action to the View actionInsert excerpt _action_view _action_view nopanel true - In its Properties, in the Data Retrieval Options section, set the Data Range to Latest
- This will ensure that this data isn't continuously added if the Actionflow is run repeatedly
- For the Output Attributes section, click the
icon and drag across all attributesInsert excerpt _attributes_icon _attributes_icon nopanel true
- In its Properties, in the Data Retrieval Options section, set the Data Range to Latest
- Create a
action to save the data to the Companies tableInsert excerpt _action_save _action_save nopanel true - In its Properties, in the Basic Settings section, set the Type to Insert and
toggle on Auto Save AttributesInsert excerpt _toggle_on _toggle_on nopanel true
- In its Properties, in the Basic Settings section, set the Type to Insert and
- Connect the View to the Save action and map across all attributes
Expand title Checkpoint
Setting the Exclusion Group
- Open the Actionflow
Insert excerpt _property_settings _property_settings nopanel true - Under Basic Settings, populate the Exclusion Group field with any text, e.g.
Import
- Under Basic Settings, populate the Exclusion Group field with any text, e.g.
Add the same Actionflow to the Import button the Company Management screen
Expand title How? - On the ImportCompanies Actionflow, open the
, hover over theInsert excerpt _property_settings _property_settings nopanel true
icon and chooseInsert excerpt _more_options _more_options name icon nopanel true Insert excerpt _repository_find _repository_find nopanel true - Open the Company Management screen and drag the highlighted Actionflow from the Repository onto the Import button
- This will create another instance of the same Actionflow
- On the ImportCompanies Actionflow, open the
Testing
- Open the Company Approval Review and Company Management screens
- Ensure both screens are
edInsert excerpt _lock _lock nopanel true - Click Import on one screen then press Import on the other screen
- A warning message should appear