Pixie log the backlog api
  • Rust 78.3%
  • HTML 11.6%
  • Hurl 7.3%
  • PLpgSQL 0.9%
  • CSS 0.9%
  • Other 1%
Find a file
Jonatas Oliveira 9e25795e07
All checks were successful
ci/woodpecker/push/pipeline/2 Pipeline was successful
ci/woodpecker/push/pipeline/1 Pipeline was successful
ci/woodpecker/cron/pipeline/1 Pipeline was successful
ci/woodpecker/cron/pipeline/2 Pipeline was successful
fix(deps): fecha RUSTSEC-2026-0285 (rustls) e limpa 4 dos 6 warnings
O step dependency-audit reprovou com

    Crate:    rustls
    Version:  0.23.40
    Title:    TLS 1.3 handshake messages incorrectly accepted across
              encryption level boundaries
    ID:       RUSTSEC-2026-0285   Severity: 5.3 (medium)
    Solution: Upgrade to >=0.23.45

rustls vem por baixo do reqwest e do sqlx (runtime-tokio-rustls), nao e
dependencia direta. Um `cargo update -p rustls` sozinho parava em 0.23.43:
o resolver MSRV-aware da edition 2024 considera a 0.23.45 incompativel com
o rust-version = "1.90" declarado, por causa do aws-lc-sys 0.45. Na pratica
compila -- verificado com a toolchain exata do CI, rustc 1.90.0 (1159e78c4),
`cargo clippy --locked --all-targets -- -D warnings` sem achados. Dai o
--precise.

ATENCAO: por ser --precise, um `cargo update` amplo devolve o rustls para
0.23.43 e reabre o advisory. Se isso acontecer, refaca com
`cargo update -p rustls --precise 0.23.45` (ou suba o rust-version quando
o MSRV do projeto puder andar).

Junto, quatro dos seis warnings sairam de graca no mesmo update:

    anyhow          1.0.102 -> 1.0.104   unsound  RUSTSEC-2026-0190
    event-listener  5.4.1   -> 5.4.2     unsound  RUSTSEC-2026-0221
    chacha20        0.10.0  -> 0.10.2    yanked
    spin            0.9.8   -> 0.9.9     yanked

`cargo audit --ignore RUSTSEC-2023-0071` agora sai com codigo 0:
0 vulnerabilidades, 2 warnings (eram 6).

Os dois que restam sao "unmaintained", nao tem correcao e nao reprovam:

    fxhash 0.2.1          <- selectors <- scraper 0.22.0
    proc-macro-error2 2.0.1 <- validator_derive <- validator 0.20.0

Sair deles exige subir scraper (0.27) e validator (0.21), que trazem
mudanca de API, e fica para um commit proprio.
2026-09-15 16:39:04 +02:00
.cargo test(mutation): configura cargo-mutants como camada 3 do backend 2026-09-03 20:23:54 +02:00
.githooks build: fix ci erros 2026-03-26 10:27:19 +01:00
.sqlx fix(sqlx): declara nullability em colunas vindas de LEFT JOIN 2026-08-20 15:09:09 +02:00
.woodpecker fix(ci): versiona o Cargo.lock e trava as resolucoes com --locked 2026-09-04 08:08:32 +02:00
migrations feat: add metadata JSONB column to user_platforms 2026-04-21 08:48:07 +02:00
scripts build: improve config docker 2026-03-13 14:11:48 +01:00
src chore: mensagem acionavel de falha do Redis e corrige clippy let_and_return 2026-08-20 15:10:55 +02:00
static fix(static): adiciona o default_cover.png que nunca existiu 2026-08-20 15:09:33 +02:00
templates feat: add platform sync verification API endpoints 2026-04-13 10:28:55 +02:00
test-results feat: screenshots in library, steam wishlist sync, improved search 2026-03-20 08:57:05 +01:00
tests fix(tests): authenticate before creating a game in games.hurl 2026-08-20 09:16:45 +02:00
.audit.toml feat: add games management 2026-01-05 14:06:00 +01:00
.buildpacks build: add config for build in dokku 2026-02-11 16:32:29 +01:00
.env.example feat: add platform sync verification API endpoints 2026-04-13 10:28:55 +02:00
.gitignore fix(ci): versiona o Cargo.lock e trava as resolucoes com --locked 2026-09-04 08:08:32 +02:00
.pre-commit-config.yaml feat: add library e improve profile 2026-02-25 10:32:43 +01:00
app.json feat: FEAT-H Game Detail Page with analytics endpoints 2026-04-08 15:49:19 +02:00
Cargo.lock fix(deps): fecha RUSTSEC-2026-0285 (rustls) e limpa 4 dos 6 warnings 2026-09-15 16:39:04 +02:00
Cargo.toml chore(deps): ammonia 4.1.4 e calamine 0.36, zerando o cargo audit 2026-08-20 15:10:31 +02:00
debug_render.sh feat: add library e improve profile 2026-02-25 10:32:43 +01:00
docker-compose.yml fix: fix empty field to keyrunes 2026-02-27 13:26:32 +01:00
Dockerfile build: improve config docker 2026-03-13 14:11:48 +01:00
fix_migration.sql fix(profile): correct game ID in profile page links 2026-04-09 13:50:20 +02:00
init_db.sh feat: add games management 2026-01-05 14:06:00 +01:00
LICENSE feat: add user management 2026-01-05 08:14:50 +01:00
parse_lcov.py feat: add games management 2026-01-05 14:06:00 +01:00
Procfile build: add config for build in dokku 2026-02-11 16:32:29 +01:00
README.md feat: add goal and list. mail smtp configure 2026-01-07 10:02:29 +01:00
rust-toolchain build: add config for build in dokku 2026-02-11 16:32:29 +01:00

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