2.18
Workflow
Enhanced Jinja Syntax Highlighter and Completer
APIO now includes a new syntax highlighter and completer for Jinja templates.

SFTP Node
The SFTP node can now remove remote files.

Update User Node
The Update User node now includes a new output link to handle the case where the user is not found.
HTTP Call Node
The HTTP call node now includes an option to disable automatic response body parsing.

System-Wide Jinja Macros
APIO now includes an option under System Configuration → Macros to define global Jinja2 macros. Macros are available during any template rendering.

Configurable Purging of Annotated Workflow Instances
APIO now includes an option to disable purging of workflows with comments.

System-Wide Secrets
APIO now includes an option to define secrets as environment variables for use inside workflows.

New Jinja Filters
- The new
sanitizefilter protects against malicious HTML input. - The new
urldecodefilter is now available.
Provisioning UI
Trunkgroup User Lookup Policy
ProvUI now includes an option to select the user lookup policy.

Updated Tenant List View
The tenant list in ProvUI now includes the backend name.
Integration
Phone Number Library Update
The phonenumbers library has been updated to match the version used by BWGW.
Unified BroadWorks User Creation
Only one user account is created per user, even when they log in using a BroadWorks alternate ID or short username.
INFO
To clean up all pre-existing duplicated users, connect to the apiocore container and run the following CLI command:
/usr/local/go/cli -cleanremoteusers bwksYou can also pass the -dry-run option to get a list of users that would be deleted from the APIO cache. After cleanup, new accounts are auto-created at the next login.
Operations
Improved DB Schema Migration for Downgrades
Schema migrations are now stored in the database to support automatic rollback when an older version is restored.
Restore Old Configuration from GUI
The GUI now includes the ability to restore an older configuration version. After selecting an older configuration version under Settings → Configuration, click Revert configuration to restore the selected version.
Improved API Rules Test Tool
Under System → Users → Profiles → API Rules, it is now possible to set the method of the test request.
HTTP/2 Support
APIO now supports inbound HTTP/2 connections. To enable it, pass the -http2 command-line option.
User Management
GUI Session Limit
APIO now includes a configuration option to limit users to a single active session.

Reset Password Email Template Improvement
The following new variables are passed to the template:
- first_name
- last_name
2FA Enforcement by User Profile
APIO now includes an option to set the 2FA mode at the user profile level.

Improved User List
The users list view now includes a profile column.
Password Expiration Warning
The GUI now shows a warning when the password is about to expire.
Security
Trusted Proxies
APIO now includes an option to explicitly configure the list of proxies to be trusted.

Access Token Configuration
APIO now includes an option to configure the access token duration. The default duration is now 5 minutes.
Extra Authentication Token (Optional)
You can optionally ask APIO to generate a random token written to a local file. All requests to APIO are then accepted only if the X-Apio-Extra-Security-Token header is present with the correct token.
To enable it, pass the -extraAuthTokenPath <path to token file> command-line option.
Patch Versions Release Notes
Release 2.18.0
| Pull id | Fix |
|---|---|
| 574 | disabled proxying of internal endpoints |
| 571 | block proxied login requests if access token is already present |
| 581 | switched to sandboxed environment for Jinja template rendering |
| 586 | improved obfuscation of requests and contexts |
| 588 | improved API rules functionality description & logging |
| 592 | slowed down metrics update |
| 584 | fixed automatic gateway switchover to backup URL in case of 5xx error |
| 560 | updated API endpoints to provide number of days lest before user expiry |
| 602 | added first_name and last_name to password reset email template rendering |
| 565 | fixed counting of unhealthy gateways |
| 566 | fixed insertion of backup URL(s) when creating a new gateway |
| 572 | added profile name in users list |
| 575 | added option to explicitly configure the network origins for trusted proxies |
| 576 | added logging of pending log in attempts when second-factor is not provided yet |
| 612 | adapted logout API endpoint to support POST method |
| 608 | adapted user expiration calculation |
| 598 | added option to define global Jinja2 macros available during any template rendering |
| 606 | added new output link to node Update user to handle case where user is not found |
| 599 | added support for inbound HTTP2 connections |
| 590 | fixed spurious error when importing user profile API rules |
| 621 | disabled logging of Broadworks proxied health requests |
| 617 | added option to set 2FA mode at user profile level |
| 615 | added environment variable CORE_RENDERER_TIMEOUT to configure template rendering timeout in seconds |
| 642 | fixed automatic adding of leading 0 to local phone number in Provisioning UI |
| 626 | added CLI option to force initial admin password |
| 650 | added option to node HTTP call to disable response body automatic parsing |
| 629 | added option to configure access token duration (changed default duration to 5 minutes) |
| 646 | fixed session handler to prevent retry of HTTP request on login URL in case of authentication failure |
| 699 | fixed software version passed to RPM packaging tool |
| 668 | fixed inner body obfuscation |
| 671 | fixed swapped column headers in ProvUI call recordings table |
| 670 | fixed missing French translations for table headers in several ProvUI tables |
| 691 | fixed corruption of configuration data caused by obfuscation |
| 678 | updated swagger file with logout endpoint |
| 686 | added warning if command-line includes non-flag arguments |
| 673 | fixed login attempts being exposed on the local user's own profile page and API response |
| 674 | added a configuration option to limit users to a single active session |
| 694 | fixed duplicate user accounts created when logging in with a BroadWorks alternate ID or short username |
| 679 | enabled line wrap for code editor |
| 684 | added ability to remove remote files with node sFTP |
| 619 | fixed workflow graph not displayed when goto node targets a renamed node |
| 622 | improved user audit page with direct links to the relevant objects |
| 628 | fixed body missing from requests when debug log is active |
| 630 | adapted form validation to allow + sign in email addresses |
| 633 | fixed commenting of instances causing the page to crash |
| 634 | added option to disable purging of workflows with comments |
| 636 | added backend name to tenant list in ProvUI |
| 638 | fixed style when cloning node |
| 651 | optimized alarm DB queries for performance |
| 665 | added filter urldecode to Jinja templates |
| 677 | added missing filters suggestions for code editor |
| 692 | increased timeout for docker images list command |
| 658 | fixed passkey on Chrome and Firefox |
| 640 | fixed switch node to filter out double quotes from output |
| 659 | fixed some menus not closing automatically after being selected (e.g. system configuration) |
| 662 | changed response code from 500 to 504 when proxy call times out |
| 666 | improved user profile API rule test tool to allow selecting HTTP method |
| 597 | fixed parallel executions of scheduled workflows |
| 593 | added option to define secrets as environment variables for use inside workflows |
| 661 | fixed job scheduler page failing when the workflow attached to a scheduling is deleted |
| 675 | added Jinja template sanitize filter |
| 672 | updated phonenumbers library to match BWGW version |
| 653 | fixed service pack assignment in ProvUI |
| 654 | added option to generate extra token for improved security |
| 681 | added option to select user lookup policy in ProvUI |
| 696 | fixed crash when setting task status to error in subworkflows |
| 708 | fixed memory crash when evaluating Jinja template in some race condition |
| 712 | added button to sign in with passkey on login form |
| 709 | removed debug log in ProvUI |
| 703 | fixed workflow working version being replaced by displayed workflow version when run activity button is clicked |
| 707 | disabled support for reset password for Broadworks users backed by an external IdP |
| 656 | improved audit tool with tables to show suspicious Broadworks changed settings |
| 690 | moved common CSS classes from provisioning style to main one |
| 713 | fixed reset password link overflow |
| 693 | switched to ACE code editor |
| 714 | embedded network debug tools in docker image |
Upgrade from 2.17
No special steps are required. Please follow the standard procedure described in the Deployment Guide.
Downgrade to 2.17
- Stop all APIO Core 2.18 instances.
- Start the previous version of APIO Core (e.g., 2.17).
