Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
195 commits
Select commit Hold shift + click to select a range
c68bb54
perf: update for new client
ibuler Jul 8, 2026
5ebe341
Merge remote-tracking branch 'origin/dev' into new_terminal
Zxc4wonder Jul 8, 2026
ec53bf1
Merge pull request #179 from jumpserver/pr@new_terminal@merge_dev_new…
Zxc4wonder Jul 8, 2026
7b17e68
Merge pull request #186 from jumpserver/pr@new_terminal@sync_dev
Zxc4wonder Jul 15, 2026
386ef73
fix: validate DataView change_limit values
Zxc4wonder Jul 16, 2026
3bde6e8
Merge pull request #188 from jumpserver/pr@new_terminal@fix_dataview_…
Zxc4wonder Jul 16, 2026
2f58e29
Merge pull request #189 from jumpserver/dev
Zxc4wonder Jul 16, 2026
2fc8b43
Merge remote-tracking branch 'origin/dev' into sync_dev_20260721
Zxc4wonder Jul 21, 2026
5f33ccb
Merge pull request #195 from jumpserver/pr@new_terminal@sync_dev_2026…
Zxc4wonder Jul 21, 2026
b7450fd
feat:support dataview edit
Zxc4wonder Jul 27, 2026
4a1c9d9
fix(dataview): evaluate ACL per statement in batch saves
Zxc4wonder Jul 27, 2026
f02778d
refactor(dataview): introduce save execution context"
Zxc4wonder Jul 27, 2026
de8f3c0
feat(query-console): track server transaction state
Zxc4wonder Jul 27, 2026
eb6df1b
fix(query-console): serialize jdbc operations and close connections
Zxc4wonder Jul 27, 2026
f7ac3dd
fix(acl): avoid transaction-unsafe impact estimation
Zxc4wonder Jul 27, 2026
65301db
feat(dataview): add database transaction probes and savepoints
Zxc4wonder Jul 27, 2026
a2dab43
fix(query-console): save dataview changes on session connection
Zxc4wonder Jul 27, 2026
edc9143
fix(dataview): prevent stale and concurrent save state
Zxc4wonder Jul 27, 2026
280caa3
feat:
Zxc4wonder Jul 27, 2026
9aed712
feat(dataview): enable New Query preview and remove redundant save logic
Zxc4wonder Jul 27, 2026
776ea4b
fix(query-console): complete preview flow and isolate ACL review context
Zxc4wonder Jul 27, 2026
806772f
refactor(query-console): simplify transaction inspection and cleanup …
Zxc4wonder Jul 27, 2026
ff8db8f
fix(query-console): inspect MySQL transaction state via driver
Zxc4wonder Jul 27, 2026
e7f451d
fix(dataview): handle uncertain save outcomes safely
Zxc4wonder Jul 28, 2026
48dabd8
feat:
Zxc4wonder Jul 29, 2026
c1e3d78
fix: harden DataView save transaction lifecycle
Zxc4wonder Jul 29, 2026
5a1dfd4
fix: harden console lifecycle and audit error handling
Zxc4wonder Jul 29, 2026
3bfca3b
fix: use explicit resource actions for tree double click
Zxc4wonder Jul 29, 2026
831be00
feat:back
Zxc4wonder Jul 29, 2026
0f047a2
Merge pull request #203 from jumpserver/pr@new_terminal@feat_dataview…
Zxc4wonder Jul 29, 2026
ee95021
build: switch to JumpServer Druid from FIT2CLOUD
Zxc4wonder Jul 31, 2026
1e9f3fb
perf: Update Dockerfile with new base image tag
github-actions[bot] Jul 31, 2026
1e0df20
Merge pull request #214 from jumpserver/pr@new_terminal@build_druid_m…
Zxc4wonder Jul 31, 2026
9ee0154
feat:new console
Zxc4wonder Jul 31, 2026
4b10013
feat: add lazy CodeMirror SQL completion
Zxc4wonder Aug 4, 2026
de10c83
fix: harden SQL metadata context and identifier resolution
Zxc4wonder Aug 4, 2026
e02e92f
Merge pull request #215 from jumpserver/pr@new_terminal@feat_chen_new…
Zxc4wonder Aug 5, 2026
20664c6
fix(console): preserve execution and audit state
Zxc4wonder Aug 5, 2026
7f9fbb0
perf: update docker dev env
ibuler Aug 7, 2026
81070ae
perf: update dev run
ibuler Aug 7, 2026
9b1280c
perf: update env
ibuler Aug 7, 2026
e7b82c2
Merge pull request #219 from jumpserver/pr@new_terminal@fix-new-conso…
Zxc4wonder Aug 10, 2026
e95686f
fix(console): improve cancellation
Zxc4wonder Aug 10, 2026
1a2fd10
fix(console): handle chunking and cancellation
Zxc4wonder Aug 10, 2026
f615c00
Merge pull request #221 from jumpserver/pr@new_terminal@feat_console_…
Zxc4wonder Aug 11, 2026
a476ecd
feat: add filter
ibuler Aug 12, 2026
a4e207b
Merge pull request #217 from jumpserver/pr@new_terminal@feat_sql_comp…
Zxc4wonder Aug 13, 2026
c1c1d40
feat(ai): integrate Wisp SQL assistant (#223)
fit2bot Aug 13, 2026
074f129
feat(oracle): connect with SYSDBA
Zxc4wonder Aug 14, 2026
ec947b2
feat(console): support native SQL execution
Zxc4wonder Aug 17, 2026
045d15a
fix(console): harden raw SQL execution
Zxc4wonder Aug 17, 2026
f01b9aa
Merge pull request #227 from jumpserver/pr@new_terminal@feat_jdbc_con…
Zxc4wonder Aug 18, 2026
d80aae9
perf: update agent tool
LeeEirc Aug 18, 2026
12e678d
feat(metadata): add canonical metadata foundation (provider + catalog)
Zxc4wonder Aug 19, 2026
1744649
feat(metadata): add canonical metadata provider and catalog
Zxc4wonder Aug 19, 2026
a40d56b
fix(metadata): dedupe function-based index parts
Zxc4wonder Aug 19, 2026
e1aeb92
refactor(resource): migrate tree to MetadataCatalog
Zxc4wonder Aug 19, 2026
3d6906a
refactor(metadata): migrate completion and overview to MetadataCatalog
Zxc4wonder Aug 19, 2026
bda8253
refactor(metadata): migrate hints and table properties to catalog
Zxc4wonder Aug 19, 2026
e709119
feat(metadata): migrate AI inspect_schema to catalog, add PK/FK, fina…
Zxc4wonder Aug 19, 2026
0905246
Merge remote-tracking branch 'origin/new_terminal' into feat_metadata…
Zxc4wonder Aug 19, 2026
56a07fa
fix(metadata): finalize catalog architecture
Zxc4wonder Aug 19, 2026
7cee1d8
perf: add confirm request
LeeEirc Aug 19, 2026
adcc72f
perf: update ai chat enabled
LeeEirc Aug 20, 2026
ab92d31
fix: paginate SQL favorites
Zxc4wonder Aug 21, 2026
865622f
Merge pull request #231 from jumpserver/pr@dev@fix_sql_pagination
Zxc4wonder Aug 21, 2026
cb7f02d
refactor(oracle): read SYSDBA from connect options
Zxc4wonder Aug 21, 2026
dd6f2a4
Merge pull request #225 from jumpserver/pr@dev@feat_oracle_sysdba
Zxc4wonder Aug 21, 2026
ba6c058
build(deps): update wisp to v0.2.15
Zxc4wonder Aug 21, 2026
263229a
perf: Update Dockerfile with new base image tag
github-actions[bot] Aug 21, 2026
1b5dddb
Merge pull request #232 from jumpserver/pr@dev@feat_oracle_wisp
Zxc4wonder Aug 21, 2026
e729ec3
Merge remote-tracking branch 'origin/new_terminal' into feat_metadata…
Zxc4wonder Aug 24, 2026
029113d
Merge pull request #228 from jumpserver/pr@new_terminal@feat_metadata…
Zxc4wonder Aug 24, 2026
e33dcd7
fix postgresql metadata index query
Zxc4wonder Aug 24, 2026
39dba41
Merge pull request #233 from jumpserver/pr@new_terminal@fix_postgresq…
Zxc4wonder Aug 24, 2026
fb8fab4
fix: preserve PostgreSQL select-list SRFs in count
Zxc4wonder Aug 25, 2026
5c8d332
Merge pull request #234 from jumpserver/pr@new_terminal@fix_pageutils…
Zxc4wonder Aug 25, 2026
553171e
chore: finish frontend split cleanup
Zxc4wonder Aug 26, 2026
d18f287
merge: sync dev into new_terminal
Zxc4wonder Aug 26, 2026
e2693ae
ci: remove legacy frontend release build
Zxc4wonder Aug 26, 2026
a838322
Merge pull request #235 from jumpserver/new_terminal
Zxc4wonder Aug 26, 2026
7e61f42
fix(protocol): sync Wisp Java protobuf
Zxc4wonder Aug 26, 2026
f42c057
Merge pull request #236 from jumpserver/pr@dev@fix_wisp_proto_sync
Zxc4wonder Aug 26, 2026
80f0c10
feat:support resource MATERIALIZED_VIEW
Zxc4wonder Aug 27, 2026
cf4c089
Merge pull request #237 from jumpserver/pr@dev@feat_tree_view
Zxc4wonder Aug 27, 2026
7f9c1cc
Merge pull request #238 from jumpserver/pr@dev@translate
fit2bot Aug 28, 2026
a9103ef
feat(ai): serve inspect_schema from metadata catalog
Zxc4wonder Aug 28, 2026
bbb07f6
Merge pull request #239 from jumpserver/pr@dev@feat_ai_inspect_schema
Zxc4wonder Aug 28, 2026
5e133e0
feat: execute multiple console SQL statements sequentially and stop o…
Zxc4wonder Aug 28, 2026
083ddac
Merge pull request #240 from jumpserver/pr@dev@feat_console_sql
Zxc4wonder Aug 28, 2026
e883415
perf: update dockerfile build
ibuler Aug 31, 2026
fbd3077
fix: bootstrap CA certificates for HTTPS apt mirror
ibuler Aug 31, 2026
5ee169a
Revert "fix: bootstrap CA certificates for HTTPS apt mirror"
ibuler Aug 31, 2026
4dfb18e
fix(sql-ai): finalize proposals and clarify schema errors (#242)
fit2bot Sep 2, 2026
cf0a7e0
feat(metadata): add lazy table metadata
Zxc4wonder Sep 3, 2026
0a8ddf9
fix(mysql): support constraints on 5.7
Zxc4wonder Sep 3, 2026
a6d0755
fix(metadata): invalidate cache on forced load
Zxc4wonder Sep 3, 2026
a01cf5a
Merge pull request #243 from jumpserver/pr@dev@feat_metadata_workbench
Zxc4wonder Sep 3, 2026
e85b4af
feat(sql-ai): unify Druid SQL validation for Query and Console
Zxc4wonder Sep 4, 2026
06be93c
refactor(sql-ai): simplify Druid validation
Zxc4wonder Sep 4, 2026
73b04fa
fix(sql-ai): omit unparseable console analysis
Zxc4wonder Sep 4, 2026
f5838b2
refactor(sql-ai): allow multi-statement proposals
Zxc4wonder Sep 4, 2026
5cd69a7
Merge pull request #244 from jumpserver/pr@dev@feat_sql_validate
Zxc4wonder Sep 4, 2026
63f7c04
fix: handle agent tool timeouts and cancellation as terminal outcomes
LeeEirc Sep 5, 2026
5ee2cd8
feat: add local make run target
Zxc4wonder Sep 7, 2026
570a836
Merge pull request #246 from jumpserver/pr@dev@feat_make_run
Zxc4wonder Sep 7, 2026
ab190fe
fix: align make development commands
Zxc4wonder Sep 7, 2026
961e09e
Merge pull request #247 from jumpserver/pr@dev@fix_make_targets
Zxc4wonder Sep 7, 2026
dd0c620
feat(query): add PostgreSQL estimated execution plan
Zxc4wonder Sep 7, 2026
ab21b58
fix(query): parse materialized CTEs and keep join types
Zxc4wonder Sep 7, 2026
a810fbe
Merge pull request #248 from jumpserver/pr@dev@feat_query_execution-plan
Zxc4wonder Sep 7, 2026
ec14bd2
feat(query): add MySQL and MariaDB estimated plans
Zxc4wonder Sep 8, 2026
087d0e8
Merge pull request #250 from jumpserver/pr@dev@feat_query_mysql_mariadb
Zxc4wonder Sep 8, 2026
a54a44d
feat(query): add Oracle estimated plans
Zxc4wonder Sep 8, 2026
1ac8d2b
fix(query): support Oracle CTE plan analysis
Zxc4wonder Sep 8, 2026
d8d0d6a
fix(query): use capability-driven Oracle plan checks
Zxc4wonder Sep 8, 2026
3ad94c3
chore: merge dev into Oracle plan branch
Zxc4wonder Sep 8, 2026
d06aa48
refactor(query): simplify Oracle plan lifecycle
Zxc4wonder Sep 8, 2026
9f2995e
Merge pull request #251 from jumpserver/pr@dev@feat_query_oracle
Zxc4wonder Sep 8, 2026
04b6165
feat(sqlserver): support estimated execution plans
Zxc4wonder Sep 9, 2026
da5370e
fix(sqlserver): resolve isolated driver connection
Zxc4wonder Sep 9, 2026
6900bb0
Merge pull request #252 from jumpserver/pr@dev@feat_query_sqlserver
Zxc4wonder Sep 9, 2026
58f5f7b
fix(oracle): quote metadata comment alias
Zxc4wonder Sep 9, 2026
cd40df9
Merge pull request #253 from jumpserver/pr@dev@fix_oracle_metadata_alias
Zxc4wonder Sep 9, 2026
ae0cfe8
fix(export): preserve data view fields
Zxc4wonder Sep 9, 2026
d8408a5
Merge pull request #254 from jumpserver/pr@dev@fix_export_refresh
Zxc4wonder Sep 9, 2026
173b865
fix(mysql): pass inspect_schema scope as schema
Zxc4wonder Sep 9, 2026
a2ae8b8
Merge pull request #255 from jumpserver/pr@dev@fix_inspect_schema_mysql
Zxc4wonder Sep 9, 2026
f85c2a4
fix(csv): omit trailing comma in data export
Zxc4wonder Sep 9, 2026
ba7efe1
fix(session): pass admin terminate reason on close
Zxc4wonder Sep 9, 2026
c4b4de4
Merge pull request #257 from jumpserver/pr@dev@fix_session_admin_term…
Zxc4wonder Sep 9, 2026
eabb657
Merge pull request #256 from jumpserver/pr@dev@fix_csv_export
Zxc4wonder Sep 10, 2026
dc91ba2
feat(db2): support estimated execution plans
Zxc4wonder Sep 10, 2026
15973c0
Merge pull request #258 from jumpserver/pr@dev@feat_query_db2
Zxc4wonder Sep 10, 2026
6d46de1
fix(ai): honor explicit SQL proposal target
Zxc4wonder Sep 10, 2026
307f5cd
Merge pull request #259 from jumpserver/pr@dev@fix_sql_proposal_target
Zxc4wonder Sep 10, 2026
de17566
fix(metadata): audit user-facing metadata queries
Zxc4wonder Sep 10, 2026
1bf6829
Merge pull request #260 from jumpserver/pr@dev@fix_metadata_audit
Zxc4wonder Sep 10, 2026
5c6ed81
fix: interrupt long-running console SQL on cancel
Zxc4wonder Sep 10, 2026
7302ee7
Merge pull request #261 from jumpserver/pr@dev@fix_console_sql_cancel
Zxc4wonder Sep 10, 2026
15417ab
fix(metadata): allow view nodes to open data and relation metadata
Zxc4wonder Sep 11, 2026
a35e0ce
fix(table-edit): keep add, edit, and delete working with masked columns
Zxc4wonder Sep 11, 2026
17ecd91
Merge pull request #262 from jumpserver/pr@dev@fix_dataview_masking_m…
Zxc4wonder Sep 11, 2026
61f64b0
fix(oracle): quote column metadata size and comment aliases
Zxc4wonder Sep 11, 2026
a7cc394
Merge pull request #263 from jumpserver/pr@dev@fix_oracle_column_alias
Zxc4wonder Sep 11, 2026
074c33d
feat(plan): add DM and ClickHouse estimated plans
Zxc4wonder Sep 11, 2026
d144719
fix(query): keep execution plan cancel on the request
Zxc4wonder Sep 11, 2026
a950785
Merge pull request #264 from jumpserver/pr@dev@feat_plan_dm_clickhouse
Zxc4wonder Sep 11, 2026
780b2ac
fix(table-edit): support MySQL MariaDB unsigned integers
Zxc4wonder Sep 11, 2026
d989076
Merge pull request #265 from jumpserver/pr@dev@fix_tableedit_mysql_un…
Zxc4wonder Sep 11, 2026
04996cf
fix(i18n): localize user-visible console and plan messages
Zxc4wonder Sep 14, 2026
d1928c7
Merge pull request #267 from jumpserver/pr@dev@fix_i18n_user-visible
Zxc4wonder Sep 14, 2026
34b993f
fix(mysql): support wrapped transaction probe
Zxc4wonder Sep 14, 2026
bff80d6
Merge pull request #268 from jumpserver/pr@dev@fix_mysql_transaction_…
Zxc4wonder Sep 14, 2026
3d2ad3b
fix(acl): surface command ACL reject in query console
Zxc4wonder Sep 14, 2026
bea08f8
Merge pull request #269 from jumpserver/pr@dev@fix_acl_reject_toast
Zxc4wonder Sep 14, 2026
9f1c685
fix(table-edit): detect MySQL generated columns
Zxc4wonder Sep 14, 2026
1c766ab
Merge pull request #270 from jumpserver/pr@dev@fix_tableedit_generate…
Zxc4wonder Sep 14, 2026
10aad1d
feat(tableedit): support null values
Zxc4wonder Sep 14, 2026
f6d10d9
Merge pull request #271 from jumpserver/pr@dev@feat_tableedit_set_null
Zxc4wonder Sep 14, 2026
935f951
fix(resource): reload loaded tree children on schema refresh
Zxc4wonder Sep 14, 2026
caf1c2b
Merge pull request #272 from jumpserver/pr@dev@fix_resource_tree_sche…
Zxc4wonder Sep 14, 2026
509253e
fix(postgresql): preserve partial integer masking
Zxc4wonder Sep 15, 2026
a0f7f8b
fix(masking): support scalar partial masks
Zxc4wonder Sep 15, 2026
388db38
Merge pull request #273 from jumpserver/pr@dev@fix_postgresql_data_ma…
Zxc4wonder Sep 15, 2026
be69e9e
fix(table-edit): surface SQL errors on save failure
Zxc4wonder Sep 15, 2026
21773aa
Merge pull request #274 from jumpserver/pr@dev@fix_tableedit_save_error
Zxc4wonder Sep 15, 2026
9709d29
feat(console): bind tree New Console to selected catalog
Zxc4wonder Sep 15, 2026
6852313
fix(console): open PG console on ConsoleContext database
Zxc4wonder Sep 15, 2026
1b3b29a
Merge pull request #275 from jumpserver/pr@dev@feat_console_tree-new-…
Zxc4wonder Sep 15, 2026
15111e6
fix(postgresql): support materialized view metadata
Zxc4wonder Sep 15, 2026
5a74868
fix(postgresql): restore columns metadata semantics
Zxc4wonder Sep 15, 2026
dc99034
Merge pull request #276 from jumpserver/pr@dev@fix_postgresql_materia…
Zxc4wonder Sep 15, 2026
e77ba9c
fix(dameng): avoid reserved comment alias in metadata SQL
Zxc4wonder Sep 15, 2026
cf3aabb
Merge pull request #277 from jumpserver/pr@dev@fix_dameng_comment_alias
Zxc4wonder Sep 15, 2026
39672d9
fix(dataview): summarize blob and render geometry as WKT
Zxc4wonder Sep 15, 2026
8d21a6a
Merge pull request #278 from jumpserver/pr@dev@fix_datagrid_blob_geom…
Zxc4wonder Sep 16, 2026
87a7fe3
fix(db2): restore table cell editing
Zxc4wonder Sep 16, 2026
cf05b45
Merge pull request #279 from jumpserver/pr@dev@fix_db2_table_editability
Zxc4wonder Sep 16, 2026
68c771c
fix(sqlserver): name unnamed result columns
Zxc4wonder Sep 16, 2026
cc22935
Merge pull request #280 from jumpserver/pr@dev@fix_sqlserver_unnamed_…
Zxc4wonder Sep 16, 2026
b23d1f7
fix(acl): keep warning command acl ids on upload
Zxc4wonder Sep 16, 2026
978f8b6
Merge pull request #281 from jumpserver/pr@dev@fix_acl_warning_notify
Zxc4wonder Sep 16, 2026
3e9582d
fix(mariadb): route transaction state probe
Zxc4wonder Sep 16, 2026
ac814d4
Merge pull request #282 from jumpserver/pr@dev@fix_mariadb_transactio…
Zxc4wonder Sep 16, 2026
f936230
fix(sqlserver): correct later-page ROW_NUMBER wrap
Zxc4wonder Sep 16, 2026
1a985a1
fix(sqlserver): keep user TOP against default page size
Zxc4wonder Sep 16, 2026
6c332c6
Merge pull request #283 from jumpserver/pr@dev@fix_sqlserver_pagination
Zxc4wonder Sep 16, 2026
c4221d2
fix(dameng): load table and view metadata
Zxc4wonder Sep 16, 2026
51e82f5
Merge pull request #284 from jumpserver/pr@dev@fix_dameng_metadata
Zxc4wonder Sep 16, 2026
d39d2c6
fix:sql actuator
Zxc4wonder Sep 16, 2026
705d092
fix(db2): trim CHAR-padded schema name in metadata source
Zxc4wonder Sep 16, 2026
255980f
Merge pull request #285 from jumpserver/pr@dev@fix_test_dev
Zxc4wonder Sep 16, 2026
ef65a1c
fix(oracle): add schema properties
Zxc4wonder Sep 17, 2026
5c85ef4
Merge pull request #287 from jumpserver/pr@dev@fix_oracle_schema_prop…
Zxc4wonder Sep 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.git
.github
.idea
.vscode
**/.DS_Store
**/*.iml
**/target
data
backend/web/src/main/resources/static
5 changes: 1 addition & 4 deletions .github/workflows/jms-build-test.yml.disable
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ on:
- 'Dockerfile'
- 'Dockerfile*'
- 'Dockerfile-*'
- 'frontend/package.json'
- 'frontend/yarn.lock'

jobs:
build:
Expand All @@ -21,7 +19,6 @@ jobs:

- name: Prepare Build
run: |
sed -i 's@registry.npmmirror.com@registry.yarnpkg.com@g' frontend/yarn.lock
sed -i 's@^FROM registry.fit2cloud.com/jumpserver@FROM ghcr.io/jumpserver@g' Dockerfile-ee

- name: Login to GitHub Container Registry
Expand Down Expand Up @@ -59,4 +56,4 @@ jobs:
VERSION=${{ matrix.version }}
outputs: type=image,oci-mediatypes=true,compression=zstd,compression-level=3,force-compression=true
cache-from: type=gha
cache-to: type=gha,mode=max
cache-to: type=gha,mode=max
14 changes: 1 addition & 13 deletions .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
java_version: [ '17' ]
node_version: [ '20' ]
java_version: [ '21' ]
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
Expand All @@ -22,7 +21,6 @@ jobs:
with:
path: |
~/.m2
~/.npm
~/.cache
key: ${{ runner.os }}-build-${{ github.sha }}
restore-keys: ${{ runner.os }}-build-
Expand All @@ -43,20 +41,10 @@ jobs:
version: ${{ steps.get_version.outputs.TAG }}
tag: ${{ steps.get_version.outputs.TAG }}

- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}

- uses: actions/setup-java@v4
with:
distribution: 'oracle'
java-version: ${{ matrix.java_version }}

- name: Build web
run: |
cd frontend
yarn install
yarn build

- name: Build chen
run: |
Expand Down
12 changes: 12 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "node-terminal",
"name": "Docker: Chen Backend",
"request": "launch",
"command": "docker compose up --build",
"cwd": "${workspaceFolder}"
}
]
}
11 changes: 7 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
FROM jumpserver/chen-base:20260811_065334 AS stage-build
FROM jumpserver/chen-base:20260821_111128 AS stage-build
ENV LANG=en_US.UTF-8

WORKDIR /opt/chen/
COPY . .

RUN cd frontend \
&& npm run build

RUN mvn clean package -Dmaven.test.skip=true

FROM debian:trixie-slim
ARG TARGETARCH

ARG DEPENDENCIES=" \
ca-certificates \
openjdk-21-jre-headless"

ARG APT_MIRROR=http://deb.debian.org

RUN set -ex \
# Dockerfile-ee uses the same per-architecture cache IDs for its extra packages.
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=chen-apt-cache-${TARGETARCH} \
--mount=type=cache,target=/var/lib/apt,sharing=locked,id=chen-apt-lib-${TARGETARCH} \
set -ex \
&& sed -i "s@http://.*.debian.org@${APT_MIRROR}@g" /etc/apt/sources.list.d/debian.sources \
&& rm -f /etc/apt/apt.conf.d/docker-clean \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apt-get update \
&& apt-get install -y --no-install-recommends ${DEPENDENCIES} \
Expand Down
12 changes: 2 additions & 10 deletions Dockerfile-base
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,12 @@ RUN set -ex \
&& dpkg -i check_linux_${TARGETARCH}.deb \
&& rm -f check_linux_${TARGETARCH}.deb

ARG WISP_VERSION=v0.2.14
ARG WISP_VERSION=v0.2.15
RUN set -ex \
&& wget https://github.com/jumpserver/wisp/releases/download/${WISP_VERSION}/wisp_linux_${TARGETARCH}.deb \
&& dpkg -i wisp_linux_${TARGETARCH}.deb \
&& rm -f wisp_linux_${TARGETARCH}.deb

# Install NPM dependencies
WORKDIR /opt/chen/frontend
COPY frontend/package.json frontend/package-lock.json frontend/yarn.lock ./

RUN --mount=type=cache,target=/usr/local/share/.cache/yarn,sharing=locked,id=chen \
npm install

# Install Maven dependencies
ARG MAVEN_VERSION=3.9.16
ARG USER_HOME_DIR="/root"
Expand All @@ -61,7 +54,6 @@ RUN set -ex \
&& rm -f /tmp/apache-maven.tar.gz \
&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvn \
&& mkdir -p /root/.m2 \
&& mkdir -p /opt/chen/frontend/dist \
&& sed -i "s@https://repo.maven.apache.org/maven2@${MAVEN_MIRROR}@g" settings.xml \
&& cp -f settings.xml /root/.m2/ \
&& mvn clean install
&& mvn clean install
8 changes: 4 additions & 4 deletions Dockerfile-ee
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ ARG TARGETARCH

ARG DEPENDENCIES=" \
iputils-ping \
telnet"
telnet"

RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=chen \
--mount=type=cache,target=/var/lib/apt,sharing=locked,id=chen \
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=chen-apt-cache-${TARGETARCH} \
--mount=type=cache,target=/var/lib/apt,sharing=locked,id=chen-apt-lib-${TARGETARCH} \
set -ex \
&& rm -f /etc/apt/apt.conf.d/docker-clean \
&& apt-get update \
&& apt-get install -y --no-install-recommends ${DEPENDENCIES}

52 changes: 52 additions & 0 deletions Dockerfile.wisp-dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# syntax=docker/dockerfile:1.7

ARG GO_VERSION=1.25
FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-bookworm AS stage-build

ARG TARGETOS=linux
ARG TARGETARCH=amd64
ARG WISP_BUILD_PROCS=2
ARG WISP_BUILD_MEMORY=1GiB

ENV CGO_ENABLED=0
WORKDIR /opt/wisp

COPY --from=wisp-source go.mod go.sum ./
RUN --mount=type=cache,target=/go/pkg/mod,sharing=locked \
GOMAXPROCS=${WISP_BUILD_PROCS} \
GOMEMLIMIT=${WISP_BUILD_MEMORY} \
go mod download

COPY --from=wisp-source main.go ./
COPY --from=wisp-source cmd ./cmd
COPY --from=wisp-source pkg ./pkg
COPY --from=wisp-source protobuf-go ./protobuf-go

RUN --mount=type=cache,target=/go/pkg/mod,sharing=locked \
--mount=type=cache,target=/root/.cache/go-build,sharing=locked \
GOMAXPROCS=${WISP_BUILD_PROCS} \
GOMEMLIMIT=${WISP_BUILD_MEMORY} \
GOOS=${TARGETOS} \
GOARCH=${TARGETARCH} \
go build -p=${WISP_BUILD_PROCS} -trimpath -o /out/wisp .

FROM debian:bookworm-slim

ARG APT_MIRROR=http://deb.debian.org
RUN set -ex \
&& sed -i "s@http://.*.debian.org@${APT_MIRROR}@g" /etc/apt/sources.list.d/debian.sources \
&& apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates netcat-openbsd \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

WORKDIR /opt/wisp
COPY --from=stage-build /out/wisp ./wisp

VOLUME ["/opt/wisp/data"]
EXPOSE 9090

HEALTHCHECK --interval=2s --timeout=1s --start-period=5s --retries=30 \
CMD ["nc", "-z", "127.0.0.1", "9090"]

CMD ["./wisp"]
98 changes: 98 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
SHELL := /bin/bash
.DEFAULT_GOAL := help
.NOTPARALLEL:

MAVEN ?= mvn
LOCAL_REVISION ?= 0.0.1
LOCAL_MAVEN_TEST_ARGS ?= -Dmaven.test.skip=true
LOCAL_JAVA_HOME ?= $(shell if [[ -x /usr/libexec/java_home ]]; then /usr/libexec/java_home -v 21 2>/dev/null; elif [[ -n "$$JAVA_HOME" ]]; then printf '%s' "$$JAVA_HOME"; fi)
LOCAL_JAVA_ENV := $(if $(strip $(LOCAL_JAVA_HOME)),JAVA_HOME="$(LOCAL_JAVA_HOME)")

DOCKER_COMPOSE ?= docker compose
COMPOSE_PARALLEL_LIMIT ?= 1
WISP_IMAGE_REPOSITORY ?= ghcr.io/jumpserver/wisp
WISP_BRANCH ?=
export WISP_BRANCH
WISP_TAG ?= $(shell ./scripts/resolve-wisp-tag.sh)
WISP_IMAGE ?= $(WISP_IMAGE_REPOSITORY):$(WISP_TAG)
WISP_PULL_POLICY ?= missing

export COMPOSE_PARALLEL_LIMIT
export WISP_IMAGE_REPOSITORY
export WISP_TAG
export WISP_IMAGE
export WISP_PULL_POLICY
export WISP_SOURCE

DEV_COMPOSE_FILES := -f docker-compose.yml -f docker-compose.wisp-dev.yml
ifneq ($(strip $(WISP_SOURCE)),)
DEV_COMPOSE_FILES += -f docker-compose.wisp-source.yml
endif
DEV_COMPOSE := $(DOCKER_COMPOSE) $(DEV_COMPOSE_FILES)

.PHONY: help dev run dev-run dev-up dev-wisp dev-wisp-image dev-logs dev-ps dev-config dev-down proto-sync

help:
@printf '%s\n' \
'Chen development commands:' \
' make dev Build and run Chen locally' \
' make run Run Chen and Wisp with Compose in the foreground' \
' make dev-up Build and run in the background' \
' make dev-wisp Rebuild/recreate only Wisp' \
' make dev-wisp-image Show the resolved Wisp image' \
' make dev-logs Follow Chen and Wisp logs' \
' make dev-ps Show development services' \
' make dev-config Render the merged Compose configuration' \
' make dev-down Stop and remove development services' \
' make proto-sync Copy generated Java protobuf files from Wisp' \
'' \
'Wisp source mode:' \
' make run WISP_SOURCE=/absolute/path/to/wisp' \
'' \
'Wisp image mode:' \
' Wisp tag defaults to the current Chen tracking branch' \
' make run WISP_TAG=latest' \
' make run WISP_IMAGE=registry/wisp:tag WISP_PULL_POLICY=always'

run: dev-run
@:

dev-run:
@$(DEV_COMPOSE) up --build

dev:
@$(LOCAL_JAVA_ENV) $(MAVEN) -U \
-Drevision=$(LOCAL_REVISION) \
$(LOCAL_MAVEN_TEST_ARGS) \
-Dmaven.antrun.skip=true \
clean org.codehaus.mojo:flatten-maven-plugin:1.6.0:flatten install
@cd backend/web && $(LOCAL_JAVA_ENV) $(MAVEN) \
-Drevision=$(LOCAL_REVISION) \
$(LOCAL_MAVEN_TEST_ARGS) \
spring-boot:run \
-Dmaven.antrun.skip=true \
-Dspring-boot.run.arguments="--spring.config.additional-location=file:$(CURDIR)/config/ --driver.driver-path=$(CURDIR)/drivers"

dev-up:
@$(DEV_COMPOSE) up -d --build

dev-wisp:
@$(DEV_COMPOSE) up -d --build --no-deps wisp

dev-wisp-image:
@printf '%s\n' '$(WISP_IMAGE)'

dev-logs:
@$(DEV_COMPOSE) logs -f chen-backend wisp

dev-ps:
@$(DEV_COMPOSE) ps

dev-config:
@$(DEV_COMPOSE) config

dev-down:
@$(DEV_COMPOSE) down

proto-sync:
@./scripts/sync-wisp-proto.sh
Loading