mirror of
https://github.com/bitwarden/browser
synced 2026-02-19 02:44:01 +00:00
Move risk insights services to folder structure capturing domains, api, and view organization. Move mock data
This commit is contained in:
@@ -3,14 +3,13 @@ import { mock } from "jest-mock-extended";
|
||||
import { CipherType } from "@bitwarden/common/vault/enums";
|
||||
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
|
||||
|
||||
import { MemberCipherDetailsResponse } from "../response/member-cipher-details.response";
|
||||
|
||||
import { ApplicationHealthReportDetailEnriched } from "./report-data-service.types";
|
||||
import { MemberCipherDetailsResponse } from "../../response/member-cipher-details.response";
|
||||
import { ApplicationHealthReportDetailEnriched } from "../report-data-service.types";
|
||||
import {
|
||||
ApplicationHealthReportDetail,
|
||||
OrganizationReportApplication,
|
||||
OrganizationReportSummary,
|
||||
} from "./report-models";
|
||||
} from "../report-models";
|
||||
|
||||
const mockApplication1: ApplicationHealthReportDetail = {
|
||||
applicationName: "application1.com",
|
||||
@@ -7,8 +7,8 @@ import {
|
||||
PasswordHealthReportApplicationDropRequest,
|
||||
PasswordHealthReportApplicationsRequest,
|
||||
PasswordHealthReportApplicationsResponse,
|
||||
} from "../models/api-models.types";
|
||||
import { PasswordHealthReportApplicationId } from "../models/report-models";
|
||||
} from "../../models/api-models.types";
|
||||
import { PasswordHealthReportApplicationId } from "../../models/report-models";
|
||||
|
||||
import { CriticalAppsApiService } from "./critical-apps-api.service";
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
PasswordHealthReportApplicationDropRequest,
|
||||
PasswordHealthReportApplicationsRequest,
|
||||
PasswordHealthReportApplicationsResponse,
|
||||
} from "../models/api-models.types";
|
||||
} from "../../models/api-models.types";
|
||||
|
||||
export class CriticalAppsApiService {
|
||||
constructor(private apiService: ApiService) {}
|
||||
@@ -2,7 +2,7 @@ import { Injectable } from "@angular/core";
|
||||
|
||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||
|
||||
import { MemberCipherDetailsResponse } from "../response/member-cipher-details.response";
|
||||
import { MemberCipherDetailsResponse } from "../../response/member-cipher-details.response";
|
||||
|
||||
@Injectable()
|
||||
export class MemberCipherDetailsApiService {
|
||||
@@ -7,17 +7,16 @@ import { ErrorResponse } from "@bitwarden/common/models/response/error.response"
|
||||
import { makeEncString } from "@bitwarden/common/spec";
|
||||
import { OrganizationId, OrganizationReportId } from "@bitwarden/common/types/guid";
|
||||
|
||||
import { EncryptedDataWithKey } from "../models";
|
||||
import { EncryptedDataWithKey } from "../../models";
|
||||
import {
|
||||
GetRiskInsightsApplicationDataResponse,
|
||||
GetRiskInsightsReportResponse,
|
||||
GetRiskInsightsSummaryResponse,
|
||||
SaveRiskInsightsReportRequest,
|
||||
SaveRiskInsightsReportResponse,
|
||||
} from "../models/api-models.types";
|
||||
import { mockApplicationData, mockReportData, mockSummaryData } from "../models/mock-data";
|
||||
|
||||
import { RiskInsightsApiService } from "./risk-insights-api.service";
|
||||
} from "../../models/api-models.types";
|
||||
import { mockApplicationData, mockReportData, mockSummaryData } from "../../models/mocks/mock-data";
|
||||
import { RiskInsightsApiService } from "../api/risk-insights-api.service";
|
||||
|
||||
describe("RiskInsightsApiService", () => {
|
||||
let service: RiskInsightsApiService;
|
||||
@@ -4,14 +4,14 @@ import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||
import { ErrorResponse } from "@bitwarden/common/models/response/error.response";
|
||||
import { OrganizationId, OrganizationReportId } from "@bitwarden/common/types/guid";
|
||||
|
||||
import { EncryptedDataWithKey, OrganizationReportApplication } from "../models";
|
||||
import { EncryptedDataWithKey, OrganizationReportApplication } from "../../models";
|
||||
import {
|
||||
GetRiskInsightsApplicationDataResponse,
|
||||
GetRiskInsightsReportResponse,
|
||||
GetRiskInsightsSummaryResponse,
|
||||
SaveRiskInsightsReportRequest,
|
||||
SaveRiskInsightsReportResponse,
|
||||
} from "../models/api-models.types";
|
||||
} from "../../models/api-models.types";
|
||||
|
||||
export class RiskInsightsApiService {
|
||||
constructor(private apiService: ApiService) {}
|
||||
@@ -14,10 +14,10 @@ import { KeyService } from "@bitwarden/key-management";
|
||||
import {
|
||||
PasswordHealthReportApplicationsRequest,
|
||||
PasswordHealthReportApplicationsResponse,
|
||||
} from "../models/api-models.types";
|
||||
import { PasswordHealthReportApplicationId } from "../models/report-models";
|
||||
} from "../../models/api-models.types";
|
||||
import { PasswordHealthReportApplicationId } from "../../models/report-models";
|
||||
import { CriticalAppsApiService } from "../api/critical-apps-api.service";
|
||||
|
||||
import { CriticalAppsApiService } from "./critical-apps-api.service";
|
||||
import { CriticalAppsService } from "./critical-apps.service";
|
||||
|
||||
const SomeCsprngArray = new Uint8Array(64) as CsprngArray;
|
||||
@@ -20,9 +20,8 @@ import { KeyService } from "@bitwarden/key-management";
|
||||
import {
|
||||
PasswordHealthReportApplicationsRequest,
|
||||
PasswordHealthReportApplicationsResponse,
|
||||
} from "../models/api-models.types";
|
||||
|
||||
import { CriticalAppsApiService } from "./critical-apps-api.service";
|
||||
} from "../../models/api-models.types";
|
||||
import { CriticalAppsApiService } from "../api/critical-apps-api.service";
|
||||
|
||||
/* Retrieves and decrypts critical apps for a given organization
|
||||
* Encrypts and saves data for a given organization
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
ExposedPasswordDetail,
|
||||
WeakPasswordDetail,
|
||||
WeakPasswordScore,
|
||||
} from "../models/password-health";
|
||||
} from "../../models/password-health";
|
||||
|
||||
export class PasswordHealthService {
|
||||
constructor(
|
||||
@@ -10,8 +10,8 @@ import { OrganizationId, UserId } from "@bitwarden/common/types/guid";
|
||||
import { OrgKey } from "@bitwarden/common/types/key";
|
||||
import { KeyService } from "@bitwarden/key-management";
|
||||
|
||||
import { EncryptedReportData, DecryptedReportData } from "../models";
|
||||
import { mockApplicationData, mockReportData, mockSummaryData } from "../models/mock-data";
|
||||
import { EncryptedReportData, DecryptedReportData } from "../../models";
|
||||
import { mockApplicationData, mockReportData, mockSummaryData } from "../../models/mocks/mock-data";
|
||||
|
||||
import { RiskInsightsEncryptionService } from "./risk-insights-encryption.service";
|
||||
|
||||
@@ -7,7 +7,7 @@ import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/sym
|
||||
import { OrganizationId, UserId } from "@bitwarden/common/types/guid";
|
||||
import { KeyService } from "@bitwarden/key-management";
|
||||
|
||||
import { DecryptedReportData, EncryptedReportData, EncryptedDataWithKey } from "../models";
|
||||
import { DecryptedReportData, EncryptedReportData, EncryptedDataWithKey } from "../../models";
|
||||
|
||||
export class RiskInsightsEncryptionService {
|
||||
constructor(
|
||||
@@ -6,24 +6,24 @@ import { makeEncString } from "@bitwarden/common/spec";
|
||||
import { OrganizationId, UserId } from "@bitwarden/common/types/guid";
|
||||
import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service";
|
||||
|
||||
import { DecryptedReportData, EncryptedDataWithKey } from "../models";
|
||||
import { DecryptedReportData, EncryptedDataWithKey } from "../../models";
|
||||
import {
|
||||
GetRiskInsightsReportResponse,
|
||||
SaveRiskInsightsReportResponse,
|
||||
} from "../models/api-models.types";
|
||||
} from "../../models/api-models.types";
|
||||
import { mockCiphers } from "../../models/mocks/ciphers.mock";
|
||||
import {
|
||||
mockApplicationData,
|
||||
mockCipherViews,
|
||||
mockMemberDetails,
|
||||
mockReportData,
|
||||
mockSummaryData,
|
||||
} from "../models/mock-data";
|
||||
} from "../../models/mocks/mock-data";
|
||||
import { MemberCipherDetailsApiService } from "../api/member-cipher-details-api.service";
|
||||
import { mockMemberCipherDetails } from "../api/member-cipher-details-api.service.spec";
|
||||
import { RiskInsightsApiService } from "../api/risk-insights-api.service";
|
||||
|
||||
import { mockCiphers } from "./ciphers.mock";
|
||||
import { MemberCipherDetailsApiService } from "./member-cipher-details-api.service";
|
||||
import { mockMemberCipherDetails } from "./member-cipher-details-api.service.spec";
|
||||
import { PasswordHealthService } from "./password-health.service";
|
||||
import { RiskInsightsApiService } from "./risk-insights-api.service";
|
||||
import { RiskInsightsEncryptionService } from "./risk-insights-encryption.service";
|
||||
import { RiskInsightsReportService } from "./risk-insights-report.service";
|
||||
|
||||
@@ -26,17 +26,17 @@ import {
|
||||
getMemberDetailsFlat,
|
||||
getTrimmedCipherUris,
|
||||
getUniqueMembers,
|
||||
} from "../helpers/risk-insights-data-mappers";
|
||||
} from "../../helpers/risk-insights-data-mappers";
|
||||
import {
|
||||
isSaveRiskInsightsReportResponse,
|
||||
SaveRiskInsightsReportResponse,
|
||||
} from "../models/api-models.types";
|
||||
} from "../../models/api-models.types";
|
||||
import {
|
||||
LEGACY_CipherHealthReportDetail,
|
||||
LEGACY_CipherHealthReportUriDetail,
|
||||
LEGACY_MemberDetailsFlat,
|
||||
LEGACY_ApplicationHealthReportDetailWithCriticalFlagAndCipher,
|
||||
} from "../models/password-health";
|
||||
} from "../../models/password-health";
|
||||
import {
|
||||
ApplicationHealthReportDetail,
|
||||
OrganizationReportSummary,
|
||||
@@ -47,11 +47,11 @@ import {
|
||||
PasswordHealthData,
|
||||
OrganizationReportApplication,
|
||||
RiskInsightsData,
|
||||
} from "../models/report-models";
|
||||
} from "../../models/report-models";
|
||||
import { MemberCipherDetailsApiService } from "../api/member-cipher-details-api.service";
|
||||
import { RiskInsightsApiService } from "../api/risk-insights-api.service";
|
||||
|
||||
import { MemberCipherDetailsApiService } from "./member-cipher-details-api.service";
|
||||
import { PasswordHealthService } from "./password-health.service";
|
||||
import { RiskInsightsApiService } from "./risk-insights-api.service";
|
||||
import { RiskInsightsEncryptionService } from "./risk-insights-encryption.service";
|
||||
|
||||
export class RiskInsightsReportService {
|
||||
@@ -1,9 +1,9 @@
|
||||
export * from "./member-cipher-details-api.service";
|
||||
export * from "./password-health.service";
|
||||
export * from "./critical-apps.service";
|
||||
export * from "./critical-apps-api.service";
|
||||
export * from "./risk-insights-api.service";
|
||||
export * from "./risk-insights-report.service";
|
||||
export * from "./risk-insights-data.service";
|
||||
export * from "./all-activities.service";
|
||||
export * from "./security-tasks-api.service";
|
||||
export * from "./api/member-cipher-details-api.service";
|
||||
export * from "./domain/password-health.service";
|
||||
export * from "./domain/critical-apps.service";
|
||||
export * from "./api/critical-apps-api.service";
|
||||
export * from "./api/risk-insights-api.service";
|
||||
export * from "./domain/risk-insights-report.service";
|
||||
export * from "./view/risk-insights-data.service";
|
||||
export * from "./view/all-activities.service";
|
||||
export * from "./api/security-tasks-api.service";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { BehaviorSubject } from "rxjs";
|
||||
|
||||
import { ApplicationHealthReportDetailEnriched } from "../models";
|
||||
import { OrganizationReportSummary } from "../models/report-models";
|
||||
import { ApplicationHealthReportDetailEnriched } from "../../models";
|
||||
import { OrganizationReportSummary } from "../../models/report-models";
|
||||
|
||||
import { RiskInsightsDataService } from "./risk-insights-data.service";
|
||||
|
||||
@@ -20,12 +20,15 @@ import { AccountService } from "@bitwarden/common/auth/abstractions/account.serv
|
||||
import { getUserId } from "@bitwarden/common/auth/services/account.service";
|
||||
import { OrganizationId, UserId } from "@bitwarden/common/types/guid";
|
||||
|
||||
import { ApplicationHealthReportDetailEnriched } from "../models";
|
||||
import { RiskInsightsEnrichedData } from "../models/report-data-service.types";
|
||||
import { DrawerType, DrawerDetails, ApplicationHealthReportDetail } from "../models/report-models";
|
||||
|
||||
import { CriticalAppsService } from "./critical-apps.service";
|
||||
import { RiskInsightsReportService } from "./risk-insights-report.service";
|
||||
import { ApplicationHealthReportDetailEnriched } from "../../models";
|
||||
import { RiskInsightsEnrichedData } from "../../models/report-data-service.types";
|
||||
import {
|
||||
DrawerType,
|
||||
DrawerDetails,
|
||||
ApplicationHealthReportDetail,
|
||||
} from "../../models/report-models";
|
||||
import { CriticalAppsService } from "../domain/critical-apps.service";
|
||||
import { RiskInsightsReportService } from "../domain/risk-insights-report.service";
|
||||
|
||||
export class RiskInsightsDataService {
|
||||
// -------------------------- Context state --------------------------
|
||||
@@ -40,17 +43,6 @@ export class RiskInsightsDataService {
|
||||
} | null>(null);
|
||||
organizationDetails$ = this.organizationDetailsSubject.asObservable();
|
||||
|
||||
// -------------------------- Data ------------------------------------
|
||||
// TODO: Remove. Will use report results
|
||||
private LEGACY_applicationsSubject = new BehaviorSubject<ApplicationHealthReportDetail[] | null>(
|
||||
null,
|
||||
);
|
||||
LEGACY_applications$ = this.LEGACY_applicationsSubject.asObservable();
|
||||
|
||||
// TODO: Remove. Will use date from report results
|
||||
private LEGACY_dataLastUpdatedSubject = new BehaviorSubject<Date | null>(null);
|
||||
dataLastUpdated$ = this.LEGACY_dataLastUpdatedSubject.asObservable();
|
||||
|
||||
// --------------------------- UI State ------------------------------------
|
||||
private isLoadingSubject = new BehaviorSubject<boolean>(false);
|
||||
isLoading$ = this.isLoadingSubject.asObservable();
|
||||
@@ -154,36 +146,6 @@ export class RiskInsightsDataService {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches the applications report and updates the applicationsSubject.
|
||||
* @param organizationId The ID of the organization.
|
||||
*/
|
||||
LEGACY_fetchApplicationsReport(organizationId: OrganizationId, isRefresh?: boolean): void {
|
||||
if (isRefresh) {
|
||||
this.isRefreshingSubject.next(true);
|
||||
} else {
|
||||
this.isLoadingSubject.next(true);
|
||||
}
|
||||
this.reportService
|
||||
.LEGACY_generateApplicationsReport$(organizationId)
|
||||
.pipe(
|
||||
finalize(() => {
|
||||
this.isLoadingSubject.next(false);
|
||||
this.isRefreshingSubject.next(false);
|
||||
this.LEGACY_dataLastUpdatedSubject.next(new Date());
|
||||
}),
|
||||
)
|
||||
.subscribe({
|
||||
next: (reports: ApplicationHealthReportDetail[]) => {
|
||||
this.LEGACY_applicationsSubject.next(reports);
|
||||
this.errorSubject.next(null);
|
||||
},
|
||||
error: () => {
|
||||
this.LEGACY_applicationsSubject.next([]);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
// ------------------------------- Enrichment methods -------------------------------
|
||||
/**
|
||||
* Takes the basic application health report details and enriches them to include
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
RiskInsightsReportService,
|
||||
SecurityTasksApiService,
|
||||
} from "@bitwarden/bit-common/dirt/reports/risk-insights/services";
|
||||
import { RiskInsightsEncryptionService } from "@bitwarden/bit-common/dirt/reports/risk-insights/services/risk-insights-encryption.service";
|
||||
import { RiskInsightsEncryptionService } from "@bitwarden/bit-common/dirt/reports/risk-insights/services/domain/risk-insights-encryption.service";
|
||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||
import { AuditService } from "@bitwarden/common/abstractions/audit.service";
|
||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||
|
||||
Reference in New Issue
Block a user