Skip to content

Serve versioned meta-schemas on meta.open-rpc.org and deprecate the legacy root URL #422

Description

@ember-muse

Context

https://meta.open-rpc.org/ is served from S3 via CloudFront and currently returns the legacy meta-schema (last modified May 2024) — the old @open-rpc/meta-schema artifact with $id: https://meta.open-rpc.org/ and an openrpc enum topping out at 1.3.2.

The maintained source of truth is now this repo: spec/1.3/schema.json and spec/1.4/schema.json (published via @open-rpc/spec as ./1_3/schema.json and ./1_4/schema.json). The versioned public URLs don't exist yet — https://meta.open-rpc.org/1.3 currently returns 403.

Related: open-rpc/meta-schema#476 (plan to deprecate the old meta-schema repo).

Goal

  • Publish versioned, stable schema URLs on the existing CloudFront distribution:
    • https://meta.open-rpc.org/1.3spec/1.3/schema.json
    • https://meta.open-rpc.org/1.4spec/1.4/schema.json
  • Mark the legacy root URL (https://meta.open-rpc.org/) as deprecated in a way agents/tooling can read — e.g. a top-level $comment in the served JSON: "Deprecated: use https://meta.open-rpc.org/1.4 (or /1.3)".

Plan

Each item below can be converted into its own tracked sub-issue.

Publish versioned schemas

  • Upload spec/1.3/schema.json to the S3 bucket behind meta.open-rpc.org as 1.3 (with CloudFront invalidation)
  • Upload spec/1.4/schema.json to the S3 bucket behind meta.open-rpc.org as 1.4 (with CloudFront invalidation)
  • Verify https://meta.open-rpc.org/1.3 and https://meta.open-rpc.org/1.4 serve the correct schemas with Content-Type: application/json

Deprecate the legacy root URL

  • Add a machine-readable deprecation notice to the legacy schema served at https://meta.open-rpc.org/ — a top-level $comment field pointing agents to the versioned URLs (e.g. "Deprecated: this schema is frozen; use https://meta.open-rpc.org/1.4")
  • Decide the long-term story for the root URL (keep serving the frozen legacy schema with the $comment, vs. redirecting to the latest versioned URL)

Keep it in sync

  • Automate uploads on release (CI step syncing spec/<version>/schema.json → S3 …/<version> + invalidation), or document the manual process so new spec versions get published URLs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions