Skip to content

Support upgrade OpenAPI 3.0 schema objects (Enterprise) - #1311

Merged
jviotti merged 3 commits into
mainfrom
openapi-3-0-upgrade
Oct 29, 2026
Merged

jviotti merged 3 commits into
mainfrom
openapi-3-0-upgrade

Conversation

@jviotti

@jviotti jviotti commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

View guided diff

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@augmentcode

augmentcode Bot commented Oct 28, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary
Adds Enterprise dialect upgrades for OpenAPI 3.0 Schema Objects.
Conversion support
Recognizes both published OpenAPI 3.0 dialect URIs.
Treats OpenAPI 3.0 as a source-only dialect alongside Draft 3.
Offers all seven targets, from Draft 4 through OpenAPI 3.2.
Passes resolver-provided dialects to Blaze for sources without $schema.
Preserves the schema identifier when formatting converted output.
Coverage and documentation
Adds conversion-ladder checks and HTTP expectations for every target.
Exercises OpenAPI 3.0 conversion through MCP resources/read.
Updates CLI artifact snapshots and API/commercial documentation.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

try {
sourcemeta::blaze::convert(schema, sourcemeta::core::schema_walker,
resolver, convert_target(target), "",
resolver, convert_target(target), dialect,

@augmentcode augmentcode Bot Oct 28, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At enterprise/index/enterprise_index_conversion.cc:74, could you check mixed-dialect bundles, since passing the OpenAPI 3.0 dialect makes Blaze's from_openapi_3_0 keyword-preservation exceptions apply to every resource? An OpenAPI 3.0 root referencing a valid 2020-12 schema containing "discriminator": {} consequently produces an invalid ?as=openapi3.1 result: that member survives as an OpenAPI keyword despite lacking the required propertyName.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (community)

Details
Benchmark suite Current: 862e2a2 Previous: 5da17f6 Ratio
Add one schema (0 existing) 182 ms 291 ms 0.63
Add one schema (100 existing) 49 ms 51 ms 0.96
Add one schema (1000 existing) 96 ms 90 ms 1.07
Add one schema (10000 existing) 743 ms 656 ms 1.13
Update one schema (1 existing) 25 ms 40 ms 0.63
Update one schema (101 existing) 60 ms 43 ms 1.40
Update one schema (1001 existing) 74 ms 96 ms 0.77
Update one schema (10001 existing) 767 ms 681 ms 1.13
Cached rebuild (1 existing) 10 ms 13 ms 0.77
Cached rebuild (101 existing) 14 ms 17 ms 0.82
Cached rebuild (1001 existing) 41 ms 42 ms 0.98
Cached rebuild (10001 existing) 256 ms 291 ms 0.88
Index 100 schemas 288 ms 411 ms 0.70
Index 1000 schemas 967 ms 1272 ms 0.76
Index 10000 schemas 9726 ms 12117 ms 0.80
Index 10000 schemas (custom meta-schema) 11623 ms 15696 ms 0.74
Index 10000 schemas ($ref fan-out) 11033 ms 14660 ms 0.75
test/e2e/html: Schema Fetch (p50) 216 us 397 us 0.54
test/e2e/html: Schema Fetch (p99) 327 us 511 us 0.64

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (enterprise)

Details
Benchmark suite Current: 862e2a2 Previous: 5da17f6 Ratio
Add one schema (0 existing) 602 ms 519 ms 1.16
Add one schema (100 existing) 121 ms 100 ms 1.21
Add one schema (1000 existing) 170 ms 165 ms 1.03
Add one schema (10000 existing) 1098 ms 895 ms 1.23
Update one schema (1 existing) 111 ms 97 ms 1.14
Update one schema (101 existing) 123 ms 104 ms 1.18
Update one schema (1001 existing) 176 ms 171 ms 1.03
Update one schema (10001 existing) 982 ms 956 ms 1.03
Cached rebuild (1 existing) 14 ms 13 ms 1.08
Cached rebuild (101 existing) 18 ms 14 ms 1.29
Cached rebuild (1001 existing) 41 ms 44 ms 0.93
Cached rebuild (10001 existing) 363 ms 298 ms 1.22
Index 100 schemas 848 ms 735 ms 1.15
Index 1000 schemas 1963 ms 1804 ms 1.09
Index 10000 schemas 16287 ms 15387 ms 1.06
Index 10000 schemas (custom meta-schema) 15981 ms 15483 ms 1.03
Index 10000 schemas ($ref fan-out) 21774 ms 18898 ms 1.15
enterprise/e2e/auth: Schema Anonymous (p50) 396 us 287 us 1.38
enterprise/e2e/auth: Schema Anonymous (p99) 517 us 361 us 1.43
enterprise/e2e/auth: Schema API Key Identity (p50) 400 us 291 us 1.37
enterprise/e2e/auth: Schema API Key Identity (p99) 512 us 362 us 1.41
enterprise/e2e/auth: Schema API Key SHA256 (p50) 408 us 296 us 1.38
enterprise/e2e/auth: Schema API Key SHA256 (p99) 532 us 374 us 1.42
enterprise/e2e/auth: Schema JWT (p50) 533 us 410 us 1.30
enterprise/e2e/auth: Schema JWT (p99) 685 us 539 us 1.27
test/e2e/html: Schema Fetch (p50) 404 us 296 us 1.36
test/e2e/html: Schema Fetch (p99) 489 us 367 us 1.33

This comment was automatically generated by workflow using github-action-benchmark.

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti
jviotti merged commit 211d3e5 into main Oct 29, 2026
6 checks passed
@jviotti
jviotti deleted the openapi-3-0-upgrade branch October 29, 2026 01:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant