Skip to main content

Traigent Schema Library - Data contracts and validation for the Traigent AI optimization platform

Project description

Traigent Schema Library

The official contract package for the Traigent AI optimization platform. This repository is the shared source of truth for JSON Schema definitions, endpoint mappings, and validation utilities used across the backend, SDK, and frontend.

Installation

For published package consumers:

pip install traigent-schema

For coordinated workspace development or release validation from GitHub (requires repository access):

pip install git+https://github.com/Traigent/TraigentSchema.git

For development:

pip install -e ".[dev]"

Quick Start

from traigent_schema import SchemaValidator, load_schema

# Validate current backend requests
backend_validator = SchemaValidator()
errors = backend_validator.validate_request('/api/v1/agents', 'POST', request_data)

# Validate SDK direct-tuning requests
tuning_validator = SchemaValidator(contract="sdk_tuning")
errors = tuning_validator.validate_request('/api/v1/sessions', 'POST', session_request)

# Validate planned project-scoped beta routes
planned_validator = SchemaValidator(contract="planned_projects")
errors = planned_validator.validate_request(
    '/api/v1beta/projects/proj_123/analytics/summary',
    'GET',
    {},
)

if errors:
    print(f"Validation errors: {errors}")
else:
    print("Request is valid!")

# Load a specific schema
agent_schema = load_schema('agent_schema')

Available Schemas

The library includes schemas organized by domain:

Agents (schemas/agents/)

  • agent_schema.json - Core agent configuration
  • agent_types_schema.json - Agent type definitions
  • agent_deployment_schema.json - Deployment configurations
  • agent_response_schema.json - Response format specs
  • model_schema.json - Model definitions
  • model_parameters_schema.json - Model parameter specs
  • retriever_schema.json - Retrieval configurations

Datasets (schemas/datasets/)

  • dataset_schema.json - Canonical public dataset resource
  • evaluation_set_schema.json - Legacy-compatible evaluation dataset schema
  • example_set_schema.json - Example set definitions
  • generator_config_schema.json - Data generator configs
  • evaluator_config_schema.json - Evaluator configurations

Evaluation (schemas/evaluation/)

  • experiment_schema.json - Experiment definitions
  • experiment_run_schema.json - Experiment run records
  • configuration_run_schema.json - Configuration run data
  • evaluation_schema.json - Evaluation specifications
  • evaluation_request_schema.json - Evaluation requests
  • evaluation_results_schema.json - Evaluation results

Execution (schemas/execution/)

  • execution_mode_schema.json - Execution mode settings
  • hybrid_session_schema.json - Hybrid session configs
  • saas_execution_schema.json - SaaS execution specs
  • dataset_storage_schema.json - Dataset storage configs
  • metric_submission_schema.json - Metric submission format

Measures (schemas/measures/)

  • measure_schema.json - Measure definitions
  • score_schema.json - Score specifications

Results (schemas/results/)

  • report_schema.json - Report definitions
  • report_request_schema.json - Report request format
  • comparison_schema.json - Comparison specs
  • visualization_schema.json - Visualization configs
  • visualization_request_schema.json - Visualization requests

API Reference

Contract Catalogs

traigent-schema now ships three endpoint catalogs:

  • backend: current TraigentBackend truth, loaded by default through SchemaValidator()
  • sdk_tuning: direct-tuning session and hybrid routes used by SDK clients
  • planned_projects: planned and beta project-scoped /api/v1beta/projects/... routes

Use get_openapi_path() when you want the canonical backend contract root, or get_contract_path(...) when you need one of the non-default catalogs.

Contract Stability

The backend and sdk_tuning catalogs are the supported contract roots for released Traigent surfaces. The planned_projects catalog documents planned and beta project-scoped routes for coordinated development. It is not a stable public API contract, may change without a major-version bump, and may break between minor releases until those routes graduate. Pin a specific traigent-schema version if you build directly against this pre-release surface.

Schema Governance

TraigentSchema is the canonical source of truth for Traigent data contracts across the Python SDK, backend, frontend, and JavaScript SDK parity checks. When changing schemas, update the JSON Schema first, then update downstream DTOs, backend models, generated frontend types, tests, and the changelog as needed.

The shared MeasuresDict contract is enforced across projects:

  • max 50 keys
  • keys match the Python identifier pattern ^[a-zA-Z_][a-zA-Z0-9_]*$
  • values are numeric or null

SchemaValidator

from traigent_schema import SchemaValidator

validator = SchemaValidator()
sdk_validator = SchemaValidator(contract="sdk_tuning")
planned_validator = SchemaValidator(contract="planned_projects")

# Validate by endpoint
errors = validator.validate_request(endpoint, method, data)

# Validate by schema name
errors = validator.validate_json(data, 'agent_schema')

# List available schemas
print(validator.available_schemas)

Utility Functions

from traigent_schema import (
    get_schemas_dir,      # Get path to schemas directory
    get_schema_path,      # Get path to specific schema
    get_all_schema_files, # List all schema files
    get_openapi_path,     # Get path to canonical backend contract root
    get_contract_path,    # Get path to backend/sdk_tuning/planned_projects root
    load_schema,          # Load and parse a schema
)

Development

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linting
ruff check .

# Type checking
mypy traigent_schema

Version

Current release line: 4.1.0

Package metadata is derived from traigent_schema/version.py to keep runtime and published versions aligned.

License

Open-source releases of this repository are licensed under the GNU Affero General Public License v3.0 only. See LICENSE and NOTICE for details.

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

traigent_schema-4.1.0.tar.gz (79.3 kB view details)

Uploaded Source

Built Distribution

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

traigent_schema-4.1.0-py3-none-any.whl (153.4 kB view details)

Uploaded Python 3

File details

Details for the file traigent_schema-4.1.0.tar.gz.

File metadata

  • Download URL: traigent_schema-4.1.0.tar.gz
  • Upload date:
  • Size: 79.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for traigent_schema-4.1.0.tar.gz
Algorithm Hash digest
SHA256 92858563946f0ba9cd1d20dc98fdb27a909456c876562f3b6b69274f0e835bf1
MD5 d15b8b00503169147805bb56f36ff13b
BLAKE2b-256 4746b8bd89f889bfd6c35e1743e8a514432384129d48f50c1d00fc3ed88fe97d

See more details on using hashes here.

Provenance

The following attestation bundles were made for traigent_schema-4.1.0.tar.gz:

Publisher: publish.yml on Traigent/TraigentSchema

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file traigent_schema-4.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for traigent_schema-4.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97558518f694091c8ea3702424aa8ab959041e348b2b7fcf444a9d66f89537a5
MD5 6324e0b496ecbf660b596d4d6b0d7499
BLAKE2b-256 ffa1362b658c3a8de9cfcb5303e513edfbd7e425a5468d6bef654be456236e62

See more details on using hashes here.

Provenance

The following attestation bundles were made for traigent_schema-4.1.0-py3-none-any.whl:

Publisher: publish.yml on Traigent/TraigentSchema

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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