Skip to content

v0.8.3

Choose a tag to compare

@HYChou0515 HYChou0515 released this 19 Apr 06:58
· 204 commits to master since this release

AutoCRUD v0.8.3 發布說明

AutoCRUD v0.8.3 是一個著重於平台成熟度、可擴充性與穩定性的版本。本次更新擴展了自訂商業流程的支援、強化了 schema 與型別處理能力、改善了 migration 與 revision 工具鏈,並大幅升級了自動生成的 Web Admin 體驗。

版本亮點

  • 新增 Unique 欄位約束支援,提升資料一致性與完整性
  • 擴充自訂商業流程能力,支援 create / update action,並可透過 job 或 background task 非同步執行
  • 強化 job 系統穩定性,加入 heartbeat、stale job failover、retry 控制、logs 與 artifact 支援
  • 重構 Web generator,改善既有 React 專案整合流程,並支援 Mantine 8 與更穩定的程式碼生成
  • 大幅強化 union type、tagged union、ref、enum、nullable nested fields 等複雜型別在後端與前端生成結果中的正確性
  • 改善指定 revision 的 migration 支援,並補強 Web 端 migration 流程

後端與 API 強化

這個版本進一步擴展了 AutoCRUD 可直接建模與自動化的能力。除了新增 custom POST endpoint,也讓 Ref 在 resource ID 與 revision ID 的處理更完整,並透過新的 action API,讓使用者能在標準 CRUD 之外更容易建立領域專屬流程。

重要後端改進包含:

  • Unique 欄位限制支援
  • 更完整的 typing introspection 工具
  • 支援非同步 create / update action
  • 改善 context-based usage,例如在操作中傳入 user context
  • 新增 PostgreSQL resource store 與對應 storage factory
  • 強化 blob upload 與 multipart 行為
  • 集中式錯誤處理,讓 API 行為更一致

Web Generator 與 Admin UI 改進

本次版本在 Web 端投入了大量改進。新的 integrate command 讓 AutoCRUD 更容易整合進既有 React 專案,而 generator 與 app 本身也變得更穩定、更容易客製化。

重點包含:

  • 新增 integrate command,方便整合到既有專案
  • 重構 generator 架構,提升以 OpenAPI 為基礎的生成穩定性
  • 支援 Mantine 8,並修正相關整合問題
  • 生成 app 支援 dev proxy
  • ResourceTable 導入 server/client hybrid 模式,資料抓取更聰明
  • 更好的預設排序與表格使用體驗
  • 支援 rerun button 與更完整的 job 視圖
  • 增加更多元的元件客製化能力
  • 改善 RefSelect 與 row selection 體驗
  • 更清楚地區分 resource 與 job 頁面

Jobs、非同步工作流與可觀測性

AutoCRUD v0.8.3 對長時間執行工作流程做了明顯強化,使 async flow 更接近 production-ready。

主要提升包含:

  • 加入 heartbeat 機制,可偵測 stale jobs 並標記為失敗
  • 建立 job 時可設定 max retries
  • Job 支援 artifacts 與 logs,後端與 Web UI 都能查看
  • 改善 RabbitMQ 與 Celery 在長時間任務下的穩定性
  • 支援以 background task 為基礎的 async job flow
  • 改善 admin 介面的 rerun 與監控體驗

Schema、型別與表單穩定性

本次版本也針對複雜 schema 與自動生成 UI 的正確性進行了大量修正,讓 unions、巢狀模型、表單、refs 與 TypeScript 生成結果更可靠。

改善內容包含:

  • 修正 union type 造成的名稱解析錯誤
  • 修正 union type 作為 model 時的處理
  • 修正複雜 union 表單欄位與 detail 頁面渲染
  • 修正 tagged union 的 TypeScript 生成
  • 修正 generated enum 與 OpenAPI schema 輸出
  • 修正 nullable nested fields 與遞迴欄位結構
  • 修正 int / float 等數值型別邊界情況
  • list[str] 在 Web UI 中可更自然地映射為 tags input
  • 改善 Ref 在 path params、query params 與 embed body 下的處理

穩定性、效能與品質改善

這個版本也包含多項穩定性與效能提升:

  • 修正 count API,讓它正確忽略 pagination 設定
  • 加快 dump / load 效能
  • 改善 query failure 時的資料庫連線清理
  • 修正 timezone-aware datetime 行為
  • 對 boto3 與 PostgreSQL 相關模組改為 lazy import,降低非必要依賴負擔
  • 加入 benchmark 工具與更多 protection tests
  • 修正 migration 限制與多項 generator / import 問題
  • 在排序中加入額外 tiebreaker,讓結果更穩定

升級提醒

  • 生成 app 的結構已有演進,generated code 的組織方式與先前版本不同
  • 產生新 app 時,測試檔現在預設不會一併生成
  • 如果你有使用 web integrate 流程,建議重新整合或重新產生,以套用最新修正
  • 若專案使用 custom actions、jobs 或複雜 schema 型別,升級後會明顯感受到穩定性改善

完整變更

完整差異請參考:
v0.8.2...v0.8.3

What's Changed

Full Changelog: v0.8.2...v0.8.3