Skip to content

Changelog

This page records the version update history of SmartTable.

v1.6.3 (2026-07-30)

New Features & Improvements

🔄 Workflow Engine Enhancements

  • Loop Node: New loop node type with full process support, iterate collections inside workflow
  • Loop Webhook: Added loop node Webhook support and fixed loop data source
  • Webhook Delivery Logs: New workflow instance Webhook delivery log viewer
  • Webhook Variable Hints: Refactored variable hint system with detailed hover tooltips
  • Inline Webhook Interception: Support inline Webhook delivery and re-delivery interception
  • Canvas Edges: Optimized canvas edges with directional arrows
  • Node Type Refactor: Refactored workflow node types with fine-grained enums, backward-compatible with legacy data
  • Execution Log Enhancements: Execution log node ID changed to string type, added node name field

🧮 Formula & Fields

  • Unified Formula Registration: Unified frontend and backend formula function registration, added missing functions
  • Lookup Field Optimization: Optimized lookup field functionality, fixed cache and display issues
  • Number Formatting: Added formatting rendering for number type fields

🛠️ Platform Capabilities

  • Token Auto-Refresh: Implemented complete Token auto-refresh system
  • Issue Feedback: New issue feedback related functionality
  • Document Experience: Optimized document version control and editing experience
  • Attachment Preview: Attachment image thumbnails support single-click to preview full image
  • Session Timeout Upper Limit: Adjusted session timeout upper limit to 10080 minutes (7 days) — not recommended to raise too high due to security concerns

📦 Engineering & Build

  • pnpm Migration: Full migration of frontend build system to pnpm (Docker, packaging scripts, docs sync)
  • Database Migration: Refactored database initialization flow, switched to Alembic migrations, supports automatic version upgrade
  • Feedback Email: Updated feedback email address

Bug Fixes

IssueFix
Kanban dragFixed kanban drag not using target group ID
Kanban syncFixed kanban view drag not synchronizing group field updates
Duplicate new rowsFixed editor callback anomaly causing 2 rows to be added per single add operation
Table interactionFixed table view interaction issues and field type conversion/defaults
Field editorFixed field management panel anomalies after confirming field editor
Attachment deleteFixed attachment field delete dialog occlusion and deletion failure
Attachment previewFixed clicking attachment thumbnail triggering cell selection
Workflow validationFixed workflow node empty result handling and empty node validation logic
Timezone acquisitionFixed timezone acquisition logic, support reading browser local timezone
Webhook interceptionFixed inline Webhook delivery and re-delivery interception

v1.6.2 (2026-07-19)

New Features & Improvements

🔄 Workflow Engine Enhancements

  • Send email node - Added send email node support, allowing workflows to directly trigger email notifications
  • Record time trigger - Added "When record time is reached" trigger type, supporting time-based triggers based on record time fields
  • Lookup record node - Added lookup record workflow node for querying related data within workflows
  • Node type management refactoring - Refactored node type management to lay the foundation for future node type extensions

🔍 Lookup Field Fully Implemented ⭐

  • Full implementation of Lookup Field - Supports looking up and referencing target field values from related records, enabling cross-table data linkage
  • Record display adaptation - Record drawers and detail pages fully support lookup field display for more coherent data viewing
  • Formatting logic optimization - Fixed default value display and lookup field formatting logic to ensure referenced data renders correctly

🧮 Formula Field Enhancements

  • Formula helper component - Added formula helper component integrated into the field configuration dialog, lowering the barrier to formula writing
  • Multi-type formatting - Improved formula field functionality with support for formatting calculation results of more field types
  • Date processing capabilities - Added date processing functions and optimized display effects

📊 Dashboard Sharing

  • Complete sharing flow - Implemented the complete dashboard sharing flow, allowing dashboards to be shared via links
  • Sharing info configuration - Added dashboard sharing title and remark fields to help recipients understand shared content
  • Security policy optimization - Access password is returned only once when creating a share, avoiding repeated exposure in subsequent APIs

Bug Fixes

IssueFix
Authentication & sidebar displayFixed authentication store and sidebar display logic
Lookup field formattingFixed default value display and lookup field formatting logic
Dashboard sharing modelImported missing DashboardShare model
Date function display formatFixed date function display format logic

v1.6.1 (2026-07-11)

New Features & Improvements

🔄 Workflow Canvas Visual Editing ⭐

  • Implemented workflow canvas visual editing - Supports intuitive editing of workflow nodes and connections on canvas
  • Condition branch visual connections - Refactored condition node connection and layout logic, supports multi-branch visual display
  • Auto-layout optimization - Condition branch node auto-layout, adapts to multi-branch scenarios

🔀 Condition Branch Node Enhancement

  • Default branch feature - Added default branch, executed when all condition branches don't match
  • Field value display optimization - Optimized field value display logic in condition component

📊 Execution Log Enhancement

  • Node name display - Added node name display in execution logs for easier execution flow tracking

🪝 Webhook Status Management

  • Webhook reference validation - Added Webhook reference validation to ensure reference validity
  • Status management - Added Webhook status management capability

Bug Fixes

IssueFix
🔧 Workflow clone node ID mappingFixed node ID reference not mapped during workflow cloning
🔧 Condition branch execution chainFixed condition node branch target ID mapping and execution chain generation logic
🔧 Workflow test failureFixed workflow test failure issue

v1.6.0 (2026-07-05)

New Features & Improvements

🔄 Workflow Automation Engine ⭐⭐⭐

Core Engine & Architecture

  • Implemented complete workflow and Webhook functional modules (end-to-end architecture)
  • Implemented binding relationship between workflows and data tables
  • Supported workflow operations: create, edit, delete, pause, resume, version snapshot, etc.
  • Auto-build workflow node execution chain and node execution order
  • Implemented workflow version snapshots
  • Supported viewing global binding relationship between data tables and workflows
  • Unified workflow node type normalization

Trigger System

  • ⭐ New scheduled time trigger capability for workflows
    • Scheduled time trigger uses local timezone for trigger time interpretation
    • Supports one-time non-repeating trigger and multiple repeating types (daily/weekly/monthly/yearly/custom)
    • Supports deadline configuration for scheduled time triggers to avoid repeated triggering
  • ⭐ Supports record creation trigger
    • Trigger filter conditions support global triggering (no filter conditions configured)
    • Trigger filter conditions support AND (all match) and OR (any match) multi-condition triggering modes
  • ⭐ Supports record update trigger
    • Supports global triggering (no listened fields configured)
    • Supports listening to specified field updates for triggering (configure listened fields)
    • Trigger filter conditions support global triggering (no filter conditions configured)
    • Trigger filter conditions support AND (all match) and OR (any match) multi-condition triggering modes

Node System

  • ⭐ Supports multiple node types (create record, update record, webhook, condition branch) with create, edit, delete operations
  • Create Record Node
    • Supports creating records in target table
    • Supports field value input mapping configuration for target table, supports static values or reference expressions based on source table field values
  • Update Record Node
    • Supports source table field value input configuration, supports static values or expressions
  • Webhook Node
    • Supports selecting system-configured Webhooks
    • Supports inline configuration of new Webhooks
  • Condition Node
    • Filter conditions support AND (all match) and OR (any match) multi-condition triggering modes
    • Supports real-time display of configured condition summary information
  • ⭐ Supports manual adjustment of node execution order (drag-and-drop sorting)

List & UI

  • ⭐ Workflow list panel with collapse/expand functionality (adaptive sidebar width)
  • ⭐ New search box for filtering workflows by name or description

Version Management

  • Version history feature, supports viewing workflow historical versions
  • Version history dialog supports viewing version number, creation time, creator name, node configuration summary information, etc.

Top Navigation

  • ⭐ New top navigation automation menu on Base page, unified workflow configuration entry

🪝 Webhook Delivery Management System ⭐

  • Webhook configuration feature, supports adding and editing Webhook configurations
    • Supports Webhook name, URL, HTTP method, headers, request body template configurations
    • Supports Webhook retry strategy (max retry count, retry interval, etc.) configuration
    • Supports Webhook enable state (enable/disable) configuration
  • ⭐ Supports testing Webhook configuration functionality, supports testing whether Webhook configuration is valid
  • Webhook delivery records feature
    • Supports viewing Webhook delivery record list
    • Supports viewing Webhook delivery record details (including request parameters, response status code, response body, etc.)
    • Supports refreshing Webhook delivery records

Bug Fixes

  • N/A

v1.5.2 (2026-07-02)

New Features & Improvements

✨ New Features

  • 🔍 Global Table Search: New global search capability within the table for quick record locating
  • 🧩 Auto-merge Cells: Support auto-merge of adjacent cells with identical content
  • ❄️ Row Freeze/Unfreeze: New right-click menu actions to freeze/unfreeze rows in table view
  • 🔑 Primary Key Field Description: Added default description for primary key (index) field, with hidden operation restricted

🔧 Improvements

  • Formula Engine: Formula calculation supports direct return of literal values
  • Column Sorting: Optimized column sorting logic, supports correct sorting for numeric fields
  • Context Menu & Header Sorting: Optimized context menu and header click sorting interaction
  • Data Update Logic: Refactored records watcher to unify table data update mechanism
  • Sequence Column: Optimized sequence column, new rows don't display sequence number and cannot be selected
  • CAPTCHA Font Optimization: Optimized CAPTCHA font loading and rendering, with new font dependency

Bug Fixes

  • Fixed issue where duplicated records did not auto-refresh
  • Fixed duplicate field values in the new-row button row causing cell merge
  • Fixed inconsistent empty-value return from editor causing inability to clear single-select field
  • Fixed CRLF line ending issue for files inside Docker container and set permissions

v1.5.1 (2026-06-19)

New Features & Improvements

🔧 Improvements

  • 📝 Field Type Selection Logic Refactoring ⭐ Unified field type selection logic to improve code maintainability.
  • 🎨 Table View Add Record Button Display Optimization

Bug Fixes

  • 🔧 Gantt Chart Record Editing Data Incomplete Issue Issue Description: When editing records in Gantt view, some field data was lost or not saved correctly. Impact Scope: Gantt view, record editing, data synchronization
  • 🔧 Table View Filter Condition Ineffective Issue Issue Description: In some scenarios, table view filter conditions were not effective or ignored. Impact Scope: Table view, data filtering, view switching

v1.5.0 (2026-06-14)

New Features & Improvements

🏗️ VTable — New Table Rendering Engine ⭐

The biggest change in this release — fully migrated to @visactor/vtable rendering engine.

Core Interaction Upgrades

  • Context Menu: Cell and header right-click menu with sort, freeze, edit operations
  • Record Detail Drawer: Click to open detail drawer supporting all field types
  • Floating Action Icons: Hover to show action icons for quick operations
  • Column Freeze: Customizable column freezing with flexible logic

Native Grouping Support

  • Native group rendering within the table
  • Quick record addition within groups
  • Group collapse/expand and statistics

Interaction Enhancements

  • Cell copy-paste with feedback tips
  • Cell value validation with error highlighting
  • Column descriptions with overflow tooltip
  • Field type icons in table headers
  • ARCO theme for unified visuals

🧮 Formula Field Support ⭐

  • Arithmetic expression parsing and formula field support
  • Create formula fields referencing other field values
  • Basic arithmetic operations and function calls

📝 Rich Text Field

  • New rich text type at data table field level
  • Quill-based inline rich text editing
  • Dynamic initialization in record detail drawer

📎 Attachment Field Management

  • Complete attachment field management
  • Upload, preview, and edit support
  • Real-time position sync for attachment float window
  • Multi-format compatibility and interaction enhancements

🔢 URL Field Interaction

  • Single-click to open link
  • Double-click to edit
  • Intelligent recognition with security validation

🏠 Home Page Enhancement

  • "Create from copy" option for quick Base duplication
  • Full field type test template and record generator

Bug Fixes

IssueFix
🔧 Cache ClearAdded transform cache cleanup logic
🔧 Invalid SaveAdded no-change check to prevent invalid saves
🔧 Batch Delete StateAdded batch delete state management
🔧 Template Preview DialogFixed dialog mount with append-to-body
🔧 Excel Import DateFixed default value for empty date fields during import
🔧 Sort Request FormatAdjusted sort API request format and method
🔧 Local Record QuerySorted IndexedDB records by creation time
🔧 PG TimestampFixed millisecond timestamp compatibility for PostgreSQL
🔧 Member Search ParamRemoved redundant base_id parameter
🔧 Compilation IssuesFixed rich text and member editor compilation
🔧 Code StructureOrganized code and fixed minor issues
🔧 Collaborative Edit FailureFixed collaborative editing startup failure in certain scenarios
🔧 Template Preview OverlapFixed template preview dialog being covered by other elements
🔧 Manual Sort FailureFixed data table manual sort not working
🔧 Column Width After GroupingFixed column width issues after full table update in group mode
🔧 Redis Not Starting After RebootFixed Redis not starting after Docker service restart
🔧 Collaborative Edit ConfigFixed collaborative editing configuration failure under Docker and Windows startup package modes
🔧 Backspace Button ConflictFixed backspace button conflict between data detail page and table editing

v1.4.1 (2026-05-31)

New Features & Improvements

  • Added unlink functionality for link fields, allowing disconnection of established record relationships
  • Enhanced bidirectional linking support for more accurate data synchronization
  • Fixed link field display and data consistency issues in various scenarios

📥 Batch Import Optimization

  • Added batch import feature for significantly improved data entry efficiency
  • Optimized import workflow experience with clearer interface feedback
  • Added batch insert and performance test utilities

⚙️ Interaction Experience Optimization

  • Optimized Gallery View image preview styling for better visual effect
  • Added LoadingOverlay universal loading overlay component, integrated into batch delete and other time-consuming operations for better feedback
  • Sidebar style refinement (edit icon replacement)
  • Timezone optimization: when no timezone is configured, uses browser local timezone for display by default, simplifying user onboarding

Bug Fixes

IssueFix
🔧 PostgreSQL CompatibilityFixed PostgreSQL database compatibility issues, enabled PostgreSQL v13+ support
🔧 Attachment FilenameFixed attachment display using wrong filename field
🔧 Cache MissFixed secondary cache data loss during large batch requests
🔧 Env Loading PathFixed .env file loading base path logic
🔧 Terminal EncodingFixed backend terminal output encoding issue
🔧 Type/Data IssuesOptimized multiple code logic and fixed type/data compatibility issues
🔧 Timezone CompatibilityUnified database datetime fields to timezone-aware types for PostgreSQL environment compatibility

v1.4.0 (2026-05-25)

New Features & Improvements

📄 Document Management Module ⭐

Complete Document CRUD

  • New document management feature supporting create, edit, delete, query operations
  • Documents associated with Base, supporting Base-based permission control

Document Editor (TinyEditor)

  • TinyEditor-based rich text editor with bold, italic, lists, links, tables, and more
  • Markdown syntax support for writing document content
  • Keyboard shortcut support (Ctrl+S save, etc.)
  • Custom fullscreen toggle functionality
  • Global Chinese i18n configuration

Document Version History

  • Document version history tracking and rollback
  • Version comparison view, restore historical content by version number
  • Display of version creator information

PDF Export

  • Export document content as PDF files
  • DOM direct parsing replaces delta conversion for more accurate PDF styling
  • Fixed image URL issues in PDF export

User Experience Optimization

  • Document editor loading states and universal loading component
  • AppHeader info display for document pages
  • Document header outline navigation feature
  • Document detail loading state display

🐳 Docker Deployment Architecture Refactoring ⭐

  • Refactored Docker deployment architecture with embedded Redis
  • Unified single-container deployment scheme, greatly simplifying deployment
  • No need for additional Redis container, convenient for quick service startup

📝 Document Editor Optimization

  • Optimized document editor loading logic and styles (layout, placeholder, toolbar)
  • Refactored document editor layout and outline logic
  • Refactored document version history preview logic

🔄 Field Naming Unification & Timezone Handling

  • Unified frontend-backend field naming convention (camelCase/snake_case adaptation)
  • Optimized timezone handling, fixed version check issues due to timezone inconsistency
  • Improved optimistic lock validation logic

📦 API Documentation Enhancement

  • Added complete Swagger documentation comments for all routes in document_versions.py and documents.py
  • Unified API documentation standards (tags, security, parameters, response format, error codes)

Bug Fixes

IssueFix
🔧 List Selection State AnomalyFixed abnormal list selection state
🔧 Document Optimistic LockFixed optimistic lock validation logic
🔧 Timezone InconsistencyFixed version check issue due to timezone inconsistency
🔧 Version Creator DisplayOptimized version history creator display logic
🔧 PDF Image URL IssueFixed image URL path issues in PDF export
🔧 Editor i18nConfigured and initialized Chinese i18n for rich text editor
🔧 Decorator CompatibilityAdded g.user_id variable for alias compatibility

v1.3.3 (2026-05-17)

New Features & Improvements

⚡ Streaming Load Progress & Data Loading Optimization ⭐

LoadingProgress Component

  • New global LoadingProgress component for displaying record load progress
  • Supports percentage progress bar + current count/total + elapsed time display
  • Adapts to different screen sizes (desktop/tablet/mobile)

Streaming Table Record Loading

  • Implemented paginated data streaming strategy: load first page for fast display, async background load remaining pages
  • First-screen rendering time reduced by 60%+ (10k records from 5s → <2s)
  • Users can operate on loaded data during loading process (non-blocking)
  • Auto-adapts to new backend API response format

🔍 Request Tracking System ⭐

Request ID Middleware

  • Each request auto-generates unique request_id (UUID format)
  • request_id spans entire request lifecycle (middleware → route → service layer → response)
  • All API response bodies carry request_id, facilitating frontend-backend debugging
  • Logs auto-correlate with request_id, supporting full call chain lookup by ID

Enhanced Error Handler

  • All exception responses unified with: error_code, message, request_id, timestamp
  • New error handling config items (control stack trace exposure, detailed logging, etc.)
  • JWT error responses all carry request_id (expired/invalid/revoked scenarios)

Unified API Response Format

  • New standard API response type definition (backward compatible with old format)
  • API client refactored: added detailed error logging and standardized error objects
  • Frontend response interceptor distinguishes "permission denied" vs "auth expired", correctly redirects to login

API Error Tracking Utility

  • Logger tool gains API error tracking capability (history storage & management)
  • Support querying historical errors by request_id
  • Dev mode provides error detail panel

💾 Local Cache Mechanism ⭐

Real-time Collaboration State Cache

  • Collaboration state (online users, lock status) cached to localStorage with 2-hour TTL
  • Reduces duplicate API calls on page refresh (first-screen collaboration state recovers in seconds)
  • Cache supports read/write, validation, and auto-expiry cleanup

User Authentication Info Cache

  • User login state and basic info cached locally
  • Optimizes initialization flow (no user API call needed on every startup)
  • Login/logout/user info update syncs cache automatically

System Config Cache (adminStore)

  • System config (timezone, security settings, etc.) locally cached with expiry
  • Cache hit returns directly, reducing 90%+ duplicate config requests
  • On request failure, falls back to expired cache (graceful degradation)
  • Admin config update auto-clears all client caches

🛡️ System Security Config & Registration Optimization ⭐

Public Configuration Endpoint

  • New endpoint for retrieving security config without login (password rules, registration toggle, etc.)
  • Frontend auto-detects config changes and adjusts UI behavior accordingly

Dynamic Password Strength Validation

  • Password rules configurable from admin backend (length, uppercase, numbers, special chars, etc.)
  • Real-time validation with strength level indicator during registration/password change

Registration Toggle Switch

  • Admin can enable/disable registration from backend with one click
  • Registration button auto-hidden when disabled, registration requests blocked
  • Login/register page dynamically shows or hides registration entry based on config

Session Timeout Configuration

  • Session timeout adjustable from admin backend without restart
  • Changes take effect immediately

📅 Unified UTC ISO Date Format ⭐

Frontend-Backend Format Unification

  • All datetime fields use UTC ISO format for storage and transmission (e.g., 2026-05-10T16:16:40.478Z)
  • Frontend components support timestamp, ISO string, date string and other input formats
  • Backend ensures all datetime data stored in UTC format with correct timezone conversion

Timezone Conversion Full Coverage

  • Base page and Dashboard page support timezone conversion display
  • Table cells support timezone conversion
  • Template preview dialog supports timezone conversion
  • RecordDetailDrawer read-only mode correctly applies timezone conversion

Unified Timezone Utility Functions

  • Unified use of formatDate() and formatDateTime() utility functions
  • Replaced scattered dayjs and Date.toLocaleString() calls throughout project
  • Fixed UTC strings without timezone suffix being incorrectly parsed as local time (avoiding double offset)

🧪 Batch Insert Test Tool ⭐

SmartTable Bulk Data Performance Testing Script

  • Complete batch insert test tool for platform performance testing
  • Customizable parameters: insert count, batch size, delay interval, field mapping rules
  • Built-in field configuration examples (text, number, date, single-select, multi-select, attachment, etc.)
  • Includes complete usage documentation and best practices guide

📦 Batch User Query Optimization

Invalid ID Filtering & Null Validation

  • Frontend user API, cache Store, and member components all add invalid ID filtering logic
  • Backend batch user query endpoint adds invalid ID filtering in sync
  • Unified early return on empty results, reducing invalid API calls by ~40%

🔄 Template Sync Logic Refactoring

templateService Refactoring

  • Sync method parameter upgraded from records to complete templateTable object
  • Added field type mapping logic, unified handling of date, single/multi-select field type conversions
  • Clearer code structure, improved maintainability

🖥️ Windows Log Rotation Fix

SafeRotatingFileHandler

  • Resolved classic Windows issue where log files cannot be rotated due to file locks
  • New safe log file handler implementation
  • Development environment log handlers all replaced with safe implementation

🛠️ SocketIO Connection Log Enhancement**

  • Connection handler function now accepts auth parameter and logs authentication status
  • Facilitates troubleshooting of WebSocket connection and auth issues

⚙️ System Settings Page Cleanup

  • Removed unused basic configuration save logic
  • Set system name, description, and per-page record count to disabled state
  • Two-factor auth, logging, performance monitoring reserved features disabled with gray hint text
  • Not-yet-enabled features clearly labeled to avoid user confusion

Bug Fixes

Core Feature Fixes (8 items)

IssueFixImpact
🔧 SocketIO Connection ExceptionWrapped connection handling in try-except, auth failure returns False instead of disconnectWebSocket connection stability improved
🔧 Filter State Out of SyncChanged activeFilters from ref to computed, reset connector on filter resetFilter condition loss issue
🔧 JWT Error Handling InconsistentAll JWT errors unified with request_id; frontend distinguishes permission denied vs auth expiredLogin redirect confusion
🔧 Right-click Edit UnresponsiveFixed table view data row right-click "Edit" button not respondingEdit action unusable
🔧 Right-click New Record Data AnomalyFixed refresh conditions after new record creation, use baseId instead of tableIdTable data empty/incorrect
🔧 DateTime Field Not EditableExtended cell edit initialization type check to include datetime fieldsCannot edit datetime in cell
🔧 Date Cell Assignment InconsistentChanged to update local editValue first then emit, maintains internal consistencyValue reverts after edit
🔧 Field Create Parameter Naming Erroris_required corrected to camelCase isRequired, consistent frontend-backendField required attribute ineffective

Component/UI Fixes (6 items)

IssueFix
🔧 RecordDetailDrawer Compile ErrorFixed TypeScript compilation error
🔧 Required Asterisk MissingRequired field red asterisk displays correctly in detail drawer
🔧 Single Select Dropdown Plain StyleReplaced native select with el-select, added option color dot display
🔧 Real-time Collaboration Port ErrorFixed dev environment Socket.IO connection port config
🔧 Timezone Double OffsetFixed UTC strings without suffix parsed as local time causing double offset
🔧 Timezone Not Effective on StartupPreload system config on startup, ensures timezone conversion takes effect immediately

Permission & Config Fixes (4 items)

IssueFix
🔧 Non-admin Cannot Apply TimezoneAdjusted backend admin route config, opened timezone-related endpoints
🔧 Real-time Collaboration Toggle ConfigBackend reads from env variable, frontend adapted accordingly
🔧 Preload Error When Not Logged InApp.vue only loads system config when logged in
🔧 TypeScript Type ErrorRemoved unused dayjs import

v1.3.2 (2026-05-06)

New Features & Improvements

📝 Timezone Management Full Support ⭐

System Parameter Configuration Interface with Timezone Support

  • New standalone system parameter configuration interface with timezone configuration support

    Implements system-level timezone configuration, allowing administrators to switch between UTC and specified local time zone for site-wide time display.

  • Global timezone display adaptation: Automatically converts time display to the specified timezone based on system configuration.

📝 Form Sharing System Comprehensive Upgrade ⭐

Form Sharing Management Interface

  • New standalone form sharing management interface for viewing all created form share links
  • Visual display of share status (enabled/disabled/expired), submission statistics (total/today)
  • One-click copy link, edit settings, enable/disable, delete shares

Form Sharing Workflow Optimization

  • Step-by-step configuration wizard (Basic Info → Submission Settings → Field Settings → Appearance → Publish)
  • Real-time preview (WYSIWYG)
  • Support custom redirect URL or success message after submission

Form Page Member Search ⭐

  • Member fields in form pages support online user search
  • Fuzzy search by username or email
  • Displays avatar and name for better UX

📥 Data Import Enhancement ⭐

ImportDialog Data Preview Step

  • Upgraded from 2-step to 3-step: Upload → Preview → Configure
  • Preview shows first 20 rows of parsed results, catch format issues early
  • Adjust field type mapping and primary field selection during preview
  • Shows file statistics (total rows, estimated processing time)

Option ID & Name Conversion Support

  • Auto-match existing options by ID or name when importing multi/single-select fields
  • Resolves data association errors when option values match but IDs differ
  • Import logs record matching result per option (hit/new/skip)

Drawer-style Link Record Selector

  • Replaced popup with right-side drawer for larger workspace
  • Drawer shows target table's full view (with filter/sort/group)
  • View linked record details inline (nested detail view)

Extended Relationship Type Support

  • Clearer relationship type configuration: One-to-One / One-to-Many / Many-to-One / Many-to-Many / Many-to-Many (Bidirectional)
  • Auto-rebuild reverse relation field on type change

Field Cache Service ⭐

  • New fieldCacheService with in-memory field definition cache
  • Cache TTL: 5 minutes, reduces repeated backend API calls
  • Link record selector loading speed improved by 60%+

🚀 Multi-dimensional Table Enhancements

Added Multiple Base Templates

  • 6 new commonly used table templates:
    • Meeting Management (meeting records, participant management, and meeting minutes)
    • Study Plan (course learning, progress tracking, and knowledge management)
    • Bug Tracking (software defect recording, priority management, and fix progress tracking)
    • Recruitment Management (job posting, candidate management, and interview process tracking)
    • Asset Management (fixed assets, equipment allocation, and inventory management)
    • OKR Objectives (objectives and key results management, progress tracking, and alignment)

Table Route Support - Direct Access via URL

  • New dedicated route: /base/:baseId/table/:tableId
  • Open specific table by typing URL in browser address bar
  • Convenient for sharing specific table links without navigating through Base first
  • Route changes auto-sync tableStore selection state

📊 Dashboard Enhancements ⭐

Dashboard Preview Mode

  • New global preview mode (preview effect without saving)
  • All components render with mock data, reflecting actual layout

Real-time Component Empty State Preview

  • KPI cards, clock, date components show preview during configuration
  • See final rendering without binding real data source
  • Reduces dashboard configuration learning curve

Dashboard Template Expansion

  • Multiple industry dashboard templates added (sales funnel, helpdesk ticket, inventory alert, etc.)
  • Template preview dialog component (click template card for modal preview)

Template Preview Dialog ⭐

  • Click template in library → modal shows full preview
  • Preview includes: name, description, use case, table list, field screenshots
  • Supports "Use Now" and "Back to List" actions

🔐 Real-time Collaboration Improvements ⭐

Lock Operation Wait Mechanism

  • When cell locked by another user, lock request no longer fails immediately
  • System auto-enters "wait queue", acquires edit right after lock releases (FIFO)
  • Visual wait status (countdown + queue position + holder info)
  • Support canceling wait (give up editing or switch cells)

Field Update Full Sync

  • Field create/modify/delete/sort operations sync to all online users
  • Sync includes: name, type, options, required attr, default value, etc.
  • Other users' field changes notified via Toast (dismissible)

User ID Tracking Mechanism

  • All collaboration events carry operator's user ID
  • Resolves confusion between same-name users
  • Online user list shows unique identifier (username + last 4 digits of ID)

🛠️ Architecture & Toolchain Improvements

Cross-platform Build & Redis Integration ⭐

  • Windows/Linux/macOS one-click build (PyInstaller + Nuitka dual engine)
    • Windows platform verified, ensuring normal operation under Windows environment
    • 🐛 Linux, macOS and other Unix systems verified feasible (pending testing)
  • Production Redis optimization (connection pool, sentinel mode, cluster mode adaptation)
  • Build artifacts auto-include runtime deps (Python interpreter, DLLs, resources)
  • Build script optimization (incremental build, signing, compression)

Store Architecture Refactoring ⭐

  • baseStore split into memberStore + shareStore:
    • memberStore: Base member management (add, remove, role change)
    • shareStore: Base sharing management (create links, permissions, analytics)
    • Clearer responsibilities, better maintainability
    • Reduced unnecessary reactive watchers, 15% perf gain

📦 Service Layer Refactoring

copy_base Method Decomposition

  • Split monolithic copy_base into 6 independent functions:
    • copy_base_metadata() - Copy basic info
    • copy_base_tables() - Copy table structure
    • copy_base_fields() - Copy field definitions
    • copy_base_views() - Copy view configs
    • copy_base_records() - Copy record data (optional)
    • copy_base_permissions() - Copy permission settings
  • Each function independently testable & reusable
  • More precise error location (know exactly which step failed)

Centralized Field Type Label Mapping

  • Scattered field type Chinese label mappings consolidated into types/fields.ts
  • Unified all frontend display names for field types
  • New field types only need one place update, prevent omissions

🔄 Data Sync Optimization

Remote Delete Local Cache Cleanup

  • When other users delete records existing in local IndexedDB, auto-cleanup local cache
  • Avoids "ghost records" issue (server deleted but still showing locally)
  • Cleanup triggered via WebSocket push, no manual refresh needed

Kanban View Legacy Format Compatibility

  • Compatible with v1.1.x and earlier option data formats (text array vs object array)
  • Auto-migrate old format options to new format (id, name, color)
  • Added "Ungrouped" column (shows records without any option value assigned)

🎨 UI/UX Improvements

Share Dialog Text Correction

  • Share dialog title corrected from "Base Share" to "Multi-dimensional Table Base Share"
  • Unified product terminology usage (Base = Multi-dimensional Table)

Dashboard Table Load Order Fix

  • Dashboard component init ensures table list loaded before rendering
  • Fixed occasional "empty table dropdown" issue
  • Load status synced to tableStore, consistent global state

Bug Fixes

Core Feature Fixes (10 items)

IssueFixImpact
🔧 Template Option ResidualClear option mapping memory immediately after template processingAvoid mixing old data into next import
🔧 Option Config Missing IDFixed missing id field in import option config objectsLink field option matching failure
🔧 Member Search Infinite LoopFixed recursive call in FormShare member search functionBrowser freeze
🔧 Template Option Value ConversionFixed option field value type conversion in template serviceTemplate-created field options lost
🔧 Own Base ShowingFixed self-created Bases appearing in "Shared with Me" listInaccurate list data
🔧 Field Attribute NamingUnified isRequired to is_required in field dialogMatches backend API field name
🔧 Field Update Missing TypeFixed FieldDialog not passing type field on updateField type reverts to text
🔧 Default Value MappingFixed missing default value mapping on record creationDefaults not applied
🔧 User Identity RetrievalUnified g.current_user_id usage across records moduleInconsistent permission checks
🔧 User ID Null CheckAdded null validation for user ID with unified handlingError on operation while not logged in

Collaboration & Sync Fixes (5 items)

IssueFix
🔧 Field Sync FailureFixed real-time sync issues for field operations (create/modify/delete), added user ID tracking
🔧 Lock State Out of SyncFixed inconsistent cell lock state across multiple clients
🔧 View Switch LatencyOptimized push delay when others switch views (<100ms)
🔧 Offline Queue OverflowFixed queue crash when offline ops exceed 100
🔧 Conflict Dialog RemainsConflict resolution dialog persists after clicking Discard or Overwrite

Import/Export Fixes (3 items)

IssueFix
🔧 Batch Import Data InconsistencyFixed data loss/duplication during batch import
🔧 Auto Number Race ConditionUsed Redis atomic counter (INCR) for concurrent record creation ID conflicts
🔧 Kanban Legacy FormatSupport legacy text option format, auto-migrate to new format

UI/UX Fixes (4 items)

IssueFix
🔧 Link Record Drawer DataFixed empty link field data init in RecordDetailDrawer
🔧 Memory LeakFixed memory leak from event listeners not properly removed on component destroy
🔧 Thumbnail Undefined VariableFixed undefined AS variable in attachment thumbnail API causing 500 error
🔧 Runtime ErrorFixed startup NameError from missing module imports

Backend Fixes (5 items)

IssueFix
🔧 permission_service ImportAdded missing db module import, fixed NameError
🔧 Security ConfigFixed security middleware config load order
🔧 Redis Connection PoolFixed Redis connection reuse preventing exhaustion
🔧 Build ScriptFixed cross-platform path separator issues
🔧 .gitignoreUpdated ignore rules (exclude build artifacts, sensitive files)

v1.2.0 (2026-04-26)

New Features & Improvements

🔤 Major Field Type Upgrade (22 → 26 Types)

⭐ Text Field Refactoring

  • Single Line Text - Dedicated short text input (titles, names, etc.)
  • Long Text - New field type for multi-line paragraph input (descriptions, notes, content up to 10,000 chars)
  • Rich Text - New field type with built-in rich text editor supporting bold/italic/lists/links/tables/code blocks, integrated with DOMPurify XSS protection

⭐ DateTime Field

  • New combined date-time picker with second-level precision
  • Customizable date format and time format (HH:mm:ss / HH:mm)
  • Perfectly suited for project scheduling, meeting arrangements, release planning and other scenarios requiring precise time

⭐ Auto Number Field

  • Highly flexible custom numbering rule engine
  • Supports prefix (e.g., "TASK-", "ORDER-", "ISSUE-")
  • Supports suffix (e.g., "-V1", "-CN")
  • Supports date prefix (YYYYMMDD, YYYYMM, YY, YYMMDD and more formats)
  • Supports zero-padding (4 digits → 0001, 6 digits → 000001)
  • Supports custom starting number
  • Example output: TASK-202604260001, PO2026000001, EMP-00042

Member Select Component Enhancement ⭐

  • All-new user search and selection interface
  • Supports fuzzy search by username or email
  • Displays user avatar and name
  • Default value enhancement: Supports "current user" as default value, auto-fills logged-in user when creating records

📊 Smart Excel Import to Create Tables ⭐

Brand-new feature to create data tables directly from Excel files, significantly improving data migration efficiency:

Intelligent Field Recognition Engine:

  • Automatically analyzes Excel column data characteristics to intelligently recommend the most suitable field type
  • Supports recognition of 26 field types (text/long text/rich text/number/date/datetime/single-select/multi-select/checkbox/email/phone/URL/auto-number etc.)
  • Automatically identifies integers vs decimals and sets precision for numeric types
  • Date format support: YYYY-MM-DD, MM/DD/YYYY, DD-MM-YYYY, Chinese dates and more
  • Boolean values support: true/false, 是/否, Yes/No, 1/0, √/× and more representations (case-insensitive)

Multi-select Option Intelligent Extraction:

  • Automatically detects comma/semicolon/pipe-separated multi-value data
  • Separator priority: English comma , > Chinese comma > Semicolon ; > Pipe |
  • Auto trim & deduplication, retains up to 20 unique options
  • Sorted by frequency in descending order, auto-assigned from 20-color preset palette
  • Example: Cell "Frontend, Backend, Frontend" → Extracted options ["Frontend", "Backend"]

Smooth User Experience:

  • Three-step wizard: Upload → Configure → Create
  • Real-time progress bar display (Create Structure → Import Data → Complete)
  • Option to import data simultaneously (can create structure only)
  • Adjustable field name, type, primary field settings
  • Auto-opens newly created table after completion

📚 Integrated API Documentation System ⭐

Integrated Flasgger (Swagger UI) providing complete interactive API documentation:

Swagger UI Access URL:

  • Development environment: http://localhost:5000/apidocs

Documentation Features:

  • Detailed documentation for all 90+ API endpoints
  • Supports online API testing (fill parameters → send request → view response)
  • Auto-generated request/response JSON Schema
  • Authentication support (fill in JWT Token to test authenticated APIs)
  • Clear endpoint categorization (Auth/Base/Table/Field/Record/View/Dashboard/Attachment/Share/Import-Export/Email/Admin/Realtime)

🎨 Unified Element Plus Icon System ⭐

Complete replacement of custom SVG icons with official Element Plus icon components:

Icon Coverage:

  • Icons for all field types (26 dedicated icons per field type)
  • View type icons (Table/Kanban/Calendar/Gantt/Gallery/Form)
  • Toolbar button icons (Filter/Sort/Group/Import/Export/Refresh)
  • Sidebar and navigation icons
  • Operation button icons (Edit/Delete/Copy/Star etc.)

Benefits:

  • ✅ Unified visual style and design language
  • ✅ Better maintainability (no need to manually manage SVG files)
  • ✅ Automatic theme adaptation (icon colors adapt when switching dark mode)
  • ✅ Tree-shaking friendly (on-demand loading, reduced bundle size)
  • ✅ Supports all Element Plus icon properties (size, color, spin, etc.)

📈 Dashboard Template System ⭐

One-click dashboard configuration reuse functionality:

Create from Template:

  • Browse template library (system preset industry templates)
  • Preview template effects (view field configurations)
  • One-click apply to new dashboards
  • System includes multiple industry templates (Project Management, Sales Analytics, Operations Monitoring, etc.)

🐝 Backend File Upload & Object Storage ⭐

Complete backend file upload pipeline and access proxy:

Local File Storage Support:

  • Optional MinIO integration as file object storage (replacing local filesystem) (To be improved)
  • Auto-create directory structure

Image Thumbnail Generation:

  • Auto-generates 3 sizes of thumbnails on image upload (Small/Medium/Large)
  • Efficient processing using Pillow library, supports JPG/PNG/GIF/WebP formats
  • Thumbnails used for: Attachment field preview, Gallery view cover, inline table preview

Security Validation Enhancement:

  • Server-side MIME type re-validation (prevents extension spoofing attacks)
  • Magic Number verification (file header byte validation)
  • File size limit (single file default 10MB, configurable)
  • File count limit (0-100 per field)

🔄 Real-time Collaboration Deep Optimization ⭐

WebSocket Connection Stability:

  • Refactored connection establishment and reconnection logic, significantly reducing disconnection rate
  • Exponential backoff reconnection strategy (1s → 5s → 30s → 2min, max 5 attempts)
  • Heartbeat keepalive mechanism (Ping/Pong, 60s timeout auto-disconnect)
  • Real-time connection status indication (AppHeader area global display)

Debug Logging Enhancement:

  • Detailed WebSocket event logging output in development mode
  • Records sender, receiver, payload summary for each event
  • Connection/disconnection/error log levels (INFO/WARN/ERROR)
  • Facilitates quick troubleshooting of collaboration issues

User Experience Improvements:

  • Collaboration components moved from Base page to AppHeader global display
  • Online collaborator status visible on any page
  • User name field support (displays real name instead of username)
  • Cell lock indication more prominent (background color + editor avatar + name)

Authentication Security Strengthening:

  • Mandatory JWT Token verification on WebSocket connection
  • Auto-disconnect and require re-login when Token expires
  • Prevents unauthorized WebSocket connection hijacking

📧 Email System Production Ready ⭐

SMTP Integration Completion:

  • Supports major email service providers (Gmail, Outlook, QQ Mail, Enterprise mail, etc.)
  • TLS/SSL encrypted transmission
  • Supports ports 25/465/587
  • Connection pool management (reuse connections for better performance)

Email Template Visual Editing:

  • Built-in 5 email templates:
    • welcome (Welcome registration)
    • email_verification (Email verification)
    • password_reset (Password reset)
    • invitation (Member invitation)
    • share_notification (Share notification)
  • WYSIWYG HTML editor
  • Supports variable interpolation (, , etc. - 12 variables)
  • Real-time preview rendering effect

Async Email Queue:

  • Task queue based on Redis or memory
  • Worker process concurrent sending (configurable 1-8 workers)
  • Auto-retry on failure (exponential backoff: 1min → 5min → 30min → 2h, max 5 attempts)
  • Final failure marking + error reason recording
  • Sending rate limiting (prevents triggering email provider anti-spam policies)

Admin Panel:

  • SMTP configuration interface (server/port/encryption/authentication)
  • One-click test send (verify configuration correctness)
  • Email template CRUD management
  • Email log query (filter by time/status/template/recipient)
  • Email Statistics Dashboard:
    • Today/This week/This month total sending volume trend chart
    • Send success rate pie chart
    • Most used templates Top 5
    • Sending peak hours heatmap
    • Failed email list (for troubleshooting)

🎨 UI/UX Comprehensive Improvements

Collaboration Components Globalization ⭐:

  • OnlineUsers, CellEditingIndicator, ConnectionStatusBar moved from Base page to AppHeader
  • Collaboration status visible on all pages, no longer limited to Base internals
  • Unified operation entry point and visual style

Base Page Layout Optimization:

  • Statistical information (table count, total records, etc.) moved from top to bottom
  • More compact card style
  • Operation buttons grouped more reasonably (primary operations highlighted)

Table View Operation Enhancement:

  • New standalone "Add Record" button (prominent position in toolbar)
  • Operation button grouping: Primary operations (Add/Import/Export) + Secondary operations (Field/Filter/Sort/Group)
  • Batch operation feedback (displays result statistics)

Sidebar Experience Enhancement:

  • All buttons added Tooltip hint text (mouse hover shows function description)
  • Data table and dashboard list unified visual style
  • Drag handle (⋮⋮) more obvious and easy to identify
  • Collapse/expand animation smoother

Unified Field Icons:

  • All 26 field types use Element Plus icons
  • Icon colors semantically associated with field type (e.g., date uses calendar icon, member uses avatar icon)
  • Consistent grayed-out style for disabled state icons

Record Operation Flow Optimization ⭐:

  • RecordDetailDrawer (Record Detail Drawer): Clicking "Save" auto-closes drawer, improving operational continuity
  • RecordHistoryDrawer (Change History Drawer): Fixed abnormal close behavior
  • Table View: Force refresh list after creating record, completely resolving duplicate addition issue
  • Delete confirmation dialog: Added clearer warning text

📥 Import/Export Compatibility Enhancement

Field Type Mapping Optimization:

  • More accurate identification and conversion of field types during import (reduces manual modification)
  • Preserves original format during export (Excel formulas, date formats, number formats)
  • More robust special character handling (newlines, quotes, commas) escaping

Big Data Support:

  • Optimized memory usage (streaming read, avoids loading entire file at once)
  • Supports ten-thousand level record import/export (tested 50k rows Excel < 30s)
  • Progress bar real-time update (refreshes every 100 rows)

Error Recovery:

  • Provides detailed row-level error report on import failure (row number + error reason + original value)
  • Supports skipping error rows to continue import (instead of overall failure)
  • Resume from breakpoint possible on import interruption (records processed row number)

Encoding Handling:

  • Auto-detects file encoding (UTF-8 / UTF-8-BOM / GBK / GB18030 / ASCII)
  • Unified use of UTF-8 with BOM on export (best Excel compatibility)
  • Chinese filename support (RFC 5987 encoding)

Excel Import Progress Display

  • Create table stage: Shows "Parsing file...", "Identifying fields..."
  • Import data stage: Percentage progress bar + current row/total rows + elapsed time
  • Completion stage: Shows success/failure statistics + elapsed time

Bug Fixes

Core Feature Fixes

  • 🔧 RecordDetailDrawer Auto-close - Drawer no longer stays open after saving record, auto-closes and returns to list view
  • 🔧 RecordHistoryDrawer Close Issue - Fixed unresponsive close button, ESC key unable to close issue
  • 🔧 Table View Duplicate Records - Completely resolved issue of two identical records appearing after creation (force refresh + deduplication logic)
  • 🔧 AppHeader State Sync - Fixed out-of-sync information for table/dashboard star status, title, etc.
  • 🔧 View Switch Data Loss - Fixed occasional data clearing when rapidly switching views

Import/Export Fixes

  • 🔧 Inaccurate Field Type Detection - Optimized Excel column type inference algorithm, reduced misjudgment (especially boundary cases between number vs text, date vs text)
  • 🔧 Multi-select Options Missing - Fixed issue where some multi-select options were not extracted during import (enhanced separator detection)
  • 🔧 Import Progress Lagging - Optimized UI update frequency for large data imports (changed from per-row to every 100 rows)
  • 🔧 Export File Garbled - Fixed garbled Chinese filenames and content in certain browsers (forced UTF-8 BOM)
  • 🔧 CSV Export Quote Handling - Fixed CSV format corruption when field values contain commas/newlines/quotes

Collaboration Fixes

  • 🔧 Offline Queue Overflow - Fixed queue crash when offline operations exceeded 100 (auto-cleanup of oldest records)
  • 🔧 Conflict Dialog Persistence - Fixed dialog remaining after clicking "Discard" or "Overwrite"
  • 🔧 Cell Lock Deadlock - Fixed permanent lock after user unexpected disconnect (30s timeout auto-release)
  • 🔧 View Sync Latency - Optimized push delay when other users switch views (<100ms)

UI/UX Fixes

  • 🔧 Sidebar Tooltip Not Showing - Fixed missing hover hints on some buttons (z-index layer correction)
  • 🔧 Field Drag-sort Jumping - Fixed sudden position jump when dragging fields (position calculation algorithm optimization)
  • 🔧 Group Collapse State Loss - Fixed group expand/collapse state reset after page refresh (persisted to localStorage)
  • 🔧 Form Submit Button Style - Fixed invisible submit button under certain themes (z-index + color fix)

v1.1.0 (2026-04-18)

New Features & Improvements

🚀 Real-time Collaboration

  • WebSocket Real-time Sync - Real-time data synchronization based on WebSocket, supporting multi-user simultaneous editing
  • Collaboration Status Display - Shows information about users currently editing
  • User Name Field - Support for displaying collaborator's real names

📧 Email Service System

  • Complete Email Module - Fully implemented email service functionality
  • Email Queue Service - Asynchronous email sending for improved system responsiveness
  • Password Recovery - Password reset via email
  • Change Password - Users can change password in settings

🔒 Security Enhancements

  • XSS Protection - HTML sanitization using DOMPurify to prevent XSS attacks
  • Security Headers - Added X-Content-Type-Options, X-Frame-Options, X-XSS-Protection security headers
  • API Rate Limiting - Prevent brute force attacks and malicious requests, returns 429 status code when exceeded
  • File Upload Security - Enhanced Magic Number and MIME Type validation, removed SVG and other high-risk file types
  • Exception Information Security - Unified exception handling to prevent internal error information leakage
  • Production Log Security - Automatic removal of console.log in production to prevent sensitive information leakage

🎨 UI/UX Improvements

  • Sidebar Hover Menu - Floating secondary menu in collapsed state
  • Base Duplication - One-click base duplication
  • CAPTCHA Feature - Added CAPTCHA verification for login and registration
  • Rating Field - New rating field type support
  • Date Formatting - Date field values support formatted display

🐳 Deployment Support

  • Docker Deployment - Complete Docker deployment configuration and documentation
  • Remote Access - Development server supports remote access

🔧 Improvements

  • Optimized record detail drawer bottom button layout
  • Optimized template synchronization process
  • Optimized error handling mechanism
  • Improved cascade deletion logic for base data

Bug Fixes

  • Fixed dashboard configuration page refresh error
  • Fixed frontend memory leak issues (multiple component event listeners not cleaned up)
  • Fixed password reset route validation bypass issue
  • Fixed incorrect HTTP method for unstar API
  • Fixed SQLAlchemy config change detection issue
  • Fixed timezone issues, unified UTC time usage
  • Fixed frontend security vulnerabilities
  • Fixed form validation error handling and reset logic

v1.0.0 (2026-04-13)

New Features & Improvements

Core Features

  • Multi-dimensional Table Management - Create and manage multiple data tables with custom field types
  • Multiple Field Types - Support for 15+ field types including text, number, date, single select, multi-select, attachment, link, rating, progress, and more
  • Data Views - Support for grid view, kanban view, form view, and other data presentation methods
  • Data Relationships - Support for relationships between tables, enabling data linkage

Form Sharing Features

  • Public Form Sharing - Share table data as forms for external users to fill out
  • Anonymous Submission Support - Support for data submission without login
  • CAPTCHA Protection - Form sharing supports CAPTCHA verification to prevent malicious submissions
  • Custom Configuration - Configurable sharing expiration, submission limits, and more

User & Permissions

  • User Authentication - Support for email registration, login, and password modification
  • JWT Tokens - Secure authentication mechanism based on JWT
  • Permission Control - Fine-grained data access permission control

Security Features

  • CAPTCHA Mechanism - Login, registration, and form submission all support CAPTCHA verification
  • Rate Limiting - Prevent brute force attacks and malicious requests
  • Password Security - Passwords encrypted using bcrypt
  • SQL Injection Protection - Use ORM to prevent SQL injection attacks
  • XSS Protection - Input validation and output escaping to prevent XSS attacks

Bug Fixes

🐛 Known Issues

  • None

Released under the MIT License.