Dev - #18
Merged
Merged
Dev#18
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Type of change
Checklist
mvn testpasses locally (mvn -B -ntp test -pl datapoly-common,datapoly-template,datapoly-core,datapoly-executor,datapoly-gateway,datapoly-manager -am)datapoly-manager-ui) was changed,sh build-ui.shwas run and the built assets were verified; no generated files underdatapoly-manager/src/main/resources/(index.html, static/) were committed