Release notes
These notes summarize consumer-facing changes in published scm-sdk releases.
The crate registry provides published versions.
0.2.5 — Portkey MCP tags
- Adds
tags: Patch<TypedMap<String>>to MCP integration and server create and update requests. Omitted,nulland value stay distinct: on update,nullclears the tags and a value replaces them. Keys must match^[a-zA-Z0-9_-]+$and values must be strings; both are checked before authentication. - Adds typed
tagsto MCP integration and server responses and list items. Non-conforming response values stay unchanged inextensions. - Adds the
tagsfilter toGatewayMcpServersClientListOptionsand the newAIGatewayMcpIntegrationsClient::list_with_optionswithGatewayMcpIntegrationsClientListOptions. Addsairs::gateway::mcp_tags_filterfor building filters. - Makes
scm_sdk::data::TypedMapandExtensionspublicly nameable, withcollect()andFrom<BTreeMap>constructors. - Frozen standalone schema names are unchanged. MCP requests validate against
versioned
portkey:8e5da0e:roots that add onlytags. - Live acceptance verified the complete integration and server tags workflow and cleaned up both fixtures. See the MCP tags guide.
0.2.4 — Directional security profiles
- Adds
ContentTypeConfigurationandContentTypeConfigurations, their builders, and two named validators for independently optional prompt, response, tool-call, and tool-response protections. - Adds optional content mode and directional configurations to
AiSecurityProfile, full-conversation inspection toModelConfiguration, anddlp_tenant_idto both profile and create/update request models. - Validates profile create/update against the current TypeScript 0.35.0 request schema before authentication or I/O. Newly known fields with null or wrong types now fail request validation, including values supplied through extensions.
- Retains tolerant Rust profile responses, preserving invalid newly known values and explicit null in extensions. Upstream TypeScript 0.35.0 responses reject those values. Explicit typed values take precedence over same-key extensions.
- Refreshes the root and native-probe lockfiles to
rustls-webpki0.103.16 andwebpki-root-certs1.0.10 for RUSTSEC-2026-0382 and RUSTSEC-2026-0383. Applications retain their own lockfiles: update these transitive packages where present and audit the resolved graph. Installing the SDK does not replace an application lockfile. See the TLS dependency note.
Existing standalone schema names retain historical validation; use versioned
typescript:0.35.0:<SchemaName> roots for current standalone validation. Shared
protections, list defaults, endpoint methods, Rust 1.89, features, and direct
dependency declarations remain. Directional live acceptance remains unverified. See the
directional profile guide for fields and migration.
0.2.3 — AIRS management compatibility
- Aligns Red Team management contracts with version 0.86.0 while retaining existing routes and SDK-only capabilities.
- Adds schema-bound connection names
VERTEX_AIandN8N, response modeREALTIME, Vertex AI connection models and client-session multi-turn config. - Adds optional basic-auth and audio projections. Representable values move from extension storage into typed fields; serialization retains omission and null.
- Adds
TargetListOptions::profiling_status, including across pagination.
Migration: move FAILED, IN_PROGRESS and COMPLETED profiling filters to
profiling_status. Legacy status values are still sent unchanged and may be
rejected by the service. QUEUED and PARTIALLY_COMPLETE have no declared
replacement. Some previously unknown union shapes now decode into new named
branches; frozen compatibility enums still retain unknown values.
Rust 1.89, default features, endpoint defaults, G10 behavior and G25 tolerance remain unchanged. Tenant filter probes returned HTTP 403; provider workflows without credentials or compatible fixtures remain experimental/live-unverified. Publication does not imply successful live acceptance of every feature.
0.2.2 — G25 response compatibility
Both response modes stop enforcing string formats such as UUID and RFC 3339. Existing Red Team operations retain the compatibility baseline's response presence, nullability, type and string-bound rules. Unknown response enum strings and object keys were already accepted and remain accepted.
Request validation is unchanged. Target error-log requests still accept only
limit; skip and search are rejected. Missing category_display_name, numeric
tsg_id and null sub_category remain invalid where the baseline schema rejects
them. This is a compatibility correction, not an unrestricted response parser.
0.2.1 — Gateway access policies
Adds typed create/list/get/update/delete access-policy calls for the separate key-authenticated control plane. Omission/null, optimistic concurrency and non-replayable writes are preserved. Existing interfaces remain unchanged; these new policy calls are experimental and live-unverified.
0.2.0 — Red Team data-plane coverage
Adds native methods and wire fixtures for all 47 operations in the pinned Red Team data-plane OpenAPI 0.93.0, including eleven new operations and 152 vendor component models. Existing routes and SDK-only capabilities remain available. The release also introduces stricter vendor query-option validation; consult the complete migration notes. Response format compatibility was subsequently corrected in 0.2.2.
0.1.1 — G10 response defaults
Adds RequestOptions::without_response_defaults(), response_defaults() and
Mode::ResponseWithoutDefaults. Consumers can retain missing server fields
without inserting defaults such as ws_response_timeout: 110, while explicit
null survives. Default behavior and the set of accepted documents are unchanged.
See Core client and policies for the current response policy and Red Teaming for target behavior.
0.1.0 — Initial native Rust release
Implements the frozen TypeScript SDK 0.34.0 surface through 448 concrete methods and 3,820 mapped capabilities: scanning, management, shared DLP/IAM, Model Security, Red Team, Gateway, experimental AgentGuard/realtime, and provisioning. Includes native typed models, omission/null/value handling, bounded transports, explicit credentials, and application-owned async runtimes. Implementation coverage is separate from tenant and provider live qualification.