Onify Hub API 2.50.0

Changelog for 2.50.0

2.50.0

  • feat: Upgrade Elasticsearch from version 7.17 to 9.1.1 with enhanced search capabilities
  • feat: Elasticsearch 7.17 backward compatibility with automatic client detection
  • feat: Add OpenSearch 3.x database support as alternative to Elasticsearch with full compatibility
  • feat: Database db.defaultProvider configuration supports both "elasticsearch" (default) and "opensearch" options
  • feat: Docker Compose configuration for OpenSearch development environment
  • feat: GitHub Actions workflows for OpenSearch testing and CI/CD integration
  • feat: Kubernetes app deployment for OpenSearch
  • fix: container zombie process accumulation - Fixed critical production issue where git child processes spawned by simple-git library became zombie processes in Kubernetes containers. Added tini init system to Dockerfile to properly reap zombie processes and prevent container process exhaustion. Previously, 6 zombie processes accumulated every 30 minutes from BPMN git sync operations, leading to potential service outages after 4+ months of operation.
  • fix: enhanced reindex optimization with cluster resource calculation
  • improve: reindex dynamic slices and throttling based on cluster resources (heap memory, node count, document size)
  • improve: reindex progressive retry logic with 30% parameter reduction on memory pressure
  • feat: Remote Elasticsearch Upgrade - Refactored upgrade endpoint to support migration from remote Elasticsearch 7.x cluster to local Elasticsearch 9.x cluster via POST /setup/database/upgrade
  • feat: add new route GET /my/login for unified login flow - automatically redirects users to internal login or SSO based on domain configuration
  • feat: enhance SSO callback to support automatic redirect after authentication with Auth token set in HTTP-only cookies
  • improve: add support for custom headers (onify-redirect-on-completed, onify-redirect-path, onify-error-path) in SSO callback for redirect configuration; these settings are also stored in session token
  • improve: logoff functionality with secure cookie invalidation for /my/logoff endpoint
  • refactor: remove direct request dependencies from services
  • fix: DELETE /admin/processes whatIf ignores size parameter
  • fix: use debug log level for flow issuer tokens instead of warn to reduce log noise
  • fix: GET /admin/config/settings now returns all settings for admin users without role-based filtering, allowing admins to see and manage all settings regardless of role restrictions
  • fix: Node.js 20 binary packaging - Migrated from archived vercel/pkg to actively maintained @yao-pkg/pkg fork for Node.js 20 support, resolving File is not defined error caused by undici requiring Node.js 20+ globals
  • feat: add configurable prefix validation for custom settings (allowedCustomSettingsPrefix) and strings (allowedCustomStringsPrefix) with underscore prefix always allowed for backward compatibility
  • fix: support resetting optional fields via x-onify-admin-pages header on PUT endpoints for options, domains, shortcuts, users, items, and settings
  • fix: update createItemIndex call to use dbClient instead of searchProvider
  • fix: PUT /admin/bulk/items with allowCreate=true now creates new indexes with proper mappings, ensuring items are immediately searchable without requiring reindex
  • fix: fix source exclude for sensitive fields in my/workspaces, my/shortcuts, and my/bulletins endpoints
  • feat: Add role update and removal endpoints for users PUT/DELETE /admin/users/{key}/role