github Worklenz/worklenz v3.1.0

9 hours ago

🚀 Worklenz Release: 100% AGPLv3 Open Source

We are thrilled to announce a major milestone for Worklenz! With this release, the entire core platform and client portal have transitioned to a 100% Open Source model under the GNU Affero General Public License v3.0 (AGPLv3), alongside the debut of our new Modular Addon Architecture.


🌟 Highlights

🔓 100% AGPLv3 Open Source

  • Commercial Licensing Removed: We have retired the dual-licensing and commercial license restrictions across the repository, backend extensions, and the Client Portal.
  • Freedom to Self-Host: All features across the core platform are now unified under GNU AGPLv3, providing self-hosters and organizations complete freedom to inspect, customize, and deploy Worklenz without licensing barriers.

🧩 New Features

🔌 Modular Addon Engine & SDK Architecture

To allow custom enterprise workflows, bespoke client integrations, and private features to coexist cleanly alongside the open-source core, we have introduced a powerful, decoupled Addon Engine:

  • Self-Contained Addons (/addons/<addon-id>):

    • Independent directories containing their own backend routes, database migrations, frontend UI components, and state management.
    • Enabled simply by declaring them in environment variables: ENABLED_ADDONS=addon-a,addon-b.
  • Backend Addon SDK (@worklenz/addon-sdk):

    • Exposes core utilities, database access, base controllers, notifications, and validators to addons.
    • Reuses the core backend's compiled modules and PostgreSQL connection pool, ensuring optimal resource usage with zero duplicate connection overhead.
    • Dynamically mounts addon routers under /api/v1/addons/<addon-id>.
  • Isolated Addon Database Migrations:

    • Run migrations for all enabled addons via npm run migrate:addons.
    • Each addon tracks its schema in a dedicated tracking table (e.g. pgmigrations_<addon_id>), guaranteeing zero interference with the core database schema.
    • Built-in collision detection, deduplication, and pre-flight validation prevent schema conflicts.
  • Frontend UI Extension Slots:

    • Addons can inject UI components into established platform slots without modifying core code:
      • Navigation Bar: Add custom menu entries (navigationItems).
      • Project Settings: Register dedicated configuration tabs (projectSettingsTabs).
      • Project List: Inject customized data columns (projectListColumns).
      • Routing & State: Dynamically register React Router routes and Redux slices.
    • Built-in collision guards protect core Redux slices (auth, user, etc.) from being overwritten.

🛠️ Improvements & Stability Fixes

  • Cross-Platform Compatibility: Replaced hardcoded POSIX path delimiters with platform-native separators, ensuring seamless addon loading on Windows, Linux, and macOS.
  • Robust Migration Runner:
    • Scoped PostgreSQL constraint guards (conrelid) to specific tables, ensuring idempotent migration execution across fresh and existing databases.
    • Enhanced migration runners to properly fail on non-zero statuses, process signals, and corrupted manifests.
  • Vite Plugin Integration:
    • Vite addons plugin now honors environment variables loaded via .env files (VITE_ENABLED_ADDONS, custom branding titles, and favicons).
    • Gracefully guards against incomplete or unmounted extension slot components.
  • Docker & Self-Hosting Enhancements:
    • Updated environment templates (.env.example, worklenz-backend/.env.template, worklenz-frontend/.env.example) with addon engine documentation.
    • Streamlined container bootstrap scripts and documentation in docs/SELF_HOSTING.md.

⚙️ Configuration & Quick Start

Enabling Installed Addons

In your .env file:

# Comma-separated list of enabled addon directory IDs
ENABLED_ADDONS=wip-sheet,crm-handoffs

# For frontend-only builds
VITE_ENABLED_ADDONS=wip-sheet,crm-handoffs

Running Addon Migrations

cd worklenz-backend
npm run migrate:addons

🤝 Contributing & Community

With the full AGPLv3 transition, community contributions, bug reports, and addon development are more welcome than ever! Check out our updated README and addons/README.md to get involved.

Don't miss a new worklenz release

NewReleases is sending notifications on new releases.