Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
e725e33
PullRequest: 795 feat/task-refactor
May 20, 2025
6c3ca92
PullRequest: 801 fix: 替换废弃属性
May 21, 2025
0f8465e
Merge branch 'dev-4.3.4' into dev-4.4.0
HSunboy Jun 3, 2025
9145b3d
PullRequest: 812 feat: 修改listDatabases函数传参写法
liyi711 Jun 4, 2025
aa59b34
PullRequest: 815 feat: 表索引范围默认用 local
Jun 5, 2025
9fe46e1
PullRequest: 817 feat:展示列可全选
Jun 5, 2025
e4f1388
PullRequest: 818 feat: 新建表名称,过滤掉不可打印字符
Jun 5, 2025
aba7261
PullRequest: 824 新增结果集展示方式配置
Jun 10, 2025
24134a7
PullRequest: 835 fix: 增强 Action.Link 禁用状态过滤
Jun 13, 2025
a1c5cb8
PullRequest: 825 feat: 导入导出新建相关页面:类组件=>函数组件
liyi711 Jun 20, 2025
07eca94
PullRequest: 845 merge-434-to-440
yezaoshu Jun 20, 2025
41758b5
PullRequest: 846 feat: 更新pnpm-lock.yaml文件
liyi711 Jun 20, 2025
7dae6b1
PullRequest: 851 fix: 修复在sql控制台切换主题问题
liyi711 Jun 26, 2025
08429d2
feat: support oracle dml autocomplete
HSunboy Jul 14, 2025
0fe98ba
fix: fix oracle parser
HSunboy Jul 14, 2025
785dc5d
Merge branch 'dev-4.3.4' into dev-4.4.0
HSunboy Jul 15, 2025
24a47a5
Merge branch 'dev-4.3.4' into dev-4.4.0
HSunboy Jul 16, 2025
419038b
PullRequest: 896 fix: 440bugfix
liyi711 Jul 21, 2025
c382c99
PullRequest: 899 H2版本升级+JDK17升级
Jul 21, 2025
b534f0f
feat: update ts target to es 2018
HSunboy Jul 21, 2025
f38ae93
fix: add quote to solve error path
HSunboy Jul 22, 2025
fcf8b70
PullRequest: 900 feat: 修正枚举
Jul 22, 2025
4c3e13b
PullRequest: 902 补充索引名称限制输入空格
Jul 22, 2025
244a047
PullRequest: 904 SQL结果集Tab管理与锁定功能优化
Jul 23, 2025
4129617
PullRequest: 906 fix: 资源树数据源名称太长搜索按钮被挡住的问题
liyi711 Jul 25, 2025
86bc204
PullRequest: 907 fix: 440bugfix
liyi711 Jul 25, 2025
e774900
PullRequest: 897 feat: 数据归档/数据清理增加配置项
liyi711 Jul 25, 2025
6a6628a
PullRequest: 908 修正 addOperations 逻辑判定
Jul 30, 2025
051b596
PullRequest: 909 按实际顺序展示 columnText
Jul 30, 2025
d6eff47
PullRequest: 910 按 sqlId 判定,避免结果重复渲染
Jul 30, 2025
28079a6
PullRequest: 912 feat: 适配后端数据库列表查询优化
liyi711 Aug 1, 2025
3658940
feat: add windows sign tool
HSunboy Aug 1, 2025
0210e82
fix: add publishername
HSunboy Aug 4, 2025
022f301
PullRequest: 915 feat: 修复个人空间数据库列表权限bug
liyi711 Aug 5, 2025
b337946
PullRequest: 918 fix: 440bugfix
liyi711 Aug 6, 2025
056162d
PullRequest: 922 fix: 风险识别规则bug修复
liyi711 Aug 7, 2025
265fc59
PullRequest: 923 440bugfix
yezaoshu Aug 8, 2025
d646ef3
PullRequest: 924 fix: 库选择组件,工单详情样式优化
liyi711 Aug 11, 2025
91004ac
PullRequest: 926 fix: 补充数值校验
Aug 11, 2025
42266da
PullRequest: 928 fix:修式优化
liyi711 Aug 11, 2025
d80afdb
PullRequest: 932 区分workSpace和project的CreateModal注册,并更新antd属性
Aug 12, 2025
97b1b2a
PullRequest: 933 fix: project 中CreateModals 添加 projectId
Aug 13, 2025
6e180ae
PullRequest: 936 440bugfix
Aug 13, 2025
401e4db
refactor(client): rewrite path getter
HSunboy Aug 19, 2025
c20f578
Merge branch 'dev-4.4.0' of https://code.alipay.com/oceanbase/oceanba…
HSunboy Aug 19, 2025
04806b2
PullRequest: 941 feat: 用户设置添加前端缓存
Aug 19, 2025
594038f
feat(client): donwload h2 deps from oss
HSunboy Aug 20, 2025
358cca5
Merge branch 'dev-4.4.0' of https://code.alipay.com/oceanbase/oceanba…
HSunboy Aug 20, 2025
b238598
feat: hide lock file
HSunboy Aug 20, 2025
3957b63
feat: add fake lock
HSunboy Aug 20, 2025
cf52fe4
build(pkg): add local registry
HSunboy Aug 21, 2025
897ecb4
fix(client): fix windows cmd bug
HSunboy Aug 21, 2025
1e1851e
fix: execute sql from file to avoid exceeding cmd line character limits
HSunboy Aug 25, 2025
16c0e7e
fix: add log
HSunboy Aug 25, 2025
1691a86
PullRequest: 955 新增关闭结果集功能并支持追加模式下的操作
Aug 26, 2025
7d5b44d
fix: Enable stdout for script execution
HSunboy Aug 26, 2025
5993dbd
Merge branch 'dev-4.4.0' of https://code.alipay.com/oceanbase/oceanba…
HSunboy Aug 26, 2025
db47d02
PullRequest: 956 fix: 有未授权数据库资源时,不关闭当前创建视图页面
Aug 26, 2025
784b78e
Merge branch 'dev-4.4.0' of https://code.alipay.com/oceanbase/oceanba…
HSunboy Aug 26, 2025
7d3d73d
PullRequest: 957 fix: char 类型增加数值
Aug 27, 2025
18a12d6
PullRequest: 959 补充对 */n 输入的支持
Aug 27, 2025
e50bb23
PullRequest: 960 fix(odcSetting): 桌面版数据库变更默认执行方式配置隐藏定时执行
yezaoshu Aug 27, 2025
2ab621d
PullRequest: 961 merge cloud/202504 到 dev-4.4.0
yezaoshu Aug 28, 2025
6adfc4c
PullRequest: 965 feat: 修改数据清理数据归档数据检索策略交互效果
liyi711 Aug 28, 2025
dfa256c
PullRequest: 969 fix: 修复处理意见弹窗样式
Sep 1, 2025
7bd8d80
PullRequest: 970 feat: 数据清理:下掉使用主键清理配置项
liyi711 Sep 1, 2025
fc63794
PullRequest: 971 fix: 资源树名称过长遮挡搜索按钮
liyi711 Sep 1, 2025
4d4934b
PullRequest: 972 fix(columnModeModal): 修复列模式弹窗高度
yezaoshu Sep 2, 2025
5d07553
PullRequest: 973 修复广播问题并优化 Mac 上的 Ctrl 键映射
Sep 2, 2025
5104db6
PullRequest: 975 fix(activate): encode username in request path
yezaoshu Sep 2, 2025
8fc87d0
PullRequest: 977 fix: 440bugfix
liyi711 Sep 3, 2025
46932dd
PullRequest: 979 fix: 删掉没有用的dockey
liyi711 Sep 3, 2025
780e1bd
PullRequest: 980 fix(plActions): obcloud_mysql的数据源支持执行pl编辑
yezaoshu Sep 3, 2025
468fa2e
PullRequest: 981 优化空间配置tab文本展示
Sep 3, 2025
54af281
chore: blg
HSunboy Sep 3, 2025
90e0670
Merge branch 'dev-4.4.0' of https://code.alipay.com/oceanbase/oceanba…
HSunboy Sep 3, 2025
2721cae
PullRequest: 983 fix: 修复obmysql timestamp类型格式为sql错误的问题
liyi711 Sep 3, 2025
a012e2f
PullRequest: 984 fix(taskFlow): 如果flow是EXECUTING_ABNORMAL,节点状态校正显示为执行异常
yezaoshu Sep 3, 2025
9522309
PullRequest: 1004 fix(style): update modal styles
yezaoshu Sep 12, 2025
ab970b0
PullRequest: 1006 fix: 修复下载新版
Sep 15, 2025
a8a102a
PullRequest: 1007 fix(partitionPolicyFormTable): add optional chain i…
yezaoshu Sep 15, 2025
b9bba21
Copyright
HSunboy Sep 15, 2025
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
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,5 @@ src/plugins/pluginList.ts
.env
config/config.odcPlugin.js
yarn-error.log
yarn.lock
# yarn.lock
pnpm-lock.yaml
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ pnpm run prepack obclient
#### Install Dependencies

```shell
pnpm install
pnpm run install-odc
```

#### Configure ODC Server Address
Expand Down
6 changes: 5 additions & 1 deletion build/electron-build.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,13 @@ const config = {
writeUpdateInfo: false
},
win: {
publisherName: 'OceanBase',
target: 'nsis',
rfc3161TimeStampServer: "http://sha256timestamp.ws.symantec.com/sha256/timestamp",
signingHashAlgorithms: ["sha256"]
signingHashAlgorithms: ["sha256"],
signtoolOptions: {
sign: "./scripts/client/winsign.js"
}
},
nsis: {
differentialPackage: false,
Expand Down
2,557 changes: 1,441 additions & 1,116 deletions pnpm-lock.yaml → hidden.yaml

Large diffs are not rendered by default.

21 changes: 11 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "odc",
"version": "4.3.4",
"version": "4.4.0",
"private": true,
"description": "企业级数据开发平台",
"homepage": "https://www.oceanbase.com/",
Expand All @@ -12,6 +12,7 @@
"name": "odc"
},
"scripts": {
"install-odc": "node ./scripts/rename.js && pnpm install --registry=https://registry.npmmirror.com",
"analyze": "ANALYZE=1 cross-env NODE_OPTIONS=--max_old_space_size=8192 max build",
"build-main-dev": "cross-env NODE_OPTIONS=--max_old_space_size=8192 NODE_ENV=development webpack -w --config ./build/webpack.main.config.js",
"build-main-prod": "cross-env NODE_OPTIONS=--max_old_space_size=8192 NODE_ENV=production webpack --config ./build/webpack.main.prod.config.js",
Expand All @@ -23,7 +24,7 @@
"dev:client": "concurrently \"UMI_ENV=client npm run dev\" \"npm run build-main-dev\"",
"postinstall": "node scripts/plugin/initPlugins.js && max setup",
"oic:clear": "oic --configPath ./scripts/must.js --clear",
"oic:extract": "oic --configPath ./scripts/must.js --extract all",
"oic:extract": "oic --configPath ./scripts/must.js --parallel --extract all",
"oic:migrate": "oic --configPath ./scripts/must.js --migrate",
"prepack": "node ./scripts/clientDependencies/index.js",
"pack-client:all": "node ./scripts/client/build.js all",
Expand Down Expand Up @@ -71,14 +72,13 @@
"tree-kill": "^1.2.1"
},
"devDependencies": {
"axios": "^1.7.7",
"@ant-design/icons": "^4.0.0",
"@dnd-kit/core": "^6.1.0",
"@dnd-kit/sortable": "^8.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@ant-design/icons": "^4.0.0",
"@oceanbase-odc/monaco-plugin-ob": "~1.4.2",
"@oceanbase-odc/ob-intl-cli": "^2.1.3",
"@oceanbase-odc/ob-parser-js": "^3.0.5",
"@oceanbase-odc/monaco-plugin-ob": "~1.5.3",
"@oceanbase-odc/ob-intl-cli": "^2.2.0",
"@oceanbase-odc/ob-parser-js": "^3.1.2",
"@oceanbase-odc/ob-react-data-grid": "^4.0.0",
"@sentry/react": "^7.88.0",
"@testing-library/react": "^11.2.2",
Expand All @@ -87,21 +87,22 @@
"@types/jest": "^22.2.2",
"@types/lodash": "^4.14.168",
"@types/memoize-one": "^4.1.1",
"@types/node": "^9.6.0",
"@types/node": "^16.7.0",
"@types/react": "^16.0.0",
"@types/react-dom": "^16.0.0",
"@types/react-resizable": "^1.7.3",
"@types/react-virtualized": "^9.21.21",
"@types/request": "^2.48.7",
"@umijs/fabric": "^3.0.0",
"@umijs/max": "^4.0.66",
"@umijs/max": "^4.4.12",
"adm-zip": "^0.5.5",
"ahooks": "^2.9.0",
"ali-oss": "^6.17.1",
"antd": "^5.23.4",
"antlr4": "~4.8.0",
"array-move": "^4.0.0",
"aws-sdk": "^2.1231.0",
"axios": "^1.7.7",
"bignumber.js": "^9.0.0",
"blueimp-md5": "^2.19.0",
"cherio": "^1.0.0-rc.2",
Expand Down Expand Up @@ -162,7 +163,7 @@
"tar": "^6.1.11",
"ts-is-present": "^1.1.3",
"ts-loader": "8.4.0",
"typescript": "^4.0.0",
"typescript": "^5.9.2",
"webpack": "^4.28.0",
"webpack-cli": "^3.2.1",
"webpack-merge": "^4.2.1",
Expand Down
29 changes: 29 additions & 0 deletions scripts/client/winsign.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright 2023 OceanBase
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

exports.default = async function(configuration) {
// do not include passwords or other sensitive data in the file
// rather create environment variables with sensitive data
const CONFIG_FILE = process.env.WINDOWS_SIGN_CONFIG_FILE;

require("child_process").execSync(
// your commande here ! For exemple and with JSign :
` smctl sign --keypair-alias key_1318155498 --config-file ${CONFIG_FILE} --input "${configuration.path}" -v`,
{
stdio: "inherit"
}
);
};
22 changes: 21 additions & 1 deletion scripts/clientDependencies/pullJar.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,33 @@ const jarUrl = `odc-build/${pkg.version}/jar/odc-slim.jar`;
const pluginUrl = `odc-build/${pkg.version}/plugins`;
const startersUrl = `odc-build/${pkg.version}/starters`;
const modulesUrl = `odc-build/${pkg.version}/modules`;
const { oss } = require('./util');
const { oss, download } = require('./util');
const isSkipJar = process.env.ODC_BUILD_SKIP_JAR;

const baseUrl = "https://odc-front.oss-cn-beijing.aliyuncs.com/";

exports.run = async function () {
if (isSkipJar) {
return true;
}
const [isSuccess1, isSuccess2] = await Promise.all([
download(
baseUrl + `library/h2/h2-v1.jar`,
'libraries/script',
'h2-v1.jar',
),
download(
baseUrl + `library/h2/h2-v2.jar`,
'libraries/script',
'h2-v2.jar',
)
])
if (!isSuccess1 || !isSuccess2) {
process.exit(1);
}
console.log('h2-v1.jar and h2-v2.jar download success')


const plugins = await oss.getOSSFolderFiles(pluginUrl)
console.log(plugins)
for (let plugin of plugins) {
Expand Down
2 changes: 1 addition & 1 deletion scripts/clientDependencies/pullJre.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ exports.run = async function () {
fs.rmSync(jrePath, { recursive: true, force: true });
}
const isSuccess = await download(
baseUrl + `library/jre/${platform}/jre.zip`,
baseUrl + `library/jre/${platform}/jre17.zip`,
'libraries/jre',
'jre.zip',
);
Expand Down
41 changes: 41 additions & 0 deletions scripts/rename.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* Copyright 2023 OceanBase
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/**
* 把假的文件先删除,然后创建一个link到hidden.yaml文件
*/


const path = require('path');
const fs = require('fs');

// 参数 preinstall 和 postinstall
// preinstall 代表install
// postinstall 代表install完成之后

const lockFilePath = path.join(process.cwd(), 'hidden.yaml');

const fakeLockFilePath = path.join(process.cwd(), 'pnpm-lock.yaml');
console.log('init install lock file')

if (fs.existsSync(fakeLockFilePath)) {
fs.unlinkSync(fakeLockFilePath);
}

fs.symlinkSync(lockFilePath, fakeLockFilePath, 'file');



16 changes: 16 additions & 0 deletions src/common/datasource/fileSystem/index.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/*
* Copyright 2023 OceanBase
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import { ConnectType, TaskType } from '@/d.ts';
import { IDataSourceModeConfig } from '../interface';
import { haveOCP } from '@/util/env';
Expand Down
1 change: 1 addition & 0 deletions src/common/datasource/oceanbase/obmysql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ const items: Record<
sqlExplain: true,
supportOBProxy: true,
plRun: true,
plEdit: true,
export: {
fileLimit: true,
snapshot: true,
Expand Down
55 changes: 22 additions & 33 deletions src/common/network/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,42 +22,31 @@ import request from '@/util/request';
import { getDropSQL } from '@/util/sql';
import { executeSQL } from './sql';

interface listDatabasesParams {
projectId?: number;
dataSourceId?: number;
page?: number;
size?: number;
name?: string;
environmentId?: number[];
/** 是否包含未分配项目的数据库 */
containsUnassigned?: boolean;
existed?: boolean;
includesPermittedAction?: boolean;
/** 是否查询数据库管理员owners列表,默认不查 */
includesDbOwner?: boolean;
type?: DBType[];
connectType?: ConnectType[];
dataSourceName?: string;
clusterName?: string;
tenantName?: string;
}

export async function listDatabases(
projectId?: number,
dataSourceId?: number,
page?: number,
size?: number,
name?: string,
environmentId?: number[],
/**
* 是否包含未分配项目的数据库
*/
containsUnassigned?: boolean,
existed?: boolean,
includesPermittedAction?: boolean,
type?: DBType[],
connectType?: ConnectType[],
dataSourceName?: string,
clusterName?: string,
tenantName?: string,
params: listDatabasesParams,
): Promise<IResponseData<IDatabase>> {
const res = await request.get(`/api/v2/database/databases`, {
params: {
projectId,
dataSourceId,
name,
page,
size,
environmentId,
containsUnassigned,
existed,
includesPermittedAction,
type: type,
connectType: connectType,
dataSourceName,
clusterName,
tenantName,
},
params: params,
});

return res?.data;
Expand Down
16 changes: 16 additions & 0 deletions src/common/network/databaseChange.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/*
* Copyright 2023 OceanBase
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import { IResponse, IResponseData } from '@/d.ts';
import request from '@/util/request';

Expand Down
16 changes: 16 additions & 0 deletions src/common/network/logicalDatabase.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/*
* Copyright 2023 OceanBase
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import { IResponse, IResponseData } from '@/d.ts';
import { PreviewLogicalTableTopologiesErrorEnum } from '@/d.ts/database';
import {
Expand Down
16 changes: 16 additions & 0 deletions src/common/network/materializedView/helper.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/*
* Copyright 2023 OceanBase
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import { TableIndexScope, TableIndexType } from '@/page/Workspace/components/CreateTable/interface';
import { ColumnStoreType } from '@/d.ts/table';
import { convertServerTablePartitionToTablePartition, PartitionLevelEnum } from '../table/helper';
Expand Down
Loading