From e47415fe91f906180209a43cf2065491f3ea4087 Mon Sep 17 00:00:00 2001 From: Daniel James Smith <2670567+djsmith85@users.noreply.github.com> Date: Mon, 7 Oct 2024 19:12:12 +0200 Subject: [PATCH] [PM-11437] 1Password 1pux importer updates and fixes (#10778) * Replaced field trashed with state The new field state contains either 'active' or 'archived' Adjust all the test files to have the new field Add unit test to verify skipping archived items on import Fix importer * Add addtional fields to 1pux importer types No mapping currently necessary * Field indexAtSource was deprecated Removing it from the 1pux-importer-types Updating all the test files * Removed remaining instances of indexAtSource * Fixed a leftover instance of trashed -> state --------- Co-authored-by: Daniel James Smith --- .../spec/onepassword-1pux-importer.spec.ts | 10 + .../onepassword-1pux/api-credentials.ts | 9 +- .../onepassword-1pux/bank-account.ts | 12 +- .../test-data/onepassword-1pux/credit-card.ts | 19 +- .../test-data/onepassword-1pux/database.ts | 11 +- .../onepassword-1pux/drivers-license.ts | 13 +- .../onepassword-1pux/email-account.ts | 19 +- .../email-field-on-identity.ts | 3 +- .../email-field-on-identity_prefilled.ts | 4 +- .../test-data/onepassword-1pux/email-field.ts | 3 +- .../onepassword-1pux/identity-data.ts | 27 +- .../test-data/onepassword-1pux/login-data.ts | 4 +- .../onepassword-1pux/medical-record.ts | 10 +- .../test-data/onepassword-1pux/membership.ts | 10 +- .../onepassword-1pux/onepux_example.ts | 3 +- .../onepassword-1pux/outdoor-license.ts | 9 +- .../test-data/onepassword-1pux/passport.ts | 13 +- .../test-data/onepassword-1pux/password.ts | 2 +- .../onepassword-1pux/rewards-program.ts | 11 +- .../onepassword-1pux/sanitized-export.ts | 269 ++---------------- .../test-data/onepassword-1pux/secure-note.ts | 2 +- .../spec/test-data/onepassword-1pux/server.ts | 12 +- .../onepassword-1pux/software-license.ts | 15 +- .../spec/test-data/onepassword-1pux/ssn.ts | 4 +- .../onepassword-1pux/wireless-router.ts | 10 +- .../onepassword/onepassword-1pux-importer.ts | 2 +- .../types/onepassword-1pux-importer-types.ts | 6 +- 27 files changed, 66 insertions(+), 446 deletions(-) diff --git a/libs/importer/spec/onepassword-1pux-importer.spec.ts b/libs/importer/spec/onepassword-1pux-importer.spec.ts index fe1b2801bd..93de4be606 100644 --- a/libs/importer/spec/onepassword-1pux-importer.spec.ts +++ b/libs/importer/spec/onepassword-1pux-importer.spec.ts @@ -56,6 +56,16 @@ describe("1Password 1Pux Importer", () => { const SecureNoteDataJson = JSON.stringify(SecureNoteData); const SanitizedExportJson = JSON.stringify(SanitizedExport); + it("should not import items with state 'archived'", async () => { + const importer = new OnePassword1PuxImporter(); + const archivedLoginData = LoginData; + archivedLoginData["accounts"][0]["vaults"][0]["items"][0]["state"] = "archived"; + const archivedDataJson = JSON.stringify(archivedLoginData); + const result = await importer.parse(archivedDataJson); + expect(result != null).toBe(true); + expect(result.ciphers.length).toBe(0); + }); + it("should parse login data", async () => { const importer = new OnePassword1PuxImporter(); const result = await importer.parse(LoginDataJson); diff --git a/libs/importer/spec/test-data/onepassword-1pux/api-credentials.ts b/libs/importer/spec/test-data/onepassword-1pux/api-credentials.ts index 49269e72fa..7a830194b8 100644 --- a/libs/importer/spec/test-data/onepassword-1pux/api-credentials.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/api-credentials.ts @@ -26,7 +26,7 @@ export const APICredentialsData: ExportData = { favIndex: 0, createdAt: 1619465969, updatedAt: 1619466052, - trashed: false, + state: "active", categoryUuid: "112", details: { loginFields: [], @@ -41,7 +41,6 @@ export const APICredentialsData: ExportData = { value: { string: "apiuser@nullvalue.test", }, - indexAtSource: 0, guarded: true, multiline: false, dontGenerate: false, @@ -57,7 +56,6 @@ export const APICredentialsData: ExportData = { value: { concealed: "apiapiapiapiapiapiappy", }, - indexAtSource: 1, guarded: true, multiline: false, dontGenerate: true, @@ -73,7 +71,6 @@ export const APICredentialsData: ExportData = { value: { menu: "jwt", }, - indexAtSource: 2, guarded: false, multiline: false, dontGenerate: false, @@ -89,7 +86,6 @@ export const APICredentialsData: ExportData = { value: { string: "filename.jwt", }, - indexAtSource: 3, guarded: false, multiline: false, dontGenerate: false, @@ -105,7 +101,6 @@ export const APICredentialsData: ExportData = { value: { date: 1301918460, }, - indexAtSource: 4, guarded: false, multiline: false, dontGenerate: false, @@ -121,7 +116,6 @@ export const APICredentialsData: ExportData = { value: { date: 1932811260, }, - indexAtSource: 5, guarded: false, multiline: false, dontGenerate: false, @@ -137,7 +131,6 @@ export const APICredentialsData: ExportData = { value: { string: "not.your.everyday.hostname", }, - indexAtSource: 6, guarded: false, multiline: false, dontGenerate: false, diff --git a/libs/importer/spec/test-data/onepassword-1pux/bank-account.ts b/libs/importer/spec/test-data/onepassword-1pux/bank-account.ts index 7f3d8c080c..6ffccafe51 100644 --- a/libs/importer/spec/test-data/onepassword-1pux/bank-account.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/bank-account.ts @@ -26,7 +26,7 @@ export const BankAccountData: ExportData = { favIndex: 0, createdAt: 1619466056, updatedAt: 1619466187, - trashed: false, + state: "active", categoryUuid: "101", details: { loginFields: [], @@ -41,7 +41,6 @@ export const BankAccountData: ExportData = { value: { string: "Super Credit Union", }, - indexAtSource: 0, guarded: false, multiline: false, dontGenerate: false, @@ -57,7 +56,6 @@ export const BankAccountData: ExportData = { value: { string: "Cool Guy", }, - indexAtSource: 1, guarded: false, multiline: false, dontGenerate: false, @@ -73,7 +71,6 @@ export const BankAccountData: ExportData = { value: { menu: "checking", }, - indexAtSource: 2, guarded: false, multiline: false, dontGenerate: false, @@ -89,7 +86,6 @@ export const BankAccountData: ExportData = { value: { string: "111000999", }, - indexAtSource: 3, guarded: false, multiline: false, dontGenerate: false, @@ -105,7 +101,6 @@ export const BankAccountData: ExportData = { value: { string: "192837465918273645", }, - indexAtSource: 4, guarded: false, multiline: false, dontGenerate: false, @@ -121,7 +116,6 @@ export const BankAccountData: ExportData = { value: { string: "123456", }, - indexAtSource: 5, guarded: false, multiline: false, dontGenerate: false, @@ -137,7 +131,6 @@ export const BankAccountData: ExportData = { value: { string: "DE12 123456", }, - indexAtSource: 6, guarded: false, multiline: false, dontGenerate: false, @@ -153,7 +146,6 @@ export const BankAccountData: ExportData = { value: { concealed: "5555", }, - indexAtSource: 7, guarded: false, multiline: false, dontGenerate: true, @@ -175,7 +167,6 @@ export const BankAccountData: ExportData = { value: { phone: "9399399933", }, - indexAtSource: 0, guarded: false, multiline: false, dontGenerate: false, @@ -191,7 +182,6 @@ export const BankAccountData: ExportData = { value: { string: "1 Fifth Avenue", }, - indexAtSource: 1, guarded: false, multiline: false, dontGenerate: false, diff --git a/libs/importer/spec/test-data/onepassword-1pux/credit-card.ts b/libs/importer/spec/test-data/onepassword-1pux/credit-card.ts index 80258f13f0..74af97a4c2 100644 --- a/libs/importer/spec/test-data/onepassword-1pux/credit-card.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/credit-card.ts @@ -26,7 +26,7 @@ export const CreditCardData: ExportData = { favIndex: 0, createdAt: 1619465282, updatedAt: 1619465447, - trashed: false, + state: "active", categoryUuid: "002", details: { loginFields: [], @@ -41,7 +41,6 @@ export const CreditCardData: ExportData = { value: { string: "Fred Engels", }, - indexAtSource: 0, guarded: true, multiline: false, dontGenerate: false, @@ -57,7 +56,6 @@ export const CreditCardData: ExportData = { value: { creditCardType: "discover", }, - indexAtSource: 1, guarded: true, multiline: false, dontGenerate: false, @@ -73,7 +71,6 @@ export const CreditCardData: ExportData = { value: { creditCardNumber: "6011111111111117", }, - indexAtSource: 2, guarded: true, clipboardFilter: "0123456789", multiline: false, @@ -90,7 +87,6 @@ export const CreditCardData: ExportData = { value: { concealed: "1312", }, - indexAtSource: 3, guarded: true, multiline: false, dontGenerate: true, @@ -106,7 +102,6 @@ export const CreditCardData: ExportData = { value: { monthYear: 209912, }, - indexAtSource: 4, guarded: true, multiline: false, dontGenerate: false, @@ -122,7 +117,6 @@ export const CreditCardData: ExportData = { value: { monthYear: 200101, }, - indexAtSource: 5, guarded: true, multiline: false, dontGenerate: false, @@ -138,7 +132,6 @@ export const CreditCardData: ExportData = { value: { string: "card", }, - indexAtSource: 6, guarded: false, multiline: false, dontGenerate: false, @@ -160,7 +153,6 @@ export const CreditCardData: ExportData = { value: { string: "Some bank", }, - indexAtSource: 0, guarded: false, multiline: false, dontGenerate: false, @@ -176,7 +168,6 @@ export const CreditCardData: ExportData = { value: { phone: "123456", }, - indexAtSource: 1, guarded: false, multiline: false, dontGenerate: false, @@ -192,7 +183,6 @@ export const CreditCardData: ExportData = { value: { phone: "0800123456", }, - indexAtSource: 2, guarded: false, multiline: false, dontGenerate: false, @@ -208,7 +198,6 @@ export const CreditCardData: ExportData = { value: { phone: "+49123456", }, - indexAtSource: 3, guarded: false, multiline: false, dontGenerate: false, @@ -224,7 +213,6 @@ export const CreditCardData: ExportData = { value: { url: "somebank.com", }, - indexAtSource: 4, guarded: false, multiline: false, dontGenerate: false, @@ -246,7 +234,6 @@ export const CreditCardData: ExportData = { value: { concealed: "1234", }, - indexAtSource: 0, guarded: false, multiline: false, dontGenerate: true, @@ -262,7 +249,6 @@ export const CreditCardData: ExportData = { value: { string: "$1312", }, - indexAtSource: 1, guarded: false, multiline: false, dontGenerate: false, @@ -278,7 +264,6 @@ export const CreditCardData: ExportData = { value: { string: "$500", }, - indexAtSource: 2, guarded: false, multiline: false, dontGenerate: false, @@ -294,7 +279,6 @@ export const CreditCardData: ExportData = { value: { string: "1%", }, - indexAtSource: 3, guarded: false, multiline: false, dontGenerate: false, @@ -310,7 +294,6 @@ export const CreditCardData: ExportData = { value: { string: "123456", }, - indexAtSource: 4, guarded: false, multiline: false, dontGenerate: false, diff --git a/libs/importer/spec/test-data/onepassword-1pux/database.ts b/libs/importer/spec/test-data/onepassword-1pux/database.ts index 17b6700bf6..58631a2f98 100644 --- a/libs/importer/spec/test-data/onepassword-1pux/database.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/database.ts @@ -26,7 +26,7 @@ export const DatabaseData: ExportData = { favIndex: 0, createdAt: 1619466193, updatedAt: 1619466276, - trashed: false, + state: "active", categoryUuid: "102", details: { loginFields: [], @@ -41,7 +41,6 @@ export const DatabaseData: ExportData = { value: { menu: "postgresql", }, - indexAtSource: 0, guarded: false, multiline: false, dontGenerate: false, @@ -57,7 +56,6 @@ export const DatabaseData: ExportData = { value: { string: "my.secret.db.server", }, - indexAtSource: 1, guarded: false, multiline: false, dontGenerate: false, @@ -73,7 +71,6 @@ export const DatabaseData: ExportData = { value: { string: "1337", }, - indexAtSource: 2, guarded: false, multiline: false, dontGenerate: false, @@ -89,7 +86,6 @@ export const DatabaseData: ExportData = { value: { string: "user_database", }, - indexAtSource: 3, guarded: false, multiline: false, dontGenerate: false, @@ -105,7 +101,6 @@ export const DatabaseData: ExportData = { value: { string: "cooldbuser", }, - indexAtSource: 4, guarded: false, multiline: false, dontGenerate: false, @@ -121,7 +116,6 @@ export const DatabaseData: ExportData = { value: { concealed: "^+kTjhLaN7wVPAhGU)*J", }, - indexAtSource: 5, guarded: false, multiline: false, dontGenerate: false, @@ -137,7 +131,6 @@ export const DatabaseData: ExportData = { value: { string: "ASDIUFU-283234", }, - indexAtSource: 6, guarded: false, multiline: false, dontGenerate: false, @@ -153,7 +146,6 @@ export const DatabaseData: ExportData = { value: { string: "cdbu", }, - indexAtSource: 7, guarded: false, multiline: false, dontGenerate: false, @@ -169,7 +161,6 @@ export const DatabaseData: ExportData = { value: { string: "ssh", }, - indexAtSource: 8, guarded: false, multiline: false, dontGenerate: false, diff --git a/libs/importer/spec/test-data/onepassword-1pux/drivers-license.ts b/libs/importer/spec/test-data/onepassword-1pux/drivers-license.ts index 9f7260d63d..54a52f3699 100644 --- a/libs/importer/spec/test-data/onepassword-1pux/drivers-license.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/drivers-license.ts @@ -26,7 +26,7 @@ export const DriversLicenseData: ExportData = { favIndex: 0, createdAt: 1619466279, updatedAt: 1619466425, - trashed: false, + state: "active", categoryUuid: "103", details: { loginFields: [], @@ -41,7 +41,6 @@ export const DriversLicenseData: ExportData = { value: { string: "Michael Scarn", }, - indexAtSource: 0, guarded: false, multiline: false, dontGenerate: false, @@ -57,7 +56,6 @@ export const DriversLicenseData: ExportData = { value: { string: "2120 Mifflin Rd.", }, - indexAtSource: 1, guarded: false, multiline: false, dontGenerate: false, @@ -73,7 +71,6 @@ export const DriversLicenseData: ExportData = { value: { date: 252504060, }, - indexAtSource: 2, guarded: false, multiline: false, dontGenerate: false, @@ -89,7 +86,6 @@ export const DriversLicenseData: ExportData = { value: { gender: "male", }, - indexAtSource: 3, guarded: false, multiline: false, dontGenerate: false, @@ -105,7 +101,6 @@ export const DriversLicenseData: ExportData = { value: { string: "5'11\"", }, - indexAtSource: 4, guarded: false, multiline: false, dontGenerate: false, @@ -121,7 +116,6 @@ export const DriversLicenseData: ExportData = { value: { string: "12345678901", }, - indexAtSource: 5, guarded: false, multiline: false, dontGenerate: false, @@ -137,7 +131,6 @@ export const DriversLicenseData: ExportData = { value: { string: "C", }, - indexAtSource: 6, guarded: false, multiline: false, dontGenerate: false, @@ -153,7 +146,6 @@ export const DriversLicenseData: ExportData = { value: { string: "B", }, - indexAtSource: 7, guarded: false, multiline: false, dontGenerate: false, @@ -169,7 +161,6 @@ export const DriversLicenseData: ExportData = { value: { string: "Pennsylvania", }, - indexAtSource: 8, guarded: false, multiline: false, dontGenerate: false, @@ -185,7 +176,6 @@ export const DriversLicenseData: ExportData = { value: { string: "United States", }, - indexAtSource: 9, guarded: false, multiline: false, dontGenerate: false, @@ -201,7 +191,6 @@ export const DriversLicenseData: ExportData = { value: { monthYear: 203012, }, - indexAtSource: 10, guarded: false, multiline: false, dontGenerate: false, diff --git a/libs/importer/spec/test-data/onepassword-1pux/email-account.ts b/libs/importer/spec/test-data/onepassword-1pux/email-account.ts index a6de6b55b2..0d94973ec2 100644 --- a/libs/importer/spec/test-data/onepassword-1pux/email-account.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/email-account.ts @@ -26,7 +26,7 @@ export const EmailAccountData: ExportData = { favIndex: 0, createdAt: 1619466428, updatedAt: 1619466585, - trashed: false, + state: "active", categoryUuid: "111", details: { loginFields: [], @@ -41,7 +41,6 @@ export const EmailAccountData: ExportData = { value: { menu: "either", }, - indexAtSource: 0, guarded: false, multiline: false, dontGenerate: false, @@ -57,7 +56,6 @@ export const EmailAccountData: ExportData = { value: { string: "someuser@nullvalue.test", }, - indexAtSource: 1, guarded: false, multiline: false, dontGenerate: false, @@ -73,7 +71,6 @@ export const EmailAccountData: ExportData = { value: { string: "mailserver.nullvalue.test", }, - indexAtSource: 2, guarded: false, multiline: false, dontGenerate: false, @@ -89,7 +86,6 @@ export const EmailAccountData: ExportData = { value: { string: "587", }, - indexAtSource: 3, guarded: false, multiline: false, dontGenerate: false, @@ -105,7 +101,6 @@ export const EmailAccountData: ExportData = { value: { concealed: "u1jsf v.attrs.type === VaultAttributeTypeEnum.Personal); account.vaults.forEach((vault: VaultsEntity) => { vault.items.forEach((item: Item) => { - if (item.trashed === true) { + if (item.state === "archived") { return; } diff --git a/libs/importer/src/importers/onepassword/types/onepassword-1pux-importer-types.ts b/libs/importer/src/importers/onepassword/types/onepassword-1pux-importer-types.ts index ebb5238654..353fcf1337 100644 --- a/libs/importer/src/importers/onepassword/types/onepassword-1pux-importer-types.ts +++ b/libs/importer/src/importers/onepassword/types/onepassword-1pux-importer-types.ts @@ -53,7 +53,7 @@ export interface Item { favIndex: number; createdAt: number; updatedAt: number; - trashed?: boolean; + state: "active" | "archived"; categoryUuid: string; details: Details; overview: Overview; @@ -88,12 +88,12 @@ export interface SectionsEntity { title: string; name?: string | null; fields?: FieldsEntity[] | null; + hideAddAnotherField?: boolean | null; } export interface FieldsEntity { title: string; id: string; value: Value; - indexAtSource: number; guarded: boolean; multiline: boolean; dontGenerate: boolean; @@ -153,6 +153,8 @@ export interface Overview { pbe?: number | null; pgrng?: boolean | null; tags?: string[] | null; + icons?: string | null; + watchtowerExclusions?: string | null; } export interface UrlsEntity { label: string;