๐ Update Log (2026-01-26)
This page records the update history of Rabetbase documentation.
2026-01-26โ
Lovrabet SDKโ
-
โจ New Model Alias Configuration Documentation - Detailed guide on human-friendly model access
Core Features:
- Use aliases instead of complex datasetCode to access datasets
- CLI auto-generates configuration, no manual writing needed
- Complete TypeScript type support
Access Method Comparison:
// Using alias (Recommended) - Clear and readable
const orders = await client.models.orders.filter();
const customers = await client.models.customers.filter();
// Using datasetCode - Less readable
const orders = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter();CLI Auto-generation:
lovrabet api pullGenerated configuration includes:
datasetCode- Dataset unique identifiertableName- Database table namealias- Human-friendly alias (camelCase format)
-
๐ BFF API Documentation Release - Complete BFF API usage guide
BFF (Backend For Frontend) API is supported from v1.3.0:
// Call backend function
const result = await client.bff.execute({
scriptName: 'calculatePrice',
params: { productId: '123', quantity: 10 }
});๐ BFF API Reference
-
๐ Syntax Sugar Documentation Release - Complete guide for safe and sqlSafe
Version Requirements:
safefunction: v1.3.0+sqlSafefunction: v1.3.0+
Simplified error handling:
import { safe, sqlSafe } from "@lovrabet/sdk";
// safe - Regular API
const { data, error } = await safe(() => client.models.users.filter());
if (!error) {
console.log(data);
}
// sqlSafe - SQL queries
const { data, error } = await sqlSafe(() =>
client.sql.execute({ sqlCode: "xxx" })
);
if (!error) {
console.log(`Found ${data.length} records`);
data.forEach(row => console.log(row));
} -
๐ SQL API Change Note - Recommend using new namespace approach
From v1.1.19, it's recommended to use
client.sql.execute()instead of the oldclient.api.executeSql():// โ Recommended: Use client.sql namespace
const data = await client.sql.execute({
sqlCode: "fc8e7777-06e3847d",
params: { userId: "123" }
});
// โ ๏ธ Compatible: Old method still works
const data = await client.api.executeSql("fc8e7777-06e3847d", {
userId: "123"
});๐ SQL API Usage Guide
Lovrabet Toolchainโ
-
๐ค AI Vibe Coding System - CLI, SDK, MCP trinity, fully empowering AI-assisted development
Three Core Tools:
Tool Core Features User Value Lovrabet CLI Project initialization, code generation, menu sync, AI integration One-click completion of tedious configuration, saving 80% initialization time Lovrabet SDK TypeScript SDK with CRUD, Filter, SQL, BFF four major APIs Type-safe data access, reducing 60% interface debugging time Lovrabet MCP AI IDE dataset access capability, automatic code generation AI directly understands business models, code generation accuracy 90%+ ๐ง Lovrabet CLI (v1.2.5+) - Development Efficiency Multiplier
# Project initialization
lovrabet init # Quick appCode configuration
lovrabet api pull # Auto-generate SDK config (api.ts)
# AI integration (New)
lovrabet mcp install --cursor # Configure Cursor MCP
lovrabet skill install --cursor # Install development standards Skill
# Menu management
lovrabet menu sync # Sync local pages to platform menuUser Value:
- โก Quick Start: New project configured in 5 minutes, not 1 hour of manual setup
- ๐ฏ Zero Configuration Errors: Auto-generated config files, avoiding appCode, datasetCode typos
- ๐ Auto Sync: One-click menu sync, no need to manually create on platform
- ๐ค AI Ready: One-click install MCP and Skill, AI immediately understands project structure
๐ฆ Lovrabet SDK (v1.3.0+) - Type-Safe Data Access Layer
// CRUD operations
const users = await client.models.users.filter({ status: 'active' });
const user = await client.models.users.create({ name: 'Alice' });
// Advanced queries (Filter API)
const result = await client.models.orders.filter({
where: { amount: { $gte: 100, $lte: 500 } },
select: ['id', 'amount', 'status'],
orderBy: [{ createTime: 'desc' }]
});
// Custom SQL (SQL API)
const stats = await client.sql.execute({
sqlCode: 'user-stats',
params: { startDate: '2025-01-01' }
});
// Backend functions (BFF API)
const price = await client.bff.execute({
scriptName: 'calculatePrice',
params: { productId: '123', quantity: 10 }
});User Value:
- ๐ก๏ธ Type Safety: TypeScript hints throughout, catching 90% of errors at compile time
- ๐ Development Speed: Unified API style, no need to memorize multiple interface specifications
- ๐จ Flexible Queries: Filter API supports complex conditions, no need to write SQL
- ๐ Business Decoupling: BFF API encapsulates complex logic, frontend focuses on UI
๐ง Lovrabet MCP - AI's Dataset Knowledge Base
Enables AI IDEs (Cursor, Claude Code, Windsurf) to:
- ๐ Understand Data Models: Direct access to dataset fields, types, enum values, relationships
- ๐ค Generate Accurate Code: Generate SDK call code based on real metadata, 100% correct field names
- ๐ Smart SQL Creation: 5-step workflow (validateโconfirmโsaveโtestโgenerate), preventing SQL errors
- ๐ Follow Standards: Skill guides AI to follow project development standards (API usage, UI standards, error handling)
Lovrabet Skill Six Modules:
Module Features Technical Value Business Value TypeScript SDK Usage Complete Filter, SQL, BFF usage Reduce API misuse Lower 30% debugging time MCP SQL Workflow Mandatory validation process Prevent SQL errors Avoid production data issues AntD UI Standards Avoid "AI-flavored" code Unified UI style Reduce UI rework API Integration Guide Standardized call patterns Improve stability Shorten 50% integration time Menu Management Automated sync Avoid configuration errors Improve ops efficiency BFF Script Standards Best practices Improve maintainability Reduce technical debt Supported AI IDEs:
- Cursor (
.cursorrules+.cursor/skills/) - Windsurf (
.windsurf/workflows/) - Claude Code (
.claude/skills/) - Codex, OpenCode, Qoder, CodeBuddy, Trae
Overall Business Value:
- ๐ Development Efficiency Increased 3-5x: AI auto-generates code, reducing 60-80% repetitive work
- ๐ฏ Learning Cost Reduced 70%: New developers onboard in 1 day, no need to deeply learn all APIs
- ๐ก๏ธ Error Rate Decreased 80%: AI follows standards, avoiding common errors (SQL injection, field typos, etc.)
- โก Delivery Cycle Shortened 40%: From requirements to launch, development time significantly compressed
- ๐ Code Quality Improved: Unified style, smoother team collaboration, more efficient code reviews
๐ CLI Command Reference | SDK Quick Start | MCP Configuration Guide
-
๐ Skill Installation Directory Correction - Cursor skills install to
.cursor/skills/not.cursor/commands/Correct File Structure:
your-project/
โโโ .cursorrules # Cursor general rules
โโโ .cursor/
โ โโโ skills/ # Cursor skills โ
โโโ .windsurf/
โ โโโ workflows/ # Windsurf workflows
โโโ .claude/
โ โโโ skills/ # Claude Code skills
โโโ .lovrabet/
โโโ skill/ # Shared guidesInstallation Command:
lovrabet skill install --cursor
Documentation Internationalizationโ
-
๐ Completed English Translation - All new and updated documentation synchronized to English version
New English Documentation:
- Model Alias Configuration
- BFF API Reference
- Syntax Sugar
- Skill Installation
Updated English Documentation:
- API Usage Guide - Added BFF API and SQL API change notes
- All version numbers corrected to v1.3.0
Access English Version:
- Visit
/en/path in browser - Or use language switcher in top right corner
2026-01-02โ
Lovrabet SDKโ
-
๐ค AI-Friendly Error Handling - v1.2.5 enhanced
LovrabetError, addeddescriptionfieldOptimized error messages for AI Coding scenarios, helping LLMs understand error causes and provide fix suggestions:
try {
await client.models.users.create({ invalid_field: 'value' });
} catch (error) {
if (error instanceof LovrabetError) {
console.log(error.message); // "Column invalid_field does not exist"
console.log(error.code); // "SERVER_ERROR"
console.log(error.description);
// "Server returned error: Column invalid_field does not exist. Error type: Parameter error. Status code: 400.
// Suggestion: Field "invalid_field" does not exist, please check if the field name is spelled correctly;
// Use MCP tool to get the correct field list for the dataset"
}
}Covered Error Types:
MODEL_NOT_FOUND- Model does not exist, provides available model listCONFIG_NOT_FOUND- Configuration does not exist, provides registered configuration listSERVER_ERROR- Server parameter error, provides field fix suggestions401 Insufficient permissions- Login expired/appCode unauthorized/HTTPS/CORS and other suggestionsTIMEOUT- Request timeout, provides timeout configuration suggestions
2025-12-29 ๐ v1.2.0 Major Releaseโ
Lovrabet SDK v1.2.0โ
-
โจ Model Access Method Upgrade - Supports standard and alias methods
// Standard method (Recommended) - Uses dataset_ prefix + datasetCode
// Globally unique, convenient for AI tool code generation
const users = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter();
// Alias method (Syntactic sugar) - Uses configured alias
// Convenient for human reading, functionally identical to standard method
const users = await client.models.users.filter();Alias is just a pointer, internally still uses datasetCode for access, all features are the same as standard method.
-
โจ Configuration Structure Redesign - Optimized for AI invocation, redesigned
registerModelsfunction parameter structureregisterModels({
appCode: "your-app-code",
models: [
{
datasetCode: "8d2dcbae08b54bdd84c00be558ed48df",
tableName: "users",
alias: "users", // Optional: Model alias, syntactic sugar
name: "User Table", // Optional: UI display name
},
],
});New structure is centered on datasetCode as the core identifier, more AI-friendly, generated code is more standardized.
-
โจ Model Manager Enhancement - Added multiple management methods
// Get all model details
const details = client.getModelListDetails();
// Returns: [{ datasetCode: '8d2dcbae08b54bdd84c00be558ed48df', alias: 'users', name: 'User Table' }, ...]
// Dynamically add model
client.addModel({
datasetCode: 'f7e6d5c4b3a2901234567890fedcba98',
tableName: 'products',
alias: 'products'
}); -
โ Fully Backward Compatible - All existing code runs without modification
Lovrabet CLI v1.2.0โ
-
โจ SDK Version Compatibility Check - Automatically detects
@lovrabet/sdkversion in the project at startup- Displays yellow warning to upgrade if version below 1.2.0 is detected
- Ensures access to latest features like model aliases
-
โจ API Configuration Structure Optimization - Generated configuration is more AI-friendly, supports model aliases
// api.ts generated by v1.2.0+
export const LOVRABET_MODELS_CONFIG = {
appCode: 'my-app',
models: [
{
datasetCode: '8d2dcbae08b54bdd84c00be558ed48df',
tableName: 'users',
alias: 'users', // Model alias, convenient for code reading
name: 'User Management', // UI display name
},
],
} as const;
Lovrabet MCP v1.2.0โ
-
โก Significant Performance and Stability Improvements - Full upgrade of underlying architecture, faster response, more stable operation
-
โจ Further Reduction of AI Hallucinations - Provides more precise field metadata (database type, length, auto-increment, etc.), helping AI generate more accurate code
-
โจ SDK/CLI Version Compatibility Guidance - Generated code automatically prompts SDK version requirements, guiding users to upgrade to 1.2.0+ to use new features like alias access
2025-12-03โ
Lovrabet SDKโ
-
โจ New Excel Export Feature - v1.1.24 supports exporting datasets to Excel files
Export data quickly with
excelExport()method:// Export all data
const fileUrl = await client.models.users.excelExport();
window.open(fileUrl, '_blank');
// Export with filter conditions
const fileUrl = await client.models.users.excelExport({
status: 'active',
createTime: '2025-01-01'
});Core Features:
- Returns downloadable file URL (OSS address)
- Supports passing filter conditions (
ListParams) - Direct use of
window.open()to open download - Only WebAPI mode (Cookie authentication) supported
2025-11-21โ
Lovrabet SDKโ
-
โจ Filter API Supports OpenAPI Mode - v1.1.22 extends filter() to full mode support
Starting from v1.1.22,
filter()method supports both OpenAPI mode and WebAPI mode:// Using filter in OpenAPI mode
const client = createClient({
appCode: "your-app-code",
accessKey: process.env.LOVRABET_ACCESS_KEY,
models: { users: { tableName: "users", datasetCode: "ds-001" } },
});
const result = await client.models.users.filter({
where: {
$and: [
{ age: { $gte: 18, $lte: 45 } },
{ country: { $in: ["China", "United States"] } },
],
},
select: ["id", "name", "age"],
orderBy: [{ createTime: "desc" }],
currentPage: 1,
pageSize: 20,
});Updates:
- OpenAPI mode now supports
filter()advanced filtering queries - Maintains consistent API interface with WebAPI mode
- Supports all conditional operators and logical combinations
- OpenAPI mode now supports
2025-11-15โ
Lovrabet SDKโ
-
โจ New Filter API Advanced Filtering Query - v1.1.21 supports more powerful data filtering capabilities
Perform complex conditional queries via
client.models.xxx.filter()method:// Range query + fuzzy search + field filtering
const users = await client.models.users.filter({
where: {
age: { $gte: 18, $lte: 35 }, // Age 18-35
username: { $contain: 'john' }, // Username contains john
status: { $in: ['active', 'pending'] } // Status is active or pending
},
fields: ['id', 'username', 'age'], // Only return these fields
sortList: [{ createTime: 'desc' }],
pageSize: 20
});Core Advantages:
- Supports range queries (
$gte,$lte) - Supports fuzzy matching (
$contain,$startWith,$endWith) - Supports set operations (
$in,$ne) - Supports complex logic (
$and,$or) - Supports field filtering, reducing data transfer
Use Cases:
- Complex data filtering and search features
- Multi-condition combined queries
- Advanced data analysis and reporting
- Supports range queries (
2025-11-11โ
Lovrabet SDKโ
-
โจ New SQL API Support - v1.1.19 supports executing custom SQL queries
Execute custom SQL configured on the platform via
client.api.executeSql()method:// Execute SQL query
const data = await client.api.executeSql("fc8e7777-06e3847d");
// Application layer checks execution results
if (data.execSuccess && data.execResult) {
data.execResult.forEach((row) => {
console.log(row);
});
}Core Features:
- Supports parameterized queries, preventing SQL injection
- Complete TypeScript type support
Use Cases:
- Complex data statistics and aggregation queries
- Cross-table relational queries
- Custom report data retrieval
- Flexible data analysis needs
๐ Detailed Usage Guide
2025-11-04โ
Lovrabet CLIโ
-
โจ New Menu Sync Command - v1.1.15 added
lovrabet menu syncAfter completing new page development, sync to Lovrabet platform with one command, automatically create menus:
lovrabet menu syncCore Features:
- Automatically scan local
src/pagesdirectory, compare with platform menus - Visualize differences (green โ exists, red โ not created)
- Batch create missing menus
- Support configuring JS/CSS CDN links
- Real-time URL format and reachability validation
Use Cases:
- Sync to platform after developing new pages
- Batch manage multiple page menus
- Ensure local and platform consistency
๐ Detailed Usage Guide
- Automatically scan local
2025-10-25โ
OpenAPI Documentationโ
- ๐ Fix terminology and example inconsistencies
- Unified
datasetIdโdatasetCodeacross the board - Unified environment variable name to
LOVRABET_DATASET_CODE
- Unified
- ๐จ Optimize list return structure description
- Clarified
filterreturns includepaging/tableData/tableColumns - Aligned examples with descriptions, ready for direct copy and run
- Clarified
Lovrabet CLIโ
- ๐ Proofread command documentation
- Confirmed and supplemented
lovrabet api docand--datasetcode,--paramsoption descriptions (aligned with implementation)
- Confirmed and supplemented
Lovrabet SDKโ
- ๐ README example alignment
- Unified examples to use
datasetCode - Supplemented
filterreturn structure reading examples (readingpagingandtableColumns)
- Unified examples to use
2025-10-18โ
Lovrabet SDKโ
-
โจ New Select Options Interface - v1.1.18 supports quick retrieval of form option data
-
Added
getSelectOptions()method for getting dropdown options from data tables -
Returns standardized
{ label, value }format, directly applicable to frontend components -
Automatically maps data table fields to option data
-
Suitable for Select, Radio, Checkbox, and other form components
-
Only WebAPI mode (Cookie authentication) supported
-
Example:
// Get select options
const options = await client.models.users.getSelectOptions({
code: "user_id", // Field name used for option value
label: "user_name", // Field name used for display text
});
// Return format:
// [
// { label: 'Zhang San', value: 'user001' },
// { label: 'Li Si', value: 'user002' }
// ]
// Use in React
<Select>
{options.map((option) => (
<Option key={option.value} value={option.value}>
{option.label}
</Option>
))}
</Select>;
-
-
๐ New Type Definitions - v1.1.17
SelectOptioninterface:{ label: string, value: string }SelectOptionsParamsinterface:{ code: string, label: string }
-
โ ๏ธ Clarified OpenAPI Mode Limitations - v1.1.18
- OpenAPI mode does not currently support
delete()operation - OpenAPI mode does not currently support
getSelectOptions()operation - If you need these features, please use WebAPI mode (Cookie authentication) or develop custom API interfaces
- OpenAPI mode does not currently support
Lovrabet CLIโ
-
๐จ Optimized Naming Convention - v1.1.13 improved code generation standards
- Dataset name generation uses camelCase naming (lowercase first letter)
- Conforms to JavaScript/TypeScript variable naming conventions
- Examples:
order_itemstable โ generatesorderItemsmodel (notOrderItems)user_profiletable โ generatesuserProfilemodel (notUserProfile)
- Ensures consistent style of generated code, improves code readability
-
๐ง Code Generation Optimization - v1.1.13
- Simplified model configuration generation logic
- Improved code generation performance and maintainability
2025-10-17โ
Lovrabet CLIโ
-
โจ New
lovrabet initCommand - v1.1.12 supports quick initialization configuration for existing projects-
Add Lovrabet configuration support to existing projects
-
Interactive appcode input with real-time format validation
-
Automatically detect and prevent overwriting existing configuration files
-
Inherit global configuration, no need to repeat settings
-
Configuration file includes creation time and CLI version information
-
Usage example:
# Interactive initialization
lovrabet init
# Directly specify appcode
lovrabet init --appcode my-app-code
-
-
โจ Enhanced
lovrabet api doc- v1.1.12 supports on-demand generation and custom parameters-
Added
--datasetcodeparameter: specify dataset to generate documentation -
Supports multiple datasets (comma-separated)
-
Intelligent validation: automatically checks if specified dataset codes exist
-
Statistical feedback: shows number of matched datasets and invalid codes
-
Supports passing JSON format additional parameters via
--paramsparameter -
Usage example:
# Generate documentation for all datasets
lovrabet api doc
# Generate documentation only for specified dataset
lovrabet api doc --datasetcode ds_001
# Generate documentation for multiple specified datasets
lovrabet api doc --datasetcode ds_001,ds_002,ds_003
# Pass additional parameters
lovrabet api doc --params '{"customField": "value"}'
-
-
๐ Optimized File Naming Strategy - v1.1.12 improved filename uniqueness
- Extended short code from 4 to 6 digits
- Reduced possibility of filename conflicts
2025-10-16โ
Lovrabet SDKโ
-
โจ New List Sorting Feature - v1.1.16 supports multi-field combined sorting
-
Use
SortOrderenum to control ascending/descending order -
Supports multi-field priority sorting
-
Compatible with both OpenAPI and WebAPI modes
-
Example:
import { SortOrder } from "@lovrabet/sdk";
const users = await client.models.users.filter(
{ currentPage: 1, pageSize: 20 },
[
{ priority: SortOrder.DESC }, // Priority descending
{ createTime: SortOrder.DESC }, // Create time descending
{ name: SortOrder.ASC }, // Name ascending
]
);
-
-
๐ง ModelConfig Interface Enhancement - Added optional
namefield, improved configuration flexibility -
๐ Debug Feature Optimization - v1.1.14 added debug logging feature
- Supports outputting complete HTTP request details (URL, Headers, Body)
- Enable via
options.debug: true - Convenient for troubleshooting API call issues
Lovrabet CLIโ
-
โจ Dataset Management Optimization - v1.1.10 comprehensively improved data management capabilities
- Intelligent deduplication mechanism: automatically identify and remove duplicate datasets
- Optimized SDK data retrieval page templates, streamlined UI components
- Enhanced table data processing capabilities, improved performance
-
๐ API Documentation Generation - Added automatic API documentation generation feature
- Automatically generate API usage documentation from datasets
- Provide complete interface descriptions and example code
- Support custom documentation templates
-
๐ Log System Enhancement - CLI log tracking capabilities fully upgraded
- Full process tracking of command execution
- Enhanced error localization capabilities
- Support log level filtering
-
๐ฏ User Experience Optimization
- Improved API configuration management workflow
- Optimized interactive prompts
- Improved command response speed
2025-10-12โ
Java OpenSDKโ
-
โจ New Complete Java OpenSDK documentation system
- ๐ Quick Start - Complete your first CRUD program in 5 minutes
- ๐ Core Concepts - SDK working principles and authentication mechanism explained in detail
- ๐ API Reference - Complete interface documentation and parameter descriptions
- ๐ก Business Examples - 5 complete implementations of real scenarios (customer management, order sync, data dashboard, data middle platform, scheduled tasks)
- ๐ Best Practices - Production environment deployment and performance optimization guide
- โ FAQ - Covers troubleshooting for installation, configuration, and full development workflow
-
๐จ Optimized Documentation structure
- Adjusted menu order, arranged by learning path (Quick Start โ Core Concepts โ Examples โ Best Practices โ API Reference โ FAQ)
- API Reference moved to end of menu, convenient for quick reference after getting started
Documentation Experience Optimizationโ
-
๐ Fixed Code block syntax highlighting issues
- Support for Java, Gradle, YAML, Bash, and other languages
- Added correct language identifiers for all code examples
-
๐จ Optimized Single document mode display
- Fixed page width limitation issue in single document mode
- Implemented responsive design, adaptive margins for different screen sizes (compressed margins on small screens, comfortable reading width on large screens)
Content Completionโ
- ๐ Updated Rabetbase introduction
- Supplemented OpenAPI current status description (beta phase, data query function only)
- Supplemented Java OpenSDK complete feature description (supports complete CRUD operations)
- Added quick start guide, categorized by tech stack (frontend developers, backend developers)
- Added technology selection comparison table to help developers choose appropriate solutions
Usage Instructionsโ
This update log follows the following format:
- โจ New - Brand new feature or documentation section
- ๐จ Optimized - Improved expression or structure of existing content
- ๐ Fixed - Corrected errors or issues in documentation
- ๐ Completed / Updated - Supplemented or enriched existing content
- ๐ Security - Security-related updates
- โก Performance - Performance optimization-related updates
- ๐ Example - Added or updated code examples
- ๐ ๏ธ Tools - Development tools or auxiliary function-related
- ๐ Documentation - Documentation-related improvements