mirror of
https://git.linux-kernel.at/oliver/ivatar.git
synced 2025-11-11 18:56:23 +00:00
112 lines
3.2 KiB
Markdown
112 lines
3.2 KiB
Markdown
# ivatar / libravatar
|
|
|
|
# Pipeline and coverage status
|
|
|
|
[](https://git.linux-kernel.at/oliver/ivatar/commits/master)
|
|
[](http://git.linux-kernel.at/oliver/ivatar/commits/master)
|
|
|
|
# Reports / code documentation
|
|
|
|
- [Coverage HTML report](http://oliver.git.linux-kernel.at/ivatar)
|
|
- [Code documentation (autogenerated, pycco)](http://oliver.git.linux-kernel.at/ivatar/pycco/)
|
|
|
|
# Environment Variables
|
|
|
|
## OpenTelemetry Configuration
|
|
|
|
OpenTelemetry instrumentation is always enabled in ivatar. The following environment variables control the behavior:
|
|
|
|
### Core Configuration
|
|
|
|
- `OTEL_SERVICE_NAME`: Service name for OpenTelemetry (default: "ivatar")
|
|
- `OTEL_ENVIRONMENT`: Deployment environment (default: "production")
|
|
- `OTEL_EXPORT_ENABLED`: Enable/disable data export (default: "false")
|
|
- Set to "true" to enable sending telemetry data to external collectors
|
|
- Set to "false" to disable export (instrumentation still active)
|
|
|
|
### Export Configuration
|
|
|
|
- `OTEL_EXPORTER_OTLP_ENDPOINT`: OTLP endpoint for traces and metrics export
|
|
- Example: "http://localhost:4317" (gRPC) or "http://localhost:4318" (HTTP)
|
|
- `OTEL_PROMETHEUS_ENDPOINT`: Prometheus metrics endpoint (default: "0.0.0.0:9464")
|
|
|
|
## Example Configurations
|
|
|
|
### Development (Export Disabled)
|
|
|
|
```bash
|
|
export OTEL_EXPORT_ENABLED=false
|
|
export OTEL_SERVICE_NAME=ivatar-dev
|
|
export OTEL_ENVIRONMENT=development
|
|
```
|
|
|
|
### Production (Export Enabled)
|
|
|
|
```bash
|
|
export OTEL_EXPORT_ENABLED=true
|
|
export OTEL_SERVICE_NAME=ivatar
|
|
export OTEL_ENVIRONMENT=production
|
|
export OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
|
|
```
|
|
|
|
# Testing
|
|
|
|
## Running Tests
|
|
|
|
### Local Development (Recommended)
|
|
|
|
For local development, use the provided script to skip Bluesky tests that require external API credentials:
|
|
|
|
```bash
|
|
./scripts/run_tests_local.sh
|
|
```
|
|
|
|
This runs all tests except those marked with `@pytest.mark.bluesky`.
|
|
|
|
### All Tests
|
|
|
|
To run all tests including Bluesky tests (requires Bluesky API credentials):
|
|
|
|
```bash
|
|
python3 manage.py test -v3
|
|
```
|
|
|
|
### Specific Test Categories
|
|
|
|
```bash
|
|
# Run only Bluesky tests
|
|
python3 manage.py test ivatar.ivataraccount.test_views_bluesky -v3
|
|
|
|
# Run only file upload security tests
|
|
python3 manage.py test ivatar.test_file_security -v3
|
|
|
|
# Run only security fixes tests (ETag sanitization and URL validation)
|
|
python3 manage.py test ivatar.test_security_fixes -v3
|
|
|
|
# Run only upload tests
|
|
python3 manage.py test ivatar.ivataraccount.test_views -v3
|
|
```
|
|
|
|
## Test Markers
|
|
|
|
Tests are categorized using pytest markers:
|
|
|
|
- `@pytest.mark.bluesky`: Tests requiring Bluesky API credentials
|
|
- `@pytest.mark.slow`: Long-running tests
|
|
- `@pytest.mark.integration`: Integration tests
|
|
- `@pytest.mark.unit`: Unit tests
|
|
|
|
# Authors and contributors
|
|
|
|
Lead developer/Owner: Oliver Falk (aka ofalk or falko) - https://git.linux-kernel.at/oliver
|
|
|
|
Operations: Michal Novotny (aka clime)
|
|
|
|
QA: Tristan Le Guern (aka tleguern)
|
|
|
|
Frontend developer: Lukas Schönsgibl (aka hybridpicker), Niklas Poslovski (aka nipos)
|
|
|
|
Organisation/Meeting moderation: Lars Kruse (aka sumpfralle)
|
|
|
|
Initial developer: François Marier - https://fmarier.org/
|