Skip to main content

SOVD (Service-Oriented Vehicle Data) Server Implementation

Project description

SOVD Server

A Service-Oriented Vehicle Data (SOVD) server implementation based on ISO/DIS 17978-3:2025, with YAML-based configuration.

Features

  • YAML-driven configuration — Gateway, entities (areas, components, apps), and resources (data, operations, faults, modes) defined in YAML
  • RESTful SOVD API — Data resources, operations, faults, and modes with JSON responses
  • No authentication — Simplified setup for development and testing
  • CORS enabled — Ready for web and tool clients

Requirements

Quick start

# Clone and enter the project
cd sovd_server

# Install dependencies (creates a virtual environment automatically)
poetry install
# or
make install

# Run the server
poetry run sovd-server
# or
make run-server

Server runs at http://127.0.0.1:8080 by default. Try:

  • Health: curl http://localhost:8080/health
  • Areas: curl http://localhost:8080/areas
  • Engine data: curl http://localhost:8080/engine/data

Project layout

sovd_server/
├── src/sovd_server/           # Main package
│   ├── config/                # YAML configuration
│   │   ├── sovd_gateway.yaml  # Gateway (host, port, logging)
│   │   ├── entities/          # Areas, components, apps
│   │   └── resources/         # Data, operations, faults, modes
│   ├── config_loader.py       # YAML loader
│   ├── enhanced_server.py     # Flask/Connexion server
│   └── run_enhanced_server.py # CLI entry point
├── tests/
├── docs/                      # Additional documentation
├── pyproject.toml              # Project and dependencies (Poetry)
├── Makefile                   # Convenience commands
└── README.md

Development

Command Description
make install Install dependencies (Poetry)
make run-server Start the SOVD server
make test Run tests
make run-tests Run tests with coverage
make lint Run flake8 and mypy
make format Format code with Black
make format-check Check formatting only
make security Run bandit and safety
make ci-local Lint, format-check, security, test
make version Show package version
make build Build wheel and sdist for distribution
make clean Remove build artifacts and caches

All commands run via Poetry (e.g. poetry run pytest). You can also run tools directly:

poetry run pytest tests/ -v
poetry run black src/ tests/
poetry run flake8 src/ tests/

Configuration

  • Gateway: src/sovd_server/config/sovd_gateway.yaml — host, port, logging, entity/resource file paths
  • Entities: config/entities/ — areas, components, applications
  • Resources: config/resources/ — data, operations, faults, modes

See docs/ for detailed configuration and API notes.

API overview

Endpoint Description
GET /health Health check
GET /version-info Server version
GET /areas, /components, /apps List entities
GET /{entity}/data Data resources for an entity
GET /{entity}/data/{id} Single data resource
GET /{entity}/operations Operations
POST /{entity}/operations/{id} Execute operation
GET /{entity}/faults, GET /{entity}/modes Faults and modes

Example:

# Engine software part number
curl http://localhost:8080/engine/data/SoftwarePartNumber

# Start camera calibration
curl -X POST http://localhost:8080/camera/front/operations/calibratecamera \
  -H "Content-Type: application/json" \
  -d '{"calibration_type": "automatic", "target_distance": 10.0}'

Installing the package

From PyPI (when published):

pip install sovd-server
sovd-server

From the project (editable):

poetry install
poetry run sovd-server

Documentation

License

MIT. See LICENSE if present.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sovd_server-1.0.1.tar.gz (47.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sovd_server-1.0.1-py3-none-any.whl (95.5 kB view details)

Uploaded Python 3

File details

Details for the file sovd_server-1.0.1.tar.gz.

File metadata

  • Download URL: sovd_server-1.0.1.tar.gz
  • Upload date:
  • Size: 47.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for sovd_server-1.0.1.tar.gz
Algorithm Hash digest
SHA256 92177b931c6aa25b5c06217eb3e27e05293dd4a1fe80adf6b285fe92698b22ae
MD5 d4552df91e7411d5b6b7ccb61cbe3e81
BLAKE2b-256 9ff5c4a0626517d438e065ac1deb712f59669773e0aa52ae0654f420ae7f4535

See more details on using hashes here.

File details

Details for the file sovd_server-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: sovd_server-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 95.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for sovd_server-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9df9afb434aa053f3f6c09fb3a5bbac221e7b153abebd19311241a97ad698840
MD5 51b166a3ee62b429edd732b941274a37
BLAKE2b-256 903f729a41c672c3a93e012b2e2813c8abd8691c54bb55311a737763068e54f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page