iron_control_api 0.3.0

HTTP API for Iron Cage control plane
Documentation
[[bin]]
name = "iron_control_api_server"
path = "src/bin/iron_control_api_server.rs"

[build-dependencies.vergen]
features = ["build", "git", "gitcl"]
version = "8.0"

[dependencies.aes-gcm]
optional = true
version = "0.10"

[dependencies.anyhow]
optional = true
version = "1.0"

[dependencies.async-trait]
optional = true
version = "0.1"

[dependencies.axum]
features = ["ws"]
optional = true
version = "0.7"

[dependencies.axum-extra]
features = ["typed-header", "typed-header"]
optional = true
version = "0.9"

[dependencies.base64]
optional = true
version = "0.22"

[dependencies.bcrypt]
optional = true
version = "0.16"

[dependencies.chrono]
features = ["serde"]
optional = true
version = "0.4"

[dependencies.dotenvy]
version = "0.15"

[dependencies.hex]
optional = true
version = "0.4"

[dependencies.iron_runtime_state]
features = ["enabled", "sqlite"]
optional = true
version = "0.3.0"

[dependencies.iron_secrets]
optional = true
version = "0.3.0"

[dependencies.iron_token_manager]
optional = true
version = "0.4.0"

[dependencies.iron_types]
features = ["full"]
optional = true
version = "0.3.0"

[dependencies.jsonwebtoken]
optional = true
version = "9.0"

[dependencies.rand]
optional = true
version = "0.8"

[dependencies.reqwest]
features = ["json"]
optional = true
version = "0.12"

[dependencies.serde]
features = ["derive", "derive"]
optional = true
version = "1.0"

[dependencies.serde_json]
optional = true
version = "1.0"

[dependencies.sha2]
optional = true
version = "0.10"

[dependencies.sqlx]
features = ["sqlite", "runtime-tokio-rustls", "sqlite", "runtime-tokio"]
optional = true
version = "0.8"

[dependencies.thiserror]
optional = true
version = "1.0"

[dependencies.tokio]
features = ["full", "full"]
optional = true
version = "1.48"

[dependencies.tower]
optional = true
version = "0.5"

[dependencies.tower-http]
features = ["cors", "trace", "cors", "trace"]
optional = true
version = "0.6"

[dependencies.tracing]
optional = true
version = "=0.1.41"

[dependencies.tracing-subscriber]
version = "=0.3.20"

[dependencies.uuid]
features = ["v4", "serde", "v4"]
optional = true
version = "1.18"

[dependencies.workspace_tools]
features = ["serde", "secrets", "secure", "testing"]
version = "0.11"

[dependencies.zeroize]
optional = true
version = "1"

[dev-dependencies.http-body-util]
version = "0.1"

[dev-dependencies.hyper]
features = ["full"]
version = "1.5"

[dev-dependencies.reqwest]
features = ["json"]
version = "0.12"

[dev-dependencies.serial_test]
version = "3.2.0"

[dev-dependencies.sha2]
version = "0.10"

[dev-dependencies.tempfile]
version = "3.8"

[dev-dependencies.tokio]
features = ["full", "full"]
version = "1.48"

[dev-dependencies.walkdir]
version = "2.4"

[[example]]
name = "gen_ic_token"
path = "examples/gen_ic_token.rs"

[features]
default = ["enabled"]
enabled = ["dep:iron_types", "dep:iron_runtime_state", "dep:iron_token_manager", "dep:iron_secrets", "dep:tokio", "dep:axum-extra", "dep:axum", "dep:tower", "dep:tower-http", "dep:serde", "dep:serde_json", "dep:tracing", "dep:anyhow", "dep:jsonwebtoken", "dep:chrono", "dep:sqlx", "dep:async-trait", "dep:bcrypt", "dep:reqwest", "dep:aes-gcm", "dep:rand", "dep:zeroize", "dep:base64", "dep:uuid", "dep:hex", "dep:sha2"]
full = ["enabled"]

[lib]
name = "iron_control_api"
path = "src/lib.rs"

[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["web-programming::http-server"]
description = "HTTP API for Iron Cage control plane"
edition = "2021"
keywords = ["api", "rest", "control-plane", "agent-management"]
license = "MIT"
name = "iron_control_api"
readme = "readme.md"
repository = "https://github.com/.../iron_runtime"
rust-version = "1.70"
version = "0.3.0"

[[test]]
name = "agent_provider_key_tests"
path = "tests/agent_provider_key_tests.rs"

[[test]]
name = "agents_integration_tests"
path = "tests/agents_integration_tests.rs"

[[test]]
name = "analytics_integration_tests"
path = "tests/analytics_integration_tests.rs"

[[test]]
name = "api_test"
path = "tests/api_test.rs"

[[test]]
name = "auth"
path = "tests/auth.rs"

[[test]]
name = "auth_endpoints"
path = "tests/auth_endpoints.rs"

[[test]]
name = "auth_rate_limiting"
path = "tests/auth_rate_limiting.rs"

[[test]]
name = "authorization_checks"
path = "tests/authorization_checks.rs"

[[test]]
name = "budget_approval_approver_tracking_test"
path = "tests/budget_approval_approver_tracking_test.rs"

[[test]]
name = "budget_boundary_values"
path = "tests/budget_boundary_values.rs"

[[test]]
name = "budget_concurrency"
path = "tests/budget_concurrency.rs"

[[test]]
name = "budget_concurrency_diagnosis"
path = "tests/budget_concurrency_diagnosis.rs"

[[test]]
name = "budget_corner_cases"
path = "tests/budget_corner_cases.rs"

[[test]]
name = "budget_corner_cases_refresh"
path = "tests/budget_corner_cases_refresh.rs"

[[test]]
name = "budget_database_state"
path = "tests/budget_database_state.rs"

[[test]]
name = "budget_invariants"
path = "tests/budget_invariants.rs"

[[test]]
name = "budget_lease_lifecycle"
path = "tests/budget_lease_lifecycle.rs"

[[test]]
name = "budget_refresh_jwt_auth_test"
path = "tests/budget_refresh_jwt_auth_test.rs"

[[test]]
name = "budget_request_max_limit_test"
path = "tests/budget_request_max_limit_test.rs"

[[test]]
name = "budget_routes"
path = "tests/budget_routes.rs"

[[test]]
name = "budget_security"
path = "tests/budget_security.rs"

[[test]]
name = "budget_security_ic_token"
path = "tests/budget_security_ic_token.rs"

[[test]]
name = "budget_security_jwt"
path = "tests/budget_security_jwt.rs"

[[test]]
name = "budget_security_unicode"
path = "tests/budget_security_unicode.rs"

[[test]]
name = "budget_security_validation"
path = "tests/budget_security_validation.rs"

[[test]]
name = "critical_corner_cases_manual_test"
path = "tests/critical_corner_cases_manual_test.rs"

[[test]]
name = "handshake_budget_request_validation_test"
path = "tests/handshake_budget_request_validation_test.rs"

[[test]]
name = "handshake_ip_token_decryption_test"
path = "tests/handshake_ip_token_decryption_test.rs"

[[test]]
name = "handshake_malformed_agent_id_test"
path = "tests/handshake_malformed_agent_id_test.rs"

[[test]]
name = "health"
path = "tests/health.rs"

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"

[[test]]
name = "keys"
path = "tests/keys.rs"

[[test]]
name = "limits"
path = "tests/limits.rs"

[[test]]
name = "login_connect_info_test"
path = "tests/login_connect_info_test.rs"

[[test]]
name = "production_secret_validation_test"
path = "tests/production_secret_validation_test.rs"

[[test]]
name = "protocol_005_enforcement_simple"
path = "tests/protocol_005_enforcement_simple.rs"

[[test]]
name = "protocol_005_immutability_infrastructure"
path = "tests/protocol_005_immutability_infrastructure.rs"

[[test]]
name = "protocol_005_migration_metrics"
path = "tests/protocol_005_migration_metrics.rs"

[[test]]
name = "protocol_005_rollback_verification"
path = "tests/protocol_005_rollback_verification.rs"

[[test]]
name = "rbac"
path = "tests/rbac.rs"

[[test]]
name = "test_cors_configuration"
path = "tests/test_cors_configuration.rs"

[[test]]
name = "test_no_url_redirect"
path = "tests/test_no_url_redirect.rs"

[[test]]
name = "test_server_port_configuration"
path = "tests/test_server_port_configuration.rs"

[[test]]
name = "token_name_validation_test"
path = "tests/token_name_validation_test.rs"

[[test]]
name = "tokens"
path = "tests/tokens.rs"

[[test]]
name = "usage"
path = "tests/usage.rs"

[[test]]
name = "users"
path = "tests/users.rs"

[[test]]
name = "version_endpoint_test"
path = "tests/version_endpoint_test.rs"

[[test]]
name = "workspace_path_resolution_test"
path = "tests/workspace_path_resolution_test.rs"