open-feature / flagd-schemas Goto Github PK
View Code? Open in Web Editor NEWSchemas and spec files pertaining to flagd
Home Page: https://buf.build/open-feature/flagd
License: Apache License 2.0
Schemas and spec files pertaining to flagd
Home Page: https://buf.build/open-feature/flagd
License: Apache License 2.0
With the new release of better named protos here, we should update the buf.md file.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
.github/workflows/pr-checks.yml
bufbuild/buf-setup-action v1
actions/checkout v3
bufbuild/buf-lint-action v1
bufbuild/buf-setup-action v1
actions/checkout v3
bufbuild/buf-setup-action v1
actions/checkout v3
bufbuild/buf-breaking-action v1
actions/checkout v3
actions/setup-node v4.0.1
actions/setup-go v4
.github/workflows/pr-lint.yml
amannn/action-semantic-pull-request v5
.github/workflows/release-please.yaml
google-github-actions/release-please-action v3
actions/checkout v3
bufbuild/buf-setup-action v1
actions/checkout v3
JasonEtco/create-an-issue v2
go.mod
go 1.18
github.com/xeipuuv/gojsonschema v1.2.0
package.json
ajv-cli ^5.0.0
If the discussion here is implemented, I think we want to change ResolveObjectResponse
from:
message ResolveObjectResponse {
google.protobuf.Struct value = 1;
string reason = 2;
string variant = 3;
}
to:
message ResolveObjectResponse {
google.protobuf.Value value = 1;
string reason = 2;
string variant = 3;
}
This allows us to return arrays (as well as other protobuf values) as the top level object in the object resolver.
Is there any objections or challenges to doing this? I've POC'd it in the flagd-java provider. Would it be reasonable in flagd?
Currently, we define a JSON-schema definition for flagd. This schema is adequate, but doesn't support:
defaultVariant
is actually one of the variant keys (might not be possible)We should implement a JSON schema that includes as many of the above validations as possible. Once we have this, we could host it at flagd.dev, and when users edit a JSON file in vscode or other editors, they could get built-in validation if the schema is referenced in their doc ("$schema": "https://flagd.dev/flagdefition"
).
Remove the OpenAPI folder and associated workflows. We're now using Buf and gRPC.
In the schema we are currently only providing the java and go package name options, these options will be required for any languages we expect to produce a provider for.
This would also be a good opportunity to review the existing package names.
Update the buf gen configs to generate client stubs for the grpc apis.
Currently buf.gen.yaml is configured to generate grpc-gateway and go-grpc code, however, stubs will need to be generated in all languages we intend to produce a client for.
(Java, Typescript, Go etc ...)
This is a possible solution to the problem here.
Instead of throwing for DISABLED flags, (which according to the OpenFeature spec is not an error) we need a way to comunicate that the caller should use their code-provided default.
Consider an additional field to the Resolution responses, which adds additional information, indicating if the default should be used.
Schema Store is a collection of JSON schemas that are automatically loaded in supported IDEs. This would make editing flagD configurations easier because it would automatically perform basic validation and autocomplete functionality.
Split the ResolveNumber rpc into 2 separate rpcs.
ResolveInt
handling int64
ResolveFloat
handling float64
The current flagd flag configuration schema lacks some reasonable defaults that can easily be derived assumed:
Things that need to be done to accomplish this:
In order to support synchronous evaluation (something particularly important for client use cases), we need a bulk evaluation rpc. The endpoint would accept a context
and evaluate all configured flags with that context
. The returned result should be a map of flagKey: resolutionDetails
.
Relates to: open-feature/flagd#234
When we renamed https://github.com/open-feature/schemas to https://github.com/open-feature/flagd-schemas, we never changed the go module name, and the package isn't being indexed properly at https://pkg.go.dev/github.com/open-feature/flagd-schemas, so we're forced to rely on a specific sha instead of a proper release here.
Originally posted by @toddbaert in open-feature/flagd#1146 (comment)
tasks:
Buf can be used to validate PRs. It should run:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.