open-standards/openpay/crates/op-orchestrator/Cargo.toml
Transaction Science ab59bb39ba Repo-wide toolchain refresh + jouleclaw policy/sandbox updates
Pin to the repo rust-toolchain and refresh workspace/crate manifests across
openpay, eoc, arl, smart-byte, and joule-ui, and update the jouleclaw
omni/policy/sandbox crates accordingly. No wire-format or conformance-vector
changes.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-07 17:04:45 -04:00

54 lines
2.1 KiB
TOML

[package]
name = "op-orchestrator"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "OpenPay cross-rail orchestrator: idempotency-keyed payment intents, fraud-gated routing, retry/fallback across card and A2A rails."
publish = false
[dependencies]
# `pci-scope` is enabled because op-vault (transitive) turns it on and
# cargo unifies workspace features. The orchestrator only ever sees a
# tokenized method by design, but it MUST compile the match arm for
# `PaymentMethod::RawPan` because the variant exists in the unified
# `op-core`. The arm errors loudly if reached — it's a design violation.
op-core = { path = "../op-core", features = ["pci-scope"] }
op-vault = { path = "../op-vault", features = ["in-memory"] }
op-fraud = { path = "../op-fraud" }
op-rails-card = { path = "../op-rails-card" }
op-rails-a2a = { path = "../op-rails-a2a" }
op-rails-crypto = { path = "../op-rails-crypto" }
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
sha2 = "0.11"
tracing = { workspace = true }
# Optional OpenTelemetry export. Gated behind the `telemetry`
# feature so headless deployments that don't ship spans aren't
# forced to compile the OTel stack. When the feature is off
# `instrument_transition` still emits a plain `tracing::span!` —
# subscribers downstream pick it up via the standard
# `tracing-subscriber` layers.
tracing-opentelemetry = { version = "0.32", optional = true }
opentelemetry = { version = "0.31", optional = true }
opentelemetry-otlp = { version = "0.31", features = ["grpc-tonic"], optional = true }
opentelemetry_sdk = { version = "0.31", features = ["rt-tokio"], optional = true }
tracing-subscriber = { workspace = true, optional = true }
[features]
default = []
# Wires `init_telemetry` to push spans over OTLP to a collector
# (Jaeger, Tempo, Honeycomb, etc.). Off by default so the orchestrator
# stays a pure compute crate.
telemetry = [
"dep:tracing-opentelemetry",
"dep:opentelemetry",
"dep:opentelemetry-otlp",
"dep:opentelemetry_sdk",
"dep:tracing-subscriber",
]