generated from devjonatas/axum-template
Pixie log the backlog api
- Rust 83.8%
- HTML 13.3%
- CSS 1.1%
- Shell 0.8%
- PLpgSQL 0.6%
- Other 0.4%
- Add check_rate_limit() to enforce 5 syncs per 24 hours per platform - Add log_sync() to track sync operations in platform_sync_log table - Add db field to PlatformSyncService for direct database access - Update all test cases to include db parameter - Import AppError for error handling in rate limit functions |
||
|---|---|---|
| .cargo | ||
| .githooks | ||
| .sqlx | ||
| .woodpecker | ||
| migrations | ||
| scripts | ||
| src | ||
| static | ||
| templates | ||
| test-results | ||
| tests | ||
| .audit.toml | ||
| .buildpacks | ||
| .env.example | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| app.json | ||
| Cargo.toml | ||
| debug_render.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| fix_migration.sql | ||
| init_db.sh | ||
| LICENSE | ||
| parse_lcov.py | ||
| Procfile | ||
| README.md | ||
| rust-toolchain | ||
Pixie API
A Rust-based API for Pixielog, featuring Keyrunes authentication, email confirmation, and Femtocat-styled views.
Prerequisites
- Rust (latest stable)
- Docker and Docker Compose
- Postgres client (optional, for debugging)
Configuration
The application requires the following environment variables. A .env file can be used locally.
| Variable | Description | Example |
|---|---|---|
DATABASE_URL |
Postgres connection string | postgres://postgres:password@localhost:5432/pixielog |
SMTP_URL |
SMTP server URL | smtp://localhost:1025 |
KEYRUNES_URL |
Keyrunes service URL | http://localhost:3000 (internal) or http://keyrunes:3000 (docker) |
APP_URL |
Public URL of this app | http://localhost:8000 |
Running the Application
1. Start Infrastructure
Start Postgres, Mailhog, and Keyrunes using Docker Compose:
docker-compose up -d
2. Initialize Keyrunes (First Run Only)
Setup superuser and organization in Keyrunes:
docker compose exec keyrunes sh /setup.sh
3. Run Database Migrations
Initialize the pixielog database schema:
sqlx migrate run
3. Run Locally (Development)
Start the API server:
cargo run
The server will be available at http://localhost:8000.
4. Run via Docker
To run the entire stack including the API in Docker (if a Dockerfile is provided, otherwise mostly used for deps):
docker-compose up -d
(Note: Ensure your config or env vars point to the keyrunes container name if running inside docker network)
Development
View Docs
Swagger UI is available at: http://localhost:8000/swagger-ui/
Running Tests
Run unit and integration tests:
# Unit tests
cargo test
# Hurl Integration tests (requires running server)
hurl --test tests/auth.hurl