2780 Commits

Author SHA1 Message Date
Ophir LOJKINE e81be1b4d2 Fix Lambda release zip build
CI / docker_build (linux/arm/v7, minimal) (push) Has been cancelled
CI / docker_build (linux/arm64, duckdb) (push) Has been cancelled
CI / docker_build (linux/arm64, minimal) (push) Has been cancelled
CI / docker_push (duckdb) (push) Has been cancelled
CI / docker_push (minimal) (push) Has been cancelled
Create Release / Build sqlpage binaries (macOS & Windows) (.exe, , windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
CI / compile_and_lint (push) Has been cancelled
CI / test (mssql, mssql, mssql://root:Password123!@127.0.0.1/sqlpage) (push) Has been cancelled
CI / test (mysql, mysql, mysql://root:Password123!@127.0.0.1/sqlpage) (push) Has been cancelled
CI / test (oracle, oracle, Driver=Oracle 21 ODBC driver;Dbq=//127.0.0.1:1521/FREEPDB1;Uid=root;Pwd=Password123!) (push) Has been cancelled
CI / test (postgres, odbc, Driver=PostgreSQL Unicode;Server=127.0.0.1;Port=5432;Database=sqlpage;UID=root;PWD=Password123!, true) (push) Has been cancelled
CI / test (postgres, postgres, postgres://root:Password123!@127.0.0.1/sqlpage) (push) Has been cancelled
CI / windows_test (push) Has been cancelled
CI / docker_build (linux/amd64, duckdb) (push) Has been cancelled
CI / docker_build (linux/amd64, minimal) (push) Has been cancelled
Create Release / Build sqlpage binaries (macOS & Windows) (odbc-static, macos-latest, x86_64-apple-darwin) (push) Has been cancelled
Create Release / Build sqlpage binaries (Linux) (push) Has been cancelled
Create Release / Build AWS Lambda Serverless zip image (push) Has been cancelled
Create Release / Create Github Release (push) Has been cancelled
Create Release / Publish to crates.io (push) Has been cancelled
v0.44.0
2026-05-29 22:55:56 +02:00
Ophir LOJKINE b4b6811f96 Fix v0.44.0 release rerun 2026-05-29 22:45:15 +02:00
Ophir LOJKINE 1237128912 Finalize v0.44.0 changelog 2026-05-29 22:29:10 +02:00
Ophir LOJKINE d8577c7554 Update sqlx-oldapi and telemetry example 2026-05-29 22:24:53 +02:00
Ophir LOJKINE 2c89bd04f7 Update remaining dependency pins 2026-05-29 22:24:53 +02:00
Ophir LOJKINE bbafdbc4d7 Update OpenTelemetry dependencies 2026-05-29 22:24:53 +02:00
Ophir LOJKINE 40f274e217 Check database filesystem table before preparing queries 2026-05-18 00:09:42 +02:00
Ophir LOJKINE a467319e7e Update sqlx-oldapi to 0.6.55 2026-05-17 16:23:17 +02:00
Ophir LOJKINE 5dfed603b0 Update v0.44.0 changelog 2026-05-17 01:52:28 +02:00
Ophir LOJKINE 60be567944 update dependencies 2026-05-16 22:05:49 +02:00
Ophir LOJKINE 7eaf83ce53 Use major refs for official GitHub Actions
Follow the repository convention that official action sources, including actions/* and docker/*, should track major-version refs instead of exact patch tags.

Third-party actions remain pinned as before.

User-level behavior is unchanged; this only changes workflow action reference policy.
2026-05-16 14:03:27 +02:00
Ophir LOJKINE 39c616b8ca Quiet Docker and Oracle CI warnings
Update Docker GitHub Actions to their Node 24 releases.

Import Oracle's RPM signing key before installing the Instant Client RPMs so the Oracle ODBC job no longer emits NOKEY warnings.

Suppress the known Node deprecation output only around artifact downloads that still emit it under the latest action.

User-level behavior is unchanged; this only affects CI action/runtime logging.
2026-05-16 01:40:35 +02:00
Ophir LOJKINE f85c58c3c1 Remove remaining CI action warnings
Update artifact and setup-node actions to Node 24-compatible releases.

Scope NODE_OPTIONS=--no-deprecation to rust-cache steps because the latest rust-cache action still emits a punycode deprecation from its dependency stack under Node 24.

User-level behavior is unchanged; this only removes CI log warnings while keeping Rust caching enabled.
2026-05-16 00:56:50 +02:00
Ophir LOJKINE 4a28658a34 Fix Rust 1.95 CI warnings
Update Rust code for new Clippy lints introduced by the CI toolchain, including Duration unit constructors, loop counter handling, Option checks, and trailing commas.

Stop routine frontend asset downloads from being emitted as Cargo warnings during builds.

Move checkout and rust-cache GitHub Actions to Node 24-compatible releases to avoid runner deprecation warnings.

User-level behavior is unchanged; the only observable change is quieter build logs.
2026-05-16 00:43:04 +02:00
Ophir LOJKINE f6e7abc8b7 Update Rust dependencies
Bump sqlparser from 0.61.0 to 0.62.0, hmac from 0.12 to 0.13, and sha2 from 0.10 to 0.11. Refresh Cargo.lock and remove SQLPage's direct password-hash dependency by using argon2's re-exported password_hash API.

SQLPage parses every .sql file before execution, rewrites SQLPage variables/functions through the sqlparser AST, and serializes the AST back to SQL. The sqlparser bump therefore changes which SQL text reaches the database.

SQLPage-visible sqlparser 0.62 changes for supported dialects:

- PostgreSQL: SQLPage can now parse and pass through LOCK TABLE; PRIMARY KEY/UNIQUE USING INDEX; parenthesized CREATE TABLE ... (LIKE ... INCLUDING/EXCLUDING DEFAULTS); COMMENT ON for additional object types; two-argument TRIM(string, characters); INTERVAL as an unquoted identifier; SETOF return types; ALTER FUNCTION/ALTER AGGREGATE; xml '...' typed strings; COLLATE after compound identifiers; LATERAL function calls WITH ORDINALITY; and pg_hint_plan-style SELECT optimizer hints in leading comments.

- MySQL: SQLPage can now parse and pass through KEY column options in CREATE TABLE and ORDER BY on single-table UPDATE. Incomplete DIV expressions now become SQLPage parser errors instead of panicking the parser.

- SQLite: incomplete REGEXP/MATCH expressions now become SQLPage parser errors instead of panicking the parser; two-argument TRIM(string, characters) is accepted.

- DuckDB: two-argument TRIM(string, characters) is accepted.

- MSSQL: SQLPage can now parse and pass through THROW, WAITFOR, BEGIN/COMMIT/ROLLBACK TRAN, EXEC(@sql) dynamic SQL, OUTPUT clauses on INSERT/UPDATE/DELETE, and dollar-prefixed money constants. Statement-starting keywords such as DECLARE, EXEC, INSERT, UPDATE, DELETE, CREATE, ALTER, RETURN, THROW, RAISERROR, and MERGE are no longer consumed as implicit aliases after SELECT items or table factors, so multi-statement T-SQL batches are less likely to be rejected by SQLPage's pre-parser.

- Oracle: SQLPage can now parse and pass through table aliases on INSERT targets and INSERT INTO (<sub-query>) forms.

- Snowflake: SQLPage can now parse and pass through multi-table INSERT, lambda functions, wildcard EXCLUDE fixes, stage-name/COPY parsing fixes, CHANGES clauses, COPY GRANTS, STORAGE LIFECYCLE POLICY, and text data type modifiers.

- Generic ODBC dialect: SQLPage now accepts the same new GenericDialect syntax as sqlparser 0.62, including UPDATE ... ORDER BY, KEY column options, comma TRIM, CTEs without AS, multi-column SELECT aliases, and xml typed strings. It no longer accepts lambda expressions in GenericDialect; databases detected as Snowflake still use SnowflakeDialect and keep lambda parsing.

SQLPage's special CSV upload handling is unchanged: it still intercepts COPY FROM file targets only. SQLPage's HMAC and password-hash outputs are intended to be unchanged; only imports/API wiring changed for the RustCrypto crates.

Lockfile-only runtime dependency updates include rustls 0.23.37 -> 0.23.40, rustls-pki-types 1.14.0 -> 1.14.1, webpki-roots 1.0.6 -> 1.0.7, aws-lc-rs 1.16.2 -> 1.17.0, tokio 1.51.1 -> 1.52.3, and config 0.15.22 -> 0.15.23. No SQLPage code changed for these; the user-visible surface is the upstream TLS/runtime/config bugfix behavior of those crates.

Validation before amend: cargo fmt --all; cargo clippy --all-targets --all-features -- -D warnings; cargo test.
2026-05-15 22:23:24 +02:00
setop 966b955f36 card: add top image attributes for lazy loading (#1283)
* card: add top image attributes for lazy loading

This will be useful for long image gallery.

Developped according to [HTML specs of img tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#lazy)

* docs: move card image parameters into existing migration

---------

Co-authored-by: Ophir LOJKINE <ophir.lojkine@datadoghq.com>
2026-05-12 22:27:41 +02:00
June 913e0ba888 Fix DuckDB :: casting warning (#1284)
DuckDB natively supports PostgreSQL's :: casting shorthand:
https://duckdb.org/docs/stable/sql/expressions/cast#explicit-casting

Added SupportedDatabase::Duckdb to the allow-list to prevent
unnecessary warning and CAST transformation.

Fixes #1200
2026-05-12 15:11:54 +02:00
Ophir LOJKINE d16cbd6669 docs: fix card icon placement description
Closes https://github.com/sqlpage/SQLPage/issues/1286
2026-05-12 14:51:21 +02:00
dependabot[bot] fde590bca4 Bump rustls-webpki from 0.103.11 to 0.103.13 (#1280)
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.11 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](https://github.com/rustls/webpki/compare/v/0.103.11...v/0.103.13)

---
updated-dependencies:
- dependency-name: rustls-webpki
  dependency-version: 0.103.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-23 12:27:35 +02:00
dependabot[bot] 2a0ff80dc1 Bump actix-http from 3.12.0 to 3.12.1 (#1279)
Bumps [actix-http](https://github.com/actix/actix-web) from 3.12.0 to 3.12.1.
- [Release notes](https://github.com/actix/actix-web/releases)
- [Changelog](https://github.com/actix/actix-web/blob/main/CHANGES.md)
- [Commits](https://github.com/actix/actix-web/compare/http-v3.12.0...http-v3.12.1)

---
updated-dependencies:
- dependency-name: actix-http
  dependency-version: 3.12.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 17:49:37 +02:00
Ophir LOJKINE b18e138f34 Fix clippy collapsible-if warnings 2026-04-17 00:20:13 +02:00
Ophir LOJKINE cbf879cfd0 bump sqlx-oldapi to 0.6.53
Fixes timestamptz decode returning epoch (1970-01-01) for negative
timezone offsets (e.g. America/New_York) when using SET variables.
2026-04-16 17:50:47 +02:00
Ophir LOJKINE 1e64d7e3ed Fix OpenTelemetry naming in logs and spans 2026-04-16 11:25:31 +02:00
lovasoa 1af44a79d0 fmt 2026-04-13 02:44:47 +02:00
lovasoa 85656c4585 chore: migrate to rust 2024 by fixing implicit borrows and unsafe env modifications 2026-04-13 02:03:54 +02:00
lovasoa 3f2d6cf869 dependencies 2026-04-12 03:08:22 +02:00
Ophir LOJKINE 320121977c Revert "get_path_segment() and is_path_matching() sqlpage functions (#1266)" (#1274)
This reverts commit a3f91ebea1.
2026-04-11 19:02:07 +02:00
olivierauverlot a3f91ebea1 get_path_segment() and is_path_matching() sqlpage functions (#1266)
* get_path_segment and is_path_matching sqlpage functions

* Fix for an error in example.

* If a segment in the pattern is ''%d'', it will match any non-empty segment that is an integer. If a segment in the pattern is ''%s'', it will match any non-empty segment in the path

---------

Co-authored-by: Olivier Auverlot <olivier.auverlot@icloud.com>
2026-04-11 18:56:13 +02:00
Ophir LOJKINE 0d5373509a new function: sqlpage.regex_match (#1271)
* new function: sqlpage.regex_match

* fix mysql tests

* Update CHANGELOG.md
2026-04-08 21:39:32 +02:00
Ophir LOJKINE 4b81a2520d fix missing documentations for xmin and xmax in the chart component 2026-04-08 13:49:01 +02:00
Ophir LOJKINE b68a93e64f fix format 2026-04-07 17:51:59 +02:00
Ophir LOJKINE 409962047c Merge branch 'main' of github.com:sqlpage/SQLPage 2026-04-07 17:44:29 +02:00
Ophir LOJKINE bf9d5fe212 fixed chart menu readability on dark theme 2026-04-07 17:44:14 +02:00
Ophir LOJKINE 72fb37810a update apex charts 2026-04-07 17:27:12 +02:00
Ophir LOJKINE a0cd222093 update dependencies 2026-04-07 17:21:06 +02:00
Ophir LOJKINE b7f7913d62 Update CHANGELOG.md 2026-04-07 17:20:22 +02:00
Ophir LOJKINE d11390ac10 Chart: add show_legend toggle, document it, and add e2e test (#1270)
* Add show_legend option to chart component

* Fix show_legend for SQLite boolean values

* remove ai cruft
2026-04-07 17:18:13 +02:00
Ophir LOJKINE 298d86cd84 update dependencies 2026-04-02 11:33:06 +02:00
dependabot[bot] 5bb31d63d4 Bump rustls-webpki from 0.103.9 to 0.103.10 (#1256)
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.9 to 0.103.10.
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](https://github.com/rustls/webpki/compare/v/0.103.9...v/0.103.10)

---
updated-dependencies:
- dependency-name: rustls-webpki
  dependency-version: 0.103.10
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-21 11:24:43 +01:00
Ophir LOJKINE 08ae59e696 Suppress startup logs for CLI-only invocations (#1250) 2026-03-19 10:42:29 +01:00
Ophir LOJKINE 3af82f4857 Fix http header only page crashes (#1253)
Return errors early on invalid header values
2026-03-17 16:13:11 +01:00
Ophir LOJKINE 316fa4b5a2 Return BadRequest for non-unicode static paths and add test (#1252)
* Fix non-unicode DB filesystem regression test

* Fix non-unicode DB fs routing test
2026-03-17 13:50:55 +01:00
Ophir LOJKINE db91902d49 Log HTTP responses with correct severity and include status reason (#1251)
* Log non-2xx HTTP responses in request completion log

* fix log message
2026-03-17 11:35:51 +01:00
Ophir LOJKINE e9762528e1 Harden OIDC and fetch debug logging 2026-03-16 17:55:28 +01:00
Ophir LOJKINE 38085d1c9e Merge branch 'main' of github.com:sqlpage/SQLPage 2026-03-16 17:50:05 +01:00
lovasoa 97efb6aeab format 2026-03-16 02:49:48 +01:00
lovasoa 70cf59ed50 Add script to predownload offline build dependencies 2026-03-16 02:33:42 +01:00
lovasoa a1cf7a0835 Update otel example: fix on selinux systems 2026-03-16 02:33:42 +01:00
Ophir LOJKINE fda4af3c8a Remove reqwest/tower from default OTLP graph (#1248)
* chore: remove reqwest from default OTLP dependency graph

* fix: run OTLP hyper exporters on tokio async runtime

* fix: propagate OTLP init errors without panic

* fix: surface OTLP exporter failures in default logs

* feat: use awc for OTLP HTTP exports

* refactor: share awc client construction with telemetry
2026-03-16 02:22:37 +01:00
Ophir LOJKINE 8db4f036b8 Remove env_logger and use telemetry logging in tests (#1247)
* Remove env_logger and reuse telemetry logging in tests

* Use test-captured writer for telemetry logs in tests

* Isolate test logging init from OTEL and keep tests quiet
2026-03-15 15:43:39 +01:00