Skip to content
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

1-3120: remove project connected environments #8775

Merged
merged 1 commit into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import UsersIcon from '@mui/icons-material/Group';
import { Link } from 'react-router-dom';
import ApiKeyIcon from '@mui/icons-material/Key';
import SegmentsIcon from '@mui/icons-material/DonutLarge';
import ConnectedIcon from '@mui/icons-material/Cable';
import { useProjectStatus } from 'hooks/api/getters/useProjectStatus/useProjectStatus';
import useLoading from 'hooks/useLoading';
import { HealthGridTile } from './ProjectHealthGrid.styles';
Expand Down Expand Up @@ -90,7 +89,6 @@ const useProjectResources = (projectId: string) => {
resources: {
members: 0,
apiTokens: 0,
connectedEnvironments: 0,
segments: 0,
},
};
Expand Down Expand Up @@ -130,15 +128,6 @@ export const ProjectResources = () => {
{resources.apiTokens} API key(s)
</ListItem>

<ListItem
linkUrl={`/projects/${projectId}/settings/placeholder`}
linkText='View connections'
icon={<ConnectedIcon />}
>
{resources.connectedEnvironments} connected
environment(s)
</ListItem>

<ListItem
linkUrl={`/projects/${projectId}/settings/segments`}
linkText='Add segments'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ const path = (projectId: string) => `api/admin/projects/${projectId}/status`;
const placeholderData: ProjectStatusSchema = {
activityCountByDate: [],
resources: {
connectedEnvironments: 0,
members: 0,
apiTokens: 0,
segments: 0,
Expand Down
5 changes: 0 additions & 5 deletions frontend/src/openapi/models/projectStatusSchemaResources.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@ export type ProjectStatusSchemaResources = {
* @minimum 0
*/
apiTokens: number;
/**
* The number of environments that have received SDK traffic in this project.
* @minimum 0
*/
connectedEnvironments: number;
/**
* The number of users who have been granted roles in this project. Does not include users who have access via groups.
* @minimum 0
Expand Down
3 changes: 0 additions & 3 deletions src/lib/features/project-status/project-status-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ export class ProjectStatusService {

async getProjectStatus(projectId: string): Promise<ProjectStatusSchema> {
const [
connectedEnvironments,
members,
apiTokens,
segments,
Expand All @@ -53,7 +52,6 @@ export class ProjectStatusService {
lifecycleSummary,
staleFlagCount,
] = await Promise.all([
this.projectStore.getConnectedEnvironmentCountForProject(projectId),
this.projectStore.getMembersCountByProject(projectId),
this.apiTokenStore.countProjectTokens(projectId),
this.segmentStore.getProjectSegmentCount(projectId),
Expand All @@ -74,7 +72,6 @@ export class ProjectStatusService {

return {
resources: {
connectedEnvironments,
members,
apiTokens,
segments,
Expand Down
47 changes: 0 additions & 47 deletions src/lib/features/project-status/projects-status.e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,51 +127,6 @@ test('project insights should return correct count for each day', async () => {
});
});

test('project status should return environments with connected SDKs', async () => {
const flagName = randomId();
await app.createFeature(flagName);

const envs =
await app.services.environmentService.getProjectEnvironments('default');
expect(envs.some((env) => env.name === 'default')).toBeTruthy();

const appName = 'blah';
const environment = 'default';
await db.stores.clientMetricsStoreV2.batchInsertMetrics([
{
featureName: `flag-doesnt-exist`,
appName,
environment,
timestamp: new Date(),
yes: 5,
no: 2,
},
{
featureName: flagName,
appName: `web2`,
environment,
timestamp: new Date(),
yes: 5,
no: 2,
},
{
featureName: flagName,
appName,
environment: 'not-a-real-env',
timestamp: new Date(),
yes: 2,
no: 2,
},
]);

const { body } = await app.request
.get('/api/admin/projects/default/status')
.expect('Content-Type', /json/)
.expect(200);

expect(body.resources.connectedEnvironments).toBe(1);
});

test('project resources should contain the right data', async () => {
const { body: noResourcesBody } = await app.request
.get('/api/admin/projects/default/status')
Expand All @@ -182,7 +137,6 @@ test('project resources should contain the right data', async () => {
members: 0,
apiTokens: 0,
segments: 0,
connectedEnvironments: 0,
});

const flagName = randomId();
Expand Down Expand Up @@ -239,7 +193,6 @@ test('project resources should contain the right data', async () => {
members: 1,
apiTokens: 1,
segments: 1,
connectedEnvironments: 1,
});
});

Expand Down
2 changes: 0 additions & 2 deletions src/lib/features/project/project-store-type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,6 @@ export interface IProjectStore extends Store<IProject, string> {

getEnvironmentsForProject(id: string): Promise<ProjectEnvironment[]>;

getConnectedEnvironmentCountForProject(id: string): Promise<number>;

getMembersCountByProject(projectId: string): Promise<number>;

getMembersCountByProjectAfterDate(
Expand Down
16 changes: 0 additions & 16 deletions src/lib/features/project/project-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -390,22 +390,6 @@ class ProjectStore implements IProjectStore {
return rows.map(this.mapProjectEnvironmentRow);
}

async getConnectedEnvironmentCountForProject(id: string): Promise<number> {
const [{ count }] = (await this.db
.countDistinct('cme.environment')
.from('client_metrics_env as cme')
.innerJoin('features', 'cme.feature_name', 'features.name')
.innerJoin('projects', 'features.project', 'projects.id')
.innerJoin(
'project_environments',
'cme.environment',
'project_environments.environment_name',
)
.where('features.project', id)) as { count: string }[];

return Number(count);
}

async getMembersCountByProject(projectId: string): Promise<number> {
const members = await this.db
.from((db) => {
Expand Down
1 change: 0 additions & 1 deletion src/lib/openapi/spec/project-status-schema.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ test('projectStatusSchema', () => {
{ date: '2022-12-15', count: 5 },
],
resources: {
connectedEnvironments: 2,
apiTokens: 2,
members: 1,
segments: 0,
Expand Down
13 changes: 1 addition & 12 deletions src/lib/openapi/spec/project-status-schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,9 @@ export const projectStatusSchema = {
resources: {
type: 'object',
additionalProperties: false,
required: [
'connectedEnvironments',
'apiTokens',
'members',
'segments',
],
required: ['apiTokens', 'members', 'segments'],
description: 'Key resources within the project',
properties: {
connectedEnvironments: {
type: 'integer',
minimum: 0,
description:
'The number of environments that have received SDK traffic in this project.',
},
apiTokens: {
type: 'integer',
minimum: 0,
Expand Down
4 changes: 0 additions & 4 deletions src/test/fixtures/fake-project-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,4 @@ export default class FakeProjectStore implements IProjectStore {
project.id === id ? { ...project, archivedAt: null } : project,
);
}

async getConnectedEnvironmentCountForProject(): Promise<number> {
return 0;
}
}
Loading