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.

Before you push: run make install-hooks once per clone, then make local-gate before every push. The local gate mirrors the cloud CI gates (ruff check, mypy, the pytest/parity structural gates, the spine-trail reminder, and — for main-bound branches — SonarQube) so avoidable reds are caught in seconds instead of after a push. See docs/LOCAL_CI_GATE.md.

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

Field-level privacy classification (x-privacy-classification)

Schemas may tag fields (or object groupings) with a machine-readable privacy class so redaction, retention, and export tooling can reason by contract instead of hard-coding field names. Allowed values:

Value Meaning
user_content Raw user-supplied content / model output (prompts, inputs, outputs). The hybrid-path content fields use this — paired with x-content: true so a consumer can enumerate content-bearing leaves directly from the contract.
aggregate_safe Aggregated / derived values safe to surface broadly.
auth_sensitive Authentication and authorization payloads such as device-flow tokens, API keys, and SSO auth responses.
billing_sensitive Billing / pricing data (e.g. wallet, checkout).
tenant_admin_safe Visible to tenant admins only.
manifest_safe Safe to include in exported manifests.

Content-bearing fields on the hybrid DTOs carry x-content: true + x-privacy-classification: user_content: trace/observation input_data/output_data, Example.input/output, EvaluationSetExample.input_text/expected_output, and the metric-submission ConfigurationParameters. Adding these x- keywords is additive and ignored by standard JSON-Schema validators.

Canonical x-* extension list and descriptions: traigent_schema/schemas/x_extensions_meta_schema.json.

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.7.1 (from traigent_schema/version.py; release notes in CHANGELOG.md).

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

License

traigent-schema is dual-licensed: AGPL-3.0-only (see LICENSE) OR a Traigent commercial license for use without AGPL copyleft (see COMMERCIAL-LICENSE.md). SPDX: AGPL-3.0-only OR LicenseRef-Traigent-Commercial.

Use it free under AGPL-3.0, or contact legal@traigent.ai for a commercial license. See LICENSING.md for a short FAQ, NOTICE for third-party attributions, and CONTRIBUTING.md (contributions require a CLA).

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.7.1.tar.gz (191.4 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.7.1-py3-none-any.whl (362.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for traigent_schema-4.7.1.tar.gz
Algorithm Hash digest
SHA256 66d5361a254e5037083aabb97955bcc127ed9609b9414280704f435155ed0d49
MD5 7fe77344b4294af135c56b017e1ac131
BLAKE2b-256 d4c43732cb1553be688053b8c0ee005a1fa1529ab025fc161a66668db65fba17

See more details on using hashes here.

Provenance

The following attestation bundles were made for traigent_schema-4.7.1.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.7.1-py3-none-any.whl.

File metadata

  • Download URL: traigent_schema-4.7.1-py3-none-any.whl
  • Upload date:
  • Size: 362.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for traigent_schema-4.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ab27fa62117034ca5c84ab192235fc081c7039047e29036c70c5f9617cdbd638
MD5 4be9b2a5d7fbbc4b3ee3705ef452836f
BLAKE2b-256 5975a4cb1d403921a31e8293927070f8252a9b0af22e4f78899663b960ee93d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for traigent_schema-4.7.1-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