00fbd20112
fix: resolve clippy warnings and format code
2026-01-26 08:31:00 +00:00
97eaa364ae
ci: split workflows - CI for tests, Release for tags only
2026-01-26 08:17:57 +00:00
4c6348dac7
feat(ui): add custom NORA logo to sidebar
2026-01-26 08:09:24 +00:00
9a8728454b
feat(ui): add responsive mobile design
...
- Hide sidebar on mobile, show hamburger menu
- Add slide-out drawer with overlay
- Touch-friendly tap targets
- Responsive padding and font sizes
- Replace anchor emoji with NORA logo (O as hole)
2026-01-26 07:38:20 +00:00
6c18230072
fix: add ConnectInfo for rate limiter IP extraction
...
PeerIpKeyExtractor requires SocketAddr from ConnectInfo to
extract client IP. Without this, rate limiting fails with
"Unable To Extract Key!" error in Docker containers.
2026-01-26 07:25:58 +00:00
95a2b5333e
fix: correct rust-toolchain action name
2026-01-26 00:35:45 +00:00
a19477c424
ci: add GitHub Actions workflow for Docker releases
...
- Run tests on PR and push
- Build multi-arch images (amd64, arm64)
- Push to ghcr.io on main branch and tags
- Auto-create GitHub Release on version tags
- Use BuildKit cache for faster builds
2026-01-26 00:34:00 +00:00
29c56c6eed
docs: add CHANGELOG for v0.2.0 (EN/RU)
...
Document all new features:
- Testing infrastructure (75 tests)
- Input validation and path traversal protection
- Rate limiting
- Request ID tracking
- Migrate command
- Error handling improvements
- SVG brand icons
Includes Russian translation.
2026-01-26 00:05:44 +00:00
36a4efdb6c
feat: replace emoji icons with SVG brand icons
...
- Add icons module with Docker, Maven, npm, Cargo, PyPI SVGs
- Update sidebar navigation with proper fill/stroke rendering
- Update stat cards, quick links, and detail pages
- Consistent icon styling across all UI components
2026-01-26 00:02:45 +00:00
fcd5e2fa39
feat: implement storage migration command
...
- nora migrate --from local --to s3
- Dry-run mode with --dry-run flag
- Progress bar with indicatif
- Skip existing files in destination
- Summary statistics (migrated, skipped, failed, bytes)
2026-01-26 00:02:39 +00:00
1887ec61c4
feat: add rate limiting for brute-force protection
...
- Auth endpoints: 1 req/sec, burst 5 (strict)
- Upload endpoints: 10 req/sec, burst 20
- General endpoints: 100 req/sec, burst 200
- Uses tower_governor with PeerIpKeyExtractor
2026-01-26 00:02:33 +00:00
ffc584351c
feat: add X-Request-ID middleware for request tracking
...
- Generate UUID v4 per request or accept upstream ID
- Store in request extensions for handler access
- Add to response headers for client correlation
- Include in tracing spans for log correlation
2026-01-26 00:02:27 +00:00
697d59811a
feat: add typed error handling with thiserror
...
- AppError enum with IntoResponse for Axum
- Automatic conversion from StorageError and ValidationError
- JSON error responses with request_id support
2026-01-26 00:02:21 +00:00
a220567270
feat: add input validation with path traversal protection
...
- validate_storage_key: reject ../, null bytes, absolute paths
- validate_docker_name: OCI distribution spec compliance
- validate_digest: sha256/sha512 format validation
- validate_docker_reference: tag and digest reference validation
- Integrate validation in storage wrapper and Docker handlers
2026-01-26 00:02:15 +00:00
7ed3444d86
test: add comprehensive unit tests for storage and auth
...
- LocalStorage tests: put/get, list, stat, health_check, nested dirs
- S3Storage tests with wiremock HTTP mocking
- Auth/htpasswd tests: loading, validation, public paths
- Token lifecycle tests: create, verify, expire, revoke
Total: 75 tests passing
2026-01-26 00:02:09 +00:00
26237bff2d
fix: remove all unwrap() calls for safer error handling
2026-01-25 18:15:19 +00:00
92b6240213
fix: simplify deploy for existing Caddy setup
2026-01-25 18:07:49 +00:00
240736c5a7
feat: add demo deployment with Caddy
2026-01-25 17:38:30 +00:00
586420a476
feat: initialize NORA artifact registry
...
Cloud-native multi-protocol artifact registry in Rust.
- Docker Registry v2
- Maven (+ proxy)
- npm (+ proxy)
- Cargo, PyPI
- Web UI, Swagger, Prometheus
- Local & S3 storage
- 32MB Docker image
Created by DevITWay
https://getnora.io
2026-01-25 17:33:15 +00:00