Skip to content

v0.30.0

Compare
Choose a tag to compare
@github-actions github-actions released this 30 Oct 16:51
· 106 commits to main since this release

With SQLPage 0.30, build APIs in 2 lines of SQL

🤖 Easy APIs

  • Enhanced CSV Support: The CSV component can now create URLs that trigger a CSV download directly on page load.
    • This finally makes it possible to allow the download of large datasets as CSV
    • This makes it possible to create an API that returns data as CSV and can be easily exposed to other software for interoperabily.
  • Easy json APIs
    • The json component now accepts a second sql query, and will return the results as a json array in a very resource-efficient manner. This makes it easier and faster than ever to build REST APIs entirely in SQL.
      • select 'json' as component;
        select * from users;
      • [ { "id": 0, "name": "Jon Snow" }, { "id": 1, "name": "Tyrion Lannister" } ]
    • Ease of use : the component can now be used to automatically format any query result as a json array, without manually using your database''s json functions.
    • server-sent events : the component can now be used to stream query results to the client in real-time using server-sent events.

🔒 Database Connectivity

  • Encrypted Microsoft SQL Server Connections: SQLPage now supports encrypted connections to SQL Server databases, enabling connections to secure databases (e.g., those hosted on Azure).
  • Separate Database Password Setting: Added database_password configuration option to store passwords securely outside the connection string. This is useful for security purposes, to avoid accidentally leaking the password in logs. This also allows setting the database password as an environment variable directly, without having to URL-encode it inside the connection string.

😎 Developer experience improvements

  • Improved JSON Handling: SQLPage now automatically converts JSON strings to JSON objects in databases like SQLite and MariaDB, making it easier to use JSON-based components.
    • -- Now works out of the box in SQLite
      select 'big_number' as component;
      select 'Daily performance' as title, perf as value;
          json_object(
            'label', 'Monthly',
            'link', 'monthly.sql'
          ) as dropdown_item
      from performance;

📈 Table & Search Improvements

  • Initial Search Value: Pre-fill the search bar with a default value in tables with initial_search_value, making it easier to set starting filters.
  • Faster Sorting and Searching: Table filtering and sorting has been entirely rewritten.
    • filtering is much faster for large datasets
    • sorting columns that contain images and links now works as expected
    • Since the new code is smaller, initial page loads should be slightly faster, even on pages that do not use tables

🖼️ UI & UX Improvements

  • Carousel Updates:
    • Autoplay works as expected when embedded in a card.
    • Set image width and height to prevent layout shifts due to varying image sizes.
  • Improved Site SEO: The site title in the shell component is no longer in <h1> tags, which should aid search engines in understanding content better, and avoid confusion between the site name and the page's title.

🛠️ Fixes and improvements

  • Shell Component Search: Fixed search feature when no menu item is defined.
  • Updated Icons: The Tabler icon set has been refreshed from 3.10 to 3.21, making many new icons available: https://tabler.io/changelog