small bugfix release
Hello everyone! We've been working hard to bring a range of new features, fixes and improvements in this update. Here's what's new.
Database Enhancements:
MONEY
and SMALLMONEY
types in MSSQL. If you're dealing with financial data, this makes your life easier. For more details, check out the MSSQL money
documentationMigration Files:
sqlpage create-migration
command. This simplifies setting up new database changes. For more information, try sqlpage --help
New Component:
Chart Improvements:
Updates and Fixes:
/xxx
will now redirect to /xxx/
only if /xxx/index.sql
exists, resulting in a more intuitive navigation experience. This also makes it easier to create clean API endpoints using 404.sql
.MEMBER OF
, making it easier to work with JSON arrays.Single Sign-On (SSO) Improvements:
We hope these updates make your experience with SQLPage even better. As always, we appreciate your feedback and are here to help if you have any questions or run into issues.
Happy querying!
v0.35.2 SQLPage v0.35.2SQLPage is the easiest way to turn your SQL queries into beautiful, interactive websites—no traditional coding required. If you can query a database, you can build data-driven web apps.
This is a small bugfix release.
Release notesSQLPage is the easiest way to turn your SQL queries into beautiful, interactive websites—no backend coding required. Whether you're a data enthusiast, a business analyst, or a developer, SQLPage lets you build data-driven web apps with just SQL, making web development accessible to everyone.
This is a minor bugfix release that addresses color-related regressions reported in v0.35.
v0.35.1 chart colors v0.35.0 chart colors v0.35.0 🎉 SQLPage v0.35 Release Announcement 🎉SQLPage is the easiest way to turn your SQL queries into beautiful, interactive websites—no backend coding required. Whether you're a data enthusiast, a business analyst, or a developer, SQLPage lets you build data-driven web apps with just SQL, making web development accessible to everyone.
🚀 Major Highlight: Single Sign-On (SSO) with OIDCThe headline feature of v0.35 is Single Sign-On (SSO) support using OpenID Connect (OIDC)!
Now, you can protect your entire SQLPage website and let users log in with their existing accounts—Google, Microsoft, GitHub, or your organization's identity provider. This means you can secure your site with industry-standard authentication, making it easier and safer for users to access your app.
Learn how to set up SSO in minutes: SQLPage SSO Guide
WITH t (x) AS (SELECT ...) DELETE FROM my_table WHERE id IN (SELECT x FROM t)
XMLTABLE
table-valued function for parsing xmlDownload the latest version and start building your own SQL-powered website today: Your First SQL Website
And if you encounter any issue with this new release, please report it ! That will help make SQLPage better for everyone.
v0.34.0 v0.34 (2025-03-23) ✨ Top Features at a GlanceList component's delete_link
now uses secure POST requests:
SELECT 'list' AS component; SELECT 'Delete me' AS title, 'delete_item.sql?id=77' AS delete_link;
Prevents accidental deletions by web crawlers and follows REST best practices
Protected Internal Files.
(e.g., .utils/
) are now inaccessiblesqlpage.run_sql()
/* Before: .price | After: */ ._col_price { background: #f8f9fa; border-right: 2px solid #dee2e6; }
._col_{column_name}
SELECT 'columns' AS component; SELECT 'View details' AS title; -- No button shown
SELECT 'table' AS component, true AS freeze_footers; SELECT 'Total' AS label, SUM(price) AS value, true AS _sqlpage_footer;
_sqlpage_footer
on your final data rowSELECT 'shell' AS component, true AS rtl;
SELECT 'text' AS component, '<div class="alert alert-warning"> **Important!** New *HTML-enhanced* content. </div>' AS unsafe_contents_md;
unsafe_contents_md
allows HTML+Markdown mixing
{ "markdown_allow_dangerous_html": false, "markdown_allow_dangerous_protocol": false }
0
values in number fields.your_column
→ ._col_your_column
if you have custom css targetting tables.delete_link
.View full configuration options →
v0.33.1 SQLPage 0.33.1 Released ! 🚀Note
SQLPage lets you build web applications using SQL queries. If you know SQL, you can create complete web applications without spending time on traditional web development languages and frameworks.
Download for Windows, MacOS, or Linux, or try online !
This release fixes multiple bugs, and improves performance.
CASE WHEN $a THEN $x WHEN $b THEN $y
would be executed as CASE WHEN $a THEN $b WHEN $x THEN $y
on these databases.select $x where $x is not null
, the value of $x
is sent to the database only once. It used to be sent as many times as $x
appeared in the statement.sqlpage.fetch_with_meta
sqlpage.fetch
, but it returns a json object with the following properties:
status
: the http status code of the response.headers
: a json object with the response headers.body
: the response body.error
: an error message if the request failed.Note
SQLPage lets you build web applications using SQL queries. If you know SQL, you can create complete web applications without spending time on traditional web development languages and frameworks.
Download for Windows, MacOS, or Linux, or try online !
Hey SQL Pagers !
Today, we are releasing SQLPage v0.33.0, which brings cleaner URLs, auto-submitting forms for instant filters, dynamic dropdowns for massive datasets, and fetch upgrades for effortless API calls. Tables now format numbers based on locale, charts are sharper, and new SQL syntax support unlocks powerful queries — all making your apps faster, more dynamic, and easier to build.
Routing & URL Enhancements 🔀 Clean URLs:Access your pages without the extra “.sql” suffix. For instance, if your file is page.sql
, you can now use either:
https://example.com/page.sql
https://example.com/page
(or page.sql
still works)
Big thanks to @guspower for their contributions!
Complete Routing Rewrite:We overhauled our request routing system for smoother, more predictable routing across every request.
SQLPage Functions ⚙️ sqlpage.fetch (Calling External Services) HTTP Basic AuthenticationSQLPage’s sqlpage.fetch(request)
now supports HTTP Basic Auth. Easily call APIs requiring a username/password. For example:
SET result = sqlpage.fetch(json_object( 'url', 'https://api.example.com/data', 'username', 'user', 'password', 'pass' ));
Check out the fetch documentation for more.
Smarter Fetch Errors & Headers DefaultsGet clearer error messages if your HTTP request definition is off (unknown fields, etc.). Plus, the headers
parameter is now optional. SQLPage now sends a User‑Agent
header that includes the SQLPage version by default.
sqlpage.request_body
and sqlpage.request_body_base64
INSERT INTO users (name, email) VALUES ( json(sqlpage.request_body())->>'name', json(sqlpage.request_body())->>'email' );
Easily manage and inspect HTTP headers with the brand‑new sqlpage.headers
function.
We fixed a bug where table cells weren’t getting the right CSS classes—your tables now align perfectly.
Native Number Formatting:Numeric values in tables are now automatically formatted to your visitor’s locale with proper thousands separators and decimal points, and sorted numerically.
Example:
Many thanks @francesco-cattoglio for the contribution !
Enhanced Card Layouts:Customizing your card
components is now easier:
embed
property auto‑appends the _sqlpage_embed
parameter for embeddable fragments.shell
component is replaced by shell-empty
to avoid duplicate headers and metadata.Set auto_submit
to true and your form will instantly submit on any field change—ideal for dashboard filters.
SELECT 'form' AS component, 'Filter Results' AS title, true AS auto_submit; SELECT 'date' AS name;Dynamic Options for Dropdowns
Use options_source
to load dropdown options dynamically from another SQL file. Perfect for autocomplete with large option sets.
index.sql
select 'form' as componentt; select 'my_field' as name, 'select' as type, 'options_source.sql' as options_source;
options_source.sql
select 'json' as component; select id as value, label as label from my_options where label like $search || '%';Result Screencast.From.2025-02-15.13-52-43.mp4 Markdown in Field Descriptions
With the new description_md
property, render markdown in form field descriptions for improved guidance.
Thanks to @theochr72 for the contribution !
Now you’ll get more helpful errors if header components (e.g., json
, cookie
) are used incorrectly.
We updated ApexCharts to v4.4.0 for smoother charts and minor bug fixes.
Tabler Icons & CSSEnjoy a refreshed look:
Enhanced CSV Error Messages:
More descriptive error messages when a CSV import fails (via copy
and file upload).
Postgres CSV Bug Fix:
A bug that caused subsequent requests to fail after a CSV import error on PostgreSQL is now fixed.
(See Issue #788 for details.)
Upgraded SQL Parser (v0.54):
Our sqlparser is now at v0.54, with support for advanced SQL syntax:
INSERT INTO users (name, email) SELECT :name, :email WHERE :name IS NOT NULL RETURNING 'redirect' AS component, 'user.sql?id=' || id AS link;
SELECT 'card' AS component, event_name AS title, start_time::text || ' - ' || end_time::text AS description FROM events WHERE (start_time, end_time) OVERLAPS ($start_filter::timestamp, $end_filter::timestamp);
INSERT INTO users SET name = :name, email = :email;
Happy coding and keep pushing the boundaries of what you can build with SQL!
v0.32.1Note
SQLPage lets you build web applications using SQL queries. If you know SQL, you can create complete web applications without spending time on traditional web development languages and frameworks.
Download for Windows, MacOS, or Linux
This is a bugfix release.
view_link
, edit_link
, and delete_link
had become incompatible with the main link
property.UPDATE OR REPLACE
syntaxJSON_ARRAY
and JSON_OBJECT
functionsJSON_OBJECT(key : value)
and JSON_OBJECT(key VALUE value)
syntaxtrue
and false
in Microsoft SQL Server (mssql): they are now correctly parsed as column names, not as boolean values, since mssql does not support boolean literals. This means you may have to replace TRUE as some_property
with 1 as some_property
in your SQL code when working with mssql.Note
SQLPage lets you build web applications using SQL queries. If you know SQL, you can create complete web applications without spending time on traditional web development languages and frameworks.
Download for Windows, MacOS, or Linux
Dear SQLPage community,
As we close out 2024, we're excited to share significant improvements that make SQLPage more robust and easier to use.
We're also introducing editor.datapage.app - a free, browser-based editor where you can create and deploy SQLPage websites instantly, no installation required!
Wishing you all a Merry Christmas and a Happy New Year! 🎄✨
🔒 Database ReliabilitySTART TRANSACTION
compatibilityExample protection against temporary table issues on postgres:
BEGIN; CREATE TEMPORARY TABLE t (x int) ON COMMIT DROP; -- Operations now safely roll back on error COMMIT;
max_recursion_depth
control for the run_sql
function. See configuration for more information.sqlpage.environment_variable
now returns null
for unset variablesData Visualization
Other Components
link
property is provided.value
property: the value
property can now be used in checkbox and radio button components. The custom checked
property still works, but it is now optional.New Capabilities
sqlpage/on_reset.sql
hook, executed after each page execution. See configuration for more information.coalesce
support in SQLPage functions: you can now use coalesce
inside arguments of sqlpage functions, and it will be evaluated inside sqlpage. For instance, this lets you call sqlpage.link(coalesce($url, 'https://sql-page.com'))
to create a link that will use the value of $url
if it is not null, or fallback to https://sql-page.com
if it is null.article
property for content formatting: the article
property in the text component can be used to display text in a more readable, article-like format.
JSON
function now returns a json object instead of a string in sqlite.Quality of Life
Built with SQLPage
) is now displayed at the bottom of the page instead of immediately after the main content.sqlpage.header
uppercase handling: the sqlpage.header
function now correctly handles headers containing uppercase letters.These updates focus on database reliability, component improvements, and developer productivity - making SQLPage a more robust tool for building web applications with SQL.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4