File tree Expand file tree Collapse file tree 3 files changed +17
-7
lines changed Expand file tree Collapse file tree 3 files changed +17
-7
lines changed Original file line number Diff line number Diff line change @@ -298,6 +298,15 @@ export const WorkspaceFeatureFlags = {
298
298
workspace_connection_limiting : undefined ,
299
299
} ;
300
300
export type NamedWorkspaceFeatureFlag = keyof typeof WorkspaceFeatureFlags ;
301
+ export namespace NamedWorkspaceFeatureFlag {
302
+ export const WORKSPACE_PERSISTED_FEATTURE_FLAGS : NamedWorkspaceFeatureFlag [ ] = [
303
+ "full_workspace_backup" ,
304
+ "persistent_volume_claim" ,
305
+ ] ;
306
+ export function isWorkspacePersisted ( ff : NamedWorkspaceFeatureFlag ) : boolean {
307
+ return WORKSPACE_PERSISTED_FEATTURE_FLAGS . includes ( ff ) ;
308
+ }
309
+ }
301
310
302
311
export interface EnvVarWithValue {
303
312
name : string ;
Original file line number Diff line number Diff line change @@ -125,12 +125,8 @@ export class ConfigProvider {
125
125
*/
126
126
delete config . _featureFlags ;
127
127
if ( ! ! user . featureFlags ) {
128
- const workspacePersistedFlags : NamedWorkspaceFeatureFlag [ ] = [
129
- "full_workspace_backup" ,
130
- "persistent_volume_claim" ,
131
- ] ;
132
- config . _featureFlags = workspacePersistedFlags . filter ( ( f ) =>
133
- ( user . featureFlags ! . permanentWSFeatureFlags || [ ] ) . includes ( f ) ,
128
+ config . _featureFlags = ( user . featureFlags ! . permanentWSFeatureFlags || [ ] ) . filter (
129
+ NamedWorkspaceFeatureFlag . isWorkspacePersisted ,
134
130
) ;
135
131
}
136
132
Original file line number Diff line number Diff line change @@ -829,7 +829,12 @@ export class WorkspaceStarter {
829
829
let featureFlags : NamedWorkspaceFeatureFlag [ ] = workspace . config . _featureFlags || [ ] ;
830
830
featureFlags = featureFlags . concat ( this . config . workspaceDefaults . defaultFeatureFlags ) ;
831
831
if ( user . featureFlags && user . featureFlags . permanentWSFeatureFlags ) {
832
- featureFlags = featureFlags . concat ( featureFlags , user . featureFlags . permanentWSFeatureFlags ) ;
832
+ // Workspace-persisted feature flags are inherited from and controlled by workspace.config._featureFlags
833
+ // Make sure we do not overide them, here.
834
+ const nonWorkspacePersistentFeatureFlags = user . featureFlags . permanentWSFeatureFlags . filter (
835
+ ( ff ) => ! NamedWorkspaceFeatureFlag . isWorkspacePersisted ( ff ) ,
836
+ ) ;
837
+ featureFlags = featureFlags . concat ( featureFlags , nonWorkspacePersistentFeatureFlags ) ;
833
838
}
834
839
835
840
// if the user has feature preview enabled, we need to add the respective feature flags.
You can’t perform that action at this time.
0 commit comments