Skip to content

Dev - #18

Merged
camilesing merged 3 commits into
mainfrom
dev
Sep 19, 2026
Merged

Dev#18
camilesing merged 3 commits into
mainfrom
dev

Conversation

@camilesing

@camilesing camilesing commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Summary

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing behavior to change)
  • Documentation / build / CI only

Checklist

  • mvn test passes locally (mvn -B -ntp test -pl datapoly-common,datapoly-template,datapoly-core,datapoly-executor,datapoly-gateway,datapoly-manager -am)
  • If the built-in UI (datapoly-manager-ui) was changed, sh build-ui.sh was run and the built assets were verified; no generated files under datapoly-manager/src/main/resources/ (index.html, static/) were committed
  • No new hardcoded credentials, internal IPs or personal namespaces were introduced

Array-declared parameters (isArray=true) now accept three wire shapes besides a native JSON array: a serialized JSON array string (["a","b"]), a comma-separated string (a,b) and a single scalar, which becomes a one-element list. The same tolerance applies to arrays declared on OBJECT children.

Elements are still coerced one by one to the declared type, so the loosening does not weaken value validation; a JSON-looking string that fails to parse falls back to comma splitting.

Adds binder tests for the new formats (including elements with embedded commas and type coercion) and documents the accepted submission forms in docs/{en,zh}/data-task.md.
…Feishu config injection

Squashed port of two commits (user role foundation + Feishu login config plumbing).

Backend: DATAPOLY_SYSTEM_USER gains a user_role column through the v1.4.0 Liquibase migration in both dialects (new rows default to USER, existing rows are backfilled to ADMIN so nobody locks themselves out on upgrade). AccessToken carries the role, SystemUserService.login fills it from the row, SystemUserEntity maps user_role, and SystemUserDao.insert() lets account providers such as the Feishu extension create their users.

Login page: src/views/login/index.vue renders an extension.loginExtras component list below the password button (the fifth compile-time extension hook) and stores the role in sessionStorage; the in-repo stub contributes an empty array, so a plain build renders nothing new.

Deployment: the Feishu OAuth settings (DATAPOLY_FEISHU_ENABLED / APP_ID / APP_SECRET / REDIRECT_URI) are wired through docker-compose (values come from the ignored install/.env), conf/config.ini and datapolyctl.sh - a key is exported only when it has a value, since an empty string breaks relaxed binding of the boolean switch.

The Feishu OAuth backend and the login button live in the separate datapoly-extension repository.
…ide exports

A delivery provider can now claim a definition and run its rendered statement itself. The new optional interface com.cs.common.datatask.DataTaskStatementSink is consulted once per job, after rendering and before any JDBC work; on a claim the engine skips the whole row pipeline (no session, no result set, no row limit or reshaping), calls executeStatement and records the returned SinkOutcome like any other artifact with artifactInfo.statementDelegated=true. Declined definitions and non-query statements keep their previous path, so one sink can serve both modes.

A delegated statement routinely outlives the lease window, so a lazily started daemon (data-task-lease-keeper, stopped by @PreDestroy) refreshes the lease every lease-seconds/3 while it blocks. Cancellation only reaches a statement before submission: a late cancel keeps the artifact and records artifactInfo.cancelRequested=true instead of dropping it.

DataTaskStatementRequest carries the rendered SQL, its remaining bind values, the query flag, the pooled datasource, the submitter and the cancel probe. Adds seven engine tests and documents both semantics in docs/{en,zh}/data-task.md.
@camilesing
camilesing merged commit 0e89b5e into main Sep 19, 2026
1 check passed
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