-
-
Notifications
You must be signed in to change notification settings - Fork 736
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
docs: add tables for client-side sdks #3182
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
1 Ignored Deployment
|
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
| **Category: Initialization** | | | | | | | | | ||
| Async initialization | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | | ||
| Can block until synchronized | ✅ | ✅ | ✅ | ⭕ | ⭕ | ✅ | ✅ | | ||
| Default refresh interval | 10s | 15s | 15s | 15s | 15s | 30s | 30s | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
E.g for Flutter it's 30 seconds for the refresh interval and the metrics interval. But maybe instead of syncing the table we should sync the SDKs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That we could, but it might also make sense for different SDKs to have different intervals. I'd be all for synchronizing the defaults, but I think we can do that as a separate thing.
| Default metrics interval | 60s | 60s | 60s | 60s | 60s | 60s | 30s | | ||
| **Category: Custom Headers** | | | | | | | | | ||
| static | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | ||
| function | ✅ | ✅ | ⭕ | ✅ | ✅ (4.3) | ✅ | ✅ | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which SDK supports function based custom headers? What is the use case? Dynamic header names/values that change over time?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| static | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | ||
| function | ✅ | ✅ | ⭕ | ✅ | ✅ (4.3) | ✅ | ✅ | | ||
| **Category: [Unleash Context](../reference/unleash-context)** | | | | | | | | | ||
| Static fields (`environment`, `appName`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
E.g. in flutter sdk we don't have environment field. You can add it in your custom fields but it's not built-in.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, that's interesting! (And I think it's the right way to go). I think that this can be reworded a bit so that we can get away with it.
| Custom properties | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | ||
| **Category: [Variants](../feature-toggle-variants.md)** | | | | | | | | | ||
| Basic support | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | ||
| [Custom stickiness (beta)](../stickiness.md#custom-stickiness-beta) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it make sense for the client side SDKs to be aware of this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know. That's one of the things I want to get feedback on. I think this might make more sense to have on the edge/proxy/feAPI table. I think that row can be moved.
| Basic usage metrics (yes/no) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | ||
| [Impression data](../impression-data.md) | ⭕ | ✅ | ⭕ | ⭕ | ⭕ | ⭕ | ✅ | | ||
| **Category: Bootstrap (beta)** | | | | | | | | | ||
| Bootstrap from file | ✅ | ✅ | ✅ | ⭕ | ✅ | ✅ | ✅ | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought that bootstrap is just an object. You can read this object from a file but it doesn't seem to be Unleash client responsibility to reach out to a file. I'd rather pipe the output of a file to Unleash client (Unix philosophy)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a fair assessment, but we have built that into at least a few of the server-side SDKs, which is why it's in the table. I don't know if any of the client-side clients support this at the moment (unlikely because they're generally not on systems where you have file access, right?), so we could potentially get rid of it, yea.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This PR adds an extra two tables to the SDK to describe client-side SDK capabilities
As requested in #3060.
What
Why
We've had the server-side overview for a good while now, but no equivalent for the client-side SDKs. This PR is an attempt to change that.
The client-side capabilites have been split into two tables because client-side capabilites depend on two variables: the SDK and what it connects to. As such, I have created a table for each.