Skip to content

Feature-versioning via flagd schema #1312

@toddbaert

Description

@toddbaert

Now that we have multiple components implementing flagd's JSON evaluator, we need a way to track and communicate the compliance of various implementations. Doing this by versioning the artifacts themselves isn't practical, since implementations will have their own fixes and breaking changes. I propose we rigorously version the flagd-schema, and then each implementation can note what version they support, and log warnings or throw (we should decide on these specifics). We already version the schema release itself, so some of this work is already done.

Work required for this:

  • add a full version path to https://flagd.dev/schema/v0/flags.json (ie: https://flagd.dev/schema/v1.2.3/flags.json)
    • enhance the Makefile

      flagd/Makefile

      Line 128 in 34756fe

      update-public-schema: pull-schemas-submodule
      to pull the latest version and create the corresponding folder to serve it from
  • add a version to the flagd-schema itself, in its $id property, currently it's "$id": "https://flagd.dev/schema/v0/flags.json", this should be made something like "$id": "https://flagd.dev/schema/v1.2.3/flags.json""
    • this should be automated with release please
  • update flagd specification to mention this versioning
  • update all the providers to leverage this and denote their support
    • Java
    • .NET
    • JS
    • Python

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