|
1 | 1 | # CHANGELOG.md
|
2 | 2 |
|
3 |
| -## 0.30.0 (unreleased) |
4 |
| - |
5 |
| - - **Fix**: the search feature in the shell component was not working when no menu item was defined. |
6 |
| - - Add support for encrypted Microsoft SQL Server connections. This finally allows connecting to databases that refuse clear-text connections, such as those hosted on Azure. |
7 |
| - - Easier json handling in databases without a native json type. SQLPage now detects when you use a json function in SQLite or MariaDB to generate a column, and automatically converts the resulting string to a json object. This allows easily using components that take json parameters (like the new columns component) in MariaDB and SQLite. |
8 |
| - - Add a new optional `database_password` configuration option to set the password for the database connection separately from the connection string. This allows to keep the password separate from the connection string, which can be useful for security purposes, logging, and avoids having to percent-encode the password in the connection string. |
9 |
| - - New `initial_search_value` property in the table component to pre-fill the search bar with a value. This allows to display the table rows that will initially be filtered out by the search bar. |
10 |
| - - Fix autoplay of carousels when embedded in a card. |
11 |
| - - Allow setting image width and height in carousels, in order to avoid differently sized images to cause layout janking when going through them. |
12 |
| - - Many improvements to the [json](https://sql.datapage.app/component.sql?component=json) component, making it easier and faster than ever to build REST APIs entirely in SQL. |
13 |
| - - **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. |
14 |
| - - **server-sent events** : the component can now be used to stream query results to the client in real-time using server-sent events. |
15 |
| - - The [csv](https://sql.datapage.app/component.sql?component=csv) component can now be used as a header component to trigger a download of the CSV file directly on page load. Just select the `csv` as a component without a shell before it, and the CSV will be efficiently streamed to the user''s browser. This finally allows efficiently serving large datasets as CSV. |
16 |
| - - In the shell component, the site title is no longer wrapped in a `<h1>` tag, which should help search engines better understand the content of the page, and potentially improve SEO. |
17 |
| - - Improve table search and sort: |
18 |
| - - sorting and searching should now be faster on large tables. Searching (filtering) is now especially fast, and should not take more than a few milliseconds even on tables with thousands of rows. |
19 |
| - - sorting should now work correctly on markdown columns. Markdown links used to be sorted according to the link URL, which was not intuitive. Now, only the displayed text is used for sorting. |
20 |
| - - Updated tabler icons to v3.21.0, making many new icons available: https://tabler.io/changelog |
| 3 | +## 0.30.0 (2024-10-30) |
| 4 | + |
| 5 | +### 🤖 Easy APIs |
| 6 | +- **Enhanced CSV Support**: The [CSV component](https://sql.datapage.app/component.sql?component=csv) can now create URLs that trigger a CSV download directly on page load. |
| 7 | + - This finally makes it possible to allow the download of large datasets as CSV |
| 8 | + - This makes it possible to create an API that returns data as CSV and can be easily exposed to other software for interoperabily. |
| 9 | + - **Easy [json](https://sql.datapage.app/component.sql?component=json) APIs** |
| 10 | + - 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. |
| 11 | + - ```sql |
| 12 | + select 'json' as component; |
| 13 | + select * from users; |
| 14 | + ``` |
| 15 | + - ```json |
| 16 | + [ { "id": 0, "name": "Jon Snow" }, { "id": 1, "name": "Tyrion Lannister" } ] |
| 17 | + ``` |
| 18 | + - **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. |
| 19 | + - **server-sent events** : the component can now be used to stream query results to the client in real-time using server-sent events. |
| 20 | + |
| 21 | +### 🔒 Database Connectivity |
| 22 | +- **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). |
| 23 | +- **Separate Database Password Setting**: Added `database_password` [configuration option](https://github.com/sqlpage/SQLPage/blob/main/configuration.md) 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. |
| 24 | + |
| 25 | +### 😎 Developer experience improvements |
| 26 | +- **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. |
| 27 | + - ```sql |
| 28 | + -- Now works out of the box in SQLite |
| 29 | + select 'big_number' as component; |
| 30 | + select 'Daily performance' as title, perf as value; |
| 31 | + json_object( |
| 32 | + 'label', 'Monthly', |
| 33 | + 'link', 'monthly.sql' |
| 34 | + ) as dropdown_item |
| 35 | + from performance; |
| 36 | + ``` |
| 37 | + |
| 38 | +### 📈 Table & Search Improvements |
| 39 | +- **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. |
| 40 | +- **Faster Sorting and Searching**: Table filtering and sorting has been entirely rewritten. |
| 41 | + - filtering is much faster for large datasets |
| 42 | + - sorting columns that contain images and links now works as expected |
| 43 | + - Since the new code is smaller, initial page loads should be slightly faster, even on pages that do not use tables |
| 44 | + |
| 45 | +### 🖼️ UI & UX Improvements |
| 46 | + |
| 47 | +- **[Carousel](https://sql.datapage.app/component.sql?component=carousel) Updates**: |
| 48 | + - Autoplay works as expected when embedded in a card. |
| 49 | + - Set image width and height to prevent layout shifts due to varying image sizes. |
| 50 | +- **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 confusing between the site name and the page's title. |
| 51 | +
|
| 52 | +### 🛠️ Fixes and improvements |
| 53 | +
|
| 54 | +- **Shell Component Search**: Fixed search feature when no menu item is defined. |
| 55 | +- **Updated Icons**: The Tabler icon set has been refreshed with the latest update. |
21 | 56 |
|
22 | 57 | ## 0.29.0 (2024-09-25)
|
23 | 58 | - New columns component: `columns`. Useful to display a comparison between items, or large key figures to an user.
|
|
0 commit comments