Rabetbase CLI Changelog
v2.5.2-beta.1 (2026-09-01)
Highlights
- Deployment sync targets are now managed server-side:
bff pushandsql pushnow silently submit thedevsync intent by default, and the deployment target is resolved from the server-side appCode allowlist; the CLI no longer queries or configures database IDs.
v2.5.1 (2026-08-31)
Highlights
- Partial deployment metadata sync: new
deployment synccommand partially syncsdataset/bff/sqldevelopment metadata by database connection, target schema, resource type, and business code, with dry-run, explicit confirmation, per-item results, and protection for inconclusive outcomes. - Standalone deployment target config: app profiles can configure independent
dev/test/predeployment targets; successfulbff pushandsql pushonly run post-sync for the actual changes in this run, dry-run shows the full plan, and failures preserve the main push result. - Deleted-field restore: new
dataset user-deleted-field-listand single-fielddataset field-restoreprecisely locate fields via user-deletion tombstones, confirm results with the server-side restore count plus a double read-back, and never implicitly sync related pages. - Agent context rules management: new
rule list/get/setmanages the mutually exclusiveRULES.md(for page/API development Agents, excluding the DB Agent) andDATABASE.md(for the DB Agent during database analysis), with safe metadata output, UTF-8 / 5 MiB validation, dry-run, and precise post-write read-back; aDATABASE.mdstructure template is included. - Unified knowledge retrieval gateway:
kb searchnow calls the SmartCode Java unified retrieval gateway (Cookie-only), fully preserving V2 hits, policy fingerprints, and per-stage timing while removing legacy hit fields; KB Service addresses are managed on the Java side and the CLI resolveskbDomainuniformly. - Shared enterprise routing profile:
config init --domain-configaccepts a versioned enterprise routing profile that both the development-mode and runtime CLIs can import. - Create projects in the current directory:
project create --current-dircreates and binds an AppCode project directly in the current empty directory without polluting it on failure; the built-in Skill now guides project creation with outcome-oriented and safety-boundary instructions. - Project routing maintained independently: new
project domain-routing-syncatomically generatesrabetbase.domain-routing.jsonfrom the project's final config without requiring login or AppCode;api pullonly handles Dataset/API and SDK client files. - SDK rebuild:
api pull --force --yescan rebuild the SDK TypeScript files from the latest Dataset facts when you explicitly give up local customizations. - Intuitive CDN routing: public project routing uses
cdn.librariesandcdn.lovrabet— AliCDN for third-party libraries in China mainland, cdnjs for ID and Global, and explicit values from the shared profile for standalone deployments; project templates upgrade to 2.6.3 and compose third-party library paths from full CDN base addresses. - Hardened React project template: the minimum SDK version is raised to
1.5.3(with ID routing support), type-check scripts, JSX transforms, and route module declarations are added so a new project passes type check and build out of the box, and app-management links plus fallback Runtime request addresses are generated per project config. - Fail fast on invalid region configs: invalid country/region configs no longer silently fall back to the China mainland node; business commands stop before making requests, while
doctorandconfigremain available for diagnosis and repair. - Fixed recovery commands generated by auto deployment sync to keep only the failed codes from this push's original request, preventing abnormal responses from widening the manual recovery scope.
Compatibility changes to note
- Behavior change:
dataset business-group-updateDB_TABLE writes are upgraded to the table business-group API; METADATA can be cleared withungrouped, while DB_TABLE only accepts a non-empty group and rejects clear requests before writing; ungrouped is uniformly displayed asungrouped.
v2.5.0 (2026-08-25)
Highlights
- Three official nodes and unified routing: official nodes expand to China mainland, ID, and Global; the CLI, auth callbacks, and project templates all resolve the final domain from the Routing Profile.
- Regionalized project templates: the React template picks the ID or China mainland development domain and HTTPS certificate per the
regionin.rabetbase.json, applied to both HMR and preview, and loads the matchingbase-info.jsper country/region or explicit User Domain. - SDK routing config generation for projects:
project createandapi pullwrite only non-defaultregionorruntimeDomainvalues safely into the frontend project. - Backend Function semantic resource access: SQL code generation and built-in guidance access DB_TABLE datasets via semantic SQL names and physical table names by default.
- React project template update: synced to the latest English source of truth, adds an interactive
@lovrabet/componentsexample page with copyable snippets, and filters local analysis artifacts such as.codegraph. - Built-in Skill improvements: better command coverage, default
compressoutput conventions, and up-to-date Dataset/SQL structure notes. - Install and upgrade guidance: improved CLI install, stable and preview channel upgrades, basic verification, and Built-in Skill repair guidance.
- Fixed the
role user-resolveduplicate-name hint referencing a non-existent--userflag. - Fixed misleading update hints when the local version is higher than npm latest.
- Fixed enterprise KB requests wrongly falling back to the Runtime domain; they now follow the development-mode API domain by default.
- Fixed business-scenario groups that could not be cleared;
dataset business-group-updateaccepts the reserved valueungroupedto clear. - Fixed
page custom-listfailing to reuse the workspacedefaultAppor the only app when--appcodeis omitted. - Fixed ID-node browser login using the China mainland callback domain and certificate, which prevented querying platform apps after authentication.
Compatibility changes to note
- Development-mode data-read commands retired: real business-row queries are handed over to the runtime
lovrabet data filter/getOne; development-moderabetbase data filter/getOneno longer returns data and prints a migration hint instead — scripts relying on it need to switch. - Risk-level config drops legacy aliases: config files now use
riskLevelonly. - Database diff-query responsibilities consolidated:
db tablesaggregates all tables and analysis states through the V2 API whiledb diffqueries only the diff;--view, the redundant--changed-only, legacy label output, and compatibility aliases are removed;diff-refresh-statusreturns only the task status.
v2.5.0-beta.1 (2026-08-22)
Highlights
- Regional and standalone-deployment domain support:
auth loginnow accepts--region(cn/id/global), and standalone deployments can override the five domain types via a--domain-configfile or the corresponding--*-domainflags. - SDK routing config generation for projects:
project createandapi pullnow generate SDK routing config, writing only non-defaultregionorruntimeDomainvalues safely into the frontend project. - Semantic resource access for Backend Functions: improved Backend Function SQL code generation and built-in guidance — DB_TABLE datasets are now accessed by semantic SQL name and physical table name by default.
- Local template debugging: new
project create --template-sourceflag lets you use a local project template instead of the CDN ZIP. - React project template refresh: the React project template was updated to the latest version and now filters out local analysis artifacts such as
.codegraph. - Built-in Skill polish: improved command coverage in built-in Skills, the default
compressoutput convention, and Dataset/SQL structure documentation. role user-resolvehint fix: fixed a duplicate-name hint that referenced a nonexistent--userflag.- Update notice fix: fixed a misleading update notice that appeared when the local version was newer than the npm latest release.
Compatibility changes to note
- Dev-mode data read commands retired: real business row queries are now handled exclusively by the runtime
lovrabet data filter/getOne. The dev-moderabetbase data filter/getOneno longer returns data and instead prints a migration notice — scripts depending on the old commands must switch.
v2.4.7 (2026-08-20)
Highlights
- Company and public knowledge base search: new
rabetbase kb searchretrieves from company and public knowledge bases within the current app's scope. - Unified Backend Function terminology: aligned Backend Function naming across CLI output, user docs, and built-in Skills, which now all use the full name.
v2.4.6 (2026-08-18)
Highlights
- Bulk menu visibility updates: new
menu visibility-updatecommand adjusts visibility status in bulk by menu ID. - Unified data list page and custom page semantics: the
pagecommand suite now uses one consistent set of state semantics for data list pages and React custom pages, so delete/restore operations no longer conflict across page types. - Stricter BFF script description format: tightened description extraction rules for
bffscripts to keep malformed formats out of the description field. - Page generation status validation moved earlier:
page generate-statusselectors are now validated at the API boundary, preventing illegal queries from misreporting status. - Narrower OCR Agent routing: further narrowed the routing scope of dev-mode OCR capabilities to reduce the risk of false triggers.
Compatibility changes to note
- Breaking: data list page and custom page semantics are now unified. Scripts that determine delete/restore status by the old page type may need updating to the new page classification rules.
v2.4.5 (2026-08-15)
Highlights
- BFF security and richer detail output:
bff pulladds path-traversal protection and per-segment allowlist validation for remote fields;bff detailnow also outputsfunctionName,version, andupdateUserNameby default. - Split dev-role permissions: the
rolecommand supports fine-grained permission splits by development role, matching the server's new atomic member API contract. - Hardened database and dataset workflows: database and dataset workflows such as analysis and diff refresh add fault tolerance and consistency checks.
- Aligned Skill Node runtime requirements: the Node version required by built-in Skill installation now matches the runtime.
v2.4.4 (2026-08-13)
Highlights
- Default risk level and permission control changes: the CLI default risk level is now
write, permission control policies were updated accordingly, and database diff-refresh commands were added. - App-level notification config commands: the
notificationcommand group adds app-level create, update, and delete for notification configs. - Secure project templates from CDN:
project init(workspace init) can now pull project templates securely from the CDN. - Custom page online edit URL fixed: the online edit page URL is now uniformly
/app/<appCode>/ide/<pageId>; the daily-environment URL is unchanged. - Plain-SQL page guidance retired: guidance for the legacy plain-SQL page workflow has been removed in favor of the standardized SQL/BFF workflows.
Compatibility changes to note
- Behavior change: the CLI default risk level changed to
write. Some scenarios that were read-only by default may now require explicit confirmation or a configured risk ceiling.
v2.4.3 (2026-08-13)
Highlights
- Release manifest validation deferred: the deploy pipeline now validates the manifest at the release stage, reducing blocking during development.
- Portable release verification aligned: verification logic for cross-environment release packages is unified, so local and CI releases behave the same.
v2.4.2 (2026-08-11)
Highlights
- Custom page runtime URL fix: corrected the online runtime URL for published React custom pages, so menus and access links point to the right place.
v2.4.1 (2026-08-11)
Highlights
- Installation change: built-in Skills ship with the CLI: Rabetbase CLI moved to an npm bundled install — the companion built-in Skills are packaged into
rabetbaseand installed/refreshed via theskillsCLI proxy. - New React custom page commands: new
page react-create/react-list/react-detail/react-update/react-publishcommands create, query, update, and publish React custom pages, and output dev config plus edit and runtime URLs. - Enterprise knowledge base management: new
kbcommand group manages enterprise knowledge bases — create, update, delete, and query. - Tenant and app member lists: new
tenant members-listandapp members-list(orworkspace members-list) make it easy to view tenant/app members. - DingTalk sandbox account binding: the
user-accountcommand group now supports DingTalk sandbox environment binding. - Unified custom page validation and descriptions: Prettier is now the single tool for basic JS/JSX/TS/TSX syntax validation, and user-facing wording for custom page URLs and publish status is unified.
- Removed deprecated command entries: deprecated command aliases were cleaned up — use the
workspacecommand family going forward.
Compatibility changes to note
- Behavior change: standalone and embedded Rabetbase now allow read-only commands only by default; high-risk writes require explicit risk confirmation. Risk ceilings across config layers were tightened to prevent config drift from triggering unexpected writes.
- Behavior change: legacy aliases such as
app add/removeandproject initare deprecated and their entries removed — migrate toworkspace add/remove/init. - Behavior change: MR entry points are unified into the repo-level Yunxiao (Codeup) Skill; the previous repo-level MR tool binding has been removed.
v2.3.15 (2026-08-09)
Highlights
- Generic menu rename command: new
menu renamerenames any menu type by menu ID, rounding out menu operations.
v2.3.14 (2026-08-06)
Highlights
- Dev-mode OCR added: the CLI adds dev-mode OCR recognition commands and adjusts risk policies for file uploads.
- Restore deleted pages:
page restorecan restore deleted standard pages and JSX custom pages. - Unified dataset related-page counts: the related page count in dataset details is now computed from the authoritative source, eliminating duplicates and omissions.
v2.3.13 (2026-08-05)
Highlights
- External-link menu URL updates:
menu external-link-updateupdates the URL of external-link menus. - Database analysis recovery diagnostics:
dbcommands expose analysis recovery diagnostics, making interrupted or failed tasks easier to investigate. - Stronger SQL MyBatis XML validation: custom SQL now validates the MyBatis XML format and fixes a case-sensitivity issue in XML entity and character-reference parsing.
v2.3.12 (2026-08-04)
Highlights
- Stability improvements: this release focuses on internal stability and fixes, with no new customer-visible commands.
v2.3.11 (2026-08-03)
Highlights
- New menu move command:
menu movemoves a menu to a given parent or sibling position, with recursion safety checks. - Stronger menu deletion: external-link leaf nodes can now be deleted, directory-tree deletion is leaf-first, and a bulk-delete endpoint improves efficiency.
- Menus return last-update metadata: menu list/detail now return the last update time and other metadata for easier auditing and syncing.
v2.3.10 (2026-08-01)
Highlights
- External-link menu creation with audit:
menu external-link-createadds an audit flow and exposes the external-link URL as a stable fact. - Menu sync and preview aligned: sync targets are selected by local path, update preview and execution logic are consistent, and resource patches gained ambiguity checks.
- Page creation workflow aligned: menu-side page creation now matches the page commands, reducing duplicate creation and config drift.
- Dataset business group candidates: new business group candidate commands help you review available business groups before updating a dataset.
v2.3.9 (2026-07-30)
Highlights
- Menu deletion, group creation, and ownership changes: the
menucommand group supports deleting menus, creating groups, and adjusting menu ownership; the async re-grouping flow now has clearer terminal-state confirmation and lifecycle. - Stronger SQL index auditing: custom SQL supports usable partial index prefixes and adds optional JOIN index auditing.
- Numeric AppCode compatibility: the API layer now handles numeric AppCode identifiers.
- Distinct data sources in page audits:
page relation-auditdistinguishes data sources explicitly, improving audit accuracy.
v2.3.8 (2026-07-28)
Highlights
- Masked credential protection on DB updates:
db updateprotects already-masked credential fields when updating a database connection, preventing plaintext write-back and leaks. - Analysis duration estimates aligned with server: duration estimates from
db analyze-startand other analysis commands now match the server. - Issue reporting now requires auth:
issue reportrequires an authenticated login before submitting, preventing anonymous false reports.
v2.3.7 (2026-07-23)
Highlights
- Notification config discovery:
notification config-list/config-getand friends now auto-discoverconfigCode, making it easier to locate usable notification configs. - Smarter database analysis batching:
db analyze-startsupports a local analysis batch planner that groups tables by deterministic rules and estimates duration; empty and oversized lists are rejected, and canceling an analysis requires an explicit plan. - File upload and URL query commands: new
file uploadandfile query-urlupload files and fetch their access URLs.
v2.3.6 (2026-07-16)
Highlights
- Relation management by ID completed:
dataset relation-create/update/deletenow locate relations uniformly byrelationId; after create/update, facts are verified by re-reading dataset detail. Cardinality read and create contracts are unified, and target-type detection is more accurate. - Parent/child table relations and page audits:
dataset relationsexposesbizRelationType;page relation-auditwarns when the parent/childsub_infois missing.
v2.3.5 (2026-07-14)
Highlights
- New roles and permissions command groups: Rabetbase CLI adds the
roleandpermitcommand groups.rolecovers creating, updating, deleting, and member management for CUSTOM roles;permitsupports menu page permission settings, role menu grant/revoke, and revoking role API permissions by datasetCode. - Runtime app-config management: new
app-config list/get/set/deletemanages runtime app-config keys.getmasks values by default (--revealshows plaintext), andsetaccepts values from a command argument, a file,--stdin, or--from-env. cli-skill installfor built-in Skills: wrapsnpx skills add ... -g -yso Agent environments can quickly install/refresh the Skills bundled with Rabetbase CLI.- App registration moved to
workspace:rabetbase app add/removeandrabetbase project initare now hidden compatibility commands — the recommended entries arerabetbase workspace add/removeandrabetbase workspace init, which are clearer in meaning. - More dataset maintenance commands: added
dataset restore(restore deleted datasets),dataset business-group-update(business model group updates),dataset relation-create/update/delete(manage relations by ID), anddataset generate-start(text-driven async generation of DO V2 datasets). - Stabilized database analysis and BFF routing:
db analyze-startworkflow parameters and pagination semantics are stable, diff flag behavior is locked down, and the BFF ENDPOINT routing contract is unified, reducing failures across entry points.
Compatibility changes to note
- Behavior change:
rabetbase app add <name>andrabetbase app remove <name>still work but print migration notices — switch torabetbase workspace add <name>andrabetbase workspace remove <name>. - Behavior change:
rabetbase project initremains a compatibility alias forrabetbase workspace init --appcode <appcode>; new scripts should useworkspace initdirectly. - New high-risk writes: commands such as
role,permit, dataset relation/restore/business-group updates are allhigh-risk-write— dry-run by default, with--yesor--confirmrequired to execute. Add--expected-countto bulk operations to guard against drift.
v2.2.4 (2026-06-30)
Highlights
- Leaner app command surface: the dev-mode CLI no longer keeps the
rabetbase app remoteandrabetbase app usecompatibility entries. Platform app discovery is unified onrabetbase app list --remote; the default app binding for the current working directory is unified onrabetbase workspace use --app <name>. - Schema/help aligned with Skills:
rabetbase schemaandrabetbase app --helpnow expose onlylist,add, andremovefor the app commands, so AI Agents stop selecting deprecated ones. - Docs and Skills consolidated: Rabetbase Skills, command references, config references, and user guides have removed the old entry points in sync.
Compatibility changes to note
- Breaking: replace
rabetbase app remotein old scripts withrabetbase app list --remote. - Breaking: replace
rabetbase app use <name>in old scripts withrabetbase workspace use --app <name>. For one-off command overrides, keep using the global--app <name>or--appcode <code>.
v2.2.2 (2026-06-13)
Highlights
- Dataset list reflects the platform:
rabetbase dataset listreturns DO V2 datasets by default, includingDB_TABLEandMETADATA. Use--source DB_TABLEfor database-table datasets only, or--source METADATAfor metadata datasets only. - AppCode env vars no longer silently take over:
RABETBASE_APPCODE/LOVRABET_APPCODEno longer override project config automatically. To use an env var in a script, pass it explicitly:--appcode "$RABETBASE_APPCODE". - Clearer project config precedence: when a project has a default app and environment configured, the CLI uses the project config and ignores stale AppCode or environment variables in your shell.
- Less noisy upgrade notices: version notices avoid repeating themselves. To upgrade, keep using
rabetbase update; for beta versions userabetbase update --beta.
Compatibility changes to note
- Breaking: scripts still using
rabetbase dataset list --include-metadatamust switch torabetbase dataset list --source METADATA. - Breaking: scripts relying on
RABETBASE_APPCODE/LOVRABET_APPCODEautomatically acting as the business AppCode must pass--appcode "$RABETBASE_APPCODE"explicitly or write the app into.rabetbase.json. - Script note: if a script assumes
dataset listreturns onlyDB_TABLE, add--source DB_TABLEsoMETADATAdatasets don't leak into downstream SQL or schema processing.
v2.1.14-beta.1 (2026-06-02)
Highlights
- Stricter dataset write selectors: write commands such as
dataset delete,dataset field-update,dataset rename, anddataset extend-updatemust identify the target dataset explicitly, usually via--code <datasetCode>. The delete command also accepts--idor--dbid— but only one of the three at a time. - Safe dataset rename: new
rabetbase dataset rename --code <code> --name <newName> --expect-name <currentName>validates the current name before submitting the change, and supports--dry-runpreview by default. - Tighter field and extend patching:
dataset field-updateonly allows whitelisted properties — display name, description, options, required, date format, aggregation, and chart role;dataset extend-updatecurrently only opensbusinessGroup. Both support--expect-jsonagainst drift. - High-risk guard on dataset deletion:
dataset deleteis ahigh-risk-write— real deletion requires--confirm. For bulk deletes by--dbid, also pass--expected-countso the actual match range can't silently differ from your expectation.
Compatibility changes to note
- Breaking: scripts that rely on dataset write commands inferring the target from context or alias must pass
--code/--id/--dbidexplicitly. Write operations no longer accept ambiguous targets.
v2.1.14-beta.0 (2026-05-22)
Highlights
- Dataset maintenance commands enter beta:
dataset rename,dataset field-update,dataset extend-update, anddataset deleteare now available, letting delivery teams and Agents handle common dataset metadata maintenance in the terminal. - Clearer METADATA dataset dev constraints: at the time, platform metadata was viewable via extra flags; from v2.2.2 on, use
--source DB_TABLEor--source METADATAto control the dataset source. - Tighter menu resource updates:
menu updatedistinguishes--mode replacefrom--mode patchand preserves a page's existingextendconfig, so CDN resource updates don't clobber business extension config.
Fixes and improvements
- Early field patch validation:
dataset field-updaterejects unsupported or forbidden field keys before submitting, reducing vague backend errors. - Richer link dry-run output: relation dry-runs now include the resolved app and database info, making it easier to verify the target.
v2.1.13 (2026-05-21)
Highlights
- Clearer config write boundaries: when writing config inside a project, the CLI no longer merges global
apps/defaultAppresults into the project config file, reducing cross-project config bleed. - More stable menu resource updates:
rabetbase menu updatepreserves a page's existingextendconfig when updating CDN resources, so resource replacement doesn't overwrite business config. - CLI and Skill versions stay in sync: the release process now cross-checks the CLI package version against
skills/rabetbase/SKILL.md, reducing "CLI upgraded but Agent Skill still old" situations.
Compatibility changes to note
- Breaking: if your scripts relied on writing config in a project directory automatically inheriting the global app directory, switch to explicit
--globalor reinitialize the project config. - Breaking: upgrading from
v2.1.11or earlier, scripts that relied onrabetbase page generate-start --datasetcode <code>submitting the generation task directly must switch torabetbase page generate-start --datasetcode <code> --apply.
v2.1.12 (2026-05-21)
Highlights
- Safer smart list-page generation by default:
rabetbase page generate-startnow returns only a dry-run preview by default instead of submitting the task. Actual generation requires an explicit--apply— ideal for Agents and automation scripts that confirm before executing. - Issue reports no longer leak sensitive data:
rabetbase issue reporttruncates overly long descriptions and masks sensitive fragments such as Cookies, Authorization headers, AccessKeys, passwords, private keys, and JWTs. - Easier feedback on unexpected errors: platform API errors and unexpected CLI exceptions now prompt a copyable
rabetbase issue reportcommand; scripted scenarios can disable it withRABETBASE_DISABLE_ISSUE_NUDGE=1. - Traceable platform requests: CLI platform requests carry
X-Invoke-Source: cli:rabetbaseso the backend can trace the call source.
Compatibility changes to note
- Breaking: scripts that relied on
rabetbase page generate-start --datasetcode <code>submitting directly must switch torabetbase page generate-start --datasetcode <code> --apply.
v2.1.12-beta.2 (2026-05-19)
Highlights
- Safer smart list-page generation by default:
rabetbase page generate-startnow returns only a dry-run preview by default instead of submitting the task. Actual generation requires an explicit--apply— ideal for Agents and automation scripts that confirm before executing. - Issue reports no longer leak sensitive data:
rabetbase issue reporttruncates overly long descriptions and masks sensitive fragments such as Cookies, Authorization headers, AccessKeys, passwords, private keys, and JWTs. - Easier feedback on unexpected errors: platform API errors and unexpected CLI exceptions now prompt a copyable
rabetbase issue reportcommand; scripted scenarios can disable it withRABETBASE_DISABLE_ISSUE_NUDGE=1. - Traceable platform requests: CLI platform requests carry
X-Invoke-Source: cli:rabetbaseso the backend can trace the call source.
Compatibility changes to note
- Breaking: scripts that relied on
rabetbase page generate-start --datasetcode <code>submitting directly must switch torabetbase page generate-start --datasetcode <code> --apply.
v2.1.6 (2026-04-21)
Highlights
- The
--jqinstall path is now rock solid: the CLI bundles a jq sidecar, so installation no longer depends onnode-jqdownloading a binary from GitHub. Lookup order isJQ_PATH→ bundled jq → jq onPATH— much friendlier for networks in China, offline mirrors, and CI. - Query real data straight from the dev CLI: new
rabetbase data filterandrabetbase data getOnelet developers confirm real records and response shapes in a dataset without switching to the runtime CLI. - Machine-readable contracts updated in sync:
rabetbase schema/--helpnow expose the newdataservice and jq behavior descriptions, so AI Agents, scripts, and docs align on the same command surface.
Fixes and improvements
- More predictable JQ override behavior: if
JQ_PATHis set but invalid, the CLI fails loudly instead of silently falling back to another jq. - Smaller installation failure surface: a blocked external binary download no longer fails the whole CLI install.
v2.1.5 (2026-04-17)
Highlights
- A consistent install experience: the Skill install command is now identical across docs, scaffolding, upgrade flows, and CLI output — no more "one spelling here, another there".
- Fewer surprises following the docs: if this is your first install or you're writing onboarding notes for a teammate, this release removes the confusion caused by inconsistent command examples.
v2.1.4 (2026-04-17)
Highlights
- Quieter
sql pull: runningsql pullno longer floods you with irrelevant file changes just because a sync timestamp moved. - You're prompted only when something really changed: behavior now matches expectations — downstream processing triggers only when the SQL content itself changes.
v2.1.3 (2026-04-17)
Highlights
v2.1.3-beta.0features are now stable: if you were trying out page generation, SQL lifecycle management, menu sync, or version policies, this release marks them as production-ready.
v2.1.3-beta.0 (2026-04-16)
Highlights
- Standard page generation scales to big jobs: page generation moved to an async workflow — long runs no longer block, which suits AI Agents, automation pipelines, and multi-person collaboration.
- More complete local SQL management: create, sync, and track SQL state locally as a first-class workflow instead of one-off scripts.
- Unified BFF/SQL commands: creation commands converge on
createsemantics — easier to learn and more intuitive. - Menu sync results feed downstream flows: sync results are now shaped for automated post-processing.
- Clearer upgrade strategy: the CLI supports explicit version notices and upgrade policies, reducing "I upgraded but got the wrong version" situations.
Fixes and improvements
- Fewer failures from inconsistent API responses: the CLI is more resilient to backend response formats for BFF, menus, SQL, and database connections.
- More predictable upgrades:
cli updateno longer installs "a version you didn't ask for".
v2.1.2 (2026-04-14)
Highlights
v2.1.2-betafeatures are officially stable: if you were trying the new config system, multi-app rules, or database connection compatibility fixes, this release is a safe landing version.
v2.1.2-beta.3 (2026-04-14)
Highlights
- A pre-release lockdown version: few user-visible changes — mostly cleaning up so the upcoming stable release is cleaner and more solid.
v2.1.2-beta.2 (2026-04-14)
Highlights
- More reliable database connection creation: if you ever hit "the connection was created but the CLI couldn't fetch the result", this release fixes that class of compatibility issues.
- Smoother follow-up actions: after a database connection is created, subsequent steps such as automatic analysis connect more reliably.
v2.1.2-beta.1 (2026-04-12)
Highlights
- Beta verification release: mainly to consolidate and verify the big
v2.1.2-beta.0changes; no new user features.
v2.1.2-beta.0 (2026-04-12)
Highlights
- A much clearer multi-app experience: the relationships between default app, project config, and global config are easier to understand — and much harder to connect to the wrong app.
- More natural legacy project migration: many legacy configs normalize into the new structure at read time, so you don't have to clean them up by hand first.
- A more useful
doctor: it now shows the final effective config, making config issues much easier to diagnose. - More consistent command naming: names like
app remoteandapi generatenow match user intuition, reducing "what does this command even do" moments.
Fixes and improvements
- Fixed wrong default app selection: especially when a project already has config, the global default app no longer mysteriously overrides it.
- Fixed app-switch ambiguity in multi-app setups:
app usenow behaves as users expect.
v2.1.1 (2026-04-09)
Highlights
- More accurate BFF template examples: ENDPOINT-type API path examples now match the current platform convention, so new scripts work out of the box.
v2.1.1-beta.0 (2026-04-09)
v2.1.1-beta.0is a key starting point for the2.1.xseries: database connection capabilities took shape, and the config and multi-app experience began to converge noticeably.
Highlights
- Database connections become truly usable: manage database connections, test them, kick off schema analysis, and inspect tables and diffs — all from the CLI.
- Friendlier default output: commands like
api listnow render in a human-readable layout when no format is specified. - Clearer multi-app and config boundaries: the relationships between project config, global config, and the default app started to converge, reducing misoperations.
- Better Skill support: if you wire the CLI into an AI assistant or Agent, this version feels noticeably smoother.
Fixes and improvements
- Lower risk of accidental config writes: the CLI no longer silently writes an unwanted config file when run in an unsuitable directory.
- Fixed default app resolution errors: single-app legacy configs no longer wrongly apply the global default app.
v2.0.13 (2026-04-06)
New features
sql pullcommand: newrabetbase sql pullbulk-pulls custom SQL from the remote into.rabetbase/sql/. Supports--sqlcode/--namefilters,--forceoverwrite, and--dry-runpreview; interactive mode double-confirms before overwriting. Files carry the@lovrabetheader comment, and name conflicts automatically get ansqlCodesuffix.- sql/shared.ts common module: extracted
resolveSqlLocalDir,safeSqlFileBaseName,assignSqlFileNames, andbuildPulledSqlFileContentfor reuse bypulland later commands.
Bug fixes
- Path anchoring failed when running from a subdirectory: running commands in a project subdirectory prevented the CLI from finding
.rabetbase.json, breaking config reads. AddedfindProjectRootDirectory(), which walks up fromcwdto find the directory containing the config file. sql listblocked listing on insufficient permissions: without permission for thelistDatasetsAPI,rabetbase sql listerrored out. It now silently falls back to showing the rawdbIdon failure.
v2.0.12 (2026-04-05)
New features
- Project-level
inherit: falseisolation: the project.rabetbase.jsongains a top-levelinheritfield (defaulttrue). Setting it tofalsestops the CLI from reading and merging~/.rabetbase.json, fully isolating project config.
v2.0.11 (2026-04-05)
New features
- Non-interactive
upgrade --yes:--yesis now passed through to theskills remove/skills addsubcommands, enabling fully automated upgrades without manual confirmation.
v2.0.10 (2026-04-05)
New features
api --globalflag:rabetbase api list/rabetbase api pulladd a--globalflag. By default apps are resolved only from the project-level.rabetbase.json; passing--globaluses the merged global + project config.- Unified
DEFAULT_API_DIRconstant: extractedDEFAULT_API_DIR = "./src/api"intoconstant/paths.ts, removing several hardcoded magic strings. getMultiAppConfigsscope parameter: newscopeparameter (project | merged) reads apps by config layer.
Bug fixes
- Global apps from other projects leaked in: running
rabetbase api listin project A's directory could show apps belonging to project B from global config. Fixed: only project-level apps are read by default;--globalexplicitly opts into the merged view. api pullmulti-app branch lacked an apiDir fallback: in multi-app mode the output directory was hardcoded instead of usingapiDirfrom the profile or context; the full fallback chain is now in place.
v2.0.9 (2026-04-05)
New features
@/path alias:tsconfigaddsbaseUrl+paths, and relative-path imports across many files were replaced with the@/*alias.- Streamlined output formats: the
tableoutput format was removed;OutputFormatnarrowed tojson | pretty | compress, with a newnormalizeLegacyOutputFormat()for backward compatibility.
Bug fixes
- Duplicated jq error prefix: fixed displays like
jq: jq: error: .... --jqwithprettyformat threw a pointless error:--jqnow auto-switches tojsonformat.- Incomplete
execFileSyncstderr capture:stdiois now set explicitly so failed output is captured in full.
v2.0.8 (2026-04-04)
New features
schemacommand: newrabetbase schemaexports machine-readable command metadata JSON from the same source as--help, letting LLM Agents, IDE plugins, and CI tooling auto-discover every command, flag, and risk level.- Global
--jqflag: new global--jq <expr>runs jq filters over output when combined with--format json/compress. --format compress: newcompressoutput format — a single-line compact JSON envelope with no indentation, minimizing token overhead.app liststructure upgrade: the response is now{ items, meta }; each app is tagged withdefinedIn(global/project/both), andmetacarries config file paths and default-source info.- App positional arguments:
app add <name>/use <name>/remove <name>now take positional arguments instead of--name;app removeis elevated tohigh-risk-write. - Richer
dataset detail: parsesrequestBody/responseBodyJSON,dbtablesummary,relatedPages,formatRules,validateRules,extend,doVersion,columnCodeListWithDeleted. - Layered config architecture: context config loading was refactored into
loadRawConfigLayers()/readRawConfigWithLayers()/inspectCliConfigJsonFile(); JSON parse failures now distinguishmissing/empty/errorand write a hint tostderr. doctorconfig JSON diagnostics: new config file JSON syntax checks for global/project config validity.
Bug fixes
- Silently swallowed config JSON errors: a
.rabetbase.jsonwith syntax errors used to be silently ignored. After the refactor, parse failures emit anstderrwarning. app usecouldn't find global apps in a project directory: fixed the name validation logic to use the merged global + project view.app add --formatconflicted with the pipeline-level--format: the app default-format flag was renamed to--defaultFormat.
Last updated: 2026-06-13
Versions covered:v2.2.2,v2.2.1,v2.2.0,v2.1.14-beta.1,v2.1.14-beta.0,v2.1.13,v2.1.12,v2.1.12-beta.2,v2.1.6,v2.1.5,v2.1.4,v2.1.3,v2.1.3-beta.0,v2.1.2,v2.1.2-beta.0–v2.1.2-beta.3,v2.1.1,v2.1.1-beta.0,v2.1.0,v2.0.8–v2.0.13
Repository:rabetbase-cli