Commit Graph
70 Commits
Author SHA1 Message Date
tao.chen 19157ad20b test 2026-08-13 18:08:12 +08:00
tao.chen 3094a47298 fix: path error 2026-08-13 11:48:24 +08:00
tao.chen 49c8a27841 update: update storage struct 2026-08-13 11:01:37 +08:00
tao.chen da9a1ec472 update: storage path 2026-08-13 09:35:27 +08:00
tao.chen b1ceaeb173 fix: storage and directories bug 2026-08-12 20:18:29 +08:00
tao.chen 495018de34 update: workspace lazy load 2026-08-12 18:36:17 +08:00
tao.chen 6b9f851810 update: scripts.py api 2026-08-12 17:14:18 +08:00
tao.chen 2fcdf51cfc update: PythonEditor.tsx 2026-08-12 16:49:21 +08:00
xiaozhu 8d83adf1aa fix:路由优化 2026-08-12 15:27:10 +08:00
xiaozhu fe65034aa8 feat:脚本只读 2026-08-12 14:34:31 +08:00
tao.chen 416ff4d06a feat: add logger 2026-08-12 12:43:31 +08:00
tao.chen 3981c32781 refactor: directory 2026-08-12 12:23:19 +08:00
tao.chen e23df83e0d fix: bugs 2026-08-11 22:03:01 +08:00
tao.chen bff7b7f9a6 fix: bugs 2026-08-11 21:53:52 +08:00
tao.chen dd6f176ca8 fix: file lock 2026-08-11 21:26:55 +08:00
tao.chen d4013a07a9 rollback 2026-08-11 20:41:15 +08:00
tao.chen e1360c5c38 test: backend 2026-08-11 20:09:44 +08:00
tao.chen 05091c425a update: filter by owner / visibility 2026-08-11 18:56:47 +08:00
tao.chen fe7f1a744e feat: schedule node add python version 2026-08-11 15:56:05 +08:00
tao.chen 4269eed018 fix: 422 error 2026-08-11 15:13:13 +08:00
tao.chen 084de5b2d6 fix: storage.py 2026-08-07 20:14:29 +08:00
tao.chen e7bce03794 fix: storage_api.py 2026-08-07 19:58:42 +08:00
tao.chen 7b4b752109 fix: import workspace member 2026-08-07 19:25:04 +08:00
tao.chen 873a464629 fix: auth error 2026-08-07 16:14:13 +08:00
tao.chen 2ee36b48ec update: auth
update auth api
2026-08-07 14:41:20 +08:00
tao.chen 03096a8951 feat: user permission 2026-08-07 13:00:14 +08:00
tao.chen 2272e1f390 feat: add user api 2026-08-06 19:26:57 +08:00
tao.chen 2894b1f06f fix: storage_api.py 2026-08-06 19:02:11 +08:00
tao.chen d813508461 feat: create user api 2026-08-06 10:42:17 +08:00
tao.chen 485d324d39 update: list users 2026-08-06 10:25:50 +08:00
tao.chen 90c3b5ee6f fix: save version error 2026-08-05 19:14:05 +08:00
Winnie cec6a4468e Merge remote-tracking branch 'origin/develop' into develop 2026-08-05 17:49:29 +08:00
Winnie 2bfe43a63f Merge branch 'develop' of http://8.153.151.51:8888/team_group/model-develop into develop 2026-08-05 17:46:05 +08:00
tao.chen 8519393895 update: admin valid 2026-08-05 17:10:36 +08:00
Winnie 30cde4a56c 添加查看调度运行结果 2026-08-05 16:34:35 +08:00
tao.chen e997e6cf56 fix: bucket name error 2026-08-05 16:01:28 +08:00
tao.chen 07d2423c13 update: remove workspace operation table and refactor 2026-08-05 14:43:48 +08:00
tao.chen f4cabe6e20 update: remove storage 2026-08-05 13:41:13 +08:00
tao.chen 4b2a67ae5d storage: extract unified AsyncStorageBackend abstraction + migrate from RustFS
Replace the old RustFS-specific storage layer (common.storage.client /
RustFSObjectStore) with a minimal sync/async abstraction:

  AsyncStorageBackend: put / get / get_stream / delete / exists / stat /
                       list / get_url / copy
  StorageBackend:      same surface, sync implementations
  create_storage({"type": "s3" | "local", "mode": "async", ...})
  backends/s3.py:      S3-compatible (boto3 / aioboto3)
  backends/local.py:   on-disk filesystem (aiofiles)

Concretely:
  - Drop RustFSObjectStore + common.storage.client (deleted).
  - Drop the RustFS-specific ensure_bucket / presign_put / move_to_trash /
    rewrite_to_public_path / sha256 / put_bytes methods.
  - Migrate backend/storage_api.py + backend/main.py + backend/scripts.py
    + schedule/service.py + schedule/worker.py to the new abstraction.
  - Migrate backend/storage_client.py + schedule/storage_client.py to
    stub status (HTTP wrapper is dead code post-migration; rewrite pending).
  - Rename all RUSTFS_* env vars to S3_* across .env.example,
    docker-compose.yml, default.conf, scripts/nginx-entrypoint.sh,
    common/config.py.
  - Replace hardcoded rclone remote name "rustfs" with "s3" in
    docker-compose.yml + config.py default.
  - Rename "rustfs" SQLAlchemy column comments + table comments to
    provider-neutral wording; StorageObjects.storage_backend enum
    value moves from "rustfs" to "s3" (DB rows with the old value will
    fail the != "s3" check until a one-shot migration is applied).
  - Drop unused common/src/common/migrations/{README,env.py,script.py.mako}
    (the alembic setup lives in /migrations/, not here).

Migration of the old abstractions has been done in one pass; per-route
method calls (delete / stat / put / get_url) are now direct one-liners
against AsyncStorageBackend.

After this commit:
  - All Python imports resolve; routes compile (compileall green).
  - s3 mode is fully wired.
  - Routes that depended on removed methods (presign_put, move_to_trash,
    rewrite_to_public_path, head() metadata) raise NotImplementedError
    with a one-line TODO; rewriting these route handlers is the next step.
2026-08-05 13:08:32 +08:00
tao.chenandClaude Fable 5 45f0ff534f feat: workspace CRUD at platform scope + drop audit_logs
新增系统管理模块 /api/v1/platform/*:
- workspace 实体 CRUD(创建/列表/详情/更新/软删除)
- workspace 成员 CRUD(添加/列表/更新/移除)
- SystemAdminContext 依赖,仅 platform_role_id 指向 admin 角色的用户可访问
- /api/v1/auth/me 与 /auth/login 增 is_system_admin 派生字段
- 不变量:每个 workspace 至少保留一个 admin;系统管理员无法自我移除成员
- 软删除 workspace 级联软删除其成员

清理 audit_logs(无运行时写入,纯死特性):
- baseline 移除 audit_logs 建表与三索引(20 → 19 tables)
- 删除 AuditLogs 模型定义与 __init__.py 导出
- 清理 migrate_system_json / migrate_legacy_workspaces 中的 audit 写入与回填代码

API.md 增 §七系统管理,§七/§八/§九 顺延为 §八/§九/§十,附录 A/B 同步更新。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 17:20:42 +08:00
tao.chen 85eb19546e feat: add password 2026-08-04 16:05:54 +08:00
tao.chen 94a1aef7c7 fix: script not found 2026-08-04 14:24:55 +08:00
tao.chen e18a7a34a3 update: save version 2026-08-04 13:35:16 +08:00
tao.chen 14e84b6ce2 fix: path error 2026-08-04 13:05:18 +08:00
tao.chen 2a23030d6f fix: path error 2026-08-04 12:57:40 +08:00
tao.chen 4919fe0909 update: create file 2026-08-04 12:40:38 +08:00
tao.chen ddf112034d update: jupyter api payload, wire os.environ 2026-08-04 11:29:33 +08:00
tao.chen 173d562bd1 update: debug create file by jupyter 2026-08-04 11:06:52 +08:00
tao.chen 078d8f8687 update: delete vfs refresh 2026-08-04 09:37:14 +08:00
tao.chen 939a579b07 feat: rclone client 2026-08-03 20:37:56 +08:00