Skip to content

Bump Microsoft.OpenApi from 2.0.0 to 3.8.0#51

Closed
dependabot[bot] wants to merge 43 commits into
mainfrom
dependabot/nuget/Microsoft.OpenApi-3.8.0
Closed

Bump Microsoft.OpenApi from 2.0.0 to 3.8.0#51
dependabot[bot] wants to merge 43 commits into
mainfrom
dependabot/nuget/Microsoft.OpenApi-3.8.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 6, 2026

Copy link
Copy Markdown

Updated Microsoft.OpenApi from 2.0.0 to 3.8.0.

Release notes

Sourced from Microsoft.OpenApi's releases.

3.8.0

3.8.0 (2026-07-03)

Features

  • add JsonConverter for OpenApiSchema System.Text.Json serialization (#​2915) (2f8b3d2)
  • library: support schema keywords on references (434b2f8)
  • library: support schema keywords on references (66a9d04), closes #​2903

Bug Fixes

  • Don't silently skip null assignment to OpenApiDocument.Tags (3764142)
  • handling of nullable enums for 3.0 (#​2920) (beb68f5)
  • library: keep v3 schema references ref-only (c938727)
  • preserve JSON Schema 2020-12 keyword siblings on $ref schemas for OAS 3.1+ (#​2896) (08160c8)
  • use async method for crypto flush (6e675d9)

3.7.0

3.7.0 (2026-06-10)

Features

  • add contains/minContains/maxContains members (78475e3)
  • add contains/minContains/maxContains members (1a974f8)
  • library: add missing json schema properties (9b1aed6)
  • library: add missing json schema properties (82f84e0)

Bug Fixes

  • library: always copy unevaluated properties (4907d1c)
  • library: avoid false circular refs for external schema re-exports (b635242)
  • library: avoid false circular refs for external schema re-exports (7a443c2)
  • library: remove unshipped schema extension fallback (cf54bb3)
  • library: use version-specific schema keyword callbacks (6e22ec6)
  • library: use x-jsonschema schema extensions (eb1891a)

3.6.0

3.6.0 (2026-06-01)

Features

  • reader: remove ParseNode infrastructure (9b4f45b)
  • Significant performance improvements resulting ~40% reduced allocations when parsing JSON descriptions, ~25% for YAML.

3.5.5

3.5.5 (2026-05-28)

Bug Fixes

  • reader: preserve Null flag when nullable appears before type in V3.0/V3.1/V3.2 deserializers (2b9d7f4)

3.5.4

3.5.4 (2026-05-26)

Bug Fixes

  • library: handle circular schema references (b3cd42b)
  • library: handle circular schema references (91a989f)

3.5.3

3.5.3 (2026-04-27)

Bug Fixes

  • null reference exception for boolean component schemas (f97f91a)
  • null reference exception for boolean component schemas (fe0b50a)
  • schema: support boolean schemas in deserializer for OpenAPI 3.1/3.2 (05b44be)

Performance Improvements

  • schema: optimize boolean schema deserialization (7316e3f)

3.5.2

3.5.2 (2026-04-14)

Bug Fixes

  • hidi: update Microsoft.OpenApi.OData to 3.2.1 (b0a68fb)
  • hidi: update Microsoft.OpenApi.OData to 3.2.1 (8c22ab2), closes #​2811

3.5.1

3.5.1 (2026-03-31)

Bug Fixes

  • security scheme references serialization (a5acb89)

3.5.0

3.5.0 (2026-03-20)

Features

  • library: add Extensions support for schema references in v3.1/v3.2; add SerializeAsV32 with loop detection (9b422bf)

Bug Fixes

  • a bug where path parameter validation would fail if they contained forbidden JSON pointer characters (ef55b2c)
  • a bug where path parameter validation would fail if they contained forbidden JSON pointer characters (4b3164a)
  • double encoding of json pointer for invalid reference rule (b246cd0)
  • encoding of special characters for JSON paths (4c757e1)
  • library: do not emit unevaluatedProperties for non-object schemas (852fb4c)
  • library: do not emit unevaluatedProperties for non-object schemas (19538aa)
  • library: enforce spec-compliant $ref serialization; add Extensions support for schema references in v3.1/v3.2 (9bf61de)
  • potential double encoding of paths (471a61a)

3.4.0

3.4.0 (2026-03-04)

Features

  • library: preserve PatternProperties as x-jsonschema-patternProperties extension for OpenAPI v2/v3.0 serialization (d969fdc)
  • library: Preserve PatternProperties via x-jsonschema-patternProperties extension for OpenAPI v2/v3.0 (16ab5e4)
  • securityscheme: add oauth2MetadataUrl support (OpenAPI 3.2) (4509488)

Bug Fixes

  • implement unevaluatedProperties as schema per JSON Schema 2020-12 (#​2728) (7c13fb3)
  • library: serialize additionalProperties schema in OpenAPI V2 (f3165fa)
  • library: serialize additionalProperties schema in OpenAPI V2 documents (3d07756)
  • optimize parsing V3.1 documents by reducing GetLocation method allocation on hot path(#​2748) (f690681)

3.3.1

3.3.1 (2026-01-22)

Features

Bug Fixes

  • broken binary compatibility due to interface changes in previous version (d96bba7)

3.3.0

3.3.0 (2026-01-21)

Features

  • models: add shared Content interface (9e13b25)
  • models: add shared Content interface (#​2695) (9e13b25)
  • models: support mutualTLS security scheme (a4efdfe)

3.2.0

3.2.0 (2026-01-19)

Features

  • hidi validate command now logs warnings (76a3c0f)
  • hidi validate command now logs warnings (62e7d56)

Bug Fixes

  • discriminator property validation fails any/allOf cases when it shouldn't (fb6cecc)
  • discriminator property validation fails any/allOf cases when it shouldn't (a8fb81c)

3.1.3

3.1.3 (2026-01-16)

Bug Fixes

  • Support custom tag ordering (008576c)
  • Support custom tag ordering (7610d07)

3.1.2

3.1.2 (2026-01-06)

Bug Fixes

  • correct error pointer when extension parser throws OpenApiException (43c75a9)
  • wrap extension parser calls in try-catch to ensure correct error pointers (50b44aa)

3.1.1

3.1.1 (2025-12-18)

Bug Fixes

  • schema: always serialize additionalProperties: false (6651c36)
  • schema: always serialize additionalProperties: false (e36fc95)

3.1.0

3.1.0 (2025-12-17)

Features

  • Add type: "null" downcasting when in oneOf and anyOf for OpenAPI v3 (782cf8d)

3.0.3

3.0.3 (2025-12-16)

Bug Fixes

  • load JSON documents that are preceded by multiple whitespace (6461bac)
  • non-seekable json streams would fail to load as a document (2436d73)
  • reading streams in an asp.net context would cause async exceptions (f9e5248)

3.0.2

3.0.2 (2025-12-08)

Bug Fixes

  • additional properties serialization should not emit a schema in v2 (946cba9)
  • additional properties serialization should not emit booleans in v3.1+ (946cba9)

3.0.1

3.0.1 (2025-11-17)

Bug Fixes

  • empty strings should be quoted in yaml (8d215f9)
  • empty strings should be quoted in yaml (0ca10db)

3.0.0

3.0.0 (2025-11-11)

⚠ BREAKING CHANGES

  • adds support for OpenAPI 3.2.0

Note: Please refer to the upgrade guide for a detailed description of the breaking changes.

Note: ASP.net users should remain on version 1.X for ASP.net < 10, and version 2.X for ASP.net 10, this new major version will be implemented in a future version of ASP.net, more information

Features

  • adds support for OpenAPI 3.2.0 (765a8dd)

Special thanks

2.10.0

2.10.0 (2026-07-03)

Features

  • add JsonConverter for OpenApiSchema System.Text.Json serialization (#​2915) (465521b)
  • library: support schema keywords on references (2749463), closes #​2903

Bug Fixes

  • Don't silently skip null assignment to OpenApiDocument.Tags (#​2917) (6a45a82)
  • handling of nullable enums for 3.0 (#​2920) (f4778e0)
  • library: keep v3 schema references ref-only (8d811c3)
  • preserve JSON Schema 2020-12 keyword siblings on $ref schemas for OAS 3.1+ (#​2896) (fb20d46)
  • preserve JSON Schema 2020-12 keyword siblings on $ref schemas for OAS 3.1+ (#​2896) (c79a83e)
  • use async method for crypto flush (677b519)

2.9.0

2.9.0 (2026-06-10)

Features

  • add contains/minContains/maxContains members (fadb422)
  • library: add missing json schema properties (db41a3c)

Bug Fixes

  • library: always copy unevaluated properties (3951a31)
  • library: avoid false circular refs for external schema re-exports (a058913)
  • library: avoid false circular refs for external schema re-exports (1bace68)
  • library: merge contains compat members into missing properties (7dc45e1)
  • library: remove unshipped schema extension fallback (b301827)
  • library: use version-specific schema keyword callbacks (f93d76a)
  • library: use x-jsonschema schema extensions (ec04a7f)

2.8.0

2.8.0 (2026-06-01)

Features

  • reader: remove ParseNode infrastructure (d7c6a9d)
  • Significant performance improvements resulting ~40% reduced allocations when parsing JSON descriptions, ~25% for YAML.

2.7.6

2.7.6 (2026-05-28)

Bug Fixes

  • reader: preserve nullable Null flag when type appears after nullable in V3.1/V3.2 deserializers (288e95a)

2.7.5

2.7.5 (2026-05-26)

Bug Fixes

  • library: handle circular schema references (acd5088)
  • library: handle circular schema references (6bcac39)

2.7.4

2.7.4 (2026-04-27)

Bug Fixes

  • null reference exception for boolean component schemas (cc13028)
  • schema: support boolean schemas in deserializer for OpenAPI 3.1/3.2 (48aaf23)

Performance Improvements

  • schema: optimize boolean schema deserialization (fe6f513)

2.7.3

2.7.3 (2026-04-14)

Bug Fixes

  • hidi: update Microsoft.OpenApi.OData to 2.2.1 (1e01cd5)
  • hidi: update Microsoft.OpenApi.OData to 2.2.1 (c890703), closes #​2812

2.7.2

2.7.2 (2026-03-31)

Bug Fixes

  • security requirement reference serialization (0945eec)

2.7.1

2.7.1 (2026-03-20)

Bug Fixes

  • a bug where path parameter validation would fail if they contained forbidden JSON pointer characters (2efd2b2)
  • library: do not emit unevaluatedProperties for non-object schemas (28d614f)
  • library: enforce spec-compliant $ref serialization; add Extensions support for schema references in v3.1/v3.2 (7640a8a)

2.7.0

2.7.0 (2026-03-05)

Features

  • add UnevaluatedPropertiesSchema support to IOpenApiSchema (fb691d6)
  • library: preserve PatternProperties as x-jsonschema-patternProperties extension for OpenAPI v2/v3.0 serialization (dd5085a)

Bug Fixes

  • address PR feedback on UnevaluatedProperties implementation (80fc0f6)
  • correct deserialization and test for UnevaluatedPropertiesSchema (a4d66fc)
  • library: serialize additionalProperties schema in OpenAPI V2 (99b653c)
  • library: serialize additionalProperties schema in OpenAPI V2 (cef7996)
  • optimize parsing V3.1 documents by reducing GetLocation method allocation on hot path(#​2748) (91e697b)
  • optimize parsing V3.1 documents by reducing GetLocation method allocation on hot path(#​2748) (06c58a5)

2.6.1

2.6.1 (2026-01-22)

Bug Fixes

  • broken binary compatibility due to interface changes in previous version (06f2b85)

2.6.0

2.6.0 (2026-01-21)

Features

2.5.0

2.5.0 (2026-01-19)

Features

  • hidi validate command now logs warnings (1d3d085)
  • hidi validate command now logs warnings (18ed5ac)

Bug Fixes

  • discriminator property validation fails any/allOf cases when it shouldn't (ff6e411)
  • discriminator property validation fails any/allOf cases when it shouldn't (7def73d)

2.4.3

2.4.3 (2026-01-16)

Bug Fixes

  • Support custom tag ordering (008576c)
  • Support custom tag ordering (7610d07)

2.4.2

2.4.2 (2025-12-22)

Bug Fixes

  • wrap extension parser calls in try-catch to ensure correct error pointers (63cf4a3)
  • wrap extension parser calls in try-catch to ensure correct error pointers (458cabe)

2.4.1

2.4.1 (2025-12-18)

Bug Fixes

  • schema: always serialize additionalProperties: false (6651c36)
  • schema: always serialize additionalProperties: false (e36fc95)

2.4.0

2.4.0 (2025-12-17)

Features

  • Add type: "null" downcasting when in oneOf and anyOf for OpenAPI v3 (782cf8d)

2.3.12

2.3.12 (2025-12-15)

Bug Fixes

  • load JSON documents that are preceded by multiple whitespace (640e59a)
  • non-seekable json streams would fail to load as a document (76b0159)
  • non-seekable json streams would fail to load as a document (2436d73)
  • reading streams in an asp.net context would cause async exceptions (f9e5248)

2.3.11

2.3.11 (2025-12-08)

Bug Fixes

  • additional properties serialization should not emit a schema in v2 (946cba9)
  • additional properties serialization should not emit a schema in v2 fix: additional properties serialization should not emit booleans in v3.1+ (275dd9d)
  • additional properties serialization should not emit booleans in v3.1+ (946cba9)

2.3.10

2.3.10 (2025-11-17)

Bug Fixes

  • empty strings should be quoted in yaml (e919b33)
  • empty strings should be quoted in yaml (0ca10db)

2.3.9

2.3.9 (2025-11-06)

Bug Fixes

  • a bug where null sentinel value would appear in YAML documents (15618e1)

2.3.8

2.3.8 (2025-10-27)

Bug Fixes

  • an issue where numeric property names would be missing quotes in yaml conversion (da43c98)
  • quote property names in yaml that match boolean values (39a9f41)
  • yaml blocks and line returns (b053848)

2.3.7

2.3.7 (2025-10-24)

Bug Fixes

  • adds a null value sentinel to enable roundtrip serializations of JsonNode typed properties (337c6eb)
  • adds a null value sentinel to enable roundtrip serializations of JsonNode typed properties (63b2b98)
  • fixes a bug where yaml null values would end up as a string "null" during roundtrip serialization (6e62de2)
  • fixes a bug where yaml null values would end up as a string "null" during roundtrip serialization (994184b)
  • YamlConverter adding extra quotes to string values when converting from JSON to YAML (ccfebc8)

Performance Improvements

  • do not duplicate nodes when indexing (dbbbf13)
  • only initialize map node nodes on demand (bdb5264)
  • reduce allocations in mapnode (f58aad2)
  • removes the lazy initialization since the node is always enumerated (1c96521)
  • switches to lazy instantiation (d3c758b)
  • use deep equals for comparison to reduce allocations (6ce3214)

2.3.6

2.3.6 (2025-10-20)

Bug Fixes

  • a bug where empty collections would not be serialized for default values (4c4d257)

2.3.5

2.3.5 (2025-10-14)

Bug Fixes

  • use settings for terse output in serialization extension methods (246039b)
  • use settings for terse output in serialization extension methods (8b91278)

2.3.4

2.3.4 (2025-10-06)

Bug Fixes

  • Improve server creation and URL handling logic to maintain port (3e6ee80)
  • missing deserialization for header content property in 3.1 and 3.0 (717f154)
  • missing deserialization for header content property in 3.1 and 3.0 (0fdfae1)

2.3.3

2.3.3 (2025-10-02)

Bug Fixes

  • typo in allowReserved property name for deserialization (1633453)
  • typo in allowReserved property name for deserialization (f7e34be)

2.3.2

2.3.2 (2025-09-19)

Bug Fixes

  • Fix URL processing in InternalLoad method would not detect the filename/scheme properly in some scenarios (d93689c)
  • OpenApiEncoding explode property serialization defaults with form style (ae03eab)

2.3.1

2.3.1 (2025-09-08)

Bug Fixes

  • file access for "file" URI scheme with special characters (6dded81)

2.3.0

2.3.0 (2025-08-29)

Features

  • adds the detected format as part of the diagnostic (#​2482) (59d7c81)
  • adds the detected format to the diagnostics (59d7c81)

2.2.0

2.2.0 (2025-08-25)

Features

  • add Validation Rule for path operations to not have a request body (d101fc3)

Bug Fixes

  • missing examples when one example is with an empty array. (cb1c496)

2.1.0

2.1.0 (2025-08-20)

Features

  • adds a default validation rule for unresolved references (90b3966)

Bug Fixes

  • Improve OpenApiWalker performance (a007c03)
  • Validate schema property is not null (3326022)

2.0.1

2.0.1 (2025-08-18)

Bug Fixes

  • add missing disposable for stream (0c1ccbd)

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

The previous implementation had two issues in HandleRefreshTokenGrantAsync:

1. A duplicate revocation hotfix block re-fetched and revoked the token
   BEFORE the rotation logic, causing Rotate() to operate on an already
   revoked token. This left the token in an inconsistent state.

2. The old token was revoked before the new token was created. If the
   CreateAsync call for the new token failed (DB error, timeout), the
   user would be left without any valid refresh token.

Fix: Create the new refresh token first, then revoke the old one. This
ensures the user always has at least one valid refresh token even if the
rotation process fails partway through. Removed the redundant hotfix
block that was conflicting with the rotation logic.
Fix refresh token rotation to prevent token family corruption
- Add GitHub Actions build and test workflow
- Add bug report and feature request issue templates
- Add pull request template
- Add GitHub Sponsors funding configuration
- Improve .gitignore for better development experience
Add CI/CD pipeline and project configuration
Include a unique JWT ID (jti) claim in both user and client credentials
access tokens. This enables token revocation by blacklisting specific
token IDs, and is a prerequisite for token introspection (RFC 7662).

Each token now gets a Guid-based jti, making individual tokens
identifiable in audit logs and revocation lists.

Ref #30
The Client entity already exposes AccessTokenLifetime and RefreshTokenLifetime
fields but TokenService was ignoring them, always falling back to the global
AuthServerOptions defaults.

Changes:
- Add GetAccessTokenLifetime(Client?) / GetRefreshTokenLifetime(Client?) helpers
  that return the client-specific value when set (> 0) and the global default
  otherwise.
- Look up the client record inside HandleAuthorizationCodeGrantAsync and
  HandlePasswordGrantAsync so the per-client lifetime can be applied.
- HandleRefreshTokenGrantAsync now also looks up the client on rotation.
- HandleClientCredentialsGrantAsync already has the Client object; updated to
  use the new helpers.
- GenerateAccessToken and GenerateAndStoreRefreshTokenAsync now accept an
  explicit lifetimeSeconds parameter instead of reading _options directly.
- ExpiresIn in every TokenResponse now reflects the actual lifetime used.

Mobile apps (Flutter) can be configured with longer refresh token lifetimes
(e.g. 30+ days) while browser SPAs keep shorter defaults, all without touching
global configuration.

closes #27
Access tokens already carry a jti (JWT ID) claim. This change wires up the
revocation infrastructure that makes that claim useful:

- src/Security/RevokedTokenStore.cs: singleton in-memory store that maps
  jti values to their original expiry. Entries are self-expiring and purged
  hourly by TokenCleanupWorker.
- TokenRevocationHandler: after failing to match a refresh-token hash, now
  attempts to parse the value as a signed JWT, extracts the jti and exp, and
  adds the entry to RevokedTokenStore. Access tokens issued by this server can
  therefore be individually revoked without affecting other tokens.
- TokenIntrospectionHandler: checks RevokedTokenStore before returning
  active=true, so revoked access tokens are correctly reported as inactive.
- TokenCleanupWorker: calls RevokedTokenStore.PurgeExpired() each cycle to
  bound memory usage.
- Program.cs: registers RevokedTokenStore as a singleton.

closes #30
Brute-force and credential-stuffing attacks on the password grant endpoint
are mitigated by a new sliding-window rate limiter.

- src/Security/LoginRateLimiter.cs: tracks failed attempts per username and
  per IP address in a ConcurrentDictionary. After FailedLoginAttemptThreshold
  failures within an AccountLockoutDurationMinutes window the caller receives
  an AuthServerException(429) with a Retry-After-compatible message.
  Successful logins clear the username counter. Entries outside the window are
  pruned on each write to bound memory.
- TokenService.HandlePasswordGrantAsync: calls ThrowIfBlocked before touching
  the user store (prevents timing oracle), records RecordFailure on bad
  credentials, and RecordSuccess on authenticated login.
- TokenRequest: new IpAddress property populated by TokenController from
  HttpContext.Connection.RemoteIpAddress so the service layer can enforce
  per-IP limits without depending on IHttpContextAccessor.
- Program.cs: registers LoginRateLimiter as a singleton.

Configurable via existing AuthServerOptions:
  FailedLoginAttemptThreshold (default 5)
  AccountLockoutDurationMinutes (default 15)

closes #34
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Jul 6, 2026
@Sarmkadan Sarmkadan closed this Jul 11, 2026
@dependabot @github

dependabot Bot commented on behalf of github Jul 11, 2026

Copy link
Copy Markdown
Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/nuget/Microsoft.OpenApi-3.8.0 branch July 11, 2026 06:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

1 participant