Commit Graph

2827 Commits

Author SHA1 Message Date
Ophir LOJKINE d92a7399e2 fix: enforce unprivileged path guard on fresh cache hits (#1307)
Reserved/private SQL files (sqlpage/ prefix, dotfiles, .. traversal,
absolute paths) became directly routable over HTTP while their parsed
form was fresh in sql_file_cache. A trusted page loading such a file via
sqlpage.run_sql(...) loads it with privilege and caches it; a later
direct unprivileged request hit the fresh cache entry before the path
guard ran, returning 200 and executing the private SQL instead of 403.

The unprivileged path validation is extracted into
filesystem::validate_unprivileged_path and now enforced before
consulting the cache in both HTTP routing (AppFileStore::contains) and
the unprivileged FileCache::get_with_privilege path.
2026-06-10 16:37:20 +02:00
Ophir LOJKINE 895096b8e5 docs: warn that static file serving follows symlinks under web_root (#1305)
* docs: warn that static serving follows symlinks under web_root

Operators control web_root contents, so a symlink there is a trusted
deployment artifact. Clarify that SQLPage follows such symlinks during
static file serving, meaning a symlink under web_root pointing to
reserved/private files (sqlpage/ config, dotfiles) or to files outside
web_root would make those targets publicly reachable.

Note added to SECURITY.md (Out of Scope), cross-referenced from the
web_root row in configuration.md and an Unreleased CHANGELOG entry.

* Update web_root description for clarity
2026-06-10 16:26:57 +02:00
Ophir LOJKINE abd60cd8d2 docs: clarify persist_uploaded_file folder is trusted app input (#1306)
Document that the folder/destination_folder argument of
sqlpage.persist_uploaded_file must be chosen by the app author and never
derived from untrusted request data. It is joined directly to the web
root, so a value containing '..' or an absolute path would write the
uploaded file outside the web root. Docs-only clarification of existing
intended behavior; no logic change.
2026-06-10 16:25:59 +02:00
Ophir LOJKINE ada23bc089 update-deps 2026-06-08 14:53:37 +02:00
Ophir LOJKINE 1ffc6d82b8 document select options_source behavior (#1300) 2026-06-08 14:51:33 +02:00
Ophir LOJKINE 96de58788a Document security policy and threat model (#1297) 2026-06-05 21:37:30 +02:00
Ophir LOJKINE 8b9d6a0319 Improve CI Docker cache reuse (#1296)
* Improve CI Docker cache reuse

* Ignore git metadata in Docker builds

* Use BuildKit cache mounts for Cargo Docker builds

* Make Docker dependency layer match real build inputs

* Revert "Make Docker dependency layer match real build inputs"

This reverts commit 3a9372150ed30437c0b7872907a3e03ce1c38f5d.

* Revert "Use BuildKit cache mounts for Cargo Docker builds"

This reverts commit dac2c5264bee72fc287877fcfe15e49c319d99dd.

* Test CI incremental Rust caches

* Remove slow Windows port diagnostic

* Narrow Windows incremental cache

* Reuse Linux test artifacts in CI

* Avoid duplicate Linux test execution in CI

* Isolate Docker cache scopes by recipe

* Warm Docker dependencies for lib target

* Warm Docker dependencies with Cargo config

* Stabilize Docker metadata for cache keys

* Use Git context for Docker builds
2026-06-04 00:20:09 +02:00
Ophir LOJKINE 2b52960f62 update dependencies 2026-06-02 16:02:59 +02:00
Ophir LOJKINE 635650b26a Run example Hurl tests from CI image build 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 9b8a091e60 Strengthen master-detail Hurl flow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 5e6ff73699 Strengthen telemetry Hurl trace checks 2026-06-02 15:56:27 +02:00
Ophir LOJKINE ab714a4ff1 Strengthen CRUD auth Hurl flow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE af0ca82e6d Strengthen user auth Hurl flow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 5f8e769716 Fix todo example SQLite permissions 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 9d76d05540 Add PostGIS and official site Hurl flows 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 35ce87fd54 Add SSO and admin example Hurl flows 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 53ff0bd52c Fix telemetry Hurl compose startup 2026-06-02 15:56:27 +02:00
Ophir LOJKINE d254c8c3ae Fix SSO compose and add database Hurl flows 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 0e6a2d023c Fix Hurl runner rebuilds and Pokemon smoke test 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 4fc8247757 Add remote content cards Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 93d8da560b Add Apache example Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 868f647375 Add nginx example Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE c2c6b75436 Add React custom scripts Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 8bb80d165b Add charts custom components Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE fcba5e6680 Add sending emails Hurl smoke test 2026-06-02 15:56:27 +02:00
Ophir LOJKINE f89b678dfb Use htmlUnescape in splitwise Hurl assertions 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 370583d9d9 Add splitwise Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 5d78aadc04 Add plots tables forms Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 5a68eddafd Add corporate conundrum Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE dc3187aae2 Add many-to-many form Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE eaa5c1724c Add rich text editor Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 75ce7d6ce9 Add simple website Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 2981ff9a40 Add light-dark toggle Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 00b3e1b425 Add tiny Twitter Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 14b4bd6f9b Add multiple-choice Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 530524cd37 Add master-detail Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 7792fdfc24 Add custom form Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 6650f52f6f Add cookie example Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 9cba64c303 Add telemetry Hurl span workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 2d572615d3 Add variable-fields form Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 5fd4dd5f21 Add CRUD authentication Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 7f3c90e851 Fix gallery upload Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE c836906c3e Add multi-step form Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 2ef1ba0a7e Add user authentication Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 74fbb71013 Add todo example Hurl workflow 2026-06-02 15:56:27 +02:00
Ophir LOJKINE ee2b0aecc8 Add gallery test and fix nginx socket 2026-06-02 15:56:27 +02:00
Ophir LOJKINE 379eab38ef Add Hurl smoke tests for examples 2026-06-02 15:56:27 +02:00
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