Skip to content

Commit bb25dbd

Browse files
authored
OSN-841. Force FinOps-only mode
## Description - Removed _FinOps/MLOps_ choise in create organization menu - Removed _Capabilities_ tab in _Settings_ page - Set MLOps capability value as _false_ by default for create organization request - Removed request to get optscaleCapabilities data - Updated _useIsOptScaleCapabilityEnabled_ hook to check **"mlops_enabled"** property from _organizationFeatures_ - Removed _FinOps/MLOps_ choiсe in **LIVE DEMO**. Now request with default value (mlops as false) is sent without form - Removed _FinOps/MLOps_ choice after user **login** if user is new or has no organizations. Now request with default value (mlops as false) is sent without form ## Related issue number [OSN-841](https://datatrendstech.atlassian.net/browse/OSN-841) ## Special notes MLOps mode enabled only if _organizationFeatures_ has **"mlops_enabled"** property with value = 1 ## Checklist * [ ] The pull request title is a good summary of the changes * [ ] Unit tests for the changes exist * [ ] New and existing unit tests pass locally
1 parent 2f3a017 commit bb25dbd

File tree

43 files changed

+173
-973
lines changed

Some content is hidden

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

43 files changed

+173
-973
lines changed

ngui/server/api/restapi/client.ts

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
MutationUpdateOrganizationPerspectivesArgs,
1212
QueryOrganizationPerspectivesArgs,
1313
QueryOrganizationFeaturesArgs,
14-
MutationUpdateOptscaleCapabilityArgs,
1514
QueryOrganizationConstraintArgs,
1615
QueryResourceCountBreakdownArgs,
1716
QueryExpensesDailyBreakdownArgs,
@@ -202,33 +201,6 @@ class RestApiClient extends BaseClient {
202201
return parsedFeatures;
203202
}
204203

205-
async getOptscaleCapability(organizationId: string) {
206-
const path = `organizations/${organizationId}/options/optscale_mode`;
207-
const capability = await this.get(path);
208-
209-
const parsedCapability = JSON.parse(capability.value);
210-
211-
return parsedCapability.value;
212-
}
213-
214-
async updateOptscaleCapability(
215-
organizationId: MutationUpdateOptscaleCapabilityArgs["organizationId"],
216-
value: MutationUpdateOptscaleCapabilityArgs["value"]
217-
) {
218-
const path = `organizations/${organizationId}/options/optscale_mode`;
219-
const capability = await this.patch(path, {
220-
body: {
221-
value: JSON.stringify({
222-
value,
223-
}),
224-
},
225-
});
226-
227-
const parsedCapability = JSON.parse(capability.value);
228-
229-
return parsedCapability.value;
230-
}
231-
232204
async getOrganizationThemeSettings(organizationId: string) {
233205
const path = `organizations/${organizationId}/options/theme_settings`;
234206
const settings = await this.get(path);

ngui/server/graphql/resolvers/restapi.generated.ts

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,6 @@ export type Mutation = {
499499
updateEmployeeEmail?: Maybe<EmployeeEmail>;
500500
updateEmployeeEmails?: Maybe<Array<Maybe<EmployeeEmail>>>;
501501
updateInvitation?: Maybe<Scalars['String']['output']>;
502-
updateOptscaleCapability?: Maybe<OptscaleCapability>;
503502
updateOrganization?: Maybe<Organization>;
504503
updateOrganizationPerspectives?: Maybe<Scalars['JSONObject']['output']>;
505504
updateOrganizationThemeSettings?: Maybe<Scalars['JSONObject']['output']>;
@@ -551,12 +550,6 @@ export type MutationUpdateInvitationArgs = {
551550
};
552551

553552

554-
export type MutationUpdateOptscaleCapabilityArgs = {
555-
organizationId: Scalars['ID']['input'];
556-
value?: InputMaybe<OptscaleCapabilityParams>;
557-
};
558-
559-
560553
export type MutationUpdateOrganizationArgs = {
561554
organizationId: Scalars['ID']['input'];
562555
params: UpdateOrganizationInput;
@@ -612,17 +605,6 @@ export type NebiusDataSource = DataSourceInterface & {
612605
type: DataSourceType;
613606
};
614607

615-
export type OptscaleCapability = {
616-
__typename?: 'OptscaleCapability';
617-
finops?: Maybe<Scalars['Boolean']['output']>;
618-
mlops?: Maybe<Scalars['Boolean']['output']>;
619-
};
620-
621-
export type OptscaleCapabilityParams = {
622-
finops?: InputMaybe<Scalars['Boolean']['input']>;
623-
mlops?: InputMaybe<Scalars['Boolean']['input']>;
624-
};
625-
626608
export type Organization = {
627609
__typename?: 'Organization';
628610
currency: Scalars['String']['output'];
@@ -677,7 +659,6 @@ export type Query = {
677659
employeeEmails?: Maybe<Array<Maybe<EmployeeEmail>>>;
678660
expensesDailyBreakdown?: Maybe<ExpensesDailyBreakdown>;
679661
invitations?: Maybe<Array<Maybe<Invitation>>>;
680-
optscaleCapability?: Maybe<OptscaleCapability>;
681662
organizationConstraint?: Maybe<OrganizationConstraint>;
682663
organizationFeatures?: Maybe<Scalars['JSONObject']['output']>;
683664
organizationLimitHits?: Maybe<Array<OrganizationLimitHit>>;
@@ -722,11 +703,6 @@ export type QueryExpensesDailyBreakdownArgs = {
722703
};
723704

724705

725-
export type QueryOptscaleCapabilityArgs = {
726-
organizationId: Scalars['ID']['input'];
727-
};
728-
729-
730706
export type QueryOrganizationConstraintArgs = {
731707
constraintId: Scalars['ID']['input'];
732708
};
@@ -940,8 +916,6 @@ export type ResolversTypes = {
940916
NebiusConfig: ResolverTypeWrapper<NebiusConfig>;
941917
NebiusConfigInput: NebiusConfigInput;
942918
NebiusDataSource: ResolverTypeWrapper<NebiusDataSource>;
943-
OptscaleCapability: ResolverTypeWrapper<OptscaleCapability>;
944-
OptscaleCapabilityParams: OptscaleCapabilityParams;
945919
Organization: ResolverTypeWrapper<Organization>;
946920
OrganizationConstraint: ResolverTypeWrapper<OrganizationConstraint>;
947921
OrganizationConstraintType: OrganizationConstraintType;
@@ -1009,8 +983,6 @@ export type ResolversParentTypes = {
1009983
NebiusConfig: NebiusConfig;
1010984
NebiusConfigInput: NebiusConfigInput;
1011985
NebiusDataSource: NebiusDataSource;
1012-
OptscaleCapability: OptscaleCapability;
1013-
OptscaleCapabilityParams: OptscaleCapabilityParams;
1014986
Organization: Organization;
1015987
OrganizationConstraint: OrganizationConstraint;
1016988
OrganizationLimitHit: OrganizationLimitHit;
@@ -1349,7 +1321,6 @@ export type MutationResolvers<ContextType = any, ParentType extends ResolversPar
13491321
updateEmployeeEmail?: Resolver<Maybe<ResolversTypes['EmployeeEmail']>, ParentType, ContextType, RequireFields<MutationUpdateEmployeeEmailArgs, 'employeeId' | 'params'>>;
13501322
updateEmployeeEmails?: Resolver<Maybe<Array<Maybe<ResolversTypes['EmployeeEmail']>>>, ParentType, ContextType, RequireFields<MutationUpdateEmployeeEmailsArgs, 'employeeId' | 'params'>>;
13511323
updateInvitation?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, RequireFields<MutationUpdateInvitationArgs, 'action' | 'invitationId'>>;
1352-
updateOptscaleCapability?: Resolver<Maybe<ResolversTypes['OptscaleCapability']>, ParentType, ContextType, RequireFields<MutationUpdateOptscaleCapabilityArgs, 'organizationId'>>;
13531324
updateOrganization?: Resolver<Maybe<ResolversTypes['Organization']>, ParentType, ContextType, RequireFields<MutationUpdateOrganizationArgs, 'organizationId' | 'params'>>;
13541325
updateOrganizationPerspectives?: Resolver<Maybe<ResolversTypes['JSONObject']>, ParentType, ContextType, RequireFields<MutationUpdateOrganizationPerspectivesArgs, 'organizationId' | 'value'>>;
13551326
updateOrganizationThemeSettings?: Resolver<Maybe<ResolversTypes['JSONObject']>, ParentType, ContextType, RequireFields<MutationUpdateOrganizationThemeSettingsArgs, 'organizationId' | 'value'>>;
@@ -1382,12 +1353,6 @@ export type NebiusDataSourceResolvers<ContextType = any, ParentType extends Reso
13821353
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
13831354
};
13841355

1385-
export type OptscaleCapabilityResolvers<ContextType = any, ParentType extends ResolversParentTypes['OptscaleCapability'] = ResolversParentTypes['OptscaleCapability']> = {
1386-
finops?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
1387-
mlops?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
1388-
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1389-
};
1390-
13911356
export type OrganizationResolvers<ContextType = any, ParentType extends ResolversParentTypes['Organization'] = ResolversParentTypes['Organization']> = {
13921357
currency?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
13931358
disabled?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
@@ -1432,7 +1397,6 @@ export type QueryResolvers<ContextType = any, ParentType extends ResolversParent
14321397
employeeEmails?: Resolver<Maybe<Array<Maybe<ResolversTypes['EmployeeEmail']>>>, ParentType, ContextType, RequireFields<QueryEmployeeEmailsArgs, 'employeeId'>>;
14331398
expensesDailyBreakdown?: Resolver<Maybe<ResolversTypes['ExpensesDailyBreakdown']>, ParentType, ContextType, RequireFields<QueryExpensesDailyBreakdownArgs, 'organizationId'>>;
14341399
invitations?: Resolver<Maybe<Array<Maybe<ResolversTypes['Invitation']>>>, ParentType, ContextType>;
1435-
optscaleCapability?: Resolver<Maybe<ResolversTypes['OptscaleCapability']>, ParentType, ContextType, RequireFields<QueryOptscaleCapabilityArgs, 'organizationId'>>;
14361400
organizationConstraint?: Resolver<Maybe<ResolversTypes['OrganizationConstraint']>, ParentType, ContextType, RequireFields<QueryOrganizationConstraintArgs, 'constraintId'>>;
14371401
organizationFeatures?: Resolver<Maybe<ResolversTypes['JSONObject']>, ParentType, ContextType, RequireFields<QueryOrganizationFeaturesArgs, 'organizationId'>>;
14381402
organizationLimitHits?: Resolver<Maybe<Array<ResolversTypes['OrganizationLimitHit']>>, ParentType, ContextType, RequireFields<QueryOrganizationLimitHitsArgs, 'constraintId' | 'organizationId'>>;
@@ -1488,7 +1452,6 @@ export type Resolvers<ContextType = any> = {
14881452
Mutation?: MutationResolvers<ContextType>;
14891453
NebiusConfig?: NebiusConfigResolvers<ContextType>;
14901454
NebiusDataSource?: NebiusDataSourceResolvers<ContextType>;
1491-
OptscaleCapability?: OptscaleCapabilityResolvers<ContextType>;
14921455
Organization?: OrganizationResolvers<ContextType>;
14931456
OrganizationConstraint?: OrganizationConstraintResolvers<ContextType>;
14941457
OrganizationLimitHit?: OrganizationLimitHitResolvers<ContextType>;

ngui/server/graphql/resolvers/restapi.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,6 @@ const resolvers: Resolvers = {
6565
organizationFeatures: async (_, { organizationId }, { dataSources }) => {
6666
return dataSources.restapi.getOrganizationFeatures(organizationId);
6767
},
68-
optscaleCapability: async (_, { organizationId }, { dataSources }) => {
69-
return dataSources.restapi.getOptscaleCapability(organizationId);
70-
},
7168
organizationThemeSettings: async (
7269
_,
7370
{ organizationId },
@@ -169,16 +166,6 @@ const resolvers: Resolvers = {
169166
updateInvitation: async (_, { invitationId, action }, { dataSources }) => {
170167
return dataSources.restapi.updateInvitation(invitationId, action);
171168
},
172-
updateOptscaleCapability: async (
173-
_,
174-
{ organizationId, value },
175-
{ dataSources }
176-
) => {
177-
return dataSources.restapi.updateOptscaleCapability(
178-
organizationId,
179-
value
180-
);
181-
},
182169
updateOrganizationThemeSettings: async (
183170
_,
184171
{ organizationId, value },

ngui/server/graphql/schemas/restapi.graphql

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -550,16 +550,6 @@ type Invitation {
550550
invite_assignments: [InvitationAssignment!]
551551
}
552552

553-
type OptscaleCapability {
554-
finops: Boolean
555-
mlops: Boolean
556-
}
557-
558-
input OptscaleCapabilityParams {
559-
finops: Boolean
560-
mlops: Boolean
561-
}
562-
563553
input UpdateOrganizationInput {
564554
name: String
565555
currency: String
@@ -603,7 +593,6 @@ type Query {
603593
employeeEmails(employeeId: ID!): [EmployeeEmail]
604594
invitations: [Invitation]
605595
organizationFeatures(organizationId: ID!): JSONObject
606-
optscaleCapability(organizationId: ID!): OptscaleCapability
607596
organizationThemeSettings(organizationId: ID!): JSONObject
608597
organizationPerspectives(organizationId: ID!): JSONObject
609598
organizationConstraint(constraintId: ID!): OrganizationConstraint
@@ -648,10 +637,6 @@ type Mutation {
648637
): Organization
649638
deleteOrganization(organizationId: ID!): String
650639
updateInvitation(invitationId: String!, action: String!): String
651-
updateOptscaleCapability(
652-
organizationId: ID!
653-
value: OptscaleCapabilityParams
654-
): OptscaleCapability
655640
updateOrganizationThemeSettings(
656641
organizationId: ID!
657642
value: JSONObject!

ngui/ui/src/components/CapabilityCard/CapabilityCard.tsx

Lines changed: 0 additions & 126 deletions
This file was deleted.

ngui/ui/src/components/CapabilityCard/index.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)