Skip to content

Rabetbase CLI Changelog

v2.5.2-beta.1 (2026-09-01)

Highlights

  • Deployment sync targets are now managed server-side: bff push and sql push now silently submit the dev sync 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 sync command partially syncs dataset / bff / sql development 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 / pre deployment targets; successful bff push and sql push only 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-list and single-field dataset field-restore precisely 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/set manages the mutually exclusive RULES.md (for page/API development Agents, excluding the DB Agent) and DATABASE.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; a DATABASE.md structure template is included.
  • Unified knowledge retrieval gateway: kb search now 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 resolves kbDomain uniformly.
  • Shared enterprise routing profile: config init --domain-config accepts a versioned enterprise routing profile that both the development-mode and runtime CLIs can import.
  • Create projects in the current directory: project create --current-dir creates 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-sync atomically generates rabetbase.domain-routing.json from the project's final config without requiring login or AppCode; api pull only handles Dataset/API and SDK client files.
  • SDK rebuild: api pull --force --yes can 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.libraries and cdn.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 doctor and config remain 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-update DB_TABLE writes are upgraded to the table business-group API; METADATA can be cleared with ungrouped, while DB_TABLE only accepts a non-empty group and rejects clear requests before writing; ungrouped is uniformly displayed as ungrouped.

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 region in .rabetbase.json, applied to both HMR and preview, and loads the matching base-info.js per country/region or explicit User Domain.
  • SDK routing config generation for projects: project create and api pull write only non-default region or runtimeDomain values 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/components example page with copyable snippets, and filters local analysis artifacts such as .codegraph.
  • Built-in Skill improvements: better command coverage, default compress output 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-resolve duplicate-name hint referencing a non-existent --user flag.
  • 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-update accepts the reserved value ungrouped to clear.
  • Fixed page custom-list failing to reuse the workspace defaultApp or the only app when --appcode is 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-mode rabetbase data filter/getOne no 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 riskLevel only.
  • Database diff-query responsibilities consolidated: db tables aggregates all tables and analysis states through the V2 API while db diff queries only the diff; --view, the redundant --changed-only, legacy label output, and compatibility aliases are removed; diff-refresh-status returns only the task status.

v2.5.0-beta.1 (2026-08-22)

Highlights

  • Regional and standalone-deployment domain support: auth login now accepts --region (cn/id/global), and standalone deployments can override the five domain types via a --domain-config file or the corresponding --*-domain flags.
  • SDK routing config generation for projects: project create and api pull now generate SDK routing config, writing only non-default region or runtimeDomain values 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-source flag 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 compress output convention, and Dataset/SQL structure documentation.
  • role user-resolve hint fix: fixed a duplicate-name hint that referenced a nonexistent --user flag.
  • 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-mode rabetbase data filter/getOne no 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 search retrieves 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-update command adjusts visibility status in bulk by menu ID.
  • Unified data list page and custom page semantics: the page command 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 bff scripts to keep malformed formats out of the description field.
  • Page generation status validation moved earlier: page generate-status selectors 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 pull adds path-traversal protection and per-segment allowlist validation for remote fields; bff detail now also outputs functionName, version, and updateUserName by default.
  • Split dev-role permissions: the role command 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 notification command 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 rabetbase and installed/refreshed via the skills CLI proxy.
  • New React custom page commands: new page react-create/react-list/react-detail/react-update/react-publish commands create, query, update, and publish React custom pages, and output dev config plus edit and runtime URLs.
  • Enterprise knowledge base management: new kb command group manages enterprise knowledge bases — create, update, delete, and query.
  • Tenant and app member lists: new tenant members-list and app members-list (or workspace members-list) make it easy to view tenant/app members.
  • DingTalk sandbox account binding: the user-account command 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 workspace command 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/remove and project init are deprecated and their entries removed — migrate to workspace 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 rename renames 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 restore can 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-update updates the URL of external-link menus.
  • Database analysis recovery diagnostics: db commands 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 move moves 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-create adds 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 menu command 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-audit distinguishes data sources explicitly, improving audit accuracy.

v2.3.8 (2026-07-28)

Highlights

  • Masked credential protection on DB updates: db update protects 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-start and other analysis commands now match the server.
  • Issue reporting now requires auth: issue report requires an authenticated login before submitting, preventing anonymous false reports.

v2.3.7 (2026-07-23)

Highlights

  • Notification config discovery: notification config-list/config-get and friends now auto-discover configCode, making it easier to locate usable notification configs.
  • Smarter database analysis batching: db analyze-start supports 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 upload and file query-url upload files and fetch their access URLs.

v2.3.6 (2026-07-16)

Highlights

  • Relation management by ID completed: dataset relation-create/update/delete now locate relations uniformly by relationId; 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 relations exposes bizRelationType; page relation-audit warns when the parent/child sub_info is missing.

v2.3.5 (2026-07-14)

Highlights

  • New roles and permissions command groups: Rabetbase CLI adds the role and permit command groups. role covers creating, updating, deleting, and member management for CUSTOM roles; permit supports 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/delete manages runtime app-config keys. get masks values by default (--reveal shows plaintext), and set accepts values from a command argument, a file, --stdin, or --from-env.
  • cli-skill install for built-in Skills: wraps npx skills add ... -g -y so Agent environments can quickly install/refresh the Skills bundled with Rabetbase CLI.
  • App registration moved to workspace: rabetbase app add/remove and rabetbase project init are now hidden compatibility commands — the recommended entries are rabetbase workspace add/remove and rabetbase 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), and dataset generate-start (text-driven async generation of DO V2 datasets).
  • Stabilized database analysis and BFF routing: db analyze-start workflow 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> and rabetbase app remove <name> still work but print migration notices — switch to rabetbase workspace add <name> and rabetbase workspace remove <name>.
  • Behavior change: rabetbase project init remains a compatibility alias for rabetbase workspace init --appcode <appcode>; new scripts should use workspace init directly.
  • New high-risk writes: commands such as role, permit, dataset relation/restore/business-group updates are all high-risk-write — dry-run by default, with --yes or --confirm required to execute. Add --expected-count to 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 remote and rabetbase app use compatibility entries. Platform app discovery is unified on rabetbase app list --remote; the default app binding for the current working directory is unified on rabetbase workspace use --app <name>.
  • Schema/help aligned with Skills: rabetbase schema and rabetbase app --help now expose only list, add, and remove for 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 remote in old scripts with rabetbase app list --remote.
  • Breaking: replace rabetbase app use <name> in old scripts with rabetbase 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 list returns DO V2 datasets by default, including DB_TABLE and METADATA. Use --source DB_TABLE for database-table datasets only, or --source METADATA for metadata datasets only.
  • AppCode env vars no longer silently take over: RABETBASE_APPCODE / LOVRABET_APPCODE no 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 use rabetbase update --beta.

Compatibility changes to note

  • Breaking: scripts still using rabetbase dataset list --include-metadata must switch to rabetbase dataset list --source METADATA.
  • Breaking: scripts relying on RABETBASE_APPCODE / LOVRABET_APPCODE automatically 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 list returns only DB_TABLE, add --source DB_TABLE so METADATA datasets 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, and dataset extend-update must identify the target dataset explicitly, usually via --code <datasetCode>. The delete command also accepts --id or --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-run preview by default.
  • Tighter field and extend patching: dataset field-update only allows whitelisted properties — display name, description, options, required, date format, aggregation, and chart role; dataset extend-update currently only opens businessGroup. Both support --expect-json against drift.
  • High-risk guard on dataset deletion: dataset delete is a high-risk-write — real deletion requires --confirm. For bulk deletes by --dbid, also pass --expected-count so 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 / --dbid explicitly. 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, and dataset delete are 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_TABLE or --source METADATA to control the dataset source.
  • Tighter menu resource updates: menu update distinguishes --mode replace from --mode patch and preserves a page's existing extend config, so CDN resource updates don't clobber business extension config.

Fixes and improvements

  • Early field patch validation: dataset field-update rejects 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 / defaultApp results into the project config file, reducing cross-project config bleed.
  • More stable menu resource updates: rabetbase menu update preserves a page's existing extend config 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 --global or reinitialize the project config.
  • Breaking: upgrading from v2.1.11 or earlier, scripts that relied on rabetbase page generate-start --datasetcode <code> submitting the generation task directly must switch to rabetbase page generate-start --datasetcode <code> --apply.

v2.1.12 (2026-05-21)

Highlights

  • Safer smart list-page generation by default: rabetbase page generate-start now 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 report truncates 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 report command; scripted scenarios can disable it with RABETBASE_DISABLE_ISSUE_NUDGE=1.
  • Traceable platform requests: CLI platform requests carry X-Invoke-Source: cli:rabetbase so 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 to rabetbase 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-start now 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 report truncates 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 report command; scripted scenarios can disable it with RABETBASE_DISABLE_ISSUE_NUDGE=1.
  • Traceable platform requests: CLI platform requests carry X-Invoke-Source: cli:rabetbase so 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 to rabetbase page generate-start --datasetcode <code> --apply.

v2.1.6 (2026-04-21)

Highlights

  • The --jq install path is now rock solid: the CLI bundles a jq sidecar, so installation no longer depends on node-jq downloading a binary from GitHub. Lookup order is JQ_PATH → bundled jq → jq on PATH — much friendlier for networks in China, offline mirrors, and CI.
  • Query real data straight from the dev CLI: new rabetbase data filter and rabetbase data getOne let developers confirm real records and response shapes in a dataset without switching to the runtime CLI.
  • Machine-readable contracts updated in sync: rabetbase schema / --help now expose the new data service 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_PATH is 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: running sql pull no 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.0 features 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 create semantics — 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 update no longer installs "a version you didn't ask for".

v2.1.2 (2026-04-14)

Highlights

  • v2.1.2-beta features 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.0 changes; 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 remote and api generate now 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 use now 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.0 is a key starting point for the 2.1.x series: 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 list now 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 pull command: new rabetbase sql pull bulk-pulls custom SQL from the remote into .rabetbase/sql/. Supports --sqlcode / --name filters, --force overwrite, and --dry-run preview; interactive mode double-confirms before overwriting. Files carry the @lovrabet header comment, and name conflicts automatically get an sqlCode suffix.
  • sql/shared.ts common module: extracted resolveSqlLocalDir, safeSqlFileBaseName, assignSqlFileNames, and buildPulledSqlFileContent for reuse by pull and 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. Added findProjectRootDirectory(), which walks up from cwd to find the directory containing the config file.
  • sql list blocked listing on insufficient permissions: without permission for the listDatasets API, rabetbase sql list errored out. It now silently falls back to showing the raw dbId on failure.

v2.0.12 (2026-04-05)

New features

  • Project-level inherit: false isolation: the project .rabetbase.json gains a top-level inherit field (default true). Setting it to false stops the CLI from reading and merging ~/.rabetbase.json, fully isolating project config.

v2.0.11 (2026-04-05)

New features

  • Non-interactive upgrade --yes: --yes is now passed through to the skills remove / skills add subcommands, enabling fully automated upgrades without manual confirmation.

v2.0.10 (2026-04-05)

New features

  • api --global flag: rabetbase api list / rabetbase api pull add a --global flag. By default apps are resolved only from the project-level .rabetbase.json; passing --global uses the merged global + project config.
  • Unified DEFAULT_API_DIR constant: extracted DEFAULT_API_DIR = "./src/api" into constant/paths.ts, removing several hardcoded magic strings.
  • getMultiAppConfigs scope parameter: new scope parameter (project | merged) reads apps by config layer.

Bug fixes

  • Global apps from other projects leaked in: running rabetbase api list in project A's directory could show apps belonging to project B from global config. Fixed: only project-level apps are read by default; --global explicitly opts into the merged view.
  • api pull multi-app branch lacked an apiDir fallback: in multi-app mode the output directory was hardcoded instead of using apiDir from the profile or context; the full fallback chain is now in place.

v2.0.9 (2026-04-05)

New features

  • @/ path alias: tsconfig adds baseUrl + paths, and relative-path imports across many files were replaced with the @/* alias.
  • Streamlined output formats: the table output format was removed; OutputFormat narrowed to json | pretty | compress, with a new normalizeLegacyOutputFormat() for backward compatibility.

Bug fixes

  • Duplicated jq error prefix: fixed displays like jq: jq: error: ....
  • --jq with pretty format threw a pointless error: --jq now auto-switches to json format.
  • Incomplete execFileSync stderr capture: stdio is now set explicitly so failed output is captured in full.

v2.0.8 (2026-04-04)

New features

  • schema command: new rabetbase schema exports 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 --jq flag: new global --jq <expr> runs jq filters over output when combined with --format json/compress.
  • --format compress: new compress output format — a single-line compact JSON envelope with no indentation, minimizing token overhead.
  • app list structure upgrade: the response is now { items, meta }; each app is tagged with definedIn (global / project / both), and meta carries 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 remove is elevated to high-risk-write.
  • Richer dataset detail: parses requestBody / responseBody JSON, dbtable summary, relatedPages, formatRules, validateRules, extend, doVersion, columnCodeListWithDeleted.
  • Layered config architecture: context config loading was refactored into loadRawConfigLayers() / readRawConfigWithLayers() / inspectCliConfigJsonFile(); JSON parse failures now distinguish missing / empty / error and write a hint to stderr.
  • doctor config JSON diagnostics: new config file JSON syntax checks for global/project config validity.

Bug fixes

  • Silently swallowed config JSON errors: a .rabetbase.json with syntax errors used to be silently ignored. After the refactor, parse failures emit an stderr warning.
  • app use couldn't find global apps in a project directory: fixed the name validation logic to use the merged global + project view.
  • app add --format conflicted 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.0v2.1.2-beta.3, v2.1.1, v2.1.1-beta.0, v2.1.0, v2.0.8v2.0.13
Repository: rabetbase-cli

基于飞书知识库同步生成,内容以飞书源文档为准