Skip to content

feat: Server provider guidelines #42

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 12, 2025
Merged

feat: Server provider guidelines #42

merged 2 commits into from
May 12, 2025

Conversation

thomaspoignant
Copy link
Member

@thomaspoignant thomaspoignant commented May 8, 2025

This PR

This PR contains the guidelines on how to create a server provider for OFREP.

Closes #41

@thomaspoignant thomaspoignant requested a review from a team as a code owner May 8, 2025 11:25
@thomaspoignant thomaspoignant changed the title feat: Server provider guideline feat: Server provider guidelines May 8, 2025
Copy link
Member

@askpt askpt left a comment

Choose a reason for hiding this comment

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

Small comment, otherwise looks good.

Copy link
Member

@lukas-reining lukas-reining left a comment

Choose a reason for hiding this comment

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

This is great, the feedback from the client provider applies here too @thomaspoignant :)

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
@thomaspoignant
Copy link
Member Author

@lukas-reining I have adapted the same changes to the server provider guideline.

Copy link
Member

@beeme1mr beeme1mr left a comment

Choose a reason for hiding this comment

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

We may want to briefly mention http timeout behavior. In the web provider I believe we default to 10 seconds and the provider is put in an error state.

It may also be worth briefly describing the expected behavior if the response is invalid. I would expect a provider error if it occurs during initialization. If the provider receives an unexpected response after initialization I would expect the provider to use the previously cached value and possibly emit an error event.

@thomaspoignant
Copy link
Member Author

We may want to briefly mention http timeout behavior. In the web provider I believe we default to 10 seconds and the provider is put in an error state.

Yes mentioning the timeout is a good idea I will add it.

It may also be worth briefly describing the expected behavior if the response is invalid. I would expect a provider error if it occurs during initialization. If the provider receives an unexpected response after initialization I would expect the provider to use the previously cached value and possibly emit an error event.

There is no caching in the server provider so I am not sure what you mean here?
This is something we can add but I am not sure if it is in scope for the 1.0.

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
@thomaspoignant thomaspoignant merged commit 764a8dc into main May 12, 2025
4 checks passed
@thomaspoignant thomaspoignant deleted the server-guideline branch May 12, 2025 07:25
thomaspoignant added a commit that referenced this pull request May 12, 2025
* feat: Server provider guideline

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* adding timeout

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

---------

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
thomaspoignant added a commit that referenced this pull request May 16, 2025
* feat: Server provider guideline

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* adding timeout

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

---------

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
thomaspoignant added a commit that referenced this pull request May 16, 2025
* feat: Client provider spec

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update provider/specs/client.md

Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* update with review comments

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Move to guideline folder

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Replace specification

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* add OpenAPI spec validator based on redocly cli (#15)

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* chore(deps): update actions/checkout action to v4 (#16)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update guideline/static-context-provider.md

Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update guideline/static-context-provider.md

Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update guideline/static-context-provider.md

Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* update guidelines after removing configuration endpoint

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* adding change context

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* feat: Allow any reason (#20)

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* feat!: change minPollingInterval field name to mention millisecond (#25)

* feat!: change minPollingInterval field name to mention millisecond

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* change name to ms

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

---------

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* feat: Group API in core and extensions (#23)

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* feat!: Reverse the logic for supportedTypes (#24)

* feat!: Reverse the logic for supportedTypes

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* fix

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

---------

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* doc: adding providers link (#26)

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* make flags property mandatory for bulk evaluation success response (#27)

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* feat: Typo in header name (#28)

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* add optional targeting key property (#30)

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* fix: use correct header name for 429 bulk response (#32)

Signed-off-by: Roman Dmytrenko <rdmytrenko@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* feat: Specify caching for OFREP in server providers (#17)

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* feat: add flag set metadata for bulk response and failures (#34)

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Fixups: Add operationIds, remove invalid property, fix tag casing (#35)

Signed-off-by: Honza Dvorsky <honza@apple.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* ci: switch OpenAPI validators (#36)

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* fix: address style issues

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update static-context-provider.md

Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update static-context-provider.md

Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* adding timeout

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* feat: Server provider guidelines (#42)

* feat: Server provider guideline

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* adding timeout

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

---------

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* feat: Group API in core and extensions (#23)

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update guideline/static-context-provider.md

Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Update openapi.yaml

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

---------

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gmail.com>
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Roman Dmytrenko <rdmytrenko@gmail.com>
Signed-off-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Honza Dvorsky <honza@apple.com>
Co-authored-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Michel TURPIN <michel.turpin1@gmail.com>
Co-authored-by: Roman Dmytrenko <rdmytrenko@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Honza Dvorsky <honza@apple.com>
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.

Write server provider guidelines
4 participants