Skip to content

Jdbc workers#878

Open
v1r3n wants to merge 4 commits intomainfrom
jdbc_workers
Open

Jdbc workers#878
v1r3n wants to merge 4 commits intomainfrom
jdbc_workers

Conversation

@v1r3n
Copy link
Collaborator

@v1r3n v1r3n commented Mar 17, 2026

Pull Request type

  • Bugfix
  • Feature
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • WHOSUSING.md
  • Other (please describe):

NOTE: Please remember to run ./gradlew spotlessApply to fix any format violations.

  1. JDBC Worker Task (Feature)

New system task that enables workflows to execute SQL queries against configured database instances. Includes:

  • JDBCWorker — executes SELECT/INSERT/UPDATE/DELETE with parameterized queries and connection pooling
  • JDBCProvider / JDBCInstanceConfig / JDBCConnectionConfig — type-safe, named instance configuration under conductor.jdbc.instances
  • Full test coverage: unit tests for config, provider, and worker + end-to-end test with in-memory H2
  • Documentation added at docs/documentation/configuration/workflowdef/systemtasks/jdbc-task.md
  1. SQLite search-v2 fix (Bugfix)

SqliteIndexDAO.searchWorkflows() and searchTasks() returned full JSON blobs instead of IDs, breaking the v2 search API contract. Fixed SqliteIndexQueryBuilder to accept a selectColumn parameter so v2 search
selects workflow_id/task_id only. Added 6 test cases covering basic search, pagination with ordering, and null sort handling.

  1. Documentation site fixes (Bugfix)
  • Reverted use_directory_urls to false to preserve backward-compatible .html URLs from v3.22.1
  • Fixed 21 broken internal links across 10 files (HTML tags, wrong relative paths, non-existent anchor fragments)
  • Relocated SDK docs from devguide/sdk/ to documentation/clientsdks/ to match nav structure
  • Added custom 404 page
  • 99 pages crawled, 20,506 internal links verified, 0 broken

Alternatives considered

JDBC Task: Considered implementing as a pure worker (external process) rather than a system task. A system task was chosen because it runs on the server with managed connection pools — avoiding the need for
every worker deployment to carry database credentials and connection config.

SQLite search-v2: Considered adding a separate query method to SqliteIndexDAO instead of modifying the query builder. Chose to extend SqliteIndexQueryBuilder.getQuery() with a selectColumn overload to keep
the fix minimal and co-located with the existing query construction logic.

Docs URL format: Considered keeping use_directory_urls: true (directory-style URLs like /java-sdk/). Reverted to false to avoid breaking all existing external links pointing to .html URLs from the v3.22.1
site.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant