Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
b3fd36f
feat: /stats endpoint with brute-force telemetry
ethicnology Aug 3, 2026
ac91e3d
feat: report and reset failed_attempts on successful fetch/trash
ethicnology Aug 3, 2026
087e71b
fix: reject non-positive rate-limit configuration at startup
ethicnology Aug 4, 2026
139ea78
fix: survive concurrent writes with SQLite busy_timeout
ethicnology Aug 4, 2026
bcd7916
fix: make the rate-limit check-and-increment atomic
ethicnology Aug 4, 2026
ce95198
fix: expire rate-limit entries after the cooldown
ethicnology Aug 4, 2026
71cb0d0
chore: move axum-test to dev-dependencies
ethicnology Aug 4, 2026
b5a3bca
chore: update dependencies (RUSTSEC bytes/time/idna, diesel 2.3, dote…
ethicnology Aug 4, 2026
5407983
test: characterize the external audit claims (F1, F2, F3, F9, F11, F12)
ethicnology Aug 4, 2026
2f65e05
fix: make /store idempotent to close the authentication_key oracle
ethicnology Aug 4, 2026
ab04cfc
fix: return 500 without consuming attempts on database errors
ethicnology Aug 4, 2026
3c953f0
ci: run cargo test and cargo audit on push
ethicnology Aug 4, 2026
653f575
docs+fix: document Tor onion deployment, warn on non-loopback bind
ethicnology Aug 4, 2026
ec0d403
fix: run blocking diesel work on blocking threads
ethicnology Aug 4, 2026
fb819f6
fix: remove wildcard CORS layers
ethicnology Aug 4, 2026
a7a64c4
fix: canonicalize hex inputs to lowercase
ethicnology Aug 4, 2026
cfa8c39
feat: structured logging with tracing (counts and events, never ident…
ethicnology Aug 4, 2026
91d9177
fix: dampen unauthenticated writes with a global token bucket
ethicnology Aug 4, 2026
5f2467c
fix: bound request duration, document the recovery lockout tension
ethicnology Aug 4, 2026
4d02636
chore: bump tracing-subscriber to 0.3.20 (RUSTSEC-2025-0055) and tokio
ethicnology Aug 4, 2026
0203803
chore: review cleanups (clippy, single-lock refund, document store ra…
ethicnology Aug 4, 2026
ee9f29a
fix: harden anonymous secret operations
ethicnology Aug 4, 2026
0d556a4
docs: specify production resource guardrails
ethicnology Aug 4, 2026
17a52ca
feat: report attempt_status on successful fetch/trash
ethicnology Aug 5, 2026
e6c7326
feat: replace /stats with cached /attempts telemetry snapshot
ethicnology Aug 5, 2026
a6326af
feat: expose attempts collection metadata on /info
ethicnology Aug 5, 2026
e76992f
fix: origin-aware warrant canary live reload and startup capacity bounds
ethicnology Aug 5, 2026
317b19a
fix: harden request handling (validation order, weak ETag comparison)
ethicnology Aug 5, 2026
7e74691
chore: trim tokio features and apply clippy suggestion
ethicnology Aug 5, 2026
79d63ff
ci: re-audit the pinned Cargo.lock daily
ethicnology Aug 5, 2026
73805e3
docs: canary signaling, timestamp precision, nginx 304 caveat, torrc PoW
ethicnology Aug 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: CI

on:
push:
branches: [main]
pull_request:
schedule:
# New RustSec advisories are published independently of our pushes:
# re-audit the pinned Cargo.lock daily so a fresh advisory against an
# unchanged dependency tree is still caught.
- cron: '17 6 * * *'

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Run tests
run: cargo test -- --test-threads=1
env:
DATABASE_URL: test_db.sqlite3
TEST_DATABASE_URL: test_db.sqlite3
SERVER_ADDRESS: 127.0.0.1:3000
SECRET_MAX_LENGTH: 128
CANARY: 🐦
RATE_LIMIT_COOLDOWN: 1
RATE_LIMIT_MAX_FAILED_ATTEMPTS: 3
STORE_RATE_LIMIT_BURST: 10000
STORE_RATE_LIMIT_REFILL_PER_SECOND: 10000
LOOKUP_RATE_LIMIT_BURST: 10000
LOOKUP_RATE_LIMIT_REFILL_PER_SECOND: 10000
RATE_LIMIT_MAX_IDENTIFIERS: 100000
DATABASE_MAX_CONCURRENCY: 16

audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: rustsec/audit-check@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
Loading
Loading