Skip to content

Releases: lovasoa/SQLpage

v0.20.4

23 Apr 06:54
a8a449a
Compare
Choose a tag to compare

SQLPage is an open-source low-code web application server. It lets you create full websites by writing only simple database queries.

This is a small improvement release on top of the larger v0.20.3 update.

  • Improvements to the new sqlpage.fetch function:
    • Set a default user-agent header when none is specified (User-Agent: sqlpage).
    • bundle root certificates with sqlpage so that we can always access HTTPS URLs even on outdated or stripped-down systems.
    • update our https library to the latest version everywhere, to avoid having to bundle two distinct versions of it.

v0.20.3

21 Apr 20:43
7196f50
Compare
Choose a tag to compare
  • New dropdown row-level property in the form component
    • select dropdown in form
    • multiselect input
  • Adds a new sqlpage.fetch function that allows sending http requests from SQLPage. This is useful to query external APIs. This avoids having to resort to sqlpage.exec.
    • sqlpage fetch example
  • Fixed a bug that occured when using both HTTP and HTTPS in the same SQLPage instance. SQLPage tried to bind to the same (HTTP)
    port twice instead of binding to the HTTPS port. This is now fixed, and SQLPage can now be used with both a non-443 port and
    an https_domain set in the configuration file.
  • Updated sqlparser
    • adds support for named windows in window functions
  • New icons with tabler icons 3.2: https://tabler.io/icons/changelog
  • Optimize queries like select 'xxx' as component, sqlpage.some_function(...) as parameter
    to avoid making an unneeded database query.
    This is especially important for the performance of sqlpage.run_sql and the dynamic component.

v0.20.2

01 Apr 14:09
885f8f7
Compare
Choose a tag to compare
  • the default component, used when no select '...' as component is present, is now table. It used to be the debug component instead. table makes it extremely easy to display the results of any SQL query in a readable manner. Just write any query in a .sql file open it in your browser, and you will see the results displayed in a table, without having to use any SQLPage-specific column names or attributes.
  • Better error messages when a custom component contains a syntax error. Fix contributed upstream
  • Lift a limitation on sqlpage function nesting. In previous versions, some sqlpage functions could not be used inside other sqlpage functions. For instance, sqlpage.url_encode(sqlpage.exec('my_program')) used to throw an error saying Nested exec() function not allowed. This limitation is now lifted, and you can nest any sqlpage function inside any other sqlpage function.
  • Allow string concatenation inside sqlpage function parameters. For instance, sqlpage.exec('echo', 'Hello ' || $name) is now supported, whereas it used to throw an error saying exec('echo', 'Hello ' || $name) is not a valid call. Only variables (such as $my_variable) and sqlpage function calls (such as sqlpage.header('my_header')) are supported as arguments to sqlpage functions..
  • Bump the minimal supported rust version to 1.77 (this is what allows us to easily handle nested sqlpage functions). Now all releases for all operating systems are compiled with the latest rust version.

v0.20.1

23 Mar 12:34
3fe951d
Compare
Choose a tag to compare

0.20.1 (2024-03-23)

  • More than 200 new icons, with tabler icons v3
  • New sqlpage.persist_uploaded_file function to save uploaded files to a permanent location on the local filesystem (where SQLPage is running). This is useful to store files uploaded by users in a safe location, and to serve them back to users later.
  • Correct error handling for file uploads. SQLPage used to silently ignore file uploads that failed (because they exceeded max_uploaded_file_size, for instance), but now it displays a clear error message to the user.

v0.20.0

12 Mar 14:56
cce526e
Compare
Choose a tag to compare

SQLPage v0.20 introduces sqlpage.run_sql !

We're excited to announce the release of SQLPage v0.20.0, with one exciting and long awaited feature, and many small fixes and improvements...

If you are new here: SQLPage is a small web server that renders your SQL queries as beautiful interactive websites.

What's new ?

  • file inclusion. This is a long awaited feature that allows you to include the contents of one file in another. This is useful to factorize common parts of your website, such as the header, or the authentication logic. There is a new sqlpage.run_sql function that runs a given SQL file and returns its result as a JSON array. Combined with the existing dynamic component, this allows you to include the content of a file in another, like this:
  • more powerful dynamic component: the dynamic component can now be used to generate the special header components too, such as the redirect, cookie, authentication, http_header and json components. The shell component used to be allowed in dynamic components, but only if they were not nested (a dynamic component inside another one). This limitation is now lifted. This is particularly useful in combination with the new file inclusion feature, to factorize common parts of your website. There used to be a limited to how deeply nested dynamic components could be, but this limitation is now lifted too.
  • Add an id attribute to form fields in the form component. This allows you to easily reference form fields in custom javascript code.
  • New rss component to create RSS feeds, including podcast feeds. You can now create and manage your podcast feed entirely in SQL, and distribute it to all podcast directories such as Apple Podcasts, Spotify, and Google Podcasts.
  • Better error handling in template rendering. Many template helpers now display a more precise error message when they fail to execute. This makes it easier to debug errors when you develop your own custom components.
  • better error messages when an error occurs when defining a variable with SET. SQLPage now displays the query that caused the error, and the name of the variable that was being defined.
  • Updated SQL parser to v0.44
  • Bug fixes in charts. See apexcharts.js v3.47.0

v0.19.1

28 Feb 08:43
2510acd
Compare
Choose a tag to compare

0.19.1 (2024-02-28)

  • SECURITY: fixes users being able to re-run migrations by visiting /sqlpage/migrations/NNNN_name.sql pages. If you are using sqlpage migrations, your migrations are not idempotent, and you use the default SQLPAGE_WEB_ROOT (./) and SQLPAGE_CONFIGURATION_DIRECTORY (./sqlpage/), you should upgrade to this version as soon as possible. If you are using a custom SQLPAGE_WEB_ROOT or SQLPAGE_CONFIGURATION_DIRECTORY or your migrations are idempotent, you can upgrade at your convenience.
  • Better error messages on invalid database connection strings. SQLPage now displays a more precise and useful message when an error occurs instead of a "panic" message.

v0.19.0

25 Feb 18:40
89f0a42
Compare
Choose a tag to compare

SQLPage v0.19.0 Released!

We're excited to announce the release of SQLPage v0.19.0!
If you are new here: SQLPage is a small web server that renders your SQL queries as beautiful interactive websites.
This update is focused on improving built-in components and making deployment easier.

Improved User Interface

  • Styled tables: Customize the appearance of your tables with new attributes like striped_rows, striped_columns, hover, border, and small. (Refer to documentation: https://sql.ophir.dev/documentation.sql?component=table#component)
    • screenshot
  • Input groups: Create visually clear and informative input fields using the new prefix, prefix_icon, and suffix attributes in the form component. This is valuable for adding units, currency symbols, or other visual cues beside your form inputs.
    • screenshot
  • Multiple page layouts: Choose your preferred layout with the new configuration options in the shell component. Three options are available: boxed (default), fluid (full width), and horizontal (boxed content with full-width header).
    • https://github.com/lovasoa/SQLpage/assets/552629/3c0fde36-7bf6-414e-b96f-c8880a2fc786
  • Row-level actions: Enhance your tables with the new edit_link, delete_link, and view_link attributes in the list component. These attributes allow you to add icons and links to each row for easy interaction.
    • https://github.com/lovasoa/SQLpage/assets/552629/df085592-8359-4fed-9aeb-27a2416ab6b8
  • Enhanced charting: The chart component now leverages the latest versions of the ApexCharts library, providing updated features and bug fixes. (See release notes for details: https://github.com/apexcharts/apexcharts.js/releases)
  • New icons: Enjoy a wider selection of icons with the update to Tabler Icon library v2.47. (See changelog: https://tabler.io/icons/changelog)

Developer Experience Enhancements:

  • Dynamic components at top level: Previously restricted, dynamic components can now be used freely at the top level of your SQL files for improved flexibility.
  • Custom shells: Take customization to a new level by creating multiple shell-*.handlebars files in the sqlpage directory. This allows defining different shell layouts for various pages within your application. (See documentation: https://sql.ophir.dev/custom_components.sql)
  • Environment variable for configuration: Manage configuration more efficiently with the new SQLPAGE_CONFIGURATION_DIRECTORY environment variable. This enables you to define a custom location for your configuration files, independent of the current working directory.

Additional improvements:

  • Cookie component behavior now aligns with the documentation, setting cookies for the entire website by default.

We encourage you to explore the new features in v0.19.0 and experience the enhanced capabilities of SQLPage! The full release notes with detailed descriptions and examples are available on GitHub: https://github.com/lovasoa/SQLpage/releases/tag/v0.19.0

v0.18.3

03 Feb 15:00
1e158c1
Compare
Choose a tag to compare
  • Updated dependencies
    • Updated sql parser, to add support for new syntax, including:
      • MySQL's JSON_TABLE table-valued function, that allows easily iterating over json structures
      • MySQL's CALL statements, to call stored procedures.
      • PostgreSQL ^@ starts-with operator
  • New carousel component to display a carousel of images. Contributed by @olivierauverlot !
    • image
  • For those who write custom components, a new @component_index variable is available in templates to get the index of the current component in the page. This makes it easy to generate unique ids for components.

v0.18.2

29 Jan 09:06
b085340
Compare
Choose a tag to compare

SQLPage is a small web server that renders your SQL queries as beautiful interactive websites. This release has seen significant new features and fixes from new contributors, which is great and show the health of the project ! If you feel something is missing or isn't working quite right, all your contributions are always welcome.

On a side note, I gave a talk about SQLPage last December at PGConf.eu

  1. New tracking component for beautiful and compact status reports: This feature adds a new way to display status reports, making them more visually appealing and concise.

    1. screenshot
  2. New divider component to add a horizontal line between other components: This simple yet useful addition allows for better separation of elements on your pages.

    1. image
  3. New breadcrumb component to display a breadcrumb navigation bar: This component helps users navigate through your website's hierarchical structure, providing a clear path back to the homepage.

    1. image
  4. Multi-column layouts with embed attribute in card component: This feature enables you to create more complex and dynamic layouts within cards.

    1. image
  5. Customizable y-axis step size in chart component with ystep attribute: This feature gives you more control over the chart's appearance, especially for situations with multiple series.

  6. Updated default graph colors for better distinction: This enhancement ensures clarity and easy identification of different data series.

  7. ID and class attributes for all components for easier styling and referencing: This improvement simplifies custom CSS customization and inter-page element linking.

  8. Implementation of uploaded_file_mime_type function: This function allows you to determine the MIME type of a uploaded file.

  9. Upgraded built-in SQLite database to version 3.45.0: This ensures compatibility with recent SQLite features and bug fixes. See sqlite release notes

  10. Unicode support for built-in SQLite database: This enables case-insensitive string comparisons and lower/upper case transformations.

  11. Improved card component with smaller margin below footer text: This fix ensures consistent and visually balanced card layouts.

Fixes

  • v0.18.1 fixes a bug introduced in v0.18 with the size of graphs.
  • v0.18.2 fixes a bug with missing chart titles.

v0.18.1

28 Jan 20:42
7595795
Compare
Choose a tag to compare

SQLPage is a small web server that renders your SQL queries as beautiful interactive websites. This release has seen significant new features and fixes from new contributors, which is great and show the health of the project ! If you feel something is missing or isn't working quite right, all your contributions are always welcome.

On a side note, I gave a talk about SQLPage last December at PGConf.eu

  1. New tracking component for beautiful and compact status reports: This feature adds a new way to display status reports, making them more visually appealing and concise.

    1. screenshot
  2. New divider component to add a horizontal line between other components: This simple yet useful addition allows for better separation of elements on your pages.

    1. image
  3. New breadcrumb component to display a breadcrumb navigation bar: This component helps users navigate through your website's hierarchical structure, providing a clear path back to the homepage.

    1. image
  4. Multi-column layouts with embed attribute in card component: This feature enables you to create more complex and dynamic layouts within cards.

    1. image
  5. Customizable y-axis step size in chart component with ystep attribute: This feature gives you more control over the chart's appearance, especially for situations with multiple series.

  6. Updated default graph colors for better distinction: This enhancement ensures clarity and easy identification of different data series.

  7. ID and class attributes for all components for easier styling and referencing: This improvement simplifies custom CSS customization and inter-page element linking.

  8. Implementation of uploaded_file_mime_type function: This function allows you to determine the MIME type of a uploaded file.

  9. Upgraded built-in SQLite database to version 3.45.0: This ensures compatibility with recent SQLite features and bug fixes. See sqlite release notes

  10. Unicode support for built-in SQLite database: This enables case-insensitive string comparisons and lower/upper case transformations.

  11. Improved card component with smaller margin below footer text: This fix ensures consistent and visually balanced card layouts.

v0.18.1 fixes a bug introduced in v0.18 with the size of graphs.