From 3e0c786e531e0ff357477d46ffce204485148884 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 5 Jul 2026 17:27:49 -0400 Subject: [PATCH 01/11] bump: rust --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 0ded84c..60cb783 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "textsender_auth" version = "0.2.1" edition = "2024" -rust-version = "1.96" +rust-version = "1.96.1" [dependencies] axum = { version = "0.8.9" } -- 2.47.3 From 63fa6eb920ae9faff0d4c4dae39f6a33393cb674 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 5 Jul 2026 17:27:58 -0400 Subject: [PATCH 02/11] bump: rust ci --- .gitea/workflows/pr.yml | 12 ++++++------ .gitea/workflows/workflow.yml | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/pr.yml b/.gitea/workflows/pr.yml index 267d91e..db11117 100644 --- a/.gitea/workflows/pr.yml +++ b/.gitea/workflows/pr.yml @@ -14,10 +14,10 @@ jobs: name: Check runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.96 + toolchain: 1.96.1 - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh @@ -35,10 +35,10 @@ jobs: name: Rustfmt runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.96 + toolchain: 1.96.1 - uses: Swatinem/rust-cache@v2 - run: rustup component add rustfmt - run: | @@ -55,10 +55,10 @@ jobs: name: Clippy runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.96 + toolchain: 1.96.1 - uses: Swatinem/rust-cache@v2 - run: rustup component add clippy - run: | diff --git a/.gitea/workflows/workflow.yml b/.gitea/workflows/workflow.yml index ab0a22f..638fc4a 100644 --- a/.gitea/workflows/workflow.yml +++ b/.gitea/workflows/workflow.yml @@ -14,10 +14,10 @@ jobs: name: Check runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.96 + toolchain: 1.96.1 - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh @@ -51,10 +51,10 @@ jobs: --health-retries 5 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.96 + toolchain: 1.96.1 - uses: Swatinem/rust-cache@v2 # --- Add this step for explicit verification --- - name: Verify Docker Environment @@ -94,10 +94,10 @@ jobs: name: Rustfmt runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.96 + toolchain: 1.96.1 - uses: Swatinem/rust-cache@v2 - run: rustup component add rustfmt - run: | @@ -114,10 +114,10 @@ jobs: name: Clippy runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.96 + toolchain: 1.96.1 - uses: Swatinem/rust-cache@v2 - run: rustup component add clippy - run: | @@ -134,10 +134,10 @@ jobs: name: build runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.96 + toolchain: 1.96.1 - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh -- 2.47.3 From ef2a641b1693e513642ef7d90c79f3e9b661d32e Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 5 Jul 2026 17:28:08 -0400 Subject: [PATCH 03/11] bump: rust docker --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5683cce..f9f29dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Stage 1: Build the application # Use a specific Rust version for reproducibility. Choose one that matches your development environment. # Using slim variant for smaller base image -FROM rust:1.96 as builder +FROM rust:1.96.1 as builder # Set the working directory inside the container WORKDIR /usr/src/app -- 2.47.3 From 362cec1ff515db7daff6b7279cf09919010692e6 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 5 Jul 2026 17:36:20 -0400 Subject: [PATCH 04/11] bump: textsender_models --- Cargo.lock | 672 ++++------------------------------------------------- Cargo.toml | 2 +- 2 files changed, 41 insertions(+), 633 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2505613..112a7fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -231,12 +231,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "const_format" version = "0.2.36" @@ -359,17 +353,6 @@ dependencies = [ "cmov", ] -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - [[package]] name = "deranged" version = "0.5.8" @@ -397,7 +380,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", - "const-oid", "crypto-common 0.1.7", "subtle", ] @@ -452,18 +434,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "etcetera" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" -dependencies = [ - "cfg-if", - "home", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -473,7 +444,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de48cc4d1c1d97a20fd819def54b890cadde72ed3ad0c614822a0a433361be96" dependencies = [ "cfg-if", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -510,17 +481,6 @@ dependencies = [ "zlib-rs", ] -[[package]] -name = "flume" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" -dependencies = [ - "futures-core", - "futures-sink", - "spin", -] - [[package]] name = "flume" version = "0.12.0" @@ -532,12 +492,6 @@ dependencies = [ "spin", ] -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - [[package]] name = "foldhash" version = "0.2.0" @@ -672,17 +626,6 @@ dependencies = [ "rand_core 0.10.1", ] -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.1.5", -] - [[package]] name = "hashbrown" version = "0.16.1" @@ -691,7 +634,7 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.2.0", + "foldhash", ] [[package]] @@ -700,15 +643,6 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" -[[package]] -name = "hashlink" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" -dependencies = [ - "hashbrown 0.15.5", -] - [[package]] name = "hashlink" version = "0.11.1" @@ -740,31 +674,13 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac 0.12.1", -] - [[package]] name = "hkdf" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4aaa26c720c68b866f2c96ef5c1264b3e6f473fe5d4ce61cd44bbe913e553018" dependencies = [ - "hmac 0.13.0", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", + "hmac", ] [[package]] @@ -776,15 +692,6 @@ dependencies = [ "digest 0.11.3", ] -[[package]] -name = "home" -version = "0.5.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "http" version = "1.4.2" @@ -1043,9 +950,6 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] [[package]] name = "libc" @@ -1053,24 +957,6 @@ version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" -[[package]] -name = "libm" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" - -[[package]] -name = "libredox" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f02ab6bace2054fb888a3c16f990117b579d14a3088e472d63c6011fa185c9d3" -dependencies = [ - "bitflags", - "libc", - "plain", - "redox_syscall 0.8.1", -] - [[package]] name = "libsqlite3-sys" version = "0.30.1" @@ -1114,16 +1000,6 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - [[package]] name = "md-5" version = "0.11.0" @@ -1174,7 +1050,7 @@ checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" dependencies = [ "libc", "wasi", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -1200,23 +1076,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" -dependencies = [ - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.6", - "smallvec", - "zeroize", + "windows-sys", ] [[package]] @@ -1225,26 +1085,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -1252,7 +1092,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -1328,7 +1167,7 @@ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.18", + "redox_syscall", "smallvec", "windows-link", ] @@ -1344,15 +1183,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -1365,39 +1195,12 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "pkg-config" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - [[package]] name = "potential_utf" version = "0.1.5" @@ -1413,15 +1216,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - [[package]] name = "proc-macro2" version = "1.0.106" @@ -1446,17 +1240,6 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rand" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" -dependencies = [ - "libc", - "rand_chacha", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.10.1" @@ -1468,16 +1251,6 @@ dependencies = [ "rand_core 0.10.1", ] -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - [[package]] name = "rand_core" version = "0.6.4" @@ -1502,15 +1275,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "redox_syscall" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b44b894f2a6e36457d665d1e08c3866add6ed5e70050c1b4ba8a8ddedb02ce7" -dependencies = [ - "bitflags", -] - [[package]] name = "regex" version = "1.12.4" @@ -1540,26 +1304,6 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" -[[package]] -name = "rsa" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" -dependencies = [ - "const-oid", - "digest 0.10.7", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", -] - [[package]] name = "rust-embed" version = "8.11.0" @@ -1604,7 +1348,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -1634,7 +1378,7 @@ version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -1733,17 +1477,6 @@ dependencies = [ "serde", ] -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "digest 0.10.7", -] - [[package]] name = "sha1" version = "0.11.0" @@ -1792,16 +1525,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - [[package]] name = "simd-adler32" version = "0.3.9" @@ -1830,7 +1553,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -1842,77 +1565,17 @@ dependencies = [ "lock_api", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlx" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" -dependencies = [ - "sqlx-core 0.8.6", - "sqlx-macros 0.8.6", - "sqlx-mysql 0.8.6", - "sqlx-postgres 0.8.6", - "sqlx-sqlite 0.8.6", -] - [[package]] name = "sqlx" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "378620ccc25c62c89d8be1c819e76a88d59bdcc3304733330788948e619bfd71" dependencies = [ - "sqlx-core 0.9.0", - "sqlx-macros 0.9.0", - "sqlx-mysql 0.9.0", - "sqlx-postgres 0.9.0", - "sqlx-sqlite 0.9.0", -] - -[[package]] -name = "sqlx-core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" -dependencies = [ - "base64", - "bytes", - "crc", - "crossbeam-queue", - "either", - "event-listener", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashbrown 0.15.5", - "hashlink 0.10.0", - "indexmap", - "log", - "memchr", - "native-tls", - "once_cell", - "percent-encoding", - "serde", - "serde_json", - "sha2 0.10.9", - "smallvec", - "thiserror", - "time", - "tokio", - "tokio-stream", - "tracing", - "url", - "uuid", + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", ] [[package]] @@ -1933,7 +1596,7 @@ dependencies = [ "futures-io", "futures-util", "hashbrown 0.16.1", - "hashlink 0.11.1", + "hashlink", "indexmap", "log", "memchr", @@ -1952,19 +1615,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "sqlx-macros" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core 0.8.6", - "sqlx-macros-core 0.8.6", - "syn", -] - [[package]] name = "sqlx-macros" version = "0.9.0" @@ -1973,36 +1623,11 @@ checksum = "bd2b84f2bc39a5705ef27ec785a11c934a41bbd4a24941e257927cddc26b60bf" dependencies = [ "proc-macro2", "quote", - "sqlx-core 0.9.0", - "sqlx-macros-core 0.9.0", + "sqlx-core", + "sqlx-macros-core", "syn", ] -[[package]] -name = "sqlx-macros-core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" -dependencies = [ - "dotenvy", - "either", - "heck", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2 0.10.9", - "sqlx-core 0.8.6", - "sqlx-mysql 0.8.6", - "sqlx-postgres 0.8.6", - "sqlx-sqlite 0.8.6", - "syn", - "tokio", - "url", -] - [[package]] name = "sqlx-macros-core" version = "0.9.0" @@ -2019,60 +1644,16 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "sqlx-core 0.9.0", - "sqlx-mysql 0.9.0", - "sqlx-postgres 0.9.0", - "sqlx-sqlite 0.9.0", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", "syn", "thiserror", "tokio", "url", ] -[[package]] -name = "sqlx-mysql" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" -dependencies = [ - "atoi", - "base64", - "bitflags", - "byteorder", - "bytes", - "crc", - "digest 0.10.7", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf 0.12.4", - "hmac 0.12.1", - "itoa", - "log", - "md-5 0.10.6", - "memchr", - "once_cell", - "percent-encoding", - "rand 0.8.6", - "rsa", - "serde", - "sha1 0.10.6", - "sha2 0.10.9", - "smallvec", - "sqlx-core 0.8.6", - "stringprep", - "thiserror", - "time", - "tracing", - "uuid", - "whoami 1.6.1", -] - [[package]] name = "sqlx-mysql" version = "0.9.0" @@ -2092,54 +1673,15 @@ dependencies = [ "log", "percent-encoding", "serde", - "sha1 0.11.0", + "sha1", "sha2 0.11.0", - "sqlx-core 0.9.0", + "sqlx-core", "thiserror", "time", "tracing", "uuid", ] -[[package]] -name = "sqlx-postgres" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" -dependencies = [ - "atoi", - "base64", - "bitflags", - "byteorder", - "crc", - "dotenvy", - "etcetera 0.8.0", - "futures-channel", - "futures-core", - "futures-util", - "hex", - "hkdf 0.12.4", - "hmac 0.12.1", - "home", - "itoa", - "log", - "md-5 0.10.6", - "memchr", - "once_cell", - "rand 0.8.6", - "serde", - "serde_json", - "sha2 0.10.9", - "smallvec", - "sqlx-core 0.8.6", - "stringprep", - "thiserror", - "time", - "tracing", - "uuid", - "whoami 1.6.1", -] - [[package]] name = "sqlx-postgres" version = "0.9.0" @@ -2152,55 +1694,29 @@ dependencies = [ "byteorder", "crc", "dotenvy", - "etcetera 0.11.0", + "etcetera", "futures-channel", "futures-core", "futures-util", "hex", - "hkdf 0.13.0", - "hmac 0.13.0", + "hkdf", + "hmac", "itoa", "log", - "md-5 0.11.0", + "md-5", "memchr", - "rand 0.10.1", + "rand", "serde", "serde_json", "sha2 0.11.0", "smallvec", - "sqlx-core 0.9.0", + "sqlx-core", "stringprep", "thiserror", "time", "tracing", "uuid", - "whoami 2.1.2", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" -dependencies = [ - "atoi", - "flume 0.11.1", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "serde_urlencoded", - "sqlx-core 0.8.6", - "thiserror", - "time", - "tracing", - "url", - "uuid", + "whoami", ] [[package]] @@ -2210,7 +1726,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "488e99c397a62007e4229aec669a179816339afc6d2620ca6fa420dbee2e982c" dependencies = [ "atoi", - "flume 0.12.0", + "flume", "form_urlencoded", "futures-channel", "futures-core", @@ -2221,7 +1737,7 @@ dependencies = [ "log", "percent-encoding", "serde", - "sqlx-core 0.9.0", + "sqlx-core", "thiserror", "time", "tracing", @@ -2290,7 +1806,7 @@ dependencies = [ "getrandom 0.4.3", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -2302,7 +1818,7 @@ dependencies = [ "josekit", "serde", "serde_json", - "sqlx 0.9.0", + "sqlx", "textsender_models", "time", "tokio", @@ -2317,15 +1833,15 @@ dependencies = [ [[package]] name = "textsender_models" -version = "0.4.10" -source = "git+ssh://git@git.kundeng.us/phoenix/textsender_models.git?tag=v0.4.10#c1d391939baf94df09ee405a1f0bf269690f7dec" +version = "0.5.1" +source = "git+ssh://git@git.kundeng.us/phoenix/textsender_models.git?tag=v0.5.1#151eeaacf64e255bde56a48df03f4c46ec77c235" dependencies = [ "const_format", "dotenvy", "josekit", "serde", "serde_json", - "sqlx 0.8.6", + "sqlx", "time", "utoipa", "uuid", @@ -2427,7 +1943,7 @@ dependencies = [ "pin-project-lite", "socket2", "tokio-macros", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -2721,12 +2237,6 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - [[package]] name = "wasm-bindgen" version = "0.2.126" @@ -2772,16 +2282,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "whoami" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" -dependencies = [ - "libredox", - "wasite", -] - [[package]] name = "whoami" version = "2.1.2" @@ -2794,7 +2294,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -2803,15 +2303,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -2821,63 +2312,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "writeable" version = "0.6.3" @@ -2907,26 +2341,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zerocopy" -version = "0.8.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "zerofrom" version = "0.1.8" @@ -2948,12 +2362,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zeroize" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" - [[package]] name = "zerotrie" version = "0.2.4" diff --git a/Cargo.toml b/Cargo.toml index 60cb783..7f8d385 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ time = { version = "0.3.49", features = ["macros", "serde"] } josekit = { version = "0.10.3" } utoipa = { version = "5.5.0", features = ["axum_extras"] } utoipa-swagger-ui = { version = "9.0.2", features = ["axum"] } -textsender_models = { git = "ssh://git@git.kundeng.us/phoenix/textsender_models.git", tag = "v0.4.10", features = ["config", "user"] } +textsender_models = { git = "ssh://git@git.kundeng.us/phoenix/textsender_models.git", tag = "v0.5.1", features = ["config", "user"] } [dev-dependencies] tower = { version = "0.5.3", features = ["full"] } -- 2.47.3 From 0563134b170db24abc1df7d554d7a9a2985508c1 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 5 Jul 2026 17:37:49 -0400 Subject: [PATCH 05/11] bump: time --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 112a7fc..af19002 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1878,9 +1878,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.51" +version = "0.3.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c17d80feb7334b40c484e45ed1a5273dfd8bfda537c3be2e74a06a6686f327" +checksum = "18dfaaeddcb932337b5e7866ee7d0ce9b76d2fd092997146f187ec09b4558a50" dependencies = [ "deranged", "num-conv", @@ -1898,9 +1898,9 @@ checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.30" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcef1a61bdb119096e153208ec5cbec23944ce8bca13be5c7f60c634f7403935" +checksum = "c431b87111666e491a90baa837f914fb45cd5dc3c268591b0220ff5057f2085f" dependencies = [ "num-conv", "time-core", diff --git a/Cargo.toml b/Cargo.toml index 7f8d385..7a222c0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ tower-http = { version = "0.6.11", features = ["cors"] } sqlx = { version = "0.9.0", features = ["runtime-tokio", "tls-native-tls", "postgres", "time", "uuid"] } uuid = { version = "1.23.3", features = ["v4", "serde"] } argon2 = { version = "0.5.3", features = ["std"] } # Use the latest 0.5.x version -time = { version = "0.3.49", features = ["macros", "serde"] } +time = { version = "0.3.53", features = ["macros", "serde"] } josekit = { version = "0.10.3" } utoipa = { version = "5.5.0", features = ["axum_extras"] } utoipa-swagger-ui = { version = "9.0.2", features = ["axum"] } -- 2.47.3 From 52d713a533ce932b6624d238b50f96a83b817c93 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 5 Jul 2026 17:38:29 -0400 Subject: [PATCH 06/11] bump: tower-http --- Cargo.lock | 5 +++-- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index af19002..021c0ac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2003,13 +2003,14 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.11" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +checksum = "b11f75e912b0c2be01b63d8cf8057b8c3f97cf34abb3d431a3a4c8675498e233" dependencies = [ "bitflags", "bytes", "http", + "percent-encoding", "pin-project-lite", "tower-layer", "tower-service", diff --git a/Cargo.toml b/Cargo.toml index 7a222c0..f2bf0a8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ serde = { version = "1.0.228", features = ["derive"] } serde_json = { version = "1.0.150" } tokio = { version = "1.52.3", features = ["rt-multi-thread"] } tracing-subscriber = { version = "0.3.23" } -tower-http = { version = "0.6.11", features = ["cors"] } +tower-http = { version = "0.7.0", features = ["cors"] } sqlx = { version = "0.9.0", features = ["runtime-tokio", "tls-native-tls", "postgres", "time", "uuid"] } uuid = { version = "1.23.3", features = ["v4", "serde"] } argon2 = { version = "0.5.3", features = ["std"] } # Use the latest 0.5.x version -- 2.47.3 From c62dd35a45609e4eba674978f50005ff9bf9a3cd Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 5 Jul 2026 17:56:16 -0400 Subject: [PATCH 07/11] Updatting env sample files --- .env.docker.sample | 3 ++- .env.local.sample | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.env.docker.sample b/.env.docker.sample index 2b82918..3d5a382 100644 --- a/.env.docker.sample +++ b/.env.docker.sample @@ -7,4 +7,5 @@ DB_AUTH_PORT=5432 DB_AUTH_SSLMODE=disable DATABASE_URL=postgres://${DB_AUTH_USER}:${DB_AUTH_PASSWORD}@${DB_AUTH_HOST}:${DB_AUTH_PORT}/${DB_AUTH_NAME} ENABLE_REGISTRATION=true -ALLOWED_ORIGINS="http://textsender.com" +ALLOWED_ORIGINS="http://textsender.com,http://localhost:5173,http://localhost:9080" +APP_ENV=production diff --git a/.env.local.sample b/.env.local.sample index c76597b..eb17ac6 100644 --- a/.env.local.sample +++ b/.env.local.sample @@ -7,4 +7,5 @@ DB_AUTH_PORT=5432 DB_AUTH_SSLMODE=disable DATABASE_URL=postgres://${DB_AUTH_USER}:${DB_AUTH_PASSWORD}@${DB_AUTH_HOST}:${DB_AUTH_PORT}/${DB_AUTH_NAME} ENABLE_REGISTRATION=true -ALLOWED_ORIGINS="http://textsender.com" +ALLOWED_ORIGINS="http://textsender.com,http://localhost:5173,http://localhost:9080" +APP_ENV=production -- 2.47.3 From 2c0011cf6cac91f0ead82e9e6eebd37815625eef Mon Sep 17 00:00:00 2001 From: phoenix Date: Mon, 6 Jul 2026 21:53:41 -0400 Subject: [PATCH 08/11] Code changes --- src/callers/login.rs | 32 +++++++++++++++++++++++--------- src/callers/register.rs | 6 ++---- src/db/init.rs | 1 - src/lib.rs | 8 +++----- src/token_stuff/mod.rs | 11 +++++------ 5 files changed, 33 insertions(+), 25 deletions(-) diff --git a/src/callers/login.rs b/src/callers/login.rs index efa2454..eadd977 100644 --- a/src/callers/login.rs +++ b/src/callers/login.rs @@ -96,11 +96,20 @@ pub mod response { pub async fn extract( response: axum::response::Response, ) -> Result { - let body = axum::body::to_bytes(response.into_body(), usize::MAX) - .await - .unwrap(); - let _parsed_body: LoginResponse = serde_json::from_slice(&body).unwrap(); - todo!("Add code to convert axum::Response to this type"); + let body = match axum::body::to_bytes(response.into_body(), usize::MAX) + .await { + Ok(body) => body, + Err(err) => { + return Err(std::io::Error::other(err)); + } + }; + let parsed_body: LoginResponse = match serde_json::from_slice(&body) { + Ok(body) => body, + Err(err) => { + return Err(std::io::Error::other(err)); + } + }; + Ok(parsed_body) } #[derive(Deserialize, Serialize, utoipa::ToSchema)] @@ -193,9 +202,16 @@ pub async fn user_login( if matches { // Create token let key = textsender_models::envy::environment::get_secret_key() - .await .value; - let cst = token_stuff::create_token(&key, &user.id).unwrap(); + let cst = match token_stuff::create_token(&key, &user.id) { + Ok(token) => token, + Err(_err) => { + return (axum::http::StatusCode::INTERNAL_SERVER_ERROR, axum::Json(response::LoginResponse { + message: String::from("Error creating token"), + data: Vec::new() + })); + } + }; if token_stuff::verify_token(&key, &cst.access_token) { let current_time = time::OffsetDateTime::now_utc(); @@ -333,7 +349,6 @@ pub async fn service_user_login( // Create token println!("Creating token"); let key = textsender_models::envy::environment::get_secret_key() - .await .value; let cst = token_stuff::create_token(&key, &service_user.id).unwrap(); @@ -440,7 +455,6 @@ pub async fn refresh_token( ) } else { let key = textsender_models::envy::environment::get_secret_key() - .await .value; if token_stuff::verify_token(&key, &payload.access_token) { match token_stuff::extract_id_from_token(&key, &payload.access_token) { diff --git a/src/callers/register.rs b/src/callers/register.rs index 3ac4747..b57127b 100644 --- a/src/callers/register.rs +++ b/src/callers/register.rs @@ -80,7 +80,7 @@ pub fn generate_the_salt() -> ( responses( (status = 201, description = "User created", body = response::Response), (status = 404, description = "User already exists", body = response::Response), - (status = 400, description = "Issue creating user", body = response::Response) + (status = 500, description = "Issue creating user", body = response::Response) ) )] pub async fn register_user( @@ -105,9 +105,7 @@ pub async fn register_user( let mut user = textsender_models::user::User { username: payload.username.clone(), password: payload.password.clone(), - // email: payload.email.clone(), phone_number: payload.phone_number.clone(), - // email_verified: true, ..Default::default() }; @@ -183,7 +181,7 @@ pub async fn register_user( /// Checks to see if registration is enabled async fn is_registration_enabled() -> Result { let key = String::from("ENABLE_REGISTRATION"); - let var = textsender_models::envy::environment::get_env(&key).await; + let var = textsender_models::envy::environment::get_env(&key); let parsed_value = var.value.to_uppercase(); if parsed_value == "TRUE" { diff --git a/src/db/init.rs b/src/db/init.rs index fd56ce8..15d10b5 100644 --- a/src/db/init.rs +++ b/src/db/init.rs @@ -2,7 +2,6 @@ use sqlx::postgres::PgPoolOptions; pub async fn create_pool() -> Result { let database_url = textsender_models::envy::environment::get_db_url() - .await .value; println!("Database url: {database_url}"); diff --git a/src/lib.rs b/src/lib.rs index 763c3ac..ec1f3bd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -38,7 +38,6 @@ pub mod init { mod cors { pub async fn configure_cors() -> tower_http::cors::CorsLayer { - // Start building the CORS layer with common settings let cors = tower_http::cors::CorsLayer::new() .allow_methods([ axum::http::Method::GET, @@ -46,11 +45,11 @@ pub mod init { axum::http::Method::POST, axum::http::Method::PUT, axum::http::Method::DELETE, - ]) // Specify allowed methods:cite[2] + ]) .allow_headers([ axum::http::header::CONTENT_TYPE, axum::http::header::AUTHORIZATION, - ]) // Specify allowed headers:cite[2] + ]) .allow_credentials(true) // If you need to send cookies or authentication headers:cite[2] .max_age(std::time::Duration::from_secs(3600)); // Cache the preflight response for 1 hour:cite[2] @@ -58,7 +57,7 @@ pub mod init { match std::env::var(textsender_models::envy::keys::APP_ENV).as_deref() { Ok("production") => { let allowed_origins_env = - textsender_models::envy::environment::get_allowed_origins().await; + textsender_models::envy::environment::get_allowed_origins(); match textsender_models::envy::utility::delimitize(&allowed_origins_env) { Ok(alwd) => { let allowed_origins: Vec = alwd @@ -93,7 +92,6 @@ pub mod init { } pub async fn routes() -> Router { - // build our application with a route Router::new() .route( callers::endpoints::DBTEST, diff --git a/src/token_stuff/mod.rs b/src/token_stuff/mod.rs index 85ea32d..ef6ee37 100644 --- a/src/token_stuff/mod.rs +++ b/src/token_stuff/mod.rs @@ -26,7 +26,7 @@ pub fn create_token( audiences: vec![String::from(AUDIENCE)], user_id: *id, }; - textsender_models::token::create_token(provided_key, &resource, time::Duration::hours(4)) + textsender_models::token::create_token(provided_key, resource, time::Duration::hours(4)) } pub fn create_service_token( @@ -39,7 +39,7 @@ pub fn create_service_token( audiences: vec![String::from(AUDIENCE)], user_id: *id, }; - textsender_models::token::create_token(provided, &resource, time::Duration::hours(1)) + textsender_models::token::create_token(provided, resource, time::Duration::hours(1)) } pub fn create_service_refresh_token( @@ -52,7 +52,7 @@ pub fn create_service_refresh_token( audiences: vec![String::from(AUDIENCE)], user_id: *id, }; - textsender_models::token::create_token(key, &resource, time::Duration::hours(4)) + textsender_models::token::create_token(key, resource, time::Duration::hours(4)) } pub fn verify_token(key: &String, token: &String) -> bool { @@ -119,9 +119,8 @@ mod tests { #[test] fn test_tokenize() { - let rt = tokio::runtime::Runtime::new().unwrap(); - let special_key = rt - .block_on(textsender_models::envy::environment::get_secret_key()) + let special_key = + textsender_models::envy::environment::get_secret_key() .value; let id = uuid::Uuid::new_v4(); match create_token(&special_key, &id) { -- 2.47.3 From 35990ecc6432b3fd3f84e5aa6861cbff7620fa9b Mon Sep 17 00:00:00 2001 From: phoenix Date: Mon, 6 Jul 2026 21:53:57 -0400 Subject: [PATCH 09/11] Code formatting --- src/callers/login.rs | 25 +++++++++++++------------ src/db/init.rs | 3 +-- src/token_stuff/mod.rs | 4 +--- tests/tests.rs | 21 ++++++++++----------- 4 files changed, 25 insertions(+), 28 deletions(-) diff --git a/src/callers/login.rs b/src/callers/login.rs index eadd977..fcf80e6 100644 --- a/src/callers/login.rs +++ b/src/callers/login.rs @@ -96,8 +96,7 @@ pub mod response { pub async fn extract( response: axum::response::Response, ) -> Result { - let body = match axum::body::to_bytes(response.into_body(), usize::MAX) - .await { + let body = match axum::body::to_bytes(response.into_body(), usize::MAX).await { Ok(body) => body, Err(err) => { return Err(std::io::Error::other(err)); @@ -201,15 +200,18 @@ pub async fn user_login( Ok(matches) => { if matches { // Create token - let key = textsender_models::envy::environment::get_secret_key() - .value; + let key = + textsender_models::envy::environment::get_secret_key().value; let cst = match token_stuff::create_token(&key, &user.id) { Ok(token) => token, Err(_err) => { - return (axum::http::StatusCode::INTERNAL_SERVER_ERROR, axum::Json(response::LoginResponse { - message: String::from("Error creating token"), - data: Vec::new() - })); + return ( + axum::http::StatusCode::INTERNAL_SERVER_ERROR, + axum::Json(response::LoginResponse { + message: String::from("Error creating token"), + data: Vec::new(), + }), + ); } }; @@ -348,8 +350,8 @@ pub async fn service_user_login( if matches { // Create token println!("Creating token"); - let key = textsender_models::envy::environment::get_secret_key() - .value; + let key = + textsender_models::envy::environment::get_secret_key().value; let cst = token_stuff::create_token(&key, &service_user.id).unwrap(); @@ -454,8 +456,7 @@ pub async fn refresh_token( }), ) } else { - let key = textsender_models::envy::environment::get_secret_key() - .value; + let key = textsender_models::envy::environment::get_secret_key().value; if token_stuff::verify_token(&key, &payload.access_token) { match token_stuff::extract_id_from_token(&key, &payload.access_token) { Ok(id) => { diff --git a/src/db/init.rs b/src/db/init.rs index 15d10b5..9d65582 100644 --- a/src/db/init.rs +++ b/src/db/init.rs @@ -1,8 +1,7 @@ use sqlx::postgres::PgPoolOptions; pub async fn create_pool() -> Result { - let database_url = textsender_models::envy::environment::get_db_url() - .value; + let database_url = textsender_models::envy::environment::get_db_url().value; println!("Database url: {database_url}"); PgPoolOptions::new() diff --git a/src/token_stuff/mod.rs b/src/token_stuff/mod.rs index ef6ee37..21eeb1e 100644 --- a/src/token_stuff/mod.rs +++ b/src/token_stuff/mod.rs @@ -119,9 +119,7 @@ mod tests { #[test] fn test_tokenize() { - let special_key = - textsender_models::envy::environment::get_secret_key() - .value; + let special_key = textsender_models::envy::environment::get_secret_key().value; let id = uuid::Uuid::new_v4(); match create_token(&special_key, &id) { Ok(cst) => { diff --git a/tests/tests.rs b/tests/tests.rs index ba88e04..118013e 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -9,9 +9,7 @@ mod db_mgr { pub const LIMIT: usize = 6; pub async fn get_pool() -> Result { - let tm_db_url = textsender_models::envy::environment::get_db_url() - .await - .value; + let tm_db_url = textsender_models::envy::environment::get_db_url().value; let tm_options = sqlx::postgres::PgConnectOptions::from_str(&tm_db_url).unwrap(); sqlx::PgPool::connect_with(tm_options).await } @@ -23,9 +21,7 @@ mod db_mgr { } pub async fn connect_to_db(db_name: &str) -> Result { - let db_url = textsender_models::envy::environment::get_db_url() - .await - .value; + let db_url = textsender_models::envy::environment::get_db_url().value; let options = sqlx::postgres::PgConnectOptions::from_str(&db_url)?.database(db_name); sqlx::PgPool::connect_with(options).await } @@ -35,7 +31,10 @@ mod db_mgr { db_name: &str, ) -> Result<(), sqlx::Error> { let create_query = format!("CREATE DATABASE {}", db_name); - match sqlx::query(&create_query).execute(template_pool).await { + match sqlx::query(sqlx::AssertSqlSafe(create_query)) + .execute(template_pool) + .await + { Ok(_) => Ok(()), Err(e) => Err(e), } @@ -47,14 +46,14 @@ mod db_mgr { db_name: &str, ) -> Result<(), sqlx::Error> { let drop_query = format!("DROP DATABASE IF EXISTS {} WITH (FORCE)", db_name); - sqlx::query(&drop_query).execute(template_pool).await?; + sqlx::query(sqlx::AssertSqlSafe(drop_query)) + .execute(template_pool) + .await?; Ok(()) } pub async fn get_database_name() -> Result> { - let database_url = textsender_models::envy::environment::get_db_url() - .await - .value; + let database_url = textsender_models::envy::environment::get_db_url().value; let parsed_url = url::Url::parse(&database_url)?; if parsed_url.scheme() == "postgres" || parsed_url.scheme() == "postgresql" { -- 2.47.3 From 463a2e869b5325cd04dd74c140d9d04298b0c661 Mon Sep 17 00:00:00 2001 From: phoenix Date: Mon, 6 Jul 2026 21:55:12 -0400 Subject: [PATCH 10/11] cargo update --- Cargo.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 021c0ac..4c0f3dd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -191,9 +191,9 @@ checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593" [[package]] name = "cc" -version = "1.2.65" +version = "1.2.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96" +checksum = "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996" dependencies = [ "find-msvc-tools", "shlex", @@ -312,18 +312,18 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +checksum = "803d13fb3b09d88be9f4dbc29062c66b19bf7170867ceb746d2a8689bf6c7a26" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" [[package]] name = "crypto-common" @@ -959,9 +959,9 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libsqlite3-sys" -version = "0.30.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +checksum = "b1f111c8c41e7c61a49cd34e44c7619462967221a6443b0ec299e0ac30cfb9b1" dependencies = [ "pkg-config", "vcpkg", @@ -1242,9 +1242,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ "chacha20", "getrandom 0.4.3", @@ -2412,9 +2412,9 @@ dependencies = [ [[package]] name = "zlib-rs" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "977347db8caa080403f6b6b7c1cda9479a8e869316f7e13a59b19076a40f94e3" +checksum = "5431d5661c32445236631278f27946e444ddafe4684cac70b185272d4f9c52d5" [[package]] name = "zmij" -- 2.47.3 From 7db798387f56ebb0e43139c38c31e381510b5423 Mon Sep 17 00:00:00 2001 From: phoenix Date: Mon, 6 Jul 2026 21:56:12 -0400 Subject: [PATCH 11/11] bump: textsender_auth --- Cargo.lock | 2 +- Cargo.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4c0f3dd..0cc4c35 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1811,7 +1811,7 @@ dependencies = [ [[package]] name = "textsender_auth" -version = "0.2.1" +version = "0.2.2" dependencies = [ "argon2", "axum", diff --git a/Cargo.toml b/Cargo.toml index f2bf0a8..7de7b76 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "textsender_auth" -version = "0.2.1" +version = "0.2.2" edition = "2024" rust-version = "1.96.1" @@ -13,7 +13,7 @@ tracing-subscriber = { version = "0.3.23" } tower-http = { version = "0.7.0", features = ["cors"] } sqlx = { version = "0.9.0", features = ["runtime-tokio", "tls-native-tls", "postgres", "time", "uuid"] } uuid = { version = "1.23.3", features = ["v4", "serde"] } -argon2 = { version = "0.5.3", features = ["std"] } # Use the latest 0.5.x version +argon2 = { version = "0.5.3", features = ["std"] } time = { version = "0.3.53", features = ["macros", "serde"] } josekit = { version = "0.10.3" } utoipa = { version = "5.5.0", features = ["axum_extras"] } -- 2.47.3