Skip to content

2.17

Workflow

Improved Used By Table in the Activity Editor

The Used By table now displays additional information, including whether parent workflows are enabled, synchronized, or public.

HTTP Nodes: Retry Failed External Requests in Synchronous Mode

A new checkbox Force sync has been added. When enabled, the node is executed in synchronous mode even if the configured Delay time is not immediate.

Global Workflow Transition Limit

A new Max transitions configuration setting is available under Settings → Configuration → Execution. This limit helps prevent infinite workflow loops that could otherwise block APIO.

Macro Node Terminations

When creating a macro node, terminations are now automatically populated based on the selected sub-workflow.

XML Jinja Filter

A new Jinja filter converts XML data into a dictionary. It can be used as follows:

| xml_to_dict

Enhanced JSON Schema Configuration and Validation for Startup Events

When configuring a startup event with JSON Schema (input or output), the schema is now validated before saving—preventing invalid schemas from breaking the route.


Integration

New JWT-Based SSO Mechanism

New configuration options include:

  • IdP sign-in URL: If provided, the login button redirects users to this URL.
  • IdP sign-out URL: If provided, logout redirects users to this URL.
  • Token header name: Header from which the JWT is retrieved. If absent, the token is read from the JSON payload using the same key.
  • Email claim: Claim containing the user's email. If omitted, no email is extracted.
  • JWK set URL: Location of the JWK set used for token signature validation.
  • Public key: Public key for signature validation (alternative to JWK set URL).
  • Secret key: Base64-encoded shared secret for token validation (alternative to JWK set URL).
  • Issuer: List of valid issuer domains for JWT verification.

Option to Disable SMTP STARTTLS

A new configuration setting allows disabling SMTP STARTTLS: Settings → Configuration → SMTP → Force STARTTLS disable

Extended Authentication Extra Rules

Additional attributes are now available for authentication rule conditions:

  • origin
  • host
  • proxy
  • ui_id

Operations

Configurable Process Log Levels (GUI)

New log-level configuration options are available under Settings → Configuration → Logs:

  • Process core log level
  • Process scheduler log level
  • Process webhooks log level
  • Process msteams_gw log level

User Management

GUI Inactivity Timeout

A new option GUI inactivity timeout (minutes) is available under Settings → Configuration → GUI. When enabled, inactive GUI sessions are automatically logged out after the specified period.

User Account Expiration

New user-profile-level expiration settings:

  • Expire (days): Automatically blocks the account after the specified number of days since creation.

  • User can extend expiration: Allows the user to extend the expiration by changing their password.

  • Expire Notification (days): Sends an email reminder after the specified number of days.

  • Expire Notification Email Template: Template used for expiration notifications.

    • Use {language} in the template name to localize it dynamically.
    • Use {expire_date} inside the template to show the expiration date.

User Account Lockout

New settings allow automatic lockout after repeated failed login attempts:

  • Invalid password lockout duration: Duration (minutes) of the lockout; -1 locks the account permanently.
  • Invalid password lockout threshold: Maximum failed attempts before lockout; 0 disables the mechanism.
  • Lockout mail template: Email template for lockout notifications; supports {language} for localization.

User-specific settings override global GUI-level lockout settings.

Force Password Change for New Users

A new option Force password change for new users is available under Settings → Configuration → GUI.

Trigger Workflow on User Creation

A new Post-auto-creation workflow option in Settings → Configuration → SSO allows automatically triggering a workflow after SSO-based user auto-creation. The workflow receives the same user attribute data provided by the IdP.


Security

CORS Verification

Under Settings → Configuration → GUI → Allowed origins, you can now define trusted domains permitted to access the system via CORS. These origins are validated during preflight (OPTIONS) requests.


Patch Versions Release Notes

Release 2.17.0

Pull idFix
534added configurable automatic expiration for user profiles
533added variable ui_id to custom reset password workflow execution context
532modified the reset password API to consistently return a successful response, regardless of whether the user exists
528improved CORS verification
527extended authentication extra rules context with origin, host, proxy, and ui_id attributes
523improved error handling for invalid SAML redirect URLs
522migrated javascript framework from react-scripts to vite
521enhanced JSON schema configuration and validation for startup events
519improved replication location information in DB replication status page
514added an option to automatically trigger a workflow after SSO-based user auto-creation
512added a Jinja filter to convert XML data into a dictionary format
511load target user details when running simulation as a different user
509fixed request search filtering by HTTP response code
508fixed the proxying of health check requests to gateway endpoints
506fixed the SSO configuration form to properly update when switching protocol types
504fixed JSON encoding in the template renderer for the type generator
499added automatic completion of sub-workflow terminations in the macro node
498fixed email sending of templates when they do not contain any placeholders
497added configuration option to disable SMTP STARTTLS
495fixed condition text selection for node "Switch"
494implemented automatic account lockout after repeated failed password attempts
493fixed missing user IdP information for DRaaS build
490added support for configurable automatic user expiration at the user profile level
489added option to disable SMTP starttls by setting environment variable NO_STARTTLS
486improved SAML SSO integration with Auth0
485added option to force password change for new users
482added GUI inactivity timeout option
477added SSO support for external IdP JWT validation
473added configurable workflow transition limit to prevent infinite loops
472added option to retry failed external requests in synchronous mode
469fixed Provisioning UI error message when an invalid email address is submitted for a group administrator
467improved "Used by" table in the activity editor to display key endpoint configuration flags
439added configurable process log level from GUI

Upgrade from 2.16

No special steps are required. Please follow the standard procedure described in the Deployment Guide.

Downgrade to 2.16

Stop all APIO Core 2.17 instances. Execute the following SQL statements on the APIO master database instance:

sql
alter table user_profiles drop column lockout_duration;
alter table user_profiles drop column lockout_threshold;
alter table user_profiles drop column lockout_mail_template;
alter table user_profiles drop column expire;
alter table user_profiles drop column notify_expire;
alter table user_profiles drop column expire_mail_template;
alter table user_profiles drop column user_extend_expire;
alter table users drop column expire_date;

update schema_migrations set version=30;

Start the previous version of APIO Core (e.g., 2.16).