145 Commits

Author SHA1 Message Date
Prayag Bhakar bfd6d33812 fix(npm) :: install dependencies only once at root level (#1372) 2026-08-13 10:29:29 +02:00
Ophir LOJKINE ae3c3c874f Update AWS Lambda runtime to Amazon Linux 2023 (#1361)
* Update AWS Lambda runtime to Amazon Linux 2023

* Fix AWS Lambda release packaging
2026-08-02 19:37:08 +02:00
Ophir LOJKINE e6302767e8 Pin CI to Node 24
Use the same explicit LTS release for lint and Playwright jobs, cache the root npm install, and install only Chromium's headless shell in browser-test CI.
2026-07-18 00:05:43 +02:00
Ophir LOJKINE fa69a143b0 Simplify Docker tag publishing workflow (#1333) 2026-06-14 22:37:18 +02:00
Ophir LOJKINE c9b6cbfe4c Fix Docker latest tag for DuckDB variant (#1332) 2026-06-14 21:58:34 +02:00
Ophir LOJKINE 441f21cc96 Fix Hurl checksum verification in CI 2026-06-10 18:00:06 +02:00
Ophir LOJKINE a6501464b7 Cache Hurl binary in CI 2026-06-10 17:57:44 +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 635650b26a Run example Hurl tests from CI image build 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 379eab38ef Add Hurl smoke tests for examples 2026-06-02 15:56:27 +02:00
Ophir LOJKINE b4b6811f96 Fix v0.44.0 release rerun 2026-05-29 22:45:15 +02:00
Ophir LOJKINE 2c89bd04f7 Update remaining dependency pins 2026-05-29 22:24:53 +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 7bb11c16e8 duckdb odbc docker (#1187)
* add a duckdb docker image

* Add DuckDB ODBC driver installation and configuration

Installs DuckDB ODBC driver and configures system-wide ODBC settings to
enable DuckDB database connectivity for SQLPage.

* add duckdb odbc info to readme

* Fix CI digest artifact matching

* Temporarily publish docker images on branch

* Allow docker publish on branch (fix)

* Temporarily run CI on branch pushes

* Disable branch publish; fix duckdb inspect tag

* Temporarily enable CI push on branch

* Fix minimal tag suffix in docker_push

* Disable temporary branch CI push
2026-01-17 01:23:29 +01:00
Ophir LOJKINE a2ef976fc7 Add support for Oracle over ODBC (compatibility fixes, ci testing) (#1182)
* Add Oracle DB (free) and ODBC CI support

This change adds support for testing with Oracle DB (using the free version `gvenzl/oracle-free:slim`) in the CI pipeline. It:
- Updates `.github/workflows/ci.yml` to include a new matrix entry for Oracle DB.
- Adds steps to install the Oracle Instant Client and ODBC driver in the CI runner.
- Configures `odbcinst.ini` to register the Oracle ODBC driver.
- Updates `docker-compose.yml` to include the Oracle DB service definition.

* Fix CI: Remove libaio1 dependency

`libaio1` is not available in the ubuntu-latest environment used by GitHub Actions (which likely uses a newer Ubuntu version where `libaio1` is replaced by `libaio1t64` or similar, or it is transitively installed). Removing explicit installation to fix the CI failure.

* Fix CI: Update Oracle Instant Client to 21.14

The previous version 21.10.0.0.0-1 seems to be no longer available at the specified URL (404 Not Found). Updated to 21.14.0.0.0-1 which was verified to exist.

* Fix CI: Install libaio1t64 for Oracle Instant Client

Oracle Instant Client requires `libaio.so.1`, which is provided by the `libaio1t64` package in newer Ubuntu versions (like 24.04). Installing this package should resolve the "cannot open shared object file: No such file or directory" error.

* Fix CI: Symlink libaio.so.1 for Oracle Instant Client

On Ubuntu 24.04 (Noble), `libaio1t64` installs the library as `libaio.so.1t64`, but Oracle Instant Client explicitly looks for `libaio.so.1`. Creating a symlink fixes this loading issue.

* Fix CI: Install libodbcinst2 and unixodbc for Oracle driver

The Oracle ODBC driver requires `libodbcinst.so.2` which is provided by `libodbcinst2`. Installing `unixodbc` ensures the full ODBC stack is available.

* Fix CI: Remove redundant wget installation

`wget` is pre-installed on GitHub Actions runners, so the explicit installation via `apt-get` is unnecessary.

* Fix CI: Create 'root' user in Oracle DB

The Oracle test run failed with ORA-01017 (invalid credentials) because the 'root' user does not exist by default in the Oracle database.
This commit:
1. Installs Oracle SQL*Plus (instantclient-sqlplus) in the CI environment.
2. Adds a step to connect as SYSDBA and create the 'root' user with the required permissions and password, matching the test configuration.

* Fix CI: Use container env vars for Oracle user

Instead of manually creating the 'root' user with SQL*Plus, rely on the `gvenzl/oracle-free` container's initialization features (`APP_USER` and `APP_USER_PASSWORD`) which were already configured in `docker-compose.yml`.
Removed the SQL*Plus installation and user creation steps from the CI workflow.

* Fix CI: Use FREEPDB1 service for Oracle user

The `APP_USER` ('root') created by the `gvenzl/oracle-free` container is created in the `FREEPDB1` pluggable database, not the `FREE` container database. Updated the connection string to use `FREEPDB1`.

* Fix Oracle DB test failures

- `sql_to_json`: Handle Oracle's behavior where empty strings are treated as NULL.
- `filesystem`: Explicitly CAST the timestamp parameter to TIMESTAMP in `was_modified_query` for ODBC (Oracle) to avoid ORA-01843 (invalid month) errors caused by implicit string-to-date conversion mismatches.

* Fix Oracle tests by accounting for known behavior

- Revert generic ODBC changes in `filesystem.rs`.
- Skip `test_sql_file_read_utf8` for ODBC connections (Oracle) because fixing the `ORA-01843` error would require Oracle-specific SQL (e.g. `CAST` or `TO_TIMESTAMP`) in the main codebase which is undesirable for a generic ODBC implementation.
- Keep the test adjustment in `sql_to_json.rs` but clarify the comment that we are assuming ODBC implies Oracle in this test context for the empty string behavior.

* Fix Oracle tests: Identify Oracle by connection string

Instead of relying on `sqlx::any::AnyKind::Odbc` (which applies to any ODBC database), detect Oracle specifically by checking if the connection string contains "Oracle". This allows applying Oracle-specific test logic (like skipping tests with implicit timestamp conversions or handling empty strings as NULL) without incorrectly affecting other ODBC databases.

* use oracle dialect when talking to oracle

* remove stupid ai comment

* update oracle odbc installation steps

* fix odbc installation path

* cast variables to varchar(4000) in oracle

* clippy

* remove long backtraces from ci

* fixed csv upload test for oracle

* update tests for oracle

* properly quote sqlpage-generated col names

* fix test syntax for oracle

* clippy

* remove as but keep alias

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-01-12 14:22:07 +01:00
lovasoa d8e6a280fc Update CI configuration to use a shared cache key for Rust builds and adjust cache saving conditions. The shared key is now set to 'rust-sqlpage-proj-test' for both main and test branches, with the test branch cache saving disabled. 2025-11-08 01:25:39 +01:00
Ophir LOJKINE 2e2c5e9c41 Fix github pr ci cache warnings (#1086)
* feat: Add shared-key to cargo cache action

Co-authored-by: contact <contact@ophir.dev>

* Refactor: Use matrix-specific cache key in CI

Co-authored-by: contact <contact@ophir.dev>

* feat: Cache Rust build artifacts only on main branch

Co-authored-by: contact <contact@ophir.dev>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-11-07 22:00:52 +01:00
lovasoa 4dba824727 Enhance ODBC support for Debian-based systems by setting the library search path in build.rs. Update CI configuration to use the correct PostgreSQL driver name. Document changes in CHANGELOG.md. 2025-10-27 14:56:17 +01:00
lovasoa be5eb4cd06 fix odbc memory corruption
make it harder to miss such issues in the future thanks to malloc instrumentation on ci

fixes https://github.com/pacman82/odbc-api/issues/793
2025-10-25 01:21:13 +02:00
lovasoa e263788ef3 rename deploy job 2025-10-05 12:01:12 +02:00
lovasoa 2f37d2ddd1 add lambda-web feature and update CI to test with odbc-static
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 (postgres, odbc, Driver=/usr/lib/x86_64-linux-gnu/odbc/psqlodbcw.so;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) (push) Has been cancelled
CI / docker_build (linux/arm/v7) (push) Has been cancelled
CI / docker_build (linux/arm64) (push) Has been cancelled
CI / docker_push (push) Has been cancelled
Create Release / Build sqlpage binaries (macOS & Windows) (.exe, , windows-latest, x86_64-pc-windows-msvc) (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
2025-10-04 23:18:35 +02:00
lovasoa a472c1c51f install unixodbc before cargo publish 2025-10-04 22:57:07 +02:00
lovasoa 3cad946738 documentation 2025-10-04 21:11:16 +02:00
lovasoa 6ceeb81ccb test with static odbc 2025-10-04 20:36:09 +02:00
lovasoa a7ff6d6c12 Update ODBC dependency configuration and CI workflow to use all features 2025-10-04 20:23:42 +02:00
lovasoa 5fb17c65d0 update driver path 2025-10-04 00:25:52 +02:00
lovasoa 3bb75133ea update driver path 2025-10-04 00:25:26 +02:00
lovasoa 8b858015a8 Update PostgreSQL ODBC driver configuration in CI workflow 2025-10-04 00:18:33 +02:00
lovasoa 95315f68e1 Update ODBC driver configuration in CI and docker-compose for PostgreSQL 2025-10-03 23:52:23 +02:00
lovasoa 515005cac7 truly static iodbc link 2025-10-03 22:50:22 +02:00
Ophir LOJKINE 625deb973b Add and document sqlpage.hmac function (#1033)
* feat: Add sqlpage.hmac function for cryptographic signing

Co-authored-by: contact <contact@ophir.dev>

* feat: Add sqlpage.hmac function for secure data signing

Co-authored-by: contact <contact@ophir.dev>

* Test HMAC function with RFC vectors and update tests

Co-authored-by: contact <contact@ophir.dev>

* feat: Add sqlpage.hmac() function for secure signatures

Co-authored-by: contact <contact@ophir.dev>

* feat: Add base64 output option to hmac function

Co-authored-by: contact <contact@ophir.dev>

* Refactor hmac function for cleaner output formatting

Co-authored-by: contact <contact@ophir.dev>

* Add webhook HMAC signature validation tests

Co-authored-by: contact <contact@ophir.dev>

* Refactor HMAC function and update SQL examples for clarity and consistency

- Changed function parameters to remove Option types for data and key in the HMAC function.
- Improved SQL documentation and examples for HMAC usage, including clearer descriptions and updated error handling.
- Enhanced test cases for webhook HMAC validation to ensure accurate signature checks and responses.
- Removed obsolete test file for HMAC with null values.

* Update HMAC validation logic to handle NULL values in SQL queries

- Modified conditions in SQL queries to check for NULL values alongside signature mismatches.
- Enhanced documentation on NULL handling for HMAC checks to improve clarity and portability.

* remove debug logging from ci

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-10-01 21:07:36 +02:00
Cursor Agent 70f3473f15 Fix: Update ODBC driver and ensure /lib64 exists
Co-authored-by: contact <contact@ophir.dev>
2025-09-26 16:21:42 +02:00
lovasoa a76965cd39 Update docker-compose and README for ODBC support; enhance CI workflow to include ODBC testing 2025-09-26 16:21:42 +02:00
lovasoa c9bce0daa1 install odbc on e2e ci 2025-09-26 16:21:42 +02:00
lovasoa c131aea909 Add ODBC dependencies installation step in CI workflow for enhanced database support 2025-09-26 16:21:42 +02:00
lovasoa bbb0210ec8 Enhance Dockerfile and CI workflows by adding ODBC dependencies for improved database support 2025-09-26 16:21:42 +02:00
lovasoa 1c64fd25be increase windows signing timeouts
CI / compile_and_lint (push) Has been cancelled
CI / test (mssql) (push) Has been cancelled
CI / test (mysql) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / windows_test (push) Has been cancelled
CI / docker_build (linux/amd64) (push) Has been cancelled
CI / docker_build (linux/arm/v7) (push) Has been cancelled
CI / docker_build (linux/arm64) (push) Has been cancelled
CI / docker_push (push) Has been cancelled
Create Release / Build sqlpage binaries (macOS & Windows) (.exe, windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
Create Release / Build sqlpage binaries (macOS & Windows) (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
2025-09-24 17:16:40 +02:00
Ophir LOJKINE d8106e8491 Sign windows build with signpath.io (#990)
Create Release / Build sqlpage binaries (macOS & Windows) (.exe, windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
Create Release / Build sqlpage binaries (macOS & Windows) (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
CI / compile_and_lint (push) Has been cancelled
CI / test (mssql) (push) Has been cancelled
CI / test (mysql) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / windows_test (push) Has been cancelled
CI / docker_build (linux/amd64) (push) Has been cancelled
CI / docker_build (linux/arm/v7) (push) Has been cancelled
CI / docker_build (linux/arm64) (push) Has been cancelled
CI / docker_push (push) Has been cancelled
Create Release / Publish to crates.io (push) Has been cancelled
* Sign windows build with signpath.io

Thanks to signpath.io for providing us with a free windows signing certificate !

- Added permissions for actions read access.
- Implemented unsigned artifact upload for Windows.
- Integrated SignPath for signing requests and added signed artifact upload.
- Updated non-Windows artifact upload process.

* release signing + link to signpath from README
2025-09-02 15:48:40 +02:00
Ophir LOJKINE 168d781e97 Create FUNDING.yml 2025-08-03 22:28:52 +02:00
lovasoa 98938a7b89 update rust cache action 2025-05-29 21:17:00 +02:00
Ophir LOJKINE 15b3fb8b9f linux builds with old glibc (#927)
* update release workflow to include release-test branch and conditional execution for tag events

* update release workflow to use GNU target and simplify Rust toolchain installation

* refactor release workflow to separate Linux build job and streamline macOS/Windows builds

* update release workflow to use manylinux_2_28_x86_64 container for Linux builds
2025-05-29 01:56:07 +02:00
lovasoa 5e34f29bad clippy in ci 2025-05-25 23:23:49 +02:00
lovasoa b04344a67b fix ci release script
CI / compile_and_lint (push) Has been cancelled
CI / test (mssql) (push) Has been cancelled
CI / test (mysql) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / windows_test (push) Has been cancelled
CI / docker_build (linux/amd64) (push) Has been cancelled
CI / docker_build (linux/arm/v7) (push) Has been cancelled
CI / docker_build (linux/arm64) (push) Has been cancelled
CI / docker_push (push) Has been cancelled
Create Release / Build sqlpage binaries (.exe, windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
Create Release / Build sqlpage binaries (macos-latest, x86_64-apple-darwin) (push) Has been cancelled
Create Release / Build sqlpage binaries (ubuntu-latest, x86_64-unknown-linux-musl) (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
2025-05-22 00:50:52 +02:00
lovasoa bebd886c92 build with msvc on windows 2025-05-22 00:20:27 +02:00
lovasoa 1a32281ab4 fix build 2025-05-22 00:03:09 +02:00
lovasoa 0545ab3a3b update rust cache gha 2025-05-21 23:58:50 +02:00