-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsdk_metadata.sql
147 lines (130 loc) · 6.44 KB
/
sdk_metadata.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
CREATE TABLE sdk_names (
id TEXT PRIMARY KEY,
name TEXT NOT NULL
);
CREATE TABLE sdk_repos (
id TEXT,
github TEXT NOT NULL,
PRIMARY KEY (id, github)
);
CREATE TABLE sdk_languages (
id TEXT,
language TEXT NOT NULL,
PRIMARY KEY (id, language),
FOREIGN KEY (language) REFERENCES sdk_language_info(language)
);
CREATE TABLE sdk_language_info (
language TEXT PRIMARY KEY
);
CREATE TABLE sdk_types (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
FOREIGN KEY (type) REFERENCES sdk_type_info(type)
);
CREATE TABLE sdk_type_info (
type TEXT PRIMARY KEY,
description TEXT NOT NULL
);
CREATE TABLE sdk_features (
id TEXT NOT NULL,
feature TEXT NOT NULL,
introduced TEXT NOT NULL,
deprecated TEXT,
removed TEXT,
PRIMARY KEY (id, feature),
FOREIGN KEY (feature) REFERENCES sdk_feature_info(id)
);
CREATE TABLE sdk_feature_info (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
description TEXT NOT NULL
);
CREATE TABLE sdk_releases (
id TEXT NOT NULL,
major INTEGER NOT NULL,
minor INTEGER NOT NULL,
patch INTEGER NOT NULL,
date TEXT NOT NULL,
PRIMARY KEY(id, major, minor, patch)
);
CREATE TABLE sdk_popularity (
id TEXT NOT NULL,
popularity INTEGER NOT NULL,
PRIMARY KEY(id, popularity)
);
INSERT INTO sdk_popularity (id, popularity) VALUES
('react-client-sdk', 1),
('node-server', 2),
('python-server-sdk', 3),
('java-server-sdk', 4),
('dotnet-server-sdk', 5),
('js-client-sdk', 6),
('vue', 7),
('swift-client-sdk', 8),
('go-server-sdk', 9),
('android', 10),
('react-native', 11),
('ruby-server-sdk', 12),
('flutter-client-sdk', 13),
('dotnet-client-sdk', 14),
('erlang-server-sdk', 15),
('rust-server-sdk', 16),
('cpp-client-sdk', 17),
('roku', 18),
('node-client-sdk', 19),
('cpp-server-sdk', 20),
('lua-server-sdk', 21),
('haskell-server-sdk', 22),
('php-server-sdk', 23);
INSERT INTO sdk_type_info (type, description) VALUES
('client-side', 'Primarily used for user-facing application.'),
('server-side', 'Primarily used for server-side applications.'),
('edge', 'Primarily used to delivery flag payloads to edge services.'),
('relay', 'Special case for Relay Proxy.'),
('open-feature-provider', 'Used for OpenFeature providers.');
INSERT INTO sdk_feature_info (id, name, description) VALUES
('appMetadata', 'Application metadata', 'Specify application and application version information.'),
('autoEnvAttrs', 'Automatic environment attributes', 'Automatically include device and application data in each evaluated context.'),
('bigSegments', 'Big segments', 'Configure a persistent store to hold segments that are either synced from external tools, or that contain an arbitrarily large number of contexts of any one context kind.'),
('bootstrapping', 'Bootstrapping', 'Provide an initial set of flag values that are immediately available during client initialization.'),
('contexts', 'Contexts and context kinds', 'Evaluate flags based on contexts. A context is a generalized way of referring to the people, services, machines, or other resources that encounter feature flags. SDKs without this feature only support flag evaluation for users.'),
('experimentation', 'Experimentation', 'Connect a flag with one or more metrics to measure end-user behavior for different variations of a flag. Requires minimum SDK versions, but no SDK configuration.'),
('variationDetail', 'Flag evaluation reasons', 'Receive information about how a flag variation was calculated, for example, because it matched a specific targeting rule.'),
('allFlags', 'Getting all flags', 'Return the flag variations for all feature flags for a given context.'),
('hooks', 'Hooks', 'Define callbacks that are executed by the SDK at various points of interest, usually for metrics or tracing.'),
('migrations', 'Migration flags', 'Configure how to read and write data for an old and new system, determine which stage of a migration the application is in, execute the correct read and write calls for each stage.'),
('multiEnv', 'Multiple environments', 'Evaluate flags from multiple environments using a single client instance'),
('offlineMode', 'Offline mode', 'Close the SDK''s connection to LaunchDarkly. Use cached or fallback values for each flag evaluation.'),
('otel', 'OpenTelemetry', 'Add flag evaluation information to OpenTelemetry spans.'),
('privateAttrs', 'Private attributes', 'Use context attribute values for targeting, but do not send them to LaunchDarkly.'),
('fileDataSource', 'Reading flags from a file', 'Use flag values, specified in JSON or YAML files, for all flag evaluations. Useful for testing or prototyping; do not use in production.'),
('relayProxyDaemon', 'Relay Proxy in daemon mode', 'Configure the SDK to connect to a persistent store, such as the Relay Proxy''s data store.'),
('relayProxyProxy', 'Relay Proxy in proxy mode', 'Configure the SDK to connect to alternate service endpoints, such as the Relay Proxy.'),
('secureMode', 'Secure mode', 'For clent-side SDKs, require a hash, signed with the SDK key for the LaunchDarkly environment, to evaluate flag variations. For server-side or edge SDKs, generate a secure mode hash.'),
('track', 'Sending custom events', 'Record actions taken in your application as events. You can connect to these events to metrics for use in experiments.'),
('storingData', 'Storing data', 'Configure an external database as a feature store. Persist flag data across application restarts.'),
('flagChanges', 'Subscribing to flag changes', 'Use a listener pattern to subscribe to flag change notifications.'),
('testDataSource', 'Test data sources', 'Mock data of an SDK. Useful for unit tests; cannot be used in production.'),
('webProxy', 'Web proxy configuration', 'Configure the SDK to connect to LaunchDarkly through a web proxy.');
INSERT INTO sdk_language_info (language) VALUES
('Apex'),
('BrightScript'),
('JavaScript'),
('TypeScript'),
('Python'),
('Ruby'),
('C++'),
('C'),
('C#'),
('Java'),
('Kotlin'),
('Go'),
('Swift'),
('Rust'),
('PHP'),
('Haskell'),
('Erlang'),
('Elixir'),
('Lua'),
('Dart'),
('Objective-C');