dependabot[bot]
ba504558b0
chore(deps): bump the rust-minor group across 1 directory with 9 updates
...
Bumps the rust-minor group with 8 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [bitflags](https://github.com/bitflags/bitflags ) | `2.9.4` | `2.10.0` |
| [circular-buffer](https://github.com/andreacorbellini/rust-circular-buffer ) | `1.1.0` | `1.2.0` |
| rust-embed | `8.7.2` | `8.9.0` |
| [tokio](https://github.com/tokio-rs/tokio ) | `1.47.1` | `1.48.0` |
| [http](https://github.com/hyperium/http ) | `1.3.1` | `1.4.0` |
| [hyper](https://github.com/hyperium/hyper ) | `1.7.0` | `1.8.1` |
| [bytes](https://github.com/tokio-rs/bytes ) | `1.10.1` | `1.11.0` |
| [bon](https://github.com/elastio/bon ) | `3.7.2` | `3.8.1` |
Updates `bitflags` from 2.9.4 to 2.10.0
- [Release notes](https://github.com/bitflags/bitflags/releases )
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bitflags/bitflags/compare/2.9.4...2.10.0 )
Updates `circular-buffer` from 1.1.0 to 1.2.0
- [Release notes](https://github.com/andreacorbellini/rust-circular-buffer/releases )
- [Changelog](https://github.com/andreacorbellini/rust-circular-buffer/blob/master/CHANGELOG.md )
- [Commits](https://github.com/andreacorbellini/rust-circular-buffer/compare/v1.1.0...v1.2.0 )
Updates `rust-embed` from 8.7.2 to 8.9.0
Updates `serde` from 1.0.225 to 1.0.228
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.225...v1.0.228 )
Updates `tokio` from 1.47.1 to 1.48.0
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.47.1...tokio-1.48.0 )
Updates `http` from 1.3.1 to 1.4.0
- [Release notes](https://github.com/hyperium/http/releases )
- [Changelog](https://github.com/hyperium/http/blob/master/CHANGELOG.md )
- [Commits](https://github.com/hyperium/http/compare/v1.3.1...v1.4.0 )
Updates `hyper` from 1.7.0 to 1.8.1
- [Release notes](https://github.com/hyperium/hyper/releases )
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md )
- [Commits](https://github.com/hyperium/hyper/compare/v1.7.0...v1.8.1 )
Updates `bytes` from 1.10.1 to 1.11.0
- [Release notes](https://github.com/tokio-rs/bytes/releases )
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.10.1...v1.11.0 )
Updates `bon` from 3.7.2 to 3.8.1
- [Release notes](https://github.com/elastio/bon/releases )
- [Changelog](https://github.com/elastio/bon/blob/master/release-plz.toml )
- [Commits](https://github.com/elastio/bon/compare/v3.7.2...v3.8.1 )
---
updated-dependencies:
- dependency-name: bitflags
dependency-version: 2.10.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-minor
- dependency-name: circular-buffer
dependency-version: 1.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-minor
- dependency-name: rust-embed
dependency-version: 8.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-minor
- dependency-name: serde
dependency-version: 1.0.228
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-minor
- dependency-name: tokio
dependency-version: 1.48.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-minor
- dependency-name: http
dependency-version: 1.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-minor
- dependency-name: hyper
dependency-version: 1.8.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-minor
- dependency-name: bytes
dependency-version: 1.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-minor
- dependency-name: bon
dependency-version: 3.8.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-12-02 01:08:29 +00:00
Ryan Walters
0338188e94
refactor: reorganize project structure for clarity
...
Move documentation assets to .github/assets/ and backend scripts to pacman-server/scripts/. Updates all references in README and Justfile.
2025-11-23 11:47:43 -06:00
dependabot[bot]
a60d309a66
chore(deps): bump mockall from 0.13.1 to 0.14.0 in the rust-major group ( #14 )
2025-11-23 16:15:22 +00:00
Ryan Walters
ad6fd00197
refactor(docker): move frontend build into multi-stage Docker build
...
- Remove frontend build steps from GitHub Actions workflow
- Add frontend-builder stage using oven/bun:1 in Dockerfile
- Build frontend inside Docker for better consistency and portability
- Copy built frontend from frontend-builder stage to runtime image
- Simplify CI/CD pipeline by consolidating build steps
2025-11-02 22:56:07 -06:00
Ryan Walters
52dee3eee4
feat(server): add trailing slash normalization and API root endpoint
...
- Add tower-http normalize-path feature to handle trailing slashes
- Implement NormalizePathLayer to trim trailing slashes from URLs
- Add GET /api/ endpoint with API description message
- Fix OAuth callback redirect to use /api/profile path
2025-11-02 22:51:17 -06:00
Ryan Walters
8f8f82630f
fix(tests): update all test routes to use /api prefix
...
All API routes were moved under /api prefix as part of the unified
deployment architecture. Updated test files to reflect this change:
- basics.rs: Update root and auth/providers routes
- health.rs: Update health endpoint routes
- oauth.rs: Update all OAuth and auth callback routes, plus redirect locations
- sessions.rs: Update profile and logout routes
This fixes 9 failing tests that were expecting routes without the /api prefix.
2025-11-02 19:51:52 -06:00
Ryan Walters
45e6131121
feat: implement unified deployment with Docker and Railway integration
...
This commit introduces a comprehensive deployment strategy that unifies the frontend and backend into a single Docker container served by the Rust backend, streamlining the deployment process and improving production architecture.
Key changes:
- Split CI/CD workflows: separated build.yaml (for CI/PR checks) and deploy.yaml (for production deployment)
- Implemented unified Docker deployment where the Axum server serves both API routes (under /api) and frontend static files
- Added GitHub Container Registry integration for Docker image distribution
- Updated Railway configuration to use the new healthcheck path (/api/health)
- Enhanced postgres.ts script with named volumes and constants for better container management
- Added API client utilities (web/lib/api.ts) and environment configuration (web/.env.example) for frontend-backend communication
- Configured Vite proxy for local development while supporting same-origin requests in production
- Updated Dockerfile to include frontend static files and proper environment variable handling
This architecture eliminates the need for separate deployments and CORS configuration, as the frontend and API are served from the same origin.
2025-11-02 19:31:22 -06:00
Ryan Walters
c524fdb3e7
fix: rewrite oauth provider linking system, add email_verified attribute for providers
2025-09-24 13:38:31 -05:00
Ryan Walters
bdd3c74a2d
refactor: general improvements, better comments, structuring of oauth flow (but still broken)
2025-09-24 13:13:10 -05:00
Ryan Walters
6134da1d49
chore: log testcontainer request duration, limit request trace to just image
2025-09-24 12:06:24 -05:00
Ryan Walters
0b5aeceb51
feat: improve test reliability and add request tracing
...
- Add retry configuration for flaky tests (2 retries for default, 3 for
OAuth)
- Configure test groups with proper concurrency limits (serial: 1,
integration: 4)
- Add tower-http tracing layer with custom span formatting for HTTP
requests
- Simplify database pool handling by removing unnecessary Arc wrapper
- Improve test context setup with better logging and error handling
- Refactor user creation parameters for better clarity and consistency
- Add debug logging for OAuth cookie handling
2025-09-19 17:35:53 -05:00
Ryan Walters
e1b266f3b2
refactor: rename Claims fields internally, maintain terse serialization with serde rename
2025-09-19 11:56:02 -05:00
Ryan Walters
76985f6390
refactor: allow testing of mocked providers via AuthRegistry creation, avoid creation of responses in auth
2025-09-19 11:50:25 -05:00
Ryan Walters
4a041a7695
test: apply coverage filters to pacman-server crate
2025-09-19 10:46:23 -05:00
Ryan Walters
67c9460c84
refactor(auth): implement session-based PKCE and eliminate provider duplication
...
- Replace in-memory PKCE storage with encrypted session cookies
- Add PKCE verifier and CSRF state fields to JWT Claims struct
- Move common PKCE validation logic to OAuthProvider trait
- Extract provider-specific methods for token exchange and user fetching
- Remove PkceManager and DashMap-based storage system
- Update GitHub and Discord providers to use new session-based approach
2025-09-19 10:23:33 -05:00
Ryan Walters
698f95ff32
refactor: clean test setup code, cleanup tests, separate into different files
2025-09-19 09:50:22 -05:00
Ryan Walters
54eca9f447
fix: install crypto provider default select
2025-09-19 08:54:20 -05:00
Ryan Walters
f9e79eb6d6
fix: move railway.json to root, explicitly configure with Dockerfile
2025-09-19 08:35:47 -05:00
Ryan Walters
408b660490
fix: drop unused fast_image_resize, drop toolchain back to 1.86, limit emscripten build to pacman project properly
2025-09-18 23:16:55 -05:00
Ryan Walters
cc06cd88a1
refactor: allow optional database in setup, use derived default
2025-09-18 22:58:38 -05:00
Ryan Walters
e2c725cb95
feat: allow health check forcing in debug, setup test mocking, plan out integration tests
2025-09-18 22:42:00 -05:00
Ryan Walters
350f92ab21
tests: setup basic tests, integration tests with testcontainers
2025-09-18 21:33:15 -05:00
Ryan Walters
3ad00bdcba
chore: setup lib for testing, image handling notes in README
2025-09-18 13:18:53 -05:00
Ryan Walters
7f9d3e9158
feat: implement r2 image upload for avatars
2025-09-18 13:18:14 -05:00
Ryan Walters
56e02e7253
refactor: remove unnecessary HashMap for passing code/state strings, formatter lifetime tweak
2025-09-17 13:18:58 -05:00
Ryan Walters
e2f3f6790f
refactor: create common pkce handling, max_age on link cookie
2025-09-17 13:08:48 -05:00
Ryan Walters
1be59f474d
feat: add Server header middleware, bump version to v0.4.0
2025-09-17 12:37:12 -05:00
Ryan Walters
916428fe76
feat: setup healthcheck route & background task
2025-09-17 12:32:52 -05:00
Ryan Walters
e02c2286bb
chore: add .scripts with local postgres setup script, setup todo list in README
2025-09-17 12:23:55 -05:00
Ryan Walters
c12dc11d8f
feat: normalize provider details into oauth_accounts table, auth linking intent, provider array in profile response
2025-09-17 11:17:31 -05:00
Ryan Walters
1cf3b901e8
feat: users table with sqlx, migrations, data persistence
2025-09-17 09:43:52 -05:00
Ryan Walters
ac1417aabc
feat: discord oauth provider, setup provider list route, add 'active' method, common type alias
2025-09-17 09:23:31 -05:00
Ryan Walters
8e23fb66a4
feat: setup smarter PKCE map purging & BasicClient type alias, smarter EnvFilter string building
2025-09-17 04:06:52 -05:00
Ryan Walters
92acb07b04
feat: setup tracing calls throughout project
2025-09-17 04:05:59 -05:00
Ryan Walters
18e750fa61
feat: add tracing/tracing-subscriber, setup CustomPrettyFormatter & CustomJsonFormatter
2025-09-17 03:48:35 -05:00
Ryan Walters
8d9c0621c9
feat: proper shutdown timeout handling
2025-09-17 03:41:13 -05:00
Ryan Walters
750b47b609
feat: add SIGINT/SIGTERM graceful shutdown handling
2025-09-17 03:36:59 -05:00
Ryan Walters
b1fae907ee
chore: add railway.json drainingSeconds
2025-09-17 03:33:39 -05:00
Ryan Walters
f3db44c48b
feat: setup github provider with generic trait, proper routes, session & jwt handling, errors & user agent
2025-09-17 03:33:18 -05:00
Ryan Walters
f69a5c7d52
feat: initial server config & Dockerfile
2025-09-16 22:13:35 -05:00
Ryan Walters
7ede82cc5d
feat: add pacman-common/pacman-server crates
2025-09-16 09:36:12 -05:00