@breadstone/archipel-mcp 0.0.30 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/guides/feature-flags.md +358 -0
- package/data/guides/index.md +1 -0
- package/data/packages/platform-feature-flags/api/Class.AzureFeatureFlagReader.md +230 -0
- package/data/packages/platform-feature-flags/api/Class.AzureFeatureFlagWriter.md +235 -0
- package/data/packages/platform-feature-flags/api/Class.FeatureFlagError.md +65 -0
- package/data/packages/platform-feature-flags/api/Class.FeatureFlagGuard.md +68 -0
- package/data/packages/platform-feature-flags/api/Class.FeatureFlagModule.md +49 -0
- package/data/packages/platform-feature-flags/api/Class.FeatureFlagReaderPort.md +150 -0
- package/data/packages/platform-feature-flags/api/Class.FeatureFlagWriterPort.md +180 -0
- package/data/packages/platform-feature-flags/api/Class.VercelFeatureFlagReader.md +223 -0
- package/data/packages/platform-feature-flags/api/Class.VercelFeatureFlagWriter.md +240 -0
- package/data/packages/platform-feature-flags/api/Function.FeatureFlag.md +25 -0
- package/data/packages/platform-feature-flags/api/Interface.IFeatureFlagContext.md +46 -0
- package/data/packages/platform-feature-flags/api/Interface.IFeatureFlagDefinition.md +70 -0
- package/data/packages/platform-feature-flags/api/Interface.IFeatureFlagEvaluation.md +46 -0
- package/data/packages/platform-feature-flags/api/Interface.IFeatureFlagModuleOptions.md +61 -0
- package/data/packages/platform-feature-flags/api/Variable.AZURE_APPCONFIG_CONNECTION_STRING.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.AZURE_APPCONFIG_ENDPOINT.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.AZURE_FEATURE_FLAG_CONFIG_ENTRIES.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.AZURE_FEATURE_FLAG_KEY_FILTER.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.AZURE_FEATURE_FLAG_REFRESH_INTERVAL.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.FEATURE_FLAG_KEY_METADATA.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.PLATFORM_FEATURE_FLAGS_CONFIG_ENTRIES.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.VERCEL_API_TOKEN.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.VERCEL_EDGE_CONFIG.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.VERCEL_EDGE_CONFIG_ID.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.VERCEL_EDGE_CONFIG_TOKEN.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.VERCEL_FEATURE_FLAG_CONFIG_ENTRIES.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.VERCEL_FEATURE_FLAG_PREFIX.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.VERCEL_FEATURE_FLAG_WRITER_CONFIG_ENTRIES.md +14 -0
- package/data/packages/platform-feature-flags/api/Variable.VERCEL_TEAM_ID.md +14 -0
- package/data/packages/platform-feature-flags/api/index.md +55 -0
- package/data/packages/platform-openapi/api/Class.SwaggerFeatureDiscovery.md +54 -3
- package/data/packages/platform-openapi/api/Class.SwaggerMultiDocumentService.md +7 -5
- package/data/packages/platform-openapi/api/Class.SwaggerTheme.md +24 -7
- package/data/packages/platform-openapi/api/Function.SwaggerFeature.md +18 -6
- package/data/packages/platform-openapi/api/Function.getRegisteredSwaggerFeatures.md +9 -2
- package/data/packages/platform-openapi/api/Function.getSwaggerFeatureMetadata.md +8 -5
- package/data/packages/platform-openapi/api/Interface.ISwaggerFeatureMetadata.md +33 -7
- package/data/packages/platform-openapi/api/Interface.ISwaggerThemeConfig.md +59 -0
- package/data/packages/platform-openapi/api/Variable.SWAGGER_FEATURE_METADATA_KEY.md +4 -1
- package/data/packages/platform-openapi/api/index.md +6 -5
- package/package.json +1 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Abstract Class: FeatureFlagWriterPort'
|
|
3
|
+
generated: true
|
|
4
|
+
editUrl: false
|
|
5
|
+
---
|
|
6
|
+
# Abstract Class: FeatureFlagWriterPort
|
|
7
|
+
|
|
8
|
+
Defined in: contracts/FeatureFlagWriterPort.ts:19
|
|
9
|
+
|
|
10
|
+
Abstract port for feature flag writer operations (CRUD).
|
|
11
|
+
Each provider (Azure App Configuration, Vercel Edge Config) must implement this contract
|
|
12
|
+
so that the admin UI backend can manage flags without being coupled to a specific provider.
|
|
13
|
+
|
|
14
|
+
## Remarks
|
|
15
|
+
|
|
16
|
+
This port is intentionally separated from [FeatureFlagReaderPort](Class.FeatureFlagReaderPort) because
|
|
17
|
+
the read path (consumed by application code) and the write path (consumed by admin tooling)
|
|
18
|
+
have different deployment contexts, security requirements, and SDK dependencies.
|
|
19
|
+
|
|
20
|
+
## Extended by
|
|
21
|
+
|
|
22
|
+
- [`AzureFeatureFlagWriter`](Class.AzureFeatureFlagWriter)
|
|
23
|
+
- [`VercelFeatureFlagWriter`](Class.VercelFeatureFlagWriter)
|
|
24
|
+
|
|
25
|
+
## Constructors
|
|
26
|
+
|
|
27
|
+
### Constructor
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
new FeatureFlagWriterPort(): FeatureFlagWriterPort;
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### Returns
|
|
34
|
+
|
|
35
|
+
`FeatureFlagWriterPort`
|
|
36
|
+
|
|
37
|
+
## Methods
|
|
38
|
+
|
|
39
|
+
### createFlag()
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
abstract createFlag(definition): Promise<void>;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Defined in: contracts/FeatureFlagWriterPort.ts:46
|
|
46
|
+
|
|
47
|
+
Creates a new feature flag.
|
|
48
|
+
|
|
49
|
+
#### Parameters
|
|
50
|
+
|
|
51
|
+
| Parameter | Type | Description |
|
|
52
|
+
| ------ | ------ | ------ |
|
|
53
|
+
| `definition` | [`IFeatureFlagDefinition`](Interface.IFeatureFlagDefinition) | The flag definition to create. |
|
|
54
|
+
|
|
55
|
+
#### Returns
|
|
56
|
+
|
|
57
|
+
`Promise`\<`void`\>
|
|
58
|
+
|
|
59
|
+
#### Throws
|
|
60
|
+
|
|
61
|
+
If the flag already exists or creation fails.
|
|
62
|
+
|
|
63
|
+
***
|
|
64
|
+
|
|
65
|
+
### deleteFlag()
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
abstract deleteFlag(key): Promise<void>;
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Defined in: contracts/FeatureFlagWriterPort.ts:66
|
|
72
|
+
|
|
73
|
+
Deletes a feature flag.
|
|
74
|
+
|
|
75
|
+
#### Parameters
|
|
76
|
+
|
|
77
|
+
| Parameter | Type | Description |
|
|
78
|
+
| ------ | ------ | ------ |
|
|
79
|
+
| `key` | `string` | The unique key of the flag to delete. |
|
|
80
|
+
|
|
81
|
+
#### Returns
|
|
82
|
+
|
|
83
|
+
`Promise`\<`void`\>
|
|
84
|
+
|
|
85
|
+
#### Throws
|
|
86
|
+
|
|
87
|
+
If the deletion fails.
|
|
88
|
+
|
|
89
|
+
***
|
|
90
|
+
|
|
91
|
+
### getFlag()
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
abstract getFlag(key): Promise<
|
|
95
|
+
| IFeatureFlagDefinition
|
|
96
|
+
| undefined>;
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Defined in: contracts/FeatureFlagWriterPort.ts:29
|
|
100
|
+
|
|
101
|
+
Returns a single feature flag definition by key.
|
|
102
|
+
|
|
103
|
+
#### Parameters
|
|
104
|
+
|
|
105
|
+
| Parameter | Type | Description |
|
|
106
|
+
| ------ | ------ | ------ |
|
|
107
|
+
| `key` | `string` | The unique key identifying the feature flag. |
|
|
108
|
+
|
|
109
|
+
#### Returns
|
|
110
|
+
|
|
111
|
+
`Promise`\<
|
|
112
|
+
\| [`IFeatureFlagDefinition`](Interface.IFeatureFlagDefinition)
|
|
113
|
+
\| `undefined`\>
|
|
114
|
+
|
|
115
|
+
The flag definition, or `undefined` if not found.
|
|
116
|
+
|
|
117
|
+
***
|
|
118
|
+
|
|
119
|
+
### listFlags()
|
|
120
|
+
|
|
121
|
+
```ts
|
|
122
|
+
abstract listFlags(): Promise<readonly IFeatureFlagDefinition[]>;
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Defined in: contracts/FeatureFlagWriterPort.ts:37
|
|
126
|
+
|
|
127
|
+
Returns all feature flag definitions managed by the provider.
|
|
128
|
+
|
|
129
|
+
#### Returns
|
|
130
|
+
|
|
131
|
+
`Promise`\<readonly [`IFeatureFlagDefinition`](Interface.IFeatureFlagDefinition)[]\>
|
|
132
|
+
|
|
133
|
+
Array of flag definitions.
|
|
134
|
+
|
|
135
|
+
***
|
|
136
|
+
|
|
137
|
+
### ping()
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
ping(): Promise<boolean>;
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Defined in: contracts/FeatureFlagWriterPort.ts:75
|
|
144
|
+
|
|
145
|
+
Lightweight connectivity check for the writer provider.
|
|
146
|
+
Defaults to `true` if not overridden.
|
|
147
|
+
|
|
148
|
+
#### Returns
|
|
149
|
+
|
|
150
|
+
`Promise`\<`boolean`\>
|
|
151
|
+
|
|
152
|
+
`true` if the provider is reachable.
|
|
153
|
+
|
|
154
|
+
***
|
|
155
|
+
|
|
156
|
+
### updateFlag()
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
abstract updateFlag(key, updates): Promise<void>;
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Defined in: contracts/FeatureFlagWriterPort.ts:57
|
|
163
|
+
|
|
164
|
+
Updates an existing feature flag.
|
|
165
|
+
Only the fields present in the partial definition are updated.
|
|
166
|
+
|
|
167
|
+
#### Parameters
|
|
168
|
+
|
|
169
|
+
| Parameter | Type | Description |
|
|
170
|
+
| ------ | ------ | ------ |
|
|
171
|
+
| `key` | `string` | The unique key of the flag to update. |
|
|
172
|
+
| `updates` | `Partial`\<`Omit`\<[`IFeatureFlagDefinition`](Interface.IFeatureFlagDefinition), `"key"`\>\> | Partial definition with the fields to update. |
|
|
173
|
+
|
|
174
|
+
#### Returns
|
|
175
|
+
|
|
176
|
+
`Promise`\<`void`\>
|
|
177
|
+
|
|
178
|
+
#### Throws
|
|
179
|
+
|
|
180
|
+
If the flag does not exist or the update fails.
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Class: VercelFeatureFlagReader'
|
|
3
|
+
generated: true
|
|
4
|
+
editUrl: false
|
|
5
|
+
---
|
|
6
|
+
# Class: VercelFeatureFlagReader
|
|
7
|
+
|
|
8
|
+
Defined in: vercel/VercelFeatureFlagReader.ts:41
|
|
9
|
+
|
|
10
|
+
Vercel Edge Config implementation of the [FeatureFlagReaderPort](Class.FeatureFlagReaderPort).
|
|
11
|
+
Uses `@vercel/edge-config` for reading feature flag state from a Vercel Edge Config store.
|
|
12
|
+
|
|
13
|
+
Feature flags are expected to be stored as a single object in Edge Config
|
|
14
|
+
under the configured prefix key (default: `featureFlags`). The object maps
|
|
15
|
+
flag keys to their values (boolean for simple on/off, or any value for variants).
|
|
16
|
+
|
|
17
|
+
## Example
|
|
18
|
+
|
|
19
|
+
Edge Config structure:
|
|
20
|
+
```json
|
|
21
|
+
{
|
|
22
|
+
"featureFlags": {
|
|
23
|
+
"new-checkout-flow": true,
|
|
24
|
+
"pricing-tier": "enterprise",
|
|
25
|
+
"max-upload-size": 100
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Extends
|
|
31
|
+
|
|
32
|
+
- [`FeatureFlagReaderPort`](Class.FeatureFlagReaderPort)
|
|
33
|
+
|
|
34
|
+
## Implements
|
|
35
|
+
|
|
36
|
+
- `OnModuleInit`
|
|
37
|
+
|
|
38
|
+
## Constructors
|
|
39
|
+
|
|
40
|
+
### Constructor
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
new VercelFeatureFlagReader(configService): VercelFeatureFlagReader;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Defined in: vercel/VercelFeatureFlagReader.ts:53
|
|
47
|
+
|
|
48
|
+
#### Parameters
|
|
49
|
+
|
|
50
|
+
| Parameter | Type |
|
|
51
|
+
| ------ | ------ |
|
|
52
|
+
| `configService` | `ConfigService` |
|
|
53
|
+
|
|
54
|
+
#### Returns
|
|
55
|
+
|
|
56
|
+
`VercelFeatureFlagReader`
|
|
57
|
+
|
|
58
|
+
#### Overrides
|
|
59
|
+
|
|
60
|
+
[`FeatureFlagReaderPort`](Class.FeatureFlagReaderPort).[`constructor`](Class.FeatureFlagReaderPort#constructor)
|
|
61
|
+
|
|
62
|
+
## Methods
|
|
63
|
+
|
|
64
|
+
### getAllFlags()
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
getAllFlags(_context?): Promise<readonly IFeatureFlagEvaluation[]>;
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Defined in: vercel/VercelFeatureFlagReader.ts:130
|
|
71
|
+
|
|
72
|
+
Returns all known feature flags with their current evaluation.
|
|
73
|
+
|
|
74
|
+
#### Parameters
|
|
75
|
+
|
|
76
|
+
| Parameter | Type | Description |
|
|
77
|
+
| ------ | ------ | ------ |
|
|
78
|
+
| `_context?` | [`IFeatureFlagContext`](Interface.IFeatureFlagContext) | Optional evaluation context for targeting and segmentation. |
|
|
79
|
+
|
|
80
|
+
#### Returns
|
|
81
|
+
|
|
82
|
+
`Promise`\<readonly [`IFeatureFlagEvaluation`](Interface.IFeatureFlagEvaluation)[]\>
|
|
83
|
+
|
|
84
|
+
Array of evaluated feature flags.
|
|
85
|
+
|
|
86
|
+
#### Overrides
|
|
87
|
+
|
|
88
|
+
[`FeatureFlagReaderPort`](Class.FeatureFlagReaderPort).[`getAllFlags`](Class.FeatureFlagReaderPort#getallflags)
|
|
89
|
+
|
|
90
|
+
***
|
|
91
|
+
|
|
92
|
+
### getVariant()
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
getVariant<T>(
|
|
96
|
+
key,
|
|
97
|
+
defaultValue,
|
|
98
|
+
_context?): Promise<T>;
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Defined in: vercel/VercelFeatureFlagReader.ts:109
|
|
102
|
+
|
|
103
|
+
Returns the variant value of a feature flag for multivariate flags and A/B testing.
|
|
104
|
+
|
|
105
|
+
#### Type Parameters
|
|
106
|
+
|
|
107
|
+
| Type Parameter | Default type |
|
|
108
|
+
| ------ | ------ |
|
|
109
|
+
| `T` | `unknown` |
|
|
110
|
+
|
|
111
|
+
#### Parameters
|
|
112
|
+
|
|
113
|
+
| Parameter | Type | Description |
|
|
114
|
+
| ------ | ------ | ------ |
|
|
115
|
+
| `key` | `string` | The unique key identifying the feature flag. |
|
|
116
|
+
| `defaultValue` | `T` | The default value to return if the flag is not found. |
|
|
117
|
+
| `_context?` | [`IFeatureFlagContext`](Interface.IFeatureFlagContext) | Optional evaluation context for targeting and segmentation. |
|
|
118
|
+
|
|
119
|
+
#### Returns
|
|
120
|
+
|
|
121
|
+
`Promise`\<`T`\>
|
|
122
|
+
|
|
123
|
+
The variant value of the feature flag.
|
|
124
|
+
|
|
125
|
+
#### Overrides
|
|
126
|
+
|
|
127
|
+
[`FeatureFlagReaderPort`](Class.FeatureFlagReaderPort).[`getVariant`](Class.FeatureFlagReaderPort#getvariant)
|
|
128
|
+
|
|
129
|
+
***
|
|
130
|
+
|
|
131
|
+
### isEnabled()
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
isEnabled(key, _context?): Promise<boolean>;
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Defined in: vercel/VercelFeatureFlagReader.ts:88
|
|
138
|
+
|
|
139
|
+
Evaluates whether a feature flag is enabled.
|
|
140
|
+
|
|
141
|
+
#### Parameters
|
|
142
|
+
|
|
143
|
+
| Parameter | Type | Description |
|
|
144
|
+
| ------ | ------ | ------ |
|
|
145
|
+
| `key` | `string` | The unique key identifying the feature flag. |
|
|
146
|
+
| `_context?` | [`IFeatureFlagContext`](Interface.IFeatureFlagContext) | Optional evaluation context for targeting and segmentation. |
|
|
147
|
+
|
|
148
|
+
#### Returns
|
|
149
|
+
|
|
150
|
+
`Promise`\<`boolean`\>
|
|
151
|
+
|
|
152
|
+
`true` if the feature flag is enabled.
|
|
153
|
+
|
|
154
|
+
#### Overrides
|
|
155
|
+
|
|
156
|
+
[`FeatureFlagReaderPort`](Class.FeatureFlagReaderPort).[`isEnabled`](Class.FeatureFlagReaderPort#isenabled)
|
|
157
|
+
|
|
158
|
+
***
|
|
159
|
+
|
|
160
|
+
### onModuleInit()
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
onModuleInit(): Promise<void>;
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Defined in: vercel/VercelFeatureFlagReader.ts:67
|
|
167
|
+
|
|
168
|
+
Initializes the Vercel Edge Config client.
|
|
169
|
+
|
|
170
|
+
#### Returns
|
|
171
|
+
|
|
172
|
+
`Promise`\<`void`\>
|
|
173
|
+
|
|
174
|
+
#### Implementation of
|
|
175
|
+
|
|
176
|
+
```ts
|
|
177
|
+
OnModuleInit.onModuleInit
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
***
|
|
181
|
+
|
|
182
|
+
### ping()
|
|
183
|
+
|
|
184
|
+
```ts
|
|
185
|
+
ping(): Promise<boolean>;
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Defined in: vercel/VercelFeatureFlagReader.ts:160
|
|
189
|
+
|
|
190
|
+
Lightweight connectivity check for the feature flag provider.
|
|
191
|
+
Override in adapters to perform a real API call.
|
|
192
|
+
Defaults to `true` if not overridden.
|
|
193
|
+
|
|
194
|
+
#### Returns
|
|
195
|
+
|
|
196
|
+
`Promise`\<`boolean`\>
|
|
197
|
+
|
|
198
|
+
`true` if the provider is reachable.
|
|
199
|
+
|
|
200
|
+
#### Overrides
|
|
201
|
+
|
|
202
|
+
[`FeatureFlagReaderPort`](Class.FeatureFlagReaderPort).[`ping`](Class.FeatureFlagReaderPort#ping)
|
|
203
|
+
|
|
204
|
+
***
|
|
205
|
+
|
|
206
|
+
### refresh()
|
|
207
|
+
|
|
208
|
+
```ts
|
|
209
|
+
refresh(): Promise<void>;
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Defined in: vercel/VercelFeatureFlagReader.ts:154
|
|
213
|
+
|
|
214
|
+
Refreshes the flag state from the remote provider.
|
|
215
|
+
Implementations should reload configuration from the upstream source.
|
|
216
|
+
|
|
217
|
+
#### Returns
|
|
218
|
+
|
|
219
|
+
`Promise`\<`void`\>
|
|
220
|
+
|
|
221
|
+
#### Overrides
|
|
222
|
+
|
|
223
|
+
[`FeatureFlagReaderPort`](Class.FeatureFlagReaderPort).[`refresh`](Class.FeatureFlagReaderPort#refresh)
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Class: VercelFeatureFlagWriter'
|
|
3
|
+
generated: true
|
|
4
|
+
editUrl: false
|
|
5
|
+
---
|
|
6
|
+
# Class: VercelFeatureFlagWriter
|
|
7
|
+
|
|
8
|
+
Defined in: vercel/VercelFeatureFlagWriter.ts:33
|
|
9
|
+
|
|
10
|
+
Vercel Edge Config implementation of the [FeatureFlagWriterPort](Class.FeatureFlagWriterPort).
|
|
11
|
+
Uses the Vercel REST API to manage feature flags stored in a Vercel Edge Config store.
|
|
12
|
+
|
|
13
|
+
## Remarks
|
|
14
|
+
|
|
15
|
+
The Vercel admin client stores feature flags as a single object under the configured
|
|
16
|
+
prefix key (default: `featureFlags`). Each flag key maps to a [IFeatureFlagDefinition](Interface.IFeatureFlagDefinition)
|
|
17
|
+
serialized as JSON.
|
|
18
|
+
|
|
19
|
+
## Extends
|
|
20
|
+
|
|
21
|
+
- [`FeatureFlagWriterPort`](Class.FeatureFlagWriterPort)
|
|
22
|
+
|
|
23
|
+
## Implements
|
|
24
|
+
|
|
25
|
+
- `OnModuleInit`
|
|
26
|
+
|
|
27
|
+
## Constructors
|
|
28
|
+
|
|
29
|
+
### Constructor
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
new VercelFeatureFlagWriter(configService): VercelFeatureFlagWriter;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Defined in: vercel/VercelFeatureFlagWriter.ts:47
|
|
36
|
+
|
|
37
|
+
#### Parameters
|
|
38
|
+
|
|
39
|
+
| Parameter | Type |
|
|
40
|
+
| ------ | ------ |
|
|
41
|
+
| `configService` | `ConfigService` |
|
|
42
|
+
|
|
43
|
+
#### Returns
|
|
44
|
+
|
|
45
|
+
`VercelFeatureFlagWriter`
|
|
46
|
+
|
|
47
|
+
#### Overrides
|
|
48
|
+
|
|
49
|
+
[`FeatureFlagWriterPort`](Class.FeatureFlagWriterPort).[`constructor`](Class.FeatureFlagWriterPort#constructor)
|
|
50
|
+
|
|
51
|
+
## Methods
|
|
52
|
+
|
|
53
|
+
### createFlag()
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
createFlag(definition): Promise<void>;
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Defined in: vercel/VercelFeatureFlagWriter.ts:135
|
|
60
|
+
|
|
61
|
+
Creates a new feature flag.
|
|
62
|
+
|
|
63
|
+
#### Parameters
|
|
64
|
+
|
|
65
|
+
| Parameter | Type | Description |
|
|
66
|
+
| ------ | ------ | ------ |
|
|
67
|
+
| `definition` | [`IFeatureFlagDefinition`](Interface.IFeatureFlagDefinition) | The flag definition to create. |
|
|
68
|
+
|
|
69
|
+
#### Returns
|
|
70
|
+
|
|
71
|
+
`Promise`\<`void`\>
|
|
72
|
+
|
|
73
|
+
#### Throws
|
|
74
|
+
|
|
75
|
+
If the flag already exists or creation fails.
|
|
76
|
+
|
|
77
|
+
#### Overrides
|
|
78
|
+
|
|
79
|
+
[`FeatureFlagWriterPort`](Class.FeatureFlagWriterPort).[`createFlag`](Class.FeatureFlagWriterPort#createflag)
|
|
80
|
+
|
|
81
|
+
***
|
|
82
|
+
|
|
83
|
+
### deleteFlag()
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
deleteFlag(key): Promise<void>;
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Defined in: vercel/VercelFeatureFlagWriter.ts:200
|
|
90
|
+
|
|
91
|
+
Deletes a feature flag.
|
|
92
|
+
|
|
93
|
+
#### Parameters
|
|
94
|
+
|
|
95
|
+
| Parameter | Type | Description |
|
|
96
|
+
| ------ | ------ | ------ |
|
|
97
|
+
| `key` | `string` | The unique key of the flag to delete. |
|
|
98
|
+
|
|
99
|
+
#### Returns
|
|
100
|
+
|
|
101
|
+
`Promise`\<`void`\>
|
|
102
|
+
|
|
103
|
+
#### Throws
|
|
104
|
+
|
|
105
|
+
If the deletion fails.
|
|
106
|
+
|
|
107
|
+
#### Overrides
|
|
108
|
+
|
|
109
|
+
[`FeatureFlagWriterPort`](Class.FeatureFlagWriterPort).[`deleteFlag`](Class.FeatureFlagWriterPort#deleteflag)
|
|
110
|
+
|
|
111
|
+
***
|
|
112
|
+
|
|
113
|
+
### getFlag()
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
getFlag(key): Promise<
|
|
117
|
+
| IFeatureFlagDefinition
|
|
118
|
+
| undefined>;
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Defined in: vercel/VercelFeatureFlagWriter.ts:86
|
|
122
|
+
|
|
123
|
+
Returns a single feature flag definition by key.
|
|
124
|
+
|
|
125
|
+
#### Parameters
|
|
126
|
+
|
|
127
|
+
| Parameter | Type | Description |
|
|
128
|
+
| ------ | ------ | ------ |
|
|
129
|
+
| `key` | `string` | The unique key identifying the feature flag. |
|
|
130
|
+
|
|
131
|
+
#### Returns
|
|
132
|
+
|
|
133
|
+
`Promise`\<
|
|
134
|
+
\| [`IFeatureFlagDefinition`](Interface.IFeatureFlagDefinition)
|
|
135
|
+
\| `undefined`\>
|
|
136
|
+
|
|
137
|
+
The flag definition, or `undefined` if not found.
|
|
138
|
+
|
|
139
|
+
#### Overrides
|
|
140
|
+
|
|
141
|
+
[`FeatureFlagWriterPort`](Class.FeatureFlagWriterPort).[`getFlag`](Class.FeatureFlagWriterPort#getflag)
|
|
142
|
+
|
|
143
|
+
***
|
|
144
|
+
|
|
145
|
+
### listFlags()
|
|
146
|
+
|
|
147
|
+
```ts
|
|
148
|
+
listFlags(): Promise<readonly IFeatureFlagDefinition[]>;
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Defined in: vercel/VercelFeatureFlagWriter.ts:111
|
|
152
|
+
|
|
153
|
+
Returns all feature flag definitions managed by the provider.
|
|
154
|
+
|
|
155
|
+
#### Returns
|
|
156
|
+
|
|
157
|
+
`Promise`\<readonly [`IFeatureFlagDefinition`](Interface.IFeatureFlagDefinition)[]\>
|
|
158
|
+
|
|
159
|
+
Array of flag definitions.
|
|
160
|
+
|
|
161
|
+
#### Overrides
|
|
162
|
+
|
|
163
|
+
[`FeatureFlagWriterPort`](Class.FeatureFlagWriterPort).[`listFlags`](Class.FeatureFlagWriterPort#listflags)
|
|
164
|
+
|
|
165
|
+
***
|
|
166
|
+
|
|
167
|
+
### onModuleInit()
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
onModuleInit(): Promise<void>;
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Defined in: vercel/VercelFeatureFlagWriter.ts:61
|
|
174
|
+
|
|
175
|
+
Initializes the Vercel admin client by reading configuration.
|
|
176
|
+
|
|
177
|
+
#### Returns
|
|
178
|
+
|
|
179
|
+
`Promise`\<`void`\>
|
|
180
|
+
|
|
181
|
+
#### Implementation of
|
|
182
|
+
|
|
183
|
+
```ts
|
|
184
|
+
OnModuleInit.onModuleInit
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
***
|
|
188
|
+
|
|
189
|
+
### ping()
|
|
190
|
+
|
|
191
|
+
```ts
|
|
192
|
+
ping(): Promise<boolean>;
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Defined in: vercel/VercelFeatureFlagWriter.ts:228
|
|
196
|
+
|
|
197
|
+
Lightweight connectivity check for the writer provider.
|
|
198
|
+
Defaults to `true` if not overridden.
|
|
199
|
+
|
|
200
|
+
#### Returns
|
|
201
|
+
|
|
202
|
+
`Promise`\<`boolean`\>
|
|
203
|
+
|
|
204
|
+
`true` if the provider is reachable.
|
|
205
|
+
|
|
206
|
+
#### Overrides
|
|
207
|
+
|
|
208
|
+
[`FeatureFlagWriterPort`](Class.FeatureFlagWriterPort).[`ping`](Class.FeatureFlagWriterPort#ping)
|
|
209
|
+
|
|
210
|
+
***
|
|
211
|
+
|
|
212
|
+
### updateFlag()
|
|
213
|
+
|
|
214
|
+
```ts
|
|
215
|
+
updateFlag(key, updates): Promise<void>;
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Defined in: vercel/VercelFeatureFlagWriter.ts:163
|
|
219
|
+
|
|
220
|
+
Updates an existing feature flag.
|
|
221
|
+
Only the fields present in the partial definition are updated.
|
|
222
|
+
|
|
223
|
+
#### Parameters
|
|
224
|
+
|
|
225
|
+
| Parameter | Type | Description |
|
|
226
|
+
| ------ | ------ | ------ |
|
|
227
|
+
| `key` | `string` | The unique key of the flag to update. |
|
|
228
|
+
| `updates` | `Partial`\<`Omit`\<[`IFeatureFlagDefinition`](Interface.IFeatureFlagDefinition), `"key"`\>\> | Partial definition with the fields to update. |
|
|
229
|
+
|
|
230
|
+
#### Returns
|
|
231
|
+
|
|
232
|
+
`Promise`\<`void`\>
|
|
233
|
+
|
|
234
|
+
#### Throws
|
|
235
|
+
|
|
236
|
+
If the flag does not exist or the update fails.
|
|
237
|
+
|
|
238
|
+
#### Overrides
|
|
239
|
+
|
|
240
|
+
[`FeatureFlagWriterPort`](Class.FeatureFlagWriterPort).[`updateFlag`](Class.FeatureFlagWriterPort#updateflag)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Function: FeatureFlag()'
|
|
3
|
+
generated: true
|
|
4
|
+
editUrl: false
|
|
5
|
+
---
|
|
6
|
+
# Function: FeatureFlag()
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
function FeatureFlag(flagKey): CustomDecorator<unknown>;
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Defined in: decorators/FeatureFlag.ts:17
|
|
13
|
+
|
|
14
|
+
Decorator to mark endpoints that require a specific feature flag to be enabled.
|
|
15
|
+
The guard reads this metadata to evaluate the flag before allowing access.
|
|
16
|
+
|
|
17
|
+
## Parameters
|
|
18
|
+
|
|
19
|
+
| Parameter | Type | Description |
|
|
20
|
+
| ------ | ------ | ------ |
|
|
21
|
+
| `flagKey` | `string` | The unique key of the feature flag to check. |
|
|
22
|
+
|
|
23
|
+
## Returns
|
|
24
|
+
|
|
25
|
+
`CustomDecorator`\<`unknown`\>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Interface: IFeatureFlagContext'
|
|
3
|
+
generated: true
|
|
4
|
+
editUrl: false
|
|
5
|
+
---
|
|
6
|
+
# Interface: IFeatureFlagContext
|
|
7
|
+
|
|
8
|
+
Defined in: models/IFeatureFlagContext.ts:6
|
|
9
|
+
|
|
10
|
+
Context passed to feature flag evaluation for targeting and segmentation.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### attributes?
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
readonly optional attributes?: Readonly<Record<string, unknown>>;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: models/IFeatureFlagContext.ts:14
|
|
21
|
+
|
|
22
|
+
Arbitrary attributes for custom targeting rules.
|
|
23
|
+
|
|
24
|
+
***
|
|
25
|
+
|
|
26
|
+
### groups?
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
readonly optional groups?: readonly string[];
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Defined in: models/IFeatureFlagContext.ts:11
|
|
33
|
+
|
|
34
|
+
Groups or segments the user belongs to (e.g. beta testers, enterprise).
|
|
35
|
+
|
|
36
|
+
***
|
|
37
|
+
|
|
38
|
+
### userId?
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
readonly optional userId?: string;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Defined in: models/IFeatureFlagContext.ts:8
|
|
45
|
+
|
|
46
|
+
Unique identifier of the current user.
|