Skip to content

Feature/api schema#55

Merged
jamals86 merged 11 commits intomainfrom
feature/api-schema
Dec 21, 2025
Merged

Feature/api schema#55
jamals86 merged 11 commits intomainfrom
feature/api-schema

Conversation

@jamals86
Copy link
Copy Markdown
Collaborator

This pull request introduces several improvements to the build system and dependency management, with a focus on modernizing the Rust toolchain, optimizing build performance, and cleaning up dependencies. The most significant changes include upgrading the Rust version to 1.92, integrating sccache for faster CI builds, and refining the set of dependencies and features used across the workspace.

Build system and CI improvements:

  • Upgraded the Rust toolchain requirement to version 1.92 throughout the project, including documentation and configuration files. [1] [2] [3] [4] [5]
  • Integrated sccache into all relevant GitHub Actions build jobs to speed up CI by caching compilation artifacts; added related environment variables and stats reporting. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
  • Switched the Cargo registry protocol to sparse for faster dependency resolution and clarified parallel compilation defaults in .cargo/config.toml.

Dependency and feature management:

  • Updated and cleaned up dependencies in Cargo.toml:
    • Refined tokio features for more precise async runtime usage.
    • Expanded arrow features for broader data format support and set default-features = false.
    • Removed unused dependencies such as actix, tabled, crossterm, and console. [1] [2] [3]
    • Added or updated serial_test, bytes, moka, and ntest versions/features. [1] [2]
  • Ensured workspace-level dependency management is consistent by using workspace = true for more crates and dependencies. [1] [2] [3] [4] [5]

Development profile enhancements:

  • Tweaked [profile.dev] settings for faster development builds: reduced debug info, maximized codegen parallelism, and enabled faster debug info handling on macOS.
  • Minor formatting improvements in .cargo/config.toml for clarity.

API and code improvements:

  • Added a convenience constructor (new) to the ErrorResponse struct in kalamdb-api for easier error handling.

Migrates manifest, plan, and query caches from DashMap to moka::sync::Cache for improved performance and automatic eviction (TinyLFU, TTI, TTL). Removes custom LRU/TTL logic and leverages moka's built-in expiration and capacity management. Updates affected tests and configuration to use moka. Adds per-key TTL support for query cache and refactors cache APIs for consistency.
Removes unused last_accessed getter logic from manifest cache and provider, simplifying the API and schema. Refactors PlanCache to use a structured key (namespace, role, SQL) for improved cache efficiency and removes user_id from the cache key. Updates workspace Cargo.toml files to use workspace-inherited metadata fields for version, edition, rust-version, authors, license, and repository. Updates query cache stats and test assertions for consistency.
Migrates CLI credential management to store only JWT tokens (not plaintext passwords) in the credentials file, updating all related logic, help, and tests. Adds support for logging in with username/password to obtain and persist JWT tokens, and for using --save-credentials to store tokens after login. Removes legacy connect meta-command, updates session and credential display, and improves security by never storing passwords. Also optimizes batch PK existence checks in cold storage for shared tables.
Removed ManifestCacheService and integrated its hot cache and RocksDB persistence logic into ManifestService. Updated all references and helpers to use ManifestService for manifest caching, invalidation, and eviction. Cleanup, flush, and eviction jobs now operate on the unified ManifestService, simplifying manifest management and reducing code duplication.
Refactor integration tests to use unique storage IDs for isolation, add utility to wait for async cleanup job completion after table drops, and relax performance assertions for versioned queries. Also, improve directory cleanup logic in object store operations for more robust file removal.
Implements tiered eviction in ManifestService to prioritize shared table manifests over user tables using a configurable weight factor. Removes unused dependencies (actix, env_logger, crossterm, tabled, console) and updates Rust version to 1.92 in documentation and configuration. Refactors password complexity validation to use kalamdb_auth::password::validate_password_with_policy. Updates dependencies in Cargo.toml and Cargo.lock, and adds serial_test for improved test isolation.
Added sccache caching to all major CI/CD build jobs in release.yml for faster compilation. Updated .cargo/config.toml to use the sparse registry protocol for improved dependency resolution. Removed env_logger initialization from a backend test. Added documentation files summarizing and guiding build speed improvements and optimizations.
Introduces a new system.datatypes virtual view in the backend to provide Arrow→KalamDB/SQL type mappings, enabling the UI to display user-friendly type names. Updates the TypeScript SDK, API types, and UI components to use schema-based column definitions and type-aware formatting. Adds a React hook (useDataTypes) for fetching and caching type mappings, centralizes table and timestamp formatting config, and improves audit logging by redacting passwords. Also updates documentation to clarify build performance and SDK response formats.
@jamals86 jamals86 merged commit ab895cd into main Dec 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant