Skip to content

Commit f438823

Browse files
docs: reorganize navigation separating SDKs from Other Technologies (CLI, MCP, OFREP) (#1285)
## Summary Restructures documentation to separate OpenFeature SDKs from other technologies (OFREP, CLI, MCP) for better organization and discoverability. ## Navigation Changes ### Before ``` - Introduction - Concepts - Technologies - SDK Compatibility Overview - Server SDKs - Client SDKs - Contributing ``` ### After ``` - Introduction - Concepts - SDKs - SDK Compatibility Overview - Server SDKs - Client SDKs - Other Technologies - OFREP - CLI - MCP - Contributing ``` ## Key Changes - **Renamed**: `docs/reference/technologies/` → `docs/reference/sdks/` - **Created**: `docs/reference/other-technologies/` with automated README fetching from: - [open-feature/cli](https://github.com/open-feature/cli) - [open-feature/protocol](https://github.com/open-feature/protocol) - [open-feature/mcp](https://github.com/open-feature/mcp) - **Fixed**: 171+ internal links across docs, blogs, and SDK files - **Updated**: `docusaurus.config.ts`, `package.json`, SDK datasets, and processing scripts ## Technical Details - Added `processOtherTechnologies` export in `scripts/process-sdk-readmes.ts` - Converts relative links to absolute GitHub URLs - Automatically fixes `/technologies/` → `/sdks/` in fetched content - Command: `yarn update:sdk-docs` now updates both SDKs and other technologies ## Note ⚠️ Currently pulling from feature branches. Update to `main` once these PRs merge: [open-feature/mcp#31](open-feature/mcp#31) [open-feature/protocol#55](open-feature/protocol#55) [open-feature/cli#172](open-feature/cli#172) --------- Signed-off-by: Jonathan Norris <jonathan@taplytics.com>
1 parent 42ab028 commit f438823

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1144
-269
lines changed

.eslintignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ dist
33
*.js
44

55
# Auto-generated disclaimer causes an eslint parsing error
6-
docs/reference/technologies/**/*.mdx
6+
docs/reference/sdks/**/*.mdx

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ yarn-error.log*
2424
.idea
2525
.wireit
2626
.eslintcache
27+
.cursor

.markdownlint-cli2.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
config:
32
default: true
43

@@ -33,6 +32,8 @@ ignores:
3332
- external-content
3433
- docs/specification
3534
# Fetched from each SDK's README.md
36-
- docs/reference/technologies/@(client|server)/**/*.mdx
35+
- docs/reference/sdks/@(client|server)/**/*.mdx
36+
# Fetched from other technology repos
37+
- docs/reference/other-technologies/*.mdx
3738

3839
fix: true

blog/2022-10-21-hardening-and-1-0-sdks.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ The release includes stable versions the following features:
2222

2323
The specification documents associated with these features have been marked as `hardening`, meaning breaking changes are no longer allowed and usage of these features are encouraged in production environments.
2424
The release of these SDKs and the stabilization of the specification represent a culmination of efforts by a dedicated group of vendors, practitioners and subject matter experts.
25-
Providers are [already available](https://openfeature.dev/docs/reference/technologies/) for major vendors and popular community projects.
25+
Providers are [already available](https://openfeature.dev/docs/reference/sdks/) for major vendors and popular community projects.
2626
It's our hope that the efforts to stabilize the OpenFeature specification and SDKs will lead to more adoption of both OpenFeature and feature flagging in general, and promote a vibrant ecosystem around this increasingly important development pattern.
2727

2828
In addition to those mentioned above, experimental features available in the 1.0 SDKs include:
@@ -33,7 +33,9 @@ In addition to those mentioned above, experimental features available in the 1.0
3333

3434
## What's next?
3535

36-
Our goal in the upcoming months will be to harden our existing experimental features. Additionally, we'll work to develop and standardize new capabilities, including: client-side feature flagging, improved cloud native tooling, and implicit transaction-scoped data propagation of contextual attributes.
36+
Our goal in the upcoming months will be to harden our existing experimental features.
37+
Additionally, we'll work to develop and standardize new capabilities, including: client-side feature flagging, improved cloud native tooling, and implicit transaction-scoped data propagation of contextual attributes.
3738
Furthermore, we're working on SDKs for additional languages, including [PHP](https://github.com/open-feature/php-sdk), [Python](https://github.com/open-feature/python-sdk), and [Ruby](https://github.com/open-feature/ruby-sdk).
3839

39-
If you're interested in contributing or learning more about OpenFeature, please join our expanding and friendly community. Visit our [GitHub](https://github.com/open-feature), join the [OpenFeature slack channel](https://cloud-native.slack.com/archives/C0344AANLA1) on the CNCF Slack instance, or hop into our [bi-weekly community meeting](https://github.com/open-feature/community#meetings-and-events).
40+
If you're interested in contributing or learning more about OpenFeature, please join our expanding and friendly community.
41+
Visit our [GitHub](https://github.com/open-feature), join the [OpenFeature slack channel](https://cloud-native.slack.com/archives/C0344AANLA1) on the CNCF Slack instance, or hop into our [bi-weekly community meeting](https://github.com/open-feature/community#meetings-and-events).

blog/2023-03-27-feature-flags-if-statements.md

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ draft: false
1111

1212
Most feature flag explainers begin by explaining that feature flags are equivalent to environment variables.
1313

14-
While that’s true (to a point), feature flags wouldn’t be as versatile or as popular as they are, if that’s all they were. Indeed, you wouldn’t need a feature flag – you could easily achieve the same thing with an environment variable.
14+
While that’s true (to a point), feature flags wouldn’t be as versatile or as popular as they are, if that’s all they were.
15+
Indeed, you wouldn’t need a feature flag – you could easily achieve the same thing with an environment variable.
1516

1617
<!--truncate-->
1718

@@ -26,47 +27,60 @@ if isPremiumMember {
2627
return v1
2728
}
2829
```
30+
2931
Now try modeling this in code:
32+
3033
- If user is premium and located in Europe = v2 (purple)
3134
- If user is premium and located in the US = v3 (red)
3235
- If user is premium and located in Australia = v4 (orange)
3336
- Everyone else gets v1 (green)
3437
35-
That’s 2 variables. Imagine how many variations a real system has. Now imagine trying to update these conditions in real time, without a redeployment.
38+
That’s 2 variables.
39+
Imagine how many variations a real system has.
40+
Now imagine trying to update these conditions in real time, without a redeployment.
3641
3742
<img src={require('@site/static/img/blog/feature-flags-if-statements/feature-flag-context.png').default} />
3843
3944
The real power of feature flags:
4045
41-
- Simple or complex: Flag rules can be as simple or as complex as you wish. This makes getting started easy with plenty of room to grow and expand.
42-
- Separation of concerns: Feature flags allow a deployment without a release. All new features are placed behind flags and those flags are disabled during deployment.
46+
- Simple or complex: Flag rules can be as simple or as complex as you wish.
47+
This makes getting started easy with plenty of room to grow and expand.
48+
- Separation of concerns: Feature flags allow a deployment without a release.
49+
All new features are placed behind flags and those flags are disabled during deployment.
4350
- Shortcut to continuous delivery: If you can deploy anything at any time with zero risk, why not do it?
4451
- Separation of responsibilities: Product managers take responsibility for feature flags, leaving DevOps teams to deal with their area of responsibility.
4552
4653
## So, are Feature Flags if Statements?
47-
No, feature flagging is so much more powerful and dynamic than environment variables or if statements. But if you’re already using if statements, you already have enough knowledge to take your environment variables and if statements to the next level with feature flags.
54+
55+
No, feature flagging is so much more powerful and dynamic than environment variables or if statements.
56+
But if you’re already using if statements, you already have enough knowledge to take your environment variables and if statements to the next level with feature flags.
4857
If you’re stuck on the environment variable + if statement metaphor, feature flags are a very flexible if statement that you can **target**, **update**, **toggle** and **gain observability over**, in **real time** without a **re-deployment**.
4958
5059
## Where Do I Start?
60+
5161
Start with the OpenFeature hands-on tutorials.
5262
5363
These tutorials are provided by Killercoda, a third-party in-browser learning platform.
5464
5565
All tutorials are free to use and the [tutorial source code is open](https://github.com/open-feature/killercoda).
5666
5767
### 1: OpenFeature Demo
68+
5869
Never encountered feature flags?
5970
This is the 30,000ft view showing the power and versatility of feature flags.
6071
[Start here](https://killercoda.com/open-feature/scenario/openfeature-demo).
6172
6273
### 2: An Open Source Feature Flag Backend
74+
6375
Decided to adopt feature flags?
6476
6577
You will need a flag "backend" evaluation engine.
6678
67-
Any open source tool or vendor can support OpenFeature and many do. Check the [technologies section](https://openfeature.dev/docs/reference/technologies/) to see what tools and vendors are supported in your language.
79+
Any open source tool or vendor can support OpenFeature and many do.
80+
Check the [technologies section](https://openfeature.dev/docs/reference/sdks/) to see what tools and vendors are supported in your language.
6881
69-
If you don't already use a flag evaluation system, flagd is a good place to start without having to code your own backend solution. Try the [flagd demo on killercoda](https://killercoda.com/open-feature/scenario/flagd-demo).
82+
If you don't already use a flag evaluation system, flagd is a good place to start without having to code your own backend solution.
83+
Try the [flagd demo on killercoda](https://killercoda.com/open-feature/scenario/flagd-demo).
7084
7185
### 3. Instrument Your Application
7286
@@ -77,8 +91,10 @@ Your application must now be modified to interact with your chosen flag evaluati
7791
The [Five minutes to feature flags](https://killercoda.com/open-feature/scenario/five-minutes-to-feature-flags) tutorial walks through how to do this.
7892
7993
### 4: Feature Flags on Kubernetes?
94+
8095
Are you Kubernetes-native and want to manage and use feature flags entirely on Kubernetes?
8196
8297
Any open source or vendor tool which offers OpenFeature compliant k8s feature flagging will work.
8398
84-
The [Operator tutorial](https://killercoda.com/open-feature/scenario/openfeature-operator-demo) shows one option, using flagd. Flagd leverages Custom Resources to manage feature flags via GitOps and make feature flags available to your pods via annotations.
99+
The [Operator tutorial](https://killercoda.com/open-feature/scenario/openfeature-operator-demo) shows one option, using flagd.
100+
Flagd leverages Custom Resources to manage feature flags via GitOps and make feature flags available to your pods via annotations.

0 commit comments

Comments
 (0)