From 80dd6efae389e1e9d2b167cbde66e86e331bce05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Thu, 1 Dec 2022 13:16:45 +0100 Subject: [PATCH 1/7] feat(settings): replace setting with a domain entity --- .pnp.cjs | 1 + packages/auth/bin/backup.ts | 28 ++++---- packages/auth/bin/user_email_backup.ts | 2 +- ...8504691-move_mfa_items_to_user_settings.ts | 2 +- .../auth/src/Controller/AdminController.ts | 4 +- .../SubscriptionTokensController.ts | 2 +- .../ExtensionKeyGrantedEventHandler.ts | 2 +- .../ListedAccountCreatedEventHandler.ts | 4 +- .../ListedAccountDeletedEventHandler.ts | 4 +- .../SubscriptionReassignedEventHandler.ts | 2 +- .../SubscriptionSyncRequestedEventHandler.ts | 2 +- .../auth/src/Domain/Session/SessionService.ts | 2 +- .../auth/src/Domain/Setting/FindSettingDTO.ts | 3 +- .../Domain/Setting/SettingInterpreter.spec.ts | 30 ++++---- .../src/Domain/Setting/SettingInterpreter.ts | 51 +++++++------- .../Setting/SettingRepositoryInterface.ts | 5 +- .../src/Domain/Setting/SettingService.spec.ts | 8 +-- .../auth/src/Domain/Setting/SettingService.ts | 3 +- .../SettingsAssociationService.spec.ts | 24 ++++--- .../Setting/SettingsAssociationService.ts | 68 +++++++++---------- .../SettingsAssociationServiceInterface.ts | 14 ++-- .../UseCase/GetSetting/GetSetting.spec.ts | 6 +- .../Domain/UseCase/GetSetting/GetSetting.ts | 3 +- .../UseCase/GetSettings/GetSettings.spec.ts | 2 +- .../UpdateSetting/UpdateSetting.spec.ts | 8 +-- .../UseCase/UpdateSetting/UpdateSetting.ts | 14 ++-- .../auth/src/Domain/UseCase/VerifyMFA.spec.ts | 6 +- packages/auth/src/Domain/UseCase/VerifyMFA.ts | 2 +- .../VerifyPredicate/VerifyPredicate.ts | 5 +- .../src/Infra/MySQL/MySQLSettingRepository.ts | 5 +- .../Domain/Common/RoleNameCollection.spec.ts | 13 ++++ .../src/Domain/Common/Timestamps.spec.ts | 21 ++++++ .../src/Domain/Common/Timestamps.ts | 30 ++++++++ .../src/Domain/Common/TimestampsProps.ts | 4 ++ .../Encryption/EncryptionVersion.spec.ts | 28 ++++++++ .../Domain/Encryption/EncryptionVersion.ts | 33 +++++++++ .../Encryption/EncryptionVersionProps.ts | 3 + packages/domain-core/src/Domain/index.ts | 5 ++ packages/settings/package.json | 1 + .../Domain/Setting/SensitiveSettingName.ts | 3 - .../settings/src/Domain/Setting/Setting.ts | 17 +++++ .../src/Domain/Setting/SettingName.ts | 59 +++++++++++----- .../src/Domain/Setting/SettingNameProps.ts | 3 + .../src/Domain/Setting/SettingProps.ts | 12 ++++ packages/settings/src/Domain/index.ts | 1 - .../src/Infra/HTTP/AuthHttpService.spec.ts | 4 +- yarn.lock | 1 + 47 files changed, 370 insertions(+), 180 deletions(-) create mode 100644 packages/domain-core/src/Domain/Common/Timestamps.spec.ts create mode 100644 packages/domain-core/src/Domain/Common/Timestamps.ts create mode 100644 packages/domain-core/src/Domain/Common/TimestampsProps.ts create mode 100644 packages/domain-core/src/Domain/Encryption/EncryptionVersion.spec.ts create mode 100644 packages/domain-core/src/Domain/Encryption/EncryptionVersion.ts create mode 100644 packages/domain-core/src/Domain/Encryption/EncryptionVersionProps.ts delete mode 100644 packages/settings/src/Domain/Setting/SensitiveSettingName.ts create mode 100644 packages/settings/src/Domain/Setting/Setting.ts create mode 100644 packages/settings/src/Domain/Setting/SettingNameProps.ts create mode 100644 packages/settings/src/Domain/Setting/SettingProps.ts diff --git a/.pnp.cjs b/.pnp.cjs index 6e143b2ed..99d650e3d 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -3137,6 +3137,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./packages/settings/",\ "packageDependencies": [\ ["@standardnotes/settings", "workspace:packages/settings"],\ + ["@standardnotes/domain-core", "workspace:packages/domain-core"],\ ["@typescript-eslint/eslint-plugin", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:5.30.5"],\ ["eslint-plugin-prettier", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:4.2.1"],\ ["reflect-metadata", "npm:0.1.13"],\ diff --git a/packages/auth/bin/backup.ts b/packages/auth/bin/backup.ts index e0f6e524f..a6b5f14a9 100644 --- a/packages/auth/bin/backup.ts +++ b/packages/auth/bin/backup.ts @@ -30,38 +30,38 @@ const requestBackups = async ( domainEventFactory: DomainEventFactoryInterface, domainEventPublisher: DomainEventPublisherInterface, ): Promise => { - let settingName: SettingName, + let settingName: string, permissionName: PermissionName, - muteEmailsSettingName: SettingName, + muteEmailsSettingName: string, muteEmailsSettingValue: string, - providerTokenSettingName: SettingName + providerTokenSettingName: string switch (backupProvider) { case 'email': - settingName = SettingName.EmailBackupFrequency + settingName = SettingName.NAMES.EmailBackupFrequency permissionName = PermissionName.DailyEmailBackup - muteEmailsSettingName = SettingName.MuteFailedBackupsEmails + muteEmailsSettingName = SettingName.NAMES.MuteFailedBackupsEmails muteEmailsSettingValue = MuteFailedBackupsEmailsOption.Muted break case 'dropbox': - settingName = SettingName.DropboxBackupFrequency + settingName = SettingName.NAMES.DropboxBackupFrequency permissionName = PermissionName.DailyDropboxBackup - muteEmailsSettingName = SettingName.MuteFailedCloudBackupsEmails + muteEmailsSettingName = SettingName.NAMES.MuteFailedCloudBackupsEmails muteEmailsSettingValue = MuteFailedCloudBackupsEmailsOption.Muted - providerTokenSettingName = SettingName.DropboxBackupToken + providerTokenSettingName = SettingName.NAMES.DropboxBackupToken break case 'one_drive': - settingName = SettingName.OneDriveBackupFrequency + settingName = SettingName.NAMES.OneDriveBackupFrequency permissionName = PermissionName.DailyOneDriveBackup - muteEmailsSettingName = SettingName.MuteFailedCloudBackupsEmails + muteEmailsSettingName = SettingName.NAMES.MuteFailedCloudBackupsEmails muteEmailsSettingValue = MuteFailedCloudBackupsEmailsOption.Muted - providerTokenSettingName = SettingName.OneDriveBackupToken + providerTokenSettingName = SettingName.NAMES.OneDriveBackupToken break case 'google_drive': - settingName = SettingName.GoogleDriveBackupFrequency + settingName = SettingName.NAMES.GoogleDriveBackupFrequency permissionName = PermissionName.DailyGDriveBackup - muteEmailsSettingName = SettingName.MuteFailedCloudBackupsEmails + muteEmailsSettingName = SettingName.NAMES.MuteFailedCloudBackupsEmails muteEmailsSettingValue = MuteFailedCloudBackupsEmailsOption.Muted - providerTokenSettingName = SettingName.GoogleDriveBackupToken + providerTokenSettingName = SettingName.NAMES.GoogleDriveBackupToken break default: throw new Error(`Not handled backup provider: ${backupProvider}`) diff --git a/packages/auth/bin/user_email_backup.ts b/packages/auth/bin/user_email_backup.ts index ce3288c14..f12ad4c75 100644 --- a/packages/auth/bin/user_email_backup.ts +++ b/packages/auth/bin/user_email_backup.ts @@ -28,7 +28,7 @@ const requestBackups = async ( domainEventPublisher: DomainEventPublisherInterface, ): Promise => { const permissionName = PermissionName.DailyEmailBackup - const muteEmailsSettingName = SettingName.MuteFailedBackupsEmails + const muteEmailsSettingName = SettingName.NAMES.MuteFailedBackupsEmails const muteEmailsSettingValue = MuteFailedBackupsEmailsOption.Muted if (!backupEmail) { diff --git a/packages/auth/migrations/1627638504691-move_mfa_items_to_user_settings.ts b/packages/auth/migrations/1627638504691-move_mfa_items_to_user_settings.ts index ae4f64b2a..ed2dd1dee 100644 --- a/packages/auth/migrations/1627638504691-move_mfa_items_to_user_settings.ts +++ b/packages/auth/migrations/1627638504691-move_mfa_items_to_user_settings.ts @@ -34,7 +34,7 @@ export class moveMfaItemsToUserSettings1627638504691 implements MigrationInterfa const setting = new Setting() setting.uuid = item['uuid'] - setting.name = SettingName.MfaSecret + setting.name = SettingName.NAMES.MfaSecret setting.value = item['content'] if (item['deleted']) { setting.value = null diff --git a/packages/auth/src/Controller/AdminController.ts b/packages/auth/src/Controller/AdminController.ts index 765ae1502..a9156f6a8 100644 --- a/packages/auth/src/Controller/AdminController.ts +++ b/packages/auth/src/Controller/AdminController.ts @@ -69,7 +69,7 @@ export class AdminController extends BaseHttpController { const result = await this.doDeleteSetting.execute({ uuid, userUuid, - settingName: SettingName.MfaSecret, + settingName: SettingName.NAMES.MfaSecret, timestamp: updatedAt, softDelete: true, }) @@ -115,7 +115,7 @@ export class AdminController extends BaseHttpController { const result = await this.doDeleteSetting.execute({ userUuid, - settingName: SettingName.EmailBackupFrequency, + settingName: SettingName.NAMES.EmailBackupFrequency, }) if (result.success) { diff --git a/packages/auth/src/Controller/SubscriptionTokensController.ts b/packages/auth/src/Controller/SubscriptionTokensController.ts index 106773db6..20022cefe 100644 --- a/packages/auth/src/Controller/SubscriptionTokensController.ts +++ b/packages/auth/src/Controller/SubscriptionTokensController.ts @@ -77,7 +77,7 @@ export class SubscriptionTokensController extends BaseHttpController { const user = authenticateTokenResponse.user as User let extensionKey = undefined const extensionKeySetting = await this.settingService.findSettingWithDecryptedValue({ - settingName: SettingName.ExtensionKey, + settingName: SettingName.NAMES.ExtensionKey, userUuid: user.uuid, }) if (extensionKeySetting !== null) { diff --git a/packages/auth/src/Domain/Handler/ExtensionKeyGrantedEventHandler.ts b/packages/auth/src/Domain/Handler/ExtensionKeyGrantedEventHandler.ts index 07c94d729..1da0c3ca3 100644 --- a/packages/auth/src/Domain/Handler/ExtensionKeyGrantedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/ExtensionKeyGrantedEventHandler.ts @@ -54,7 +54,7 @@ export class ExtensionKeyGrantedEventHandler implements DomainEventHandlerInterf await this.settingService.createOrReplace({ user, props: { - name: SettingName.ExtensionKey, + name: SettingName.NAMES.ExtensionKey, unencryptedValue: event.payload.extensionKey, serverEncryptionVersion: EncryptionVersion.Default, sensitive: true, diff --git a/packages/auth/src/Domain/Handler/ListedAccountCreatedEventHandler.ts b/packages/auth/src/Domain/Handler/ListedAccountCreatedEventHandler.ts index 1ab394497..1772259e0 100644 --- a/packages/auth/src/Domain/Handler/ListedAccountCreatedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/ListedAccountCreatedEventHandler.ts @@ -28,7 +28,7 @@ export class ListedAccountCreatedEventHandler implements DomainEventHandlerInter let authSecrets: ListedAuthorSecretsData = [newSecret] const listedAuthorSecretsSetting = await this.settingService.findSettingWithDecryptedValue({ - settingName: SettingName.ListedAuthorSecrets, + settingName: SettingName.NAMES.ListedAuthorSecrets, userUuid: user.uuid, }) if (listedAuthorSecretsSetting !== null) { @@ -40,7 +40,7 @@ export class ListedAccountCreatedEventHandler implements DomainEventHandlerInter await this.settingService.createOrReplace({ user, props: { - name: SettingName.ListedAuthorSecrets, + name: SettingName.NAMES.ListedAuthorSecrets, unencryptedValue: JSON.stringify(authSecrets), sensitive: false, }, diff --git a/packages/auth/src/Domain/Handler/ListedAccountDeletedEventHandler.ts b/packages/auth/src/Domain/Handler/ListedAccountDeletedEventHandler.ts index 945a73728..0bf54a9a1 100644 --- a/packages/auth/src/Domain/Handler/ListedAccountDeletedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/ListedAccountDeletedEventHandler.ts @@ -24,7 +24,7 @@ export class ListedAccountDeletedEventHandler implements DomainEventHandlerInter } const listedAuthorSecretsSetting = await this.settingService.findSettingWithDecryptedValue({ - settingName: SettingName.ListedAuthorSecrets, + settingName: SettingName.NAMES.ListedAuthorSecrets, userUuid: user.uuid, }) if (listedAuthorSecretsSetting === null) { @@ -43,7 +43,7 @@ export class ListedAccountDeletedEventHandler implements DomainEventHandlerInter await this.settingService.createOrReplace({ user, props: { - name: SettingName.ListedAuthorSecrets, + name: SettingName.NAMES.ListedAuthorSecrets, unencryptedValue: JSON.stringify(filteredSecrets), sensitive: false, }, diff --git a/packages/auth/src/Domain/Handler/SubscriptionReassignedEventHandler.ts b/packages/auth/src/Domain/Handler/SubscriptionReassignedEventHandler.ts index cb5abd69a..0bec79621 100644 --- a/packages/auth/src/Domain/Handler/SubscriptionReassignedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/SubscriptionReassignedEventHandler.ts @@ -48,7 +48,7 @@ export class SubscriptionReassignedEventHandler implements DomainEventHandlerInt await this.settingService.createOrReplace({ user, props: { - name: SettingName.ExtensionKey, + name: SettingName.NAMES.ExtensionKey, unencryptedValue: event.payload.extensionKey, serverEncryptionVersion: EncryptionVersion.Default, sensitive: true, diff --git a/packages/auth/src/Domain/Handler/SubscriptionSyncRequestedEventHandler.ts b/packages/auth/src/Domain/Handler/SubscriptionSyncRequestedEventHandler.ts index fb0cfbbd4..f55b2c2da 100644 --- a/packages/auth/src/Domain/Handler/SubscriptionSyncRequestedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/SubscriptionSyncRequestedEventHandler.ts @@ -95,7 +95,7 @@ export class SubscriptionSyncRequestedEventHandler implements DomainEventHandler await this.settingService.createOrReplace({ user, props: { - name: SettingName.ExtensionKey, + name: SettingName.NAMES.ExtensionKey, unencryptedValue: event.payload.extensionKey, serverEncryptionVersion: EncryptionVersion.Default, sensitive: true, diff --git a/packages/auth/src/Domain/Session/SessionService.ts b/packages/auth/src/Domain/Session/SessionService.ts index a392846c2..e0fea620f 100644 --- a/packages/auth/src/Domain/Session/SessionService.ts +++ b/packages/auth/src/Domain/Session/SessionService.ts @@ -291,7 +291,7 @@ export class SessionService implements SessionServiceInterface { private async isLoggingUserAgentEnabledOnSessions(user: User): Promise { const loggingSetting = await this.settingService.findSettingWithDecryptedValue({ - settingName: SettingName.LogSessionUserAgent, + settingName: SettingName.NAMES.LogSessionUserAgent, userUuid: user.uuid, }) diff --git a/packages/auth/src/Domain/Setting/FindSettingDTO.ts b/packages/auth/src/Domain/Setting/FindSettingDTO.ts index d341870bb..82f65b727 100644 --- a/packages/auth/src/Domain/Setting/FindSettingDTO.ts +++ b/packages/auth/src/Domain/Setting/FindSettingDTO.ts @@ -1,8 +1,7 @@ import { Uuid } from '@standardnotes/common' -import { SettingName } from '@standardnotes/settings' export type FindSettingDTO = { userUuid: string - settingName: SettingName + settingName: string settingUuid?: Uuid } diff --git a/packages/auth/src/Domain/Setting/SettingInterpreter.spec.ts b/packages/auth/src/Domain/Setting/SettingInterpreter.spec.ts index c3b0af950..f6ca416bc 100644 --- a/packages/auth/src/Domain/Setting/SettingInterpreter.spec.ts +++ b/packages/auth/src/Domain/Setting/SettingInterpreter.spec.ts @@ -71,7 +71,7 @@ describe('SettingInterpreter', () => { it('should trigger session cleanup if user is disabling session user agent logging', async () => { const setting = { - name: SettingName.LogSessionUserAgent, + name: SettingName.NAMES.LogSessionUserAgent, value: LogSessionUserAgentOption.Disabled, } as jest.Mocked @@ -86,7 +86,7 @@ describe('SettingInterpreter', () => { it('should trigger backup if email backup setting is created - emails not muted', async () => { const setting = { - name: SettingName.EmailBackupFrequency, + name: SettingName.NAMES.EmailBackupFrequency, value: EmailBackupFrequency.Daily, } as jest.Mocked @@ -98,11 +98,11 @@ describe('SettingInterpreter', () => { it('should trigger backup if email backup setting is created - emails muted', async () => { const setting = { - name: SettingName.EmailBackupFrequency, + name: SettingName.NAMES.EmailBackupFrequency, value: EmailBackupFrequency.Daily, } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue({ - name: SettingName.MuteFailedBackupsEmails, + name: SettingName.NAMES.MuteFailedBackupsEmails, uuid: '6-7-8', value: 'muted', } as jest.Mocked) @@ -115,7 +115,7 @@ describe('SettingInterpreter', () => { it('should not trigger backup if email backup setting is disabled', async () => { const setting = { - name: SettingName.EmailBackupFrequency, + name: SettingName.NAMES.EmailBackupFrequency, value: EmailBackupFrequency.Disabled, } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue(null) @@ -128,7 +128,7 @@ describe('SettingInterpreter', () => { it('should trigger cloud backup if dropbox backup setting is created', async () => { const setting = { - name: SettingName.DropboxBackupToken, + name: SettingName.NAMES.DropboxBackupToken, value: 'test-token', } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue(null) @@ -147,11 +147,11 @@ describe('SettingInterpreter', () => { it('should trigger cloud backup if dropbox backup setting is created - muted emails', async () => { const setting = { - name: SettingName.DropboxBackupToken, + name: SettingName.NAMES.DropboxBackupToken, value: 'test-token', } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue({ - name: SettingName.MuteFailedCloudBackupsEmails, + name: SettingName.NAMES.MuteFailedCloudBackupsEmails, uuid: '6-7-8', value: 'muted', } as jest.Mocked) @@ -170,7 +170,7 @@ describe('SettingInterpreter', () => { it('should trigger cloud backup if google drive backup setting is created', async () => { const setting = { - name: SettingName.GoogleDriveBackupToken, + name: SettingName.NAMES.GoogleDriveBackupToken, value: 'test-token', } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue(null) @@ -189,7 +189,7 @@ describe('SettingInterpreter', () => { it('should trigger cloud backup if one drive backup setting is created', async () => { const setting = { - name: SettingName.OneDriveBackupToken, + name: SettingName.NAMES.OneDriveBackupToken, value: 'test-token', } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue(null) @@ -225,13 +225,13 @@ describe('SettingInterpreter', () => { it('should trigger cloud backup if backup frequency setting is updated and a backup token setting is present', async () => { settingRepository.findLastByNameAndUserUuid = jest.fn().mockReturnValueOnce({ - name: SettingName.OneDriveBackupToken, + name: SettingName.NAMES.OneDriveBackupToken, serverEncryptionVersion: 1, value: 'encrypted-backup-token', sensitive: true, } as jest.Mocked) const setting = { - name: SettingName.OneDriveBackupFrequency, + name: SettingName.NAMES.OneDriveBackupFrequency, serverEncryptionVersion: 0, value: 'daily', sensitive: false, @@ -251,13 +251,13 @@ describe('SettingInterpreter', () => { it('should not trigger cloud backup if backup frequency setting is updated as disabled', async () => { settingRepository.findLastByNameAndUserUuid = jest.fn().mockReturnValueOnce({ - name: SettingName.OneDriveBackupToken, + name: SettingName.NAMES.OneDriveBackupToken, serverEncryptionVersion: 1, value: 'encrypted-backup-token', sensitive: true, } as jest.Mocked) const setting = { - name: SettingName.OneDriveBackupFrequency, + name: SettingName.NAMES.OneDriveBackupFrequency, serverEncryptionVersion: 0, value: OneDriveBackupFrequency.Disabled, sensitive: false, @@ -272,7 +272,7 @@ describe('SettingInterpreter', () => { it('should not trigger cloud backup if backup frequency setting is updated and a backup token setting is not present', async () => { settingRepository.findLastByNameAndUserUuid = jest.fn().mockReturnValueOnce(null) const setting = { - name: SettingName.OneDriveBackupFrequency, + name: SettingName.NAMES.OneDriveBackupFrequency, serverEncryptionVersion: 0, value: 'daily', sensitive: false, diff --git a/packages/auth/src/Domain/Setting/SettingInterpreter.ts b/packages/auth/src/Domain/Setting/SettingInterpreter.ts index 12df19e8d..1d9bd104a 100644 --- a/packages/auth/src/Domain/Setting/SettingInterpreter.ts +++ b/packages/auth/src/Domain/Setting/SettingInterpreter.ts @@ -23,15 +23,15 @@ import { SettingRepositoryInterface } from './SettingRepositoryInterface' @injectable() export class SettingInterpreter implements SettingInterpreterInterface { private readonly cloudBackupTokenSettings = [ - SettingName.DropboxBackupToken, - SettingName.GoogleDriveBackupToken, - SettingName.OneDriveBackupToken, + SettingName.NAMES.DropboxBackupToken, + SettingName.NAMES.GoogleDriveBackupToken, + SettingName.NAMES.OneDriveBackupToken, ] private readonly cloudBackupFrequencySettings = [ - SettingName.DropboxBackupFrequency, - SettingName.GoogleDriveBackupFrequency, - SettingName.OneDriveBackupFrequency, + SettingName.NAMES.DropboxBackupFrequency, + SettingName.NAMES.GoogleDriveBackupFrequency, + SettingName.NAMES.OneDriveBackupFrequency, ] private readonly cloudBackupFrequencyDisabledValues = [ @@ -77,7 +77,7 @@ export class SettingInterpreter implements SettingInterpreterInterface { let userHasEmailsMuted = false let muteEmailsSettingUuid = '' const muteFailedEmailsBackupSetting = await this.settingRepository.findOneByNameAndUserUuid( - SettingName.MuteFailedBackupsEmails, + SettingName.NAMES.MuteFailedBackupsEmails, userUuid, ) if (muteFailedEmailsBackupSetting !== null) { @@ -100,13 +100,13 @@ export class SettingInterpreter implements SettingInterpreterInterface { } private isEnablingEmailBackupSetting(setting: Setting): boolean { - return setting.name === SettingName.EmailBackupFrequency && setting.value !== EmailBackupFrequency.Disabled + return setting.name === SettingName.NAMES.EmailBackupFrequency && setting.value !== EmailBackupFrequency.Disabled } private isEnablingCloudBackupSetting(setting: Setting): boolean { return ( - (this.cloudBackupFrequencySettings.includes(setting.name as SettingName) || - this.cloudBackupTokenSettings.includes(setting.name as SettingName)) && + (this.cloudBackupFrequencySettings.includes(setting.name) || + this.cloudBackupTokenSettings.includes(setting.name)) && !this.cloudBackupFrequencyDisabledValues.includes( setting.value as DropboxBackupFrequency | OneDriveBackupFrequency | GoogleDriveBackupFrequency, ) @@ -114,7 +114,9 @@ export class SettingInterpreter implements SettingInterpreterInterface { } private isDisablingSessionUserAgentLogging(setting: Setting): boolean { - return SettingName.LogSessionUserAgent === setting.name && LogSessionUserAgentOption.Disabled === setting.value + return ( + SettingName.NAMES.LogSessionUserAgent === setting.name && LogSessionUserAgentOption.Disabled === setting.value + ) } private async triggerEmailSubscriptionChange( @@ -144,29 +146,26 @@ export class SettingInterpreter implements SettingInterpreterInterface { let cloudProvider let tokenSettingName switch (setting.name) { - case SettingName.DropboxBackupToken: - case SettingName.DropboxBackupFrequency: + case SettingName.NAMES.DropboxBackupToken: + case SettingName.NAMES.DropboxBackupFrequency: cloudProvider = 'DROPBOX' - tokenSettingName = SettingName.DropboxBackupToken + tokenSettingName = SettingName.NAMES.DropboxBackupToken break - case SettingName.GoogleDriveBackupToken: - case SettingName.GoogleDriveBackupFrequency: + case SettingName.NAMES.GoogleDriveBackupToken: + case SettingName.NAMES.GoogleDriveBackupFrequency: cloudProvider = 'GOOGLE_DRIVE' - tokenSettingName = SettingName.GoogleDriveBackupToken + tokenSettingName = SettingName.NAMES.GoogleDriveBackupToken break - case SettingName.OneDriveBackupToken: - case SettingName.OneDriveBackupFrequency: + case SettingName.NAMES.OneDriveBackupToken: + case SettingName.NAMES.OneDriveBackupFrequency: cloudProvider = 'ONE_DRIVE' - tokenSettingName = SettingName.OneDriveBackupToken + tokenSettingName = SettingName.NAMES.OneDriveBackupToken break } let backupToken = null - if (this.cloudBackupFrequencySettings.includes(setting.name as SettingName)) { - const tokenSetting = await this.settingRepository.findLastByNameAndUserUuid( - tokenSettingName as SettingName, - userUuid, - ) + if (this.cloudBackupFrequencySettings.includes(setting.name)) { + const tokenSetting = await this.settingRepository.findLastByNameAndUserUuid(tokenSettingName as string, userUuid) if (tokenSetting !== null) { backupToken = await this.settingDecrypter.decryptSettingValue(tokenSetting, userUuid) } @@ -183,7 +182,7 @@ export class SettingInterpreter implements SettingInterpreterInterface { let userHasEmailsMuted = false let muteEmailsSettingUuid = '' const muteFailedCloudBackupSetting = await this.settingRepository.findOneByNameAndUserUuid( - SettingName.MuteFailedCloudBackupsEmails, + SettingName.NAMES.MuteFailedCloudBackupsEmails, userUuid, ) if (muteFailedCloudBackupSetting !== null) { diff --git a/packages/auth/src/Domain/Setting/SettingRepositoryInterface.ts b/packages/auth/src/Domain/Setting/SettingRepositoryInterface.ts index b09e4e1e1..edecd808e 100644 --- a/packages/auth/src/Domain/Setting/SettingRepositoryInterface.ts +++ b/packages/auth/src/Domain/Setting/SettingRepositoryInterface.ts @@ -1,16 +1,15 @@ import { ReadStream } from 'fs' -import { SettingName } from '@standardnotes/settings' import { DeleteSettingDto } from '../UseCase/DeleteSetting/DeleteSettingDto' import { Setting } from './Setting' export interface SettingRepositoryInterface { findOneByUuid(uuid: string): Promise - findOneByUuidAndNames(uuid: string, names: SettingName[]): Promise + findOneByUuidAndNames(uuid: string, names: string[]): Promise findOneByNameAndUserUuid(name: string, userUuid: string): Promise findLastByNameAndUserUuid(name: string, userUuid: string): Promise findAllByUserUuid(userUuid: string): Promise - streamAllByNameAndValue(name: SettingName, value: string): Promise + streamAllByNameAndValue(name: string, value: string): Promise deleteByUserUuid(dto: DeleteSettingDto): Promise save(setting: Setting): Promise } diff --git a/packages/auth/src/Domain/Setting/SettingService.spec.ts b/packages/auth/src/Domain/Setting/SettingService.spec.ts index 6888ef895..1e6ed4ce2 100644 --- a/packages/auth/src/Domain/Setting/SettingService.spec.ts +++ b/packages/auth/src/Domain/Setting/SettingService.spec.ts @@ -54,7 +54,7 @@ describe('SettingService', () => { settingsAssociationService.getDefaultSettingsAndValuesForNewUser = jest.fn().mockReturnValue( new Map([ [ - SettingName.MuteSignInEmails, + SettingName.NAMES.MuteSignInEmails, { value: MuteSignInEmailsOption.NotMuted, sensitive: 0, @@ -67,7 +67,7 @@ describe('SettingService', () => { settingsAssociationService.getDefaultSettingsAndValuesForNewVaultAccount = jest.fn().mockReturnValue( new Map([ [ - SettingName.LogSessionUserAgent, + SettingName.NAMES.LogSessionUserAgent, { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, @@ -173,9 +173,7 @@ describe('SettingService', () => { settingRepository.findLastByNameAndUserUuid = jest.fn().mockReturnValue(setting) - expect( - await createService().findSettingWithDecryptedValue({ userUuid: '1-2-3', settingName: 'test' as SettingName }), - ).toEqual({ + expect(await createService().findSettingWithDecryptedValue({ userUuid: '1-2-3', settingName: 'test' })).toEqual({ serverEncryptionVersion: 1, value: 'decrypted', }) diff --git a/packages/auth/src/Domain/Setting/SettingService.ts b/packages/auth/src/Domain/Setting/SettingService.ts index 09a1b76e4..654929f47 100644 --- a/packages/auth/src/Domain/Setting/SettingService.ts +++ b/packages/auth/src/Domain/Setting/SettingService.ts @@ -1,4 +1,3 @@ -import { SettingName } from '@standardnotes/settings' import { inject, injectable } from 'inversify' import { Logger } from 'winston' import TYPES from '../../Bootstrap/Types' @@ -74,7 +73,7 @@ export class SettingService implements SettingServiceInterface { const existing = await this.findSettingWithDecryptedValue({ userUuid: user.uuid, - settingName: props.name as SettingName, + settingName: props.name, settingUuid: props.uuid, }) diff --git a/packages/auth/src/Domain/Setting/SettingsAssociationService.spec.ts b/packages/auth/src/Domain/Setting/SettingsAssociationService.spec.ts index 2748072a7..390fea339 100644 --- a/packages/auth/src/Domain/Setting/SettingsAssociationService.spec.ts +++ b/packages/auth/src/Domain/Setting/SettingsAssociationService.spec.ts @@ -11,52 +11,54 @@ describe('SettingsAssociationService', () => { const createService = () => new SettingsAssociationService() it('should tell if a setting is mutable by the client', () => { - expect(createService().isSettingMutableByClient(SettingName.DropboxBackupFrequency)).toBeTruthy() + expect(createService().isSettingMutableByClient(SettingName.NAMES.DropboxBackupFrequency)).toBeTruthy() }) it('should tell if a setting is immutable by the client', () => { - expect(createService().isSettingMutableByClient(SettingName.ListedAuthorSecrets)).toBeFalsy() + expect(createService().isSettingMutableByClient(SettingName.NAMES.ListedAuthorSecrets)).toBeFalsy() }) it('should return default encryption version for a setting which enecryption version is not strictly defined', () => { - expect(createService().getEncryptionVersionForSetting(SettingName.MfaSecret)).toEqual(EncryptionVersion.Default) + expect(createService().getEncryptionVersionForSetting(SettingName.NAMES.MfaSecret)).toEqual( + EncryptionVersion.Default, + ) }) it('should return a defined encryption version for a setting which enecryption version is strictly defined', () => { - expect(createService().getEncryptionVersionForSetting(SettingName.EmailBackupFrequency)).toEqual( + expect(createService().getEncryptionVersionForSetting(SettingName.NAMES.EmailBackupFrequency)).toEqual( EncryptionVersion.Unencrypted, ) }) it('should return default sensitivity for a setting which sensitivity is not strictly defined', () => { - expect(createService().getSensitivityForSetting(SettingName.DropboxBackupToken)).toBeTruthy() + expect(createService().getSensitivityForSetting(SettingName.NAMES.DropboxBackupToken)).toBeTruthy() }) it('should return a defined sensitivity for a setting which sensitivity is strictly defined', () => { - expect(createService().getSensitivityForSetting(SettingName.DropboxBackupFrequency)).toBeFalsy() + expect(createService().getSensitivityForSetting(SettingName.NAMES.DropboxBackupFrequency)).toBeFalsy() }) it('should return the default set of settings for a newly registered user', () => { const settings = createService().getDefaultSettingsAndValuesForNewUser() - const flatSettings = [...(settings as Map).keys()] + const flatSettings = [...(settings as Map).keys()] expect(flatSettings).toEqual(['MUTE_SIGN_IN_EMAILS', 'MUTE_MARKETING_EMAILS', 'LOG_SESSION_USER_AGENT']) }) it('should return the default set of settings for a newly registered vault account', () => { const settings = createService().getDefaultSettingsAndValuesForNewVaultAccount() - const flatSettings = [...(settings as Map).keys()] + const flatSettings = [...(settings as Map).keys()] expect(flatSettings).toEqual(['MUTE_SIGN_IN_EMAILS', 'MUTE_MARKETING_EMAILS', 'LOG_SESSION_USER_AGENT']) - expect(settings.get(SettingName.LogSessionUserAgent)?.value).toEqual('disabled') + expect(settings.get(SettingName.NAMES.LogSessionUserAgent)?.value).toEqual('disabled') }) it('should return a permission name associated to a given setting', () => { - expect(createService().getPermissionAssociatedWithSetting(SettingName.EmailBackupFrequency)).toEqual( + expect(createService().getPermissionAssociatedWithSetting(SettingName.NAMES.EmailBackupFrequency)).toEqual( PermissionName.DailyEmailBackup, ) }) it('should not return a permission name if not associated to a given setting', () => { - expect(createService().getPermissionAssociatedWithSetting(SettingName.ExtensionKey)).toBeUndefined() + expect(createService().getPermissionAssociatedWithSetting(SettingName.NAMES.ExtensionKey)).toBeUndefined() }) }) diff --git a/packages/auth/src/Domain/Setting/SettingsAssociationService.ts b/packages/auth/src/Domain/Setting/SettingsAssociationService.ts index 5894dbf38..e6b1fdcd1 100644 --- a/packages/auth/src/Domain/Setting/SettingsAssociationService.ts +++ b/packages/auth/src/Domain/Setting/SettingsAssociationService.ts @@ -15,39 +15,39 @@ import { SettingsAssociationServiceInterface } from './SettingsAssociationServic @injectable() export class SettingsAssociationService implements SettingsAssociationServiceInterface { private readonly UNENCRYPTED_SETTINGS = [ - SettingName.EmailBackupFrequency, - SettingName.MuteFailedBackupsEmails, - SettingName.MuteFailedCloudBackupsEmails, - SettingName.MuteSignInEmails, - SettingName.MuteMarketingEmails, - SettingName.DropboxBackupFrequency, - SettingName.GoogleDriveBackupFrequency, - SettingName.OneDriveBackupFrequency, - SettingName.LogSessionUserAgent, + SettingName.NAMES.EmailBackupFrequency, + SettingName.NAMES.MuteFailedBackupsEmails, + SettingName.NAMES.MuteFailedCloudBackupsEmails, + SettingName.NAMES.MuteSignInEmails, + SettingName.NAMES.MuteMarketingEmails, + SettingName.NAMES.DropboxBackupFrequency, + SettingName.NAMES.GoogleDriveBackupFrequency, + SettingName.NAMES.OneDriveBackupFrequency, + SettingName.NAMES.LogSessionUserAgent, ] private readonly UNSENSITIVE_SETTINGS = [ - SettingName.DropboxBackupFrequency, - SettingName.GoogleDriveBackupFrequency, - SettingName.OneDriveBackupFrequency, - SettingName.EmailBackupFrequency, - SettingName.MuteFailedBackupsEmails, - SettingName.MuteFailedCloudBackupsEmails, - SettingName.MuteSignInEmails, - SettingName.MuteMarketingEmails, - SettingName.ListedAuthorSecrets, - SettingName.LogSessionUserAgent, + SettingName.NAMES.DropboxBackupFrequency, + SettingName.NAMES.GoogleDriveBackupFrequency, + SettingName.NAMES.OneDriveBackupFrequency, + SettingName.NAMES.EmailBackupFrequency, + SettingName.NAMES.MuteFailedBackupsEmails, + SettingName.NAMES.MuteFailedCloudBackupsEmails, + SettingName.NAMES.MuteSignInEmails, + SettingName.NAMES.MuteMarketingEmails, + SettingName.NAMES.ListedAuthorSecrets, + SettingName.NAMES.LogSessionUserAgent, ] - private readonly CLIENT_IMMUTABLE_SETTINGS = [SettingName.ListedAuthorSecrets] + private readonly CLIENT_IMMUTABLE_SETTINGS = [SettingName.NAMES.ListedAuthorSecrets] - private readonly permissionsAssociatedWithSettings = new Map([ - [SettingName.EmailBackupFrequency, PermissionName.DailyEmailBackup], + private readonly permissionsAssociatedWithSettings = new Map([ + [SettingName.NAMES.EmailBackupFrequency, PermissionName.DailyEmailBackup], ]) - private readonly defaultSettings = new Map([ + private readonly defaultSettings = new Map([ [ - SettingName.MuteSignInEmails, + SettingName.NAMES.MuteSignInEmails, { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, @@ -56,7 +56,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt }, ], [ - SettingName.MuteMarketingEmails, + SettingName.NAMES.MuteMarketingEmails, { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, @@ -65,7 +65,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt }, ], [ - SettingName.LogSessionUserAgent, + SettingName.NAMES.LogSessionUserAgent, { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, @@ -75,9 +75,9 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt ], ]) - private readonly vaultAccountDefaultSettingsOverwrites = new Map([ + private readonly vaultAccountDefaultSettingsOverwrites = new Map([ [ - SettingName.LogSessionUserAgent, + SettingName.NAMES.LogSessionUserAgent, { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, @@ -87,7 +87,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt ], ]) - isSettingMutableByClient(settingName: SettingName): boolean { + isSettingMutableByClient(settingName: string): boolean { if (this.CLIENT_IMMUTABLE_SETTINGS.includes(settingName)) { return false } @@ -95,7 +95,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt return true } - getSensitivityForSetting(settingName: SettingName): boolean { + getSensitivityForSetting(settingName: string): boolean { if (this.UNSENSITIVE_SETTINGS.includes(settingName)) { return false } @@ -103,7 +103,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt return true } - getEncryptionVersionForSetting(settingName: SettingName): EncryptionVersion { + getEncryptionVersionForSetting(settingName: string): EncryptionVersion { if (this.UNENCRYPTED_SETTINGS.includes(settingName)) { return EncryptionVersion.Unencrypted } @@ -111,7 +111,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt return EncryptionVersion.Default } - getPermissionAssociatedWithSetting(settingName: SettingName): PermissionName | undefined { + getPermissionAssociatedWithSetting(settingName: string): PermissionName | undefined { if (!this.permissionsAssociatedWithSettings.has(settingName)) { return undefined } @@ -119,11 +119,11 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt return this.permissionsAssociatedWithSettings.get(settingName) } - getDefaultSettingsAndValuesForNewUser(): Map { + getDefaultSettingsAndValuesForNewUser(): Map { return this.defaultSettings } - getDefaultSettingsAndValuesForNewVaultAccount(): Map { + getDefaultSettingsAndValuesForNewVaultAccount(): Map { const defaultVaultSettings = new Map(this.defaultSettings) for (const vaultAccountDefaultSettingOverwriteKey of this.vaultAccountDefaultSettingsOverwrites.keys()) { diff --git a/packages/auth/src/Domain/Setting/SettingsAssociationServiceInterface.ts b/packages/auth/src/Domain/Setting/SettingsAssociationServiceInterface.ts index 3e7cce194..69c1f208d 100644 --- a/packages/auth/src/Domain/Setting/SettingsAssociationServiceInterface.ts +++ b/packages/auth/src/Domain/Setting/SettingsAssociationServiceInterface.ts @@ -1,13 +1,13 @@ import { PermissionName } from '@standardnotes/features' -import { SettingName, SubscriptionSettingName } from '@standardnotes/settings' +import { SubscriptionSettingName } from '@standardnotes/settings' import { EncryptionVersion } from '../Encryption/EncryptionVersion' import { SettingDescription } from './SettingDescription' export interface SettingsAssociationServiceInterface { - getDefaultSettingsAndValuesForNewUser(): Map - getDefaultSettingsAndValuesForNewVaultAccount(): Map - getPermissionAssociatedWithSetting(settingName: SettingName): PermissionName | undefined - getEncryptionVersionForSetting(settingName: SettingName): EncryptionVersion - getSensitivityForSetting(settingName: SettingName): boolean - isSettingMutableByClient(settingName: SettingName | SubscriptionSettingName): boolean + getDefaultSettingsAndValuesForNewUser(): Map + getDefaultSettingsAndValuesForNewVaultAccount(): Map + getPermissionAssociatedWithSetting(settingName: string): PermissionName | undefined + getEncryptionVersionForSetting(settingName: string): EncryptionVersion + getSensitivityForSetting(settingName: string): boolean + isSettingMutableByClient(settingName: string | SubscriptionSettingName): boolean } diff --git a/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.spec.ts b/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.spec.ts index 0d7ec9540..ebfa3ba02 100644 --- a/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.spec.ts +++ b/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.spec.ts @@ -45,12 +45,12 @@ describe('GetSetting', () => { it('should not retrieve a sensitive setting for user', async () => { setting = { sensitive: true, - name: SettingName.MfaSecret, + name: SettingName.NAMES.MfaSecret, } as jest.Mocked settingService.findSettingWithDecryptedValue = jest.fn().mockReturnValue(setting) - expect(await createUseCase().execute({ userUuid: '1-2-3', settingName: SettingName.MfaSecret })).toEqual({ + expect(await createUseCase().execute({ userUuid: '1-2-3', settingName: SettingName.NAMES.MfaSecret })).toEqual({ success: true, sensitive: true, }) @@ -59,7 +59,7 @@ describe('GetSetting', () => { it('should retrieve a sensitive setting for user if explicitly told to', async () => { setting = { sensitive: true, - name: SettingName.MfaSecret, + name: SettingName.NAMES.MfaSecret, } as jest.Mocked settingService.findSettingWithDecryptedValue = jest.fn().mockReturnValue(setting) diff --git a/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.ts b/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.ts index e78041fec..4a2cc15b7 100644 --- a/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.ts +++ b/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.ts @@ -1,4 +1,3 @@ -import { SettingName } from '@standardnotes/settings' import { inject, injectable } from 'inversify' import { GetSettingDto } from './GetSettingDto' import { GetSettingResponse } from './GetSettingResponse' @@ -19,7 +18,7 @@ export class GetSetting implements UseCaseInterface { const setting = await this.settingService.findSettingWithDecryptedValue({ userUuid, - settingName: settingName as SettingName, + settingName: settingName, }) if (setting === null) { diff --git a/packages/auth/src/Domain/UseCase/GetSettings/GetSettings.spec.ts b/packages/auth/src/Domain/UseCase/GetSettings/GetSettings.spec.ts index 60c92195e..22cd2b93b 100644 --- a/packages/auth/src/Domain/UseCase/GetSettings/GetSettings.spec.ts +++ b/packages/auth/src/Domain/UseCase/GetSettings/GetSettings.spec.ts @@ -31,7 +31,7 @@ describe('GetSettings', () => { } as jest.Mocked mfaSetting = { - name: SettingName.MfaSecret, + name: SettingName.NAMES.MfaSecret, updatedAt: 122, sensitive: true, } as jest.Mocked diff --git a/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.spec.ts b/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.spec.ts index 8caf2ab15..93a42c7aa 100644 --- a/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.spec.ts +++ b/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.spec.ts @@ -59,7 +59,7 @@ describe('UpdateSetting', () => { it('should create a setting', async () => { const props = { - name: SettingName.ExtensionKey, + name: SettingName.NAMES.ExtensionKey, unencryptedValue: 'test-setting-value', serverEncryptionVersion: EncryptionVersion.Default, sensitive: false, @@ -88,7 +88,7 @@ describe('UpdateSetting', () => { userRepository.findOneByUuid = jest.fn().mockReturnValue(null) const props = { - name: SettingName.ExtensionKey, + name: SettingName.NAMES.ExtensionKey, unencryptedValue: 'test-setting-value', serverEncryptionVersion: EncryptionVersion.Unencrypted, sensitive: false, @@ -136,7 +136,7 @@ describe('UpdateSetting', () => { roleService.userHasPermission = jest.fn().mockReturnValue(false) const props = { - name: SettingName.ExtensionKey, + name: SettingName.NAMES.ExtensionKey, unencryptedValue: 'test-setting-value', serverEncryptionVersion: EncryptionVersion.Unencrypted, sensitive: false, @@ -159,7 +159,7 @@ describe('UpdateSetting', () => { settingsAssociationService.isSettingMutableByClient = jest.fn().mockReturnValue(false) const props = { - name: SettingName.ExtensionKey, + name: SettingName.NAMES.ExtensionKey, unencryptedValue: 'test-setting-value', serverEncryptionVersion: EncryptionVersion.Unencrypted, sensitive: false, diff --git a/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.ts b/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.ts index b626703f7..6955290d4 100644 --- a/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.ts +++ b/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.ts @@ -25,7 +25,7 @@ export class UpdateSetting implements UseCaseInterface { ) {} async execute(dto: UpdateSettingDto): Promise { - if (!Object.values(SettingName).includes(dto.props.name as SettingName)) { + if (!Object.values(SettingName.NAMES).includes(dto.props.name)) { return { success: false, error: { @@ -51,7 +51,7 @@ export class UpdateSetting implements UseCaseInterface { } } - if (!(await this.userHasPermissionToUpdateSetting(user, props.name as SettingName))) { + if (!(await this.userHasPermissionToUpdateSetting(user, props.name))) { return { success: false, error: { @@ -61,10 +61,8 @@ export class UpdateSetting implements UseCaseInterface { } } - props.serverEncryptionVersion = this.settingsAssociationService.getEncryptionVersionForSetting( - props.name as SettingName, - ) - props.sensitive = this.settingsAssociationService.getSensitivityForSetting(props.name as SettingName) + props.serverEncryptionVersion = this.settingsAssociationService.getEncryptionVersionForSetting(props.name) + props.sensitive = this.settingsAssociationService.getSensitivityForSetting(props.name) const response = await this.settingService.createOrReplace({ user, @@ -91,8 +89,8 @@ export class UpdateSetting implements UseCaseInterface { throw new Error(`Unrecognized status: ${exhaustiveCheck}!`) } - private async userHasPermissionToUpdateSetting(user: User, settingName: SettingName): Promise { - const settingIsMutableByClient = await this.settingsAssociationService.isSettingMutableByClient(settingName) + private async userHasPermissionToUpdateSetting(user: User, settingName: string): Promise { + const settingIsMutableByClient = this.settingsAssociationService.isSettingMutableByClient(settingName) if (!settingIsMutableByClient) { return false } diff --git a/packages/auth/src/Domain/UseCase/VerifyMFA.spec.ts b/packages/auth/src/Domain/UseCase/VerifyMFA.spec.ts index a2a8f19be..4111cecfd 100644 --- a/packages/auth/src/Domain/UseCase/VerifyMFA.spec.ts +++ b/packages/auth/src/Domain/UseCase/VerifyMFA.spec.ts @@ -36,7 +36,7 @@ describe('VerifyMFA', () => { lockRepository.lockSuccessfullOTP = jest.fn() setting = { - name: SettingName.MfaSecret, + name: SettingName.NAMES.MfaSecret, value: 'shhhh', } as jest.Mocked @@ -58,7 +58,7 @@ describe('VerifyMFA', () => { it('should pass MFA verification if user has MFA deleted', async () => { setting = { - name: SettingName.MfaSecret, + name: SettingName.NAMES.MfaSecret, value: null, } as jest.Mocked @@ -148,7 +148,7 @@ describe('VerifyMFA', () => { it('should not pass MFA verification if mfa is not correct', async () => { setting = { - name: SettingName.MfaSecret, + name: SettingName.NAMES.MfaSecret, value: 'shhhh2', } as jest.Mocked diff --git a/packages/auth/src/Domain/UseCase/VerifyMFA.ts b/packages/auth/src/Domain/UseCase/VerifyMFA.ts index 0a2a4f7c6..30f819741 100644 --- a/packages/auth/src/Domain/UseCase/VerifyMFA.ts +++ b/packages/auth/src/Domain/UseCase/VerifyMFA.ts @@ -50,7 +50,7 @@ export class VerifyMFA implements UseCaseInterface { const mfaSecret = await this.settingService.findSettingWithDecryptedValue({ userUuid: user.uuid, - settingName: SettingName.MfaSecret, + settingName: SettingName.NAMES.MfaSecret, }) if (mfaSecret === null || mfaSecret.value === null) { return { diff --git a/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.ts b/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.ts index ebb5a10cb..b6b4a4269 100644 --- a/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.ts +++ b/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.ts @@ -40,7 +40,10 @@ export class VerifyPredicate implements UseCaseInterface { } private async hasUserEnabledEmailBackups(userUuid: Uuid): Promise { - const setting = await this.settingRepository.findOneByNameAndUserUuid(SettingName.EmailBackupFrequency, userUuid) + const setting = await this.settingRepository.findOneByNameAndUserUuid( + SettingName.NAMES.EmailBackupFrequency, + userUuid, + ) if (setting === null || setting.value === EmailBackupFrequency.Disabled) { return false diff --git a/packages/auth/src/Infra/MySQL/MySQLSettingRepository.ts b/packages/auth/src/Infra/MySQL/MySQLSettingRepository.ts index 0e1be9e81..1d4bca4ba 100644 --- a/packages/auth/src/Infra/MySQL/MySQLSettingRepository.ts +++ b/packages/auth/src/Infra/MySQL/MySQLSettingRepository.ts @@ -1,4 +1,3 @@ -import { SettingName } from '@standardnotes/settings' import { ReadStream } from 'fs' import { inject, injectable } from 'inversify' import { Repository } from 'typeorm' @@ -18,7 +17,7 @@ export class MySQLSettingRepository implements SettingRepositoryInterface { return this.ormRepository.save(setting) } - async findOneByUuidAndNames(uuid: string, names: SettingName[]): Promise { + async findOneByUuidAndNames(uuid: string, names: string[]): Promise { return this.ormRepository .createQueryBuilder('setting') .where('setting.uuid = :uuid AND setting.name IN (:...names)', { @@ -28,7 +27,7 @@ export class MySQLSettingRepository implements SettingRepositoryInterface { .getOne() } - async streamAllByNameAndValue(name: SettingName, value: string): Promise { + async streamAllByNameAndValue(name: string, value: string): Promise { return this.ormRepository .createQueryBuilder('setting') .where('setting.name = :name AND setting.value = :value', { diff --git a/packages/domain-core/src/Domain/Common/RoleNameCollection.spec.ts b/packages/domain-core/src/Domain/Common/RoleNameCollection.spec.ts index 484a5dfef..936c8d183 100644 --- a/packages/domain-core/src/Domain/Common/RoleNameCollection.spec.ts +++ b/packages/domain-core/src/Domain/Common/RoleNameCollection.spec.ts @@ -35,6 +35,19 @@ describe('RoleNameCollection', () => { expect(valueOrError.getValue().equals(roles2)).toBeFalsy() }) + it('should tell if collections are not equal', () => { + const roles1 = [RoleName.create('PRO_USER').getValue(), RoleName.create('PLUS_USER').getValue()] + + const roles2 = RoleNameCollection.create([ + RoleName.create('PRO_USER').getValue(), + RoleName.create('PLUS_USER').getValue(), + RoleName.create('CORE_USER').getValue(), + ]).getValue() + + const valueOrError = RoleNameCollection.create(roles1) + expect(valueOrError.getValue().equals(roles2)).toBeFalsy() + }) + it('should tell if collections are equal', () => { const roles1 = [ RoleName.create(RoleName.NAMES.ProUser).getValue(), diff --git a/packages/domain-core/src/Domain/Common/Timestamps.spec.ts b/packages/domain-core/src/Domain/Common/Timestamps.spec.ts new file mode 100644 index 000000000..21cf25893 --- /dev/null +++ b/packages/domain-core/src/Domain/Common/Timestamps.spec.ts @@ -0,0 +1,21 @@ +import { Timestamps } from './Timestamps' + +describe('Timestamps', () => { + it('should create a value object', () => { + const valueOrError = Timestamps.create(1, 2) + + expect(valueOrError.isFailed()).toBeFalsy() + expect(valueOrError.getValue().createdAt).toEqual(1) + expect(valueOrError.getValue().updatedAt).toEqual(2) + }) + + it('should not create an invalid value object', () => { + let valueOrError = Timestamps.create(null as unknown as number, 'b' as unknown as number) + + expect(valueOrError.isFailed()).toBeTruthy() + + valueOrError = Timestamps.create(2, 'a' as unknown as number) + + expect(valueOrError.isFailed()).toBeTruthy() + }) +}) diff --git a/packages/domain-core/src/Domain/Common/Timestamps.ts b/packages/domain-core/src/Domain/Common/Timestamps.ts new file mode 100644 index 000000000..4682f0517 --- /dev/null +++ b/packages/domain-core/src/Domain/Common/Timestamps.ts @@ -0,0 +1,30 @@ +import { Result } from '../Core/Result' +import { ValueObject } from '../Core/ValueObject' +import { TimestampsProps } from './TimestampsProps' + +export class Timestamps extends ValueObject { + get createdAt(): number { + return this.props.createdAt + } + + get updatedAt(): number { + return this.props.updatedAt + } + + private constructor(props: TimestampsProps) { + super(props) + } + + static create(createdAt: number, updatedAt: number): Result { + if (isNaN(createdAt) || createdAt === null || createdAt === undefined) { + return Result.fail( + `Could not create Timestamps. Creation date should be a number, given: ${createdAt}`, + ) + } + if (isNaN(updatedAt) || updatedAt === null || updatedAt === undefined) { + return Result.fail(`Could not create Timestamps. Update date should be a number, given: ${createdAt}`) + } + + return Result.ok(new Timestamps({ createdAt, updatedAt })) + } +} diff --git a/packages/domain-core/src/Domain/Common/TimestampsProps.ts b/packages/domain-core/src/Domain/Common/TimestampsProps.ts new file mode 100644 index 000000000..ea52e32e4 --- /dev/null +++ b/packages/domain-core/src/Domain/Common/TimestampsProps.ts @@ -0,0 +1,4 @@ +export interface TimestampsProps { + createdAt: number + updatedAt: number +} diff --git a/packages/domain-core/src/Domain/Encryption/EncryptionVersion.spec.ts b/packages/domain-core/src/Domain/Encryption/EncryptionVersion.spec.ts new file mode 100644 index 000000000..125a95f0a --- /dev/null +++ b/packages/domain-core/src/Domain/Encryption/EncryptionVersion.spec.ts @@ -0,0 +1,28 @@ +import { EncryptionVersion } from './EncryptionVersion' + +describe('EncryptionVersion', () => { + it('should create a value object', () => { + const valueOrError = EncryptionVersion.create(1) + + expect(valueOrError.isFailed()).toBeFalsy() + expect(valueOrError.getValue().value).toEqual(1) + }) + + it('should not create an invalid value object', () => { + let valueOrError = EncryptionVersion.create('asd' as unknown as number) + + expect(valueOrError.isFailed()).toBeTruthy() + + valueOrError = EncryptionVersion.create(null as unknown as number) + + expect(valueOrError.isFailed()).toBeTruthy() + + valueOrError = EncryptionVersion.create(undefined as unknown as number) + + expect(valueOrError.isFailed()).toBeTruthy() + + valueOrError = EncryptionVersion.create(754) + + expect(valueOrError.isFailed()).toBeTruthy() + }) +}) diff --git a/packages/domain-core/src/Domain/Encryption/EncryptionVersion.ts b/packages/domain-core/src/Domain/Encryption/EncryptionVersion.ts new file mode 100644 index 000000000..07e648211 --- /dev/null +++ b/packages/domain-core/src/Domain/Encryption/EncryptionVersion.ts @@ -0,0 +1,33 @@ +import { Result } from '../Core/Result' +import { ValueObject } from '../Core/ValueObject' +import { EncryptionVersionProps } from './EncryptionVersionProps' + +export class EncryptionVersion extends ValueObject { + static readonly VERSIONS = { + Unencrypted: 0, + Default: 1, + } + + get value(): number { + return this.props.value + } + + private constructor(props: EncryptionVersionProps) { + super(props) + } + + static create(version: number): Result { + if ( + isNaN(version) || + version === null || + version === undefined || + !Object.values(this.VERSIONS).includes(version) + ) { + return Result.fail( + `Could not create EncryptionVersion. Version should be a number, given: ${version}`, + ) + } + + return Result.ok(new EncryptionVersion({ value: version })) + } +} diff --git a/packages/domain-core/src/Domain/Encryption/EncryptionVersionProps.ts b/packages/domain-core/src/Domain/Encryption/EncryptionVersionProps.ts new file mode 100644 index 000000000..d7965f802 --- /dev/null +++ b/packages/domain-core/src/Domain/Encryption/EncryptionVersionProps.ts @@ -0,0 +1,3 @@ +export interface EncryptionVersionProps { + value: number +} diff --git a/packages/domain-core/src/Domain/index.ts b/packages/domain-core/src/Domain/index.ts index d50f9a794..af45a1c0c 100644 --- a/packages/domain-core/src/Domain/index.ts +++ b/packages/domain-core/src/Domain/index.ts @@ -8,6 +8,8 @@ export * from './Common/RoleNameCollection' export * from './Common/RoleNameCollectionProps' export * from './Common/Username' export * from './Common/UsernameProps' +export * from './Common/Timestamps' +export * from './Common/TimestampsProps' export * from './Common/Uuid' export * from './Common/UuidProps' @@ -23,6 +25,9 @@ export * from './Core/ValueObjectProps' export * from './Email/EmailLevel' export * from './Email/EmailLevelProps' +export * from './Encryption/EncryptionVersion' +export * from './Encryption/EncryptionVersionProps' + export * from './Mapping/MapperInterface' export * from './Subscription/SubscriptionPlanName' diff --git a/packages/settings/package.json b/packages/settings/package.json index bee9407f9..6d08b5b66 100644 --- a/packages/settings/package.json +++ b/packages/settings/package.json @@ -29,6 +29,7 @@ "typescript": "^4.8.4" }, "dependencies": { + "@standardnotes/domain-core": "workspace:^", "reflect-metadata": "^0.1.13" } } diff --git a/packages/settings/src/Domain/Setting/SensitiveSettingName.ts b/packages/settings/src/Domain/Setting/SensitiveSettingName.ts deleted file mode 100644 index de0a88455..000000000 --- a/packages/settings/src/Domain/Setting/SensitiveSettingName.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { SettingName } from './SettingName' - -export type SensitiveSettingName = SettingName.MfaSecret | SettingName.ExtensionKey diff --git a/packages/settings/src/Domain/Setting/Setting.ts b/packages/settings/src/Domain/Setting/Setting.ts new file mode 100644 index 000000000..fd8c359bb --- /dev/null +++ b/packages/settings/src/Domain/Setting/Setting.ts @@ -0,0 +1,17 @@ +import { Entity, Result, UniqueEntityId } from '@standardnotes/domain-core' + +import { SettingProps } from './SettingProps' + +export class Setting extends Entity { + get id(): UniqueEntityId { + return this._id + } + + private constructor(props: SettingProps, id?: UniqueEntityId) { + super(props, id) + } + + static create(props: SettingProps, id?: UniqueEntityId): Result { + return Result.ok(new Setting(props, id)) + } +} diff --git a/packages/settings/src/Domain/Setting/SettingName.ts b/packages/settings/src/Domain/Setting/SettingName.ts index f9451eb94..579f0cf0c 100644 --- a/packages/settings/src/Domain/Setting/SettingName.ts +++ b/packages/settings/src/Domain/Setting/SettingName.ts @@ -1,17 +1,44 @@ -export enum SettingName { - MfaSecret = 'MFA_SECRET', - ExtensionKey = 'EXTENSION_KEY', - EmailBackupFrequency = 'EMAIL_BACKUP_FREQUENCY', - DropboxBackupFrequency = 'DROPBOX_BACKUP_FREQUENCY', - DropboxBackupToken = 'DROPBOX_BACKUP_TOKEN', - OneDriveBackupFrequency = 'ONE_DRIVE_BACKUP_FREQUENCY', - OneDriveBackupToken = 'ONE_DRIVE_BACKUP_TOKEN', - GoogleDriveBackupFrequency = 'GOOGLE_DRIVE_BACKUP_FREQUENCY', - GoogleDriveBackupToken = 'GOOGLE_DRIVE_BACKUP_TOKEN', - MuteFailedBackupsEmails = 'MUTE_FAILED_BACKUPS_EMAILS', - MuteFailedCloudBackupsEmails = 'MUTE_FAILED_CLOUD_BACKUPS_EMAILS', - MuteSignInEmails = 'MUTE_SIGN_IN_EMAILS', - MuteMarketingEmails = 'MUTE_MARKETING_EMAILS', - ListedAuthorSecrets = 'LISTED_AUTHOR_SECRETS', - LogSessionUserAgent = 'LOG_SESSION_USER_AGENT', +import { Result, ValueObject } from '@standardnotes/domain-core' + +import { SettingNameProps } from './SettingNameProps' + +export class SettingName extends ValueObject { + static readonly NAMES = { + MfaSecret: 'MFA_SECRET', + ExtensionKey: 'EXTENSION_KEY', + EmailBackupFrequency: 'EMAIL_BACKUP_FREQUENCY', + DropboxBackupFrequency: 'DROPBOX_BACKUP_FREQUENCY', + DropboxBackupToken: 'DROPBOX_BACKUP_TOKEN', + OneDriveBackupFrequency: 'ONE_DRIVE_BACKUP_FREQUENCY', + OneDriveBackupToken: 'ONE_DRIVE_BACKUP_TOKEN', + GoogleDriveBackupFrequency: 'GOOGLE_DRIVE_BACKUP_FREQUENCY', + GoogleDriveBackupToken: 'GOOGLE_DRIVE_BACKUP_TOKEN', + MuteFailedBackupsEmails: 'MUTE_FAILED_BACKUPS_EMAILS', + MuteFailedCloudBackupsEmails: 'MUTE_FAILED_CLOUD_BACKUPS_EMAILS', + MuteSignInEmails: 'MUTE_SIGN_IN_EMAILS', + MuteMarketingEmails: 'MUTE_MARKETING_EMAILS', + ListedAuthorSecrets: 'LISTED_AUTHOR_SECRETS', + LogSessionUserAgent: 'LOG_SESSION_USER_AGENT', + } + + get value(): string { + return this.props.value + } + + isSensitive(): boolean { + return [SettingName.NAMES.MfaSecret, SettingName.NAMES.ExtensionKey].includes(this.value) + } + + private constructor(props: SettingNameProps) { + super(props) + } + + static create(name: string): Result { + const isValidName = Object.values(this.NAMES).includes(name) + if (!isValidName) { + return Result.fail(`Invalid setting name: ${name}`) + } else { + return Result.ok(new SettingName({ value: name })) + } + } } diff --git a/packages/settings/src/Domain/Setting/SettingNameProps.ts b/packages/settings/src/Domain/Setting/SettingNameProps.ts new file mode 100644 index 000000000..51f006672 --- /dev/null +++ b/packages/settings/src/Domain/Setting/SettingNameProps.ts @@ -0,0 +1,3 @@ +export interface SettingNameProps { + value: string +} diff --git a/packages/settings/src/Domain/Setting/SettingProps.ts b/packages/settings/src/Domain/Setting/SettingProps.ts new file mode 100644 index 000000000..edb4b38aa --- /dev/null +++ b/packages/settings/src/Domain/Setting/SettingProps.ts @@ -0,0 +1,12 @@ +import { EncryptionVersion, Timestamps, Uuid } from '@standardnotes/domain-core' + +import { SettingName } from './SettingName' + +export interface SettingProps { + userUuid: Uuid + name: SettingName + value: string | null + serverEncryptionVersion: EncryptionVersion + sensitive: boolean + timestamps: Timestamps +} diff --git a/packages/settings/src/Domain/index.ts b/packages/settings/src/Domain/index.ts index ef06eb721..9a7475300 100644 --- a/packages/settings/src/Domain/index.ts +++ b/packages/settings/src/Domain/index.ts @@ -9,6 +9,5 @@ export * from './MuteFailedCloudBackupsEmails/MuteFailedCloudBackupsEmailsOption export * from './MuteMarketingEmails/MuteMarketingEmailsOption' export * from './MuteSignInEmails/MuteSignInEmailsOption' export * from './OneDriveBackupFrequency/OneDriveBackupFrequency' -export * from './Setting/SensitiveSettingName' export * from './Setting/SettingName' export * from './Setting/SubscriptionSettingName' diff --git a/packages/syncing-server/src/Infra/HTTP/AuthHttpService.spec.ts b/packages/syncing-server/src/Infra/HTTP/AuthHttpService.spec.ts index 5e7fc84c4..55ce6a7f1 100644 --- a/packages/syncing-server/src/Infra/HTTP/AuthHttpService.spec.ts +++ b/packages/syncing-server/src/Infra/HTTP/AuthHttpService.spec.ts @@ -49,7 +49,7 @@ describe('AuthHttpService', () => { }, }) - await createService().getUserSetting('1-2-3', SettingName.MuteFailedBackupsEmails) + await createService().getUserSetting('1-2-3', SettingName.NAMES.MuteFailedBackupsEmails) expect(httpClient.request).toHaveBeenCalledWith({ method: 'GET', @@ -64,7 +64,7 @@ describe('AuthHttpService', () => { it('should throw an error if a request to auth service in order to get user setting fails', async () => { let error = null try { - await createService().getUserSetting('1-2-3', SettingName.MuteFailedCloudBackupsEmails) + await createService().getUserSetting('1-2-3', SettingName.NAMES.MuteFailedCloudBackupsEmails) } catch (caughtError) { error = caughtError } diff --git a/yarn.lock b/yarn.lock index 3748a9664..f7e5fb092 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2359,6 +2359,7 @@ __metadata: version: 0.0.0-use.local resolution: "@standardnotes/settings@workspace:packages/settings" dependencies: + "@standardnotes/domain-core": "workspace:^" "@typescript-eslint/eslint-plugin": "npm:^5.30.0" eslint-plugin-prettier: "npm:^4.2.1" reflect-metadata: "npm:^0.1.13" From 65d31f011b241b4ca6181875cf796fa67c8a1517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Thu, 1 Dec 2022 14:18:36 +0100 Subject: [PATCH 2/7] chore: remove settings dependency from all packages --- .pnp.cjs | 45 ++++-- packages/auth/bin/backup.ts | 15 +- packages/auth/bin/user_email_backup.ts | 4 +- ...8504691-move_mfa_items_to_user_settings.ts | 2 +- packages/auth/package.json | 1 - .../auth/src/Controller/AdminController.ts | 2 +- .../SubscriptionSettingsController.ts | 3 +- .../SubscriptionTokensController.ts | 2 +- .../ExtensionKeyGrantedEventHandler.ts | 2 +- .../Domain/Handler/FileRemovedEventHandler.ts | 6 +- .../Handler/FileUploadedEventHandler.ts | 6 +- .../ListedAccountCreatedEventHandler.ts | 6 +- .../ListedAccountDeletedEventHandler.ts | 6 +- .../SubscriptionReassignedEventHandler.ts | 2 +- .../SubscriptionSyncRequestedEventHandler.ts | 2 +- .../src/Domain/Session/SessionService.spec.ts | 3 +- .../auth/src/Domain/Session/SessionService.ts | 4 +- .../Setting/FindSubscriptionSettingDTO.ts | 3 +- .../Domain/Setting/SettingInterpreter.spec.ts | 29 ++-- .../src/Domain/Setting/SettingInterpreter.ts | 32 +--- .../src/Domain/Setting/SettingService.spec.ts | 6 +- .../SettingsAssociationService.spec.ts | 2 +- .../Setting/SettingsAssociationService.ts | 15 +- .../SettingsAssociationServiceInterface.ts | 3 +- .../SubscriptionSettingService.spec.ts | 12 +- .../Setting/SubscriptionSettingService.ts | 5 +- ...criptionSettingsAssociationService.spec.ts | 16 +- .../SubscriptionSettingsAssociationService.ts | 15 +- ...tionSettingsAssociationServiceInterface.ts | 3 +- .../CreateValetToken/CreateValetToken.ts | 6 +- .../UseCase/GetSetting/GetSetting.spec.ts | 2 +- .../UseCase/GetSettings/GetSettings.spec.ts | 2 +- .../GetSubscriptionSetting.spec.ts | 16 +- .../GetSubscriptionSettingDTO.ts | 3 +- .../UpdateSetting/UpdateSetting.spec.ts | 2 +- .../UseCase/UpdateSetting/UpdateSetting.ts | 2 +- .../auth/src/Domain/UseCase/VerifyMFA.spec.ts | 2 +- packages/auth/src/Domain/UseCase/VerifyMFA.ts | 2 +- .../VerifyPredicate/VerifyPredicate.spec.ts | 5 +- .../VerifyPredicate/VerifyPredicate.ts | 4 +- .../src/Domain/Setting/SettingName.ts | 5 +- .../src/Domain/Setting/SettingNameProps.ts | 0 packages/domain-core/src/Domain/index.ts | 3 + packages/settings/bin/server.ts | 69 +++++++++ packages/settings/bin/worker.ts | 25 ++++ packages/settings/package.json | 70 ++++++--- packages/settings/src/Bootstrap/Container.ts | 140 ++++++++++++++++++ packages/settings/src/Bootstrap/DataSource.ts | 44 ++++++ packages/settings/src/Bootstrap/Env.ts | 24 +++ packages/settings/src/Bootstrap/Types.ts | 33 +++++ .../src/Domain/Setting/SettingProps.ts | 4 +- .../Domain/Setting/SubscriptionSettingName.ts | 4 - packages/settings/src/Domain/index.ts | 13 -- ...nversifyExpressApiGatewayAuthMiddleware.ts | 60 ++++++++ .../InversifyExpressHealthCheckController.ts | 9 ++ .../src/Infra/TypeORM/TypeORMSetting.ts | 55 +++++++ packages/settings/src/index.ts | 1 - packages/settings/tsconfig.json | 4 +- packages/syncing-server/package.json | 1 - .../src/Infra/HTTP/AuthHttpService.spec.ts | 2 +- yarn.lock | 41 ++++- 61 files changed, 693 insertions(+), 212 deletions(-) rename packages/{settings => domain-core}/src/Domain/Setting/SettingName.ts (88%) rename packages/{settings => domain-core}/src/Domain/Setting/SettingNameProps.ts (100%) create mode 100644 packages/settings/bin/server.ts create mode 100644 packages/settings/bin/worker.ts create mode 100644 packages/settings/src/Bootstrap/Container.ts create mode 100644 packages/settings/src/Bootstrap/DataSource.ts create mode 100644 packages/settings/src/Bootstrap/Env.ts create mode 100644 packages/settings/src/Bootstrap/Types.ts delete mode 100644 packages/settings/src/Domain/Setting/SubscriptionSettingName.ts delete mode 100644 packages/settings/src/Domain/index.ts create mode 100644 packages/settings/src/Infra/InversifyExpress/InversifyExpressApiGatewayAuthMiddleware.ts create mode 100644 packages/settings/src/Infra/InversifyExpress/InversifyExpressHealthCheckController.ts create mode 100644 packages/settings/src/Infra/TypeORM/TypeORMSetting.ts delete mode 100644 packages/settings/src/index.ts diff --git a/.pnp.cjs b/.pnp.cjs index 99d650e3d..6e733c39d 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -66,7 +66,7 @@ const RAW_RUNTIME_STATE = "reference": "workspace:packages/security"\ },\ {\ - "name": "@standardnotes/settings",\ + "name": "@standardnotes/settings-server",\ "reference": "workspace:packages/settings"\ },\ {\ @@ -107,7 +107,7 @@ const RAW_RUNTIME_STATE = ["@standardnotes/scheduler-server", ["workspace:packages/scheduler"]],\ ["@standardnotes/security", ["workspace:packages/security"]],\ ["@standardnotes/server-monorepo", ["workspace:."]],\ - ["@standardnotes/settings", ["workspace:packages/settings"]],\ + ["@standardnotes/settings-server", ["workspace:packages/settings"]],\ ["@standardnotes/sncrypto-node", ["workspace:packages/sncrypto-node"]],\ ["@standardnotes/syncing-server", ["workspace:packages/syncing-server"]],\ ["@standardnotes/time", ["workspace:packages/time"]],\ @@ -2656,7 +2656,6 @@ const RAW_RUNTIME_STATE = ["@standardnotes/predicates", "workspace:packages/predicates"],\ ["@standardnotes/responses", "npm:1.11.1"],\ ["@standardnotes/security", "workspace:packages/security"],\ - ["@standardnotes/settings", "workspace:packages/settings"],\ ["@standardnotes/sncrypto-common", "npm:1.13.0"],\ ["@standardnotes/sncrypto-node", "workspace:packages/sncrypto-node"],\ ["@standardnotes/time", "workspace:packages/time"],\ @@ -3132,16 +3131,45 @@ const RAW_RUNTIME_STATE = "linkType": "SOFT"\ }]\ ]],\ - ["@standardnotes/settings", [\ + ["@standardnotes/settings-server", [\ ["workspace:packages/settings", {\ "packageLocation": "./packages/settings/",\ "packageDependencies": [\ - ["@standardnotes/settings", "workspace:packages/settings"],\ + ["@standardnotes/settings-server", "workspace:packages/settings"],\ + ["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\ + ["@sentry/node", "npm:7.19.0"],\ ["@standardnotes/domain-core", "workspace:packages/domain-core"],\ - ["@typescript-eslint/eslint-plugin", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:5.30.5"],\ - ["eslint-plugin-prettier", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:4.2.1"],\ + ["@standardnotes/domain-events", "workspace:packages/domain-events"],\ + ["@standardnotes/domain-events-infra", "workspace:packages/domain-events-infra"],\ + ["@standardnotes/security", "workspace:packages/security"],\ + ["@standardnotes/time", "workspace:packages/time"],\ + ["@types/cors", "npm:2.8.12"],\ + ["@types/dotenv", "npm:8.2.0"],\ + ["@types/express", "npm:4.17.14"],\ + ["@types/inversify-express-utils", "npm:2.0.0"],\ + ["@types/ioredis", "npm:5.0.0"],\ + ["@types/jest", "npm:29.1.1"],\ + ["@types/newrelic", "npm:7.0.4"],\ + ["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\ + ["aws-sdk", "npm:2.1260.0"],\ + ["cors", "npm:2.8.5"],\ + ["dotenv", "npm:16.0.1"],\ + ["eslint", "npm:8.25.0"],\ + ["eslint-plugin-prettier", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.2.1"],\ + ["express", "npm:4.18.2"],\ + ["helmet", "npm:6.0.0"],\ + ["inversify", "npm:6.0.1"],\ + ["inversify-express-utils", "npm:6.4.3"],\ + ["ioredis", "npm:5.2.4"],\ + ["jest", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:29.1.2"],\ + ["mysql2", "npm:2.3.3"],\ + ["newrelic", "npm:9.6.0"],\ + ["npm-check-updates", "npm:16.0.1"],\ ["reflect-metadata", "npm:0.1.13"],\ - ["typescript", "patch:typescript@npm%3A4.8.4#optional!builtin::version=4.8.4&hash=701156"]\ + ["ts-jest", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:29.0.3"],\ + ["typeorm", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:0.3.10"],\ + ["typescript", "patch:typescript@npm%3A4.8.4#optional!builtin::version=4.8.4&hash=701156"],\ + ["winston", "npm:3.8.2"]\ ],\ "linkType": "SOFT"\ }]\ @@ -3190,7 +3218,6 @@ const RAW_RUNTIME_STATE = ["@standardnotes/payloads", "npm:1.5.1"],\ ["@standardnotes/responses", "npm:1.11.1"],\ ["@standardnotes/security", "workspace:packages/security"],\ - ["@standardnotes/settings", "workspace:packages/settings"],\ ["@standardnotes/time", "workspace:packages/time"],\ ["@types/cors", "npm:2.8.12"],\ ["@types/dotenv", "npm:8.2.0"],\ diff --git a/packages/auth/bin/backup.ts b/packages/auth/bin/backup.ts index a6b5f14a9..2b61dab4a 100644 --- a/packages/auth/bin/backup.ts +++ b/packages/auth/bin/backup.ts @@ -3,20 +3,19 @@ import 'reflect-metadata' import 'newrelic' import { Stream } from 'stream' - import { Logger } from 'winston' import * as dayjs from 'dayjs' import * as utc from 'dayjs/plugin/utc' +import { DomainEventPublisherInterface } from '@standardnotes/domain-events' +import { SettingName } from '@standardnotes/domain-core' +import { PermissionName } from '@standardnotes/features' import { ContainerConfigLoader } from '../src/Bootstrap/Container' import TYPES from '../src/Bootstrap/Types' import { Env } from '../src/Bootstrap/Env' -import { DomainEventPublisherInterface } from '@standardnotes/domain-events' import { DomainEventFactoryInterface } from '../src/Domain/Event/DomainEventFactoryInterface' import { SettingRepositoryInterface } from '../src/Domain/Setting/SettingRepositoryInterface' -import { MuteFailedBackupsEmailsOption, MuteFailedCloudBackupsEmailsOption, SettingName } from '@standardnotes/settings' import { RoleServiceInterface } from '../src/Domain/Role/RoleServiceInterface' -import { PermissionName } from '@standardnotes/features' import { SettingServiceInterface } from '../src/Domain/Setting/SettingServiceInterface' const inputArgs = process.argv.slice(2) @@ -40,27 +39,27 @@ const requestBackups = async ( settingName = SettingName.NAMES.EmailBackupFrequency permissionName = PermissionName.DailyEmailBackup muteEmailsSettingName = SettingName.NAMES.MuteFailedBackupsEmails - muteEmailsSettingValue = MuteFailedBackupsEmailsOption.Muted + muteEmailsSettingValue = 'muted' break case 'dropbox': settingName = SettingName.NAMES.DropboxBackupFrequency permissionName = PermissionName.DailyDropboxBackup muteEmailsSettingName = SettingName.NAMES.MuteFailedCloudBackupsEmails - muteEmailsSettingValue = MuteFailedCloudBackupsEmailsOption.Muted + muteEmailsSettingValue = 'muted' providerTokenSettingName = SettingName.NAMES.DropboxBackupToken break case 'one_drive': settingName = SettingName.NAMES.OneDriveBackupFrequency permissionName = PermissionName.DailyOneDriveBackup muteEmailsSettingName = SettingName.NAMES.MuteFailedCloudBackupsEmails - muteEmailsSettingValue = MuteFailedCloudBackupsEmailsOption.Muted + muteEmailsSettingValue = 'muted' providerTokenSettingName = SettingName.NAMES.OneDriveBackupToken break case 'google_drive': settingName = SettingName.NAMES.GoogleDriveBackupFrequency permissionName = PermissionName.DailyGDriveBackup muteEmailsSettingName = SettingName.NAMES.MuteFailedCloudBackupsEmails - muteEmailsSettingValue = MuteFailedCloudBackupsEmailsOption.Muted + muteEmailsSettingValue = 'muted' providerTokenSettingName = SettingName.NAMES.GoogleDriveBackupToken break default: diff --git a/packages/auth/bin/user_email_backup.ts b/packages/auth/bin/user_email_backup.ts index f12ad4c75..b6fb261f9 100644 --- a/packages/auth/bin/user_email_backup.ts +++ b/packages/auth/bin/user_email_backup.ts @@ -12,7 +12,7 @@ import { Env } from '../src/Bootstrap/Env' import { DomainEventPublisherInterface } from '@standardnotes/domain-events' import { DomainEventFactoryInterface } from '../src/Domain/Event/DomainEventFactoryInterface' import { SettingRepositoryInterface } from '../src/Domain/Setting/SettingRepositoryInterface' -import { MuteFailedBackupsEmailsOption, SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { RoleServiceInterface } from '../src/Domain/Role/RoleServiceInterface' import { PermissionName } from '@standardnotes/features' import { UserRepositoryInterface } from '../src/Domain/User/UserRepositoryInterface' @@ -29,7 +29,7 @@ const requestBackups = async ( ): Promise => { const permissionName = PermissionName.DailyEmailBackup const muteEmailsSettingName = SettingName.NAMES.MuteFailedBackupsEmails - const muteEmailsSettingValue = MuteFailedBackupsEmailsOption.Muted + const muteEmailsSettingValue = 'muted' if (!backupEmail) { throw new Error('Could not trigger email backup for user - missing email parameter') diff --git a/packages/auth/migrations/1627638504691-move_mfa_items_to_user_settings.ts b/packages/auth/migrations/1627638504691-move_mfa_items_to_user_settings.ts index ed2dd1dee..539550756 100644 --- a/packages/auth/migrations/1627638504691-move_mfa_items_to_user_settings.ts +++ b/packages/auth/migrations/1627638504691-move_mfa_items_to_user_settings.ts @@ -1,5 +1,5 @@ import Redis, { Cluster } from 'ioredis' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { MigrationInterface, QueryRunner } from 'typeorm' import { Setting } from '../src/Domain/Setting/Setting' diff --git a/packages/auth/package.json b/packages/auth/package.json index 03a6268f4..6b2005a80 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -41,7 +41,6 @@ "@standardnotes/predicates": "workspace:*", "@standardnotes/responses": "^1.6.39", "@standardnotes/security": "workspace:*", - "@standardnotes/settings": "workspace:*", "@standardnotes/sncrypto-common": "^1.9.0", "@standardnotes/sncrypto-node": "workspace:*", "@standardnotes/time": "workspace:*", diff --git a/packages/auth/src/Controller/AdminController.ts b/packages/auth/src/Controller/AdminController.ts index a9156f6a8..5071e34ac 100644 --- a/packages/auth/src/Controller/AdminController.ts +++ b/packages/auth/src/Controller/AdminController.ts @@ -1,4 +1,4 @@ -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { Request } from 'express' import { inject } from 'inversify' import { diff --git a/packages/auth/src/Controller/SubscriptionSettingsController.ts b/packages/auth/src/Controller/SubscriptionSettingsController.ts index 4b5eecbec..d8c4c6e88 100644 --- a/packages/auth/src/Controller/SubscriptionSettingsController.ts +++ b/packages/auth/src/Controller/SubscriptionSettingsController.ts @@ -1,4 +1,3 @@ -import { SubscriptionSettingName } from '@standardnotes/settings' import { Request, Response } from 'express' import { inject } from 'inversify' import { @@ -21,7 +20,7 @@ export class SubscriptionSettingsController extends BaseHttpController { async getSubscriptionSetting(request: Request, response: Response): Promise { const result = await this.doGetSubscriptionSetting.execute({ userUuid: response.locals.user.uuid, - subscriptionSettingName: request.params.subscriptionSettingName as SubscriptionSettingName, + subscriptionSettingName: request.params.subscriptionSettingName, }) if (result.success) { diff --git a/packages/auth/src/Controller/SubscriptionTokensController.ts b/packages/auth/src/Controller/SubscriptionTokensController.ts index 20022cefe..623c9c767 100644 --- a/packages/auth/src/Controller/SubscriptionTokensController.ts +++ b/packages/auth/src/Controller/SubscriptionTokensController.ts @@ -1,6 +1,6 @@ import { CrossServiceTokenData, TokenEncoderInterface } from '@standardnotes/security' import { ErrorTag, RoleName } from '@standardnotes/common' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { Request, Response } from 'express' import { inject } from 'inversify' import { diff --git a/packages/auth/src/Domain/Handler/ExtensionKeyGrantedEventHandler.ts b/packages/auth/src/Domain/Handler/ExtensionKeyGrantedEventHandler.ts index 1da0c3ca3..b4a5766b2 100644 --- a/packages/auth/src/Domain/Handler/ExtensionKeyGrantedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/ExtensionKeyGrantedEventHandler.ts @@ -1,5 +1,5 @@ import { DomainEventHandlerInterface, ExtensionKeyGrantedEvent } from '@standardnotes/domain-events' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { OfflineFeaturesTokenData } from '@standardnotes/security' import { ContentDecoderInterface } from '@standardnotes/common' import { inject, injectable } from 'inversify' diff --git a/packages/auth/src/Domain/Handler/FileRemovedEventHandler.ts b/packages/auth/src/Domain/Handler/FileRemovedEventHandler.ts index e03a9040c..297415f16 100644 --- a/packages/auth/src/Domain/Handler/FileRemovedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/FileRemovedEventHandler.ts @@ -1,5 +1,5 @@ import { DomainEventHandlerInterface, FileRemovedEvent } from '@standardnotes/domain-events' -import { SubscriptionSettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { inject, injectable } from 'inversify' import { Logger } from 'winston' @@ -38,7 +38,7 @@ export class FileRemovedEventHandler implements DomainEventHandlerInterface { const bytesUsedSetting = await this.subscriptionSettingService.findSubscriptionSettingWithDecryptedValue({ userUuid: user.uuid, userSubscriptionUuid: subscription.uuid, - subscriptionSettingName: SubscriptionSettingName.FileUploadBytesUsed, + subscriptionSettingName: SettingName.NAMES.FileUploadBytesUsed, }) if (bytesUsedSetting === null) { this.logger.warn(`Could not find bytes used setting for user with uuid: ${user.uuid}`) @@ -51,7 +51,7 @@ export class FileRemovedEventHandler implements DomainEventHandlerInterface { await this.subscriptionSettingService.createOrReplace({ userSubscription: subscription, props: { - name: SubscriptionSettingName.FileUploadBytesUsed, + name: SettingName.NAMES.FileUploadBytesUsed, unencryptedValue: (+bytesUsed - byteSize).toString(), sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, diff --git a/packages/auth/src/Domain/Handler/FileUploadedEventHandler.ts b/packages/auth/src/Domain/Handler/FileUploadedEventHandler.ts index 714a8dc04..b87a401ca 100644 --- a/packages/auth/src/Domain/Handler/FileUploadedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/FileUploadedEventHandler.ts @@ -1,5 +1,5 @@ import { DomainEventHandlerInterface, FileUploadedEvent } from '@standardnotes/domain-events' -import { SubscriptionSettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { inject, injectable } from 'inversify' import { Logger } from 'winston' @@ -47,7 +47,7 @@ export class FileUploadedEventHandler implements DomainEventHandlerInterface { const bytesUsedSetting = await this.subscriptionSettingService.findSubscriptionSettingWithDecryptedValue({ userUuid: (await subscription.user).uuid, userSubscriptionUuid: subscription.uuid, - subscriptionSettingName: SubscriptionSettingName.FileUploadBytesUsed, + subscriptionSettingName: SettingName.NAMES.FileUploadBytesUsed, }) if (bytesUsedSetting !== null) { bytesUsed = bytesUsedSetting.value as string @@ -56,7 +56,7 @@ export class FileUploadedEventHandler implements DomainEventHandlerInterface { await this.subscriptionSettingService.createOrReplace({ userSubscription: subscription, props: { - name: SubscriptionSettingName.FileUploadBytesUsed, + name: SettingName.NAMES.FileUploadBytesUsed, unencryptedValue: (+bytesUsed + byteSize).toString(), sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, diff --git a/packages/auth/src/Domain/Handler/ListedAccountCreatedEventHandler.ts b/packages/auth/src/Domain/Handler/ListedAccountCreatedEventHandler.ts index 1772259e0..2ef292686 100644 --- a/packages/auth/src/Domain/Handler/ListedAccountCreatedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/ListedAccountCreatedEventHandler.ts @@ -1,5 +1,5 @@ import { DomainEventHandlerInterface, ListedAccountCreatedEvent } from '@standardnotes/domain-events' -import { ListedAuthorSecretsData, SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { inject, injectable } from 'inversify' import { Logger } from 'winston' @@ -25,14 +25,14 @@ export class ListedAccountCreatedEventHandler implements DomainEventHandlerInter const newSecret = { authorId: event.payload.userId, secret: event.payload.secret, hostUrl: event.payload.hostUrl } - let authSecrets: ListedAuthorSecretsData = [newSecret] + let authSecrets = [newSecret] const listedAuthorSecretsSetting = await this.settingService.findSettingWithDecryptedValue({ settingName: SettingName.NAMES.ListedAuthorSecrets, userUuid: user.uuid, }) if (listedAuthorSecretsSetting !== null) { - const existingSecrets: ListedAuthorSecretsData = JSON.parse(listedAuthorSecretsSetting.value as string) + const existingSecrets = JSON.parse(listedAuthorSecretsSetting.value as string) existingSecrets.push(newSecret) authSecrets = existingSecrets } diff --git a/packages/auth/src/Domain/Handler/ListedAccountDeletedEventHandler.ts b/packages/auth/src/Domain/Handler/ListedAccountDeletedEventHandler.ts index 0bf54a9a1..0fc4d1668 100644 --- a/packages/auth/src/Domain/Handler/ListedAccountDeletedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/ListedAccountDeletedEventHandler.ts @@ -1,5 +1,5 @@ import { DomainEventHandlerInterface, ListedAccountDeletedEvent } from '@standardnotes/domain-events' -import { ListedAuthorSecretsData, SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { inject, injectable } from 'inversify' import { Logger } from 'winston' @@ -33,9 +33,9 @@ export class ListedAccountDeletedEventHandler implements DomainEventHandlerInter return } - const existingSecrets: ListedAuthorSecretsData = JSON.parse(listedAuthorSecretsSetting.value as string) + const existingSecrets = JSON.parse(listedAuthorSecretsSetting.value as string) const filteredSecrets = existingSecrets.filter( - (secret) => + (secret: Record) => secret.authorId !== event.payload.userId || (secret.authorId === event.payload.userId && secret.hostUrl !== event.payload.hostUrl), ) diff --git a/packages/auth/src/Domain/Handler/SubscriptionReassignedEventHandler.ts b/packages/auth/src/Domain/Handler/SubscriptionReassignedEventHandler.ts index 0bec79621..f2e59fd25 100644 --- a/packages/auth/src/Domain/Handler/SubscriptionReassignedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/SubscriptionReassignedEventHandler.ts @@ -10,7 +10,7 @@ import { UserRepositoryInterface } from '../User/UserRepositoryInterface' import { UserSubscription } from '../Subscription/UserSubscription' import { UserSubscriptionRepositoryInterface } from '../Subscription/UserSubscriptionRepositoryInterface' import { SettingServiceInterface } from '../Setting/SettingServiceInterface' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { EncryptionVersion } from '../Encryption/EncryptionVersion' import { UserSubscriptionType } from '../Subscription/UserSubscriptionType' import { SubscriptionSettingServiceInterface } from '../Setting/SubscriptionSettingServiceInterface' diff --git a/packages/auth/src/Domain/Handler/SubscriptionSyncRequestedEventHandler.ts b/packages/auth/src/Domain/Handler/SubscriptionSyncRequestedEventHandler.ts index f55b2c2da..99a3d1061 100644 --- a/packages/auth/src/Domain/Handler/SubscriptionSyncRequestedEventHandler.ts +++ b/packages/auth/src/Domain/Handler/SubscriptionSyncRequestedEventHandler.ts @@ -15,7 +15,7 @@ import { SettingServiceInterface } from '../Setting/SettingServiceInterface' import { OfflineSettingServiceInterface } from '../Setting/OfflineSettingServiceInterface' import { ContentDecoderInterface } from '@standardnotes/common' import { OfflineSettingName } from '../Setting/OfflineSettingName' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { EncryptionVersion } from '../Encryption/EncryptionVersion' import { UserSubscriptionType } from '../Subscription/UserSubscriptionType' import { SubscriptionSettingServiceInterface } from '../Setting/SubscriptionSettingServiceInterface' diff --git a/packages/auth/src/Domain/Session/SessionService.spec.ts b/packages/auth/src/Domain/Session/SessionService.spec.ts index 4140af480..55807adb5 100644 --- a/packages/auth/src/Domain/Session/SessionService.spec.ts +++ b/packages/auth/src/Domain/Session/SessionService.spec.ts @@ -12,7 +12,6 @@ import { EphemeralSession } from './EphemeralSession' import { RevokedSessionRepositoryInterface } from './RevokedSessionRepositoryInterface' import { RevokedSession } from './RevokedSession' import { SettingServiceInterface } from '../Setting/SettingServiceInterface' -import { LogSessionUserAgentOption } from '@standardnotes/settings' import { Setting } from '../Setting/Setting' import { CryptoNode } from '@standardnotes/sncrypto-node' @@ -171,7 +170,7 @@ describe('SessionService', () => { user.uuid = '123' settingService.findSettingWithDecryptedValue = jest.fn().mockReturnValue({ - value: LogSessionUserAgentOption.Disabled, + value: 'disabled', } as jest.Mocked) const sessionPayload = await createService().createNewSessionForUser({ diff --git a/packages/auth/src/Domain/Session/SessionService.ts b/packages/auth/src/Domain/Session/SessionService.ts index e0fea620f..9af02e1c4 100644 --- a/packages/auth/src/Domain/Session/SessionService.ts +++ b/packages/auth/src/Domain/Session/SessionService.ts @@ -16,7 +16,7 @@ import { EphemeralSession } from './EphemeralSession' import { RevokedSession } from './RevokedSession' import { RevokedSessionRepositoryInterface } from './RevokedSessionRepositoryInterface' import { SettingServiceInterface } from '../Setting/SettingServiceInterface' -import { LogSessionUserAgentOption, SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { SessionBody } from '@standardnotes/responses' import { Uuid } from '@standardnotes/common' import { CryptoNode } from '@standardnotes/sncrypto-node' @@ -299,6 +299,6 @@ export class SessionService implements SessionServiceInterface { return true } - return loggingSetting.value === LogSessionUserAgentOption.Enabled + return loggingSetting.value === 'enabled' } } diff --git a/packages/auth/src/Domain/Setting/FindSubscriptionSettingDTO.ts b/packages/auth/src/Domain/Setting/FindSubscriptionSettingDTO.ts index 549137efc..6fefbd14d 100644 --- a/packages/auth/src/Domain/Setting/FindSubscriptionSettingDTO.ts +++ b/packages/auth/src/Domain/Setting/FindSubscriptionSettingDTO.ts @@ -1,9 +1,8 @@ import { Uuid } from '@standardnotes/common' -import { SubscriptionSettingName } from '@standardnotes/settings' export type FindSubscriptionSettingDTO = { userUuid: Uuid userSubscriptionUuid: Uuid - subscriptionSettingName: SubscriptionSettingName + subscriptionSettingName: string settingUuid?: Uuid } diff --git a/packages/auth/src/Domain/Setting/SettingInterpreter.spec.ts b/packages/auth/src/Domain/Setting/SettingInterpreter.spec.ts index f6ca416bc..d93eb048b 100644 --- a/packages/auth/src/Domain/Setting/SettingInterpreter.spec.ts +++ b/packages/auth/src/Domain/Setting/SettingInterpreter.spec.ts @@ -5,13 +5,8 @@ import { MuteEmailsSettingChangedEvent, UserDisabledSessionUserAgentLoggingEvent, } from '@standardnotes/domain-events' -import { - EmailBackupFrequency, - LogSessionUserAgentOption, - MuteMarketingEmailsOption, - OneDriveBackupFrequency, - SettingName, -} from '@standardnotes/settings' +import { MuteMarketingEmailsOption } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import 'reflect-metadata' import { Logger } from 'winston' import { DomainEventFactoryInterface } from '../Event/DomainEventFactoryInterface' @@ -72,10 +67,10 @@ describe('SettingInterpreter', () => { it('should trigger session cleanup if user is disabling session user agent logging', async () => { const setting = { name: SettingName.NAMES.LogSessionUserAgent, - value: LogSessionUserAgentOption.Disabled, + value: 'disabled', } as jest.Mocked - await createInterpreter().interpretSettingUpdated(setting, user, LogSessionUserAgentOption.Disabled) + await createInterpreter().interpretSettingUpdated(setting, user, 'disabled') expect(domainEventPublisher.publish).toHaveBeenCalled() expect(domainEventFactory.createUserDisabledSessionUserAgentLoggingEvent).toHaveBeenCalledWith({ @@ -87,10 +82,10 @@ describe('SettingInterpreter', () => { it('should trigger backup if email backup setting is created - emails not muted', async () => { const setting = { name: SettingName.NAMES.EmailBackupFrequency, - value: EmailBackupFrequency.Daily, + value: 'daily', } as jest.Mocked - await createInterpreter().interpretSettingUpdated(setting, user, EmailBackupFrequency.Daily) + await createInterpreter().interpretSettingUpdated(setting, user, 'daily') expect(domainEventPublisher.publish).toHaveBeenCalled() expect(domainEventFactory.createEmailBackupRequestedEvent).toHaveBeenCalledWith('4-5-6', '', false) @@ -99,7 +94,7 @@ describe('SettingInterpreter', () => { it('should trigger backup if email backup setting is created - emails muted', async () => { const setting = { name: SettingName.NAMES.EmailBackupFrequency, - value: EmailBackupFrequency.Daily, + value: 'daily', } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue({ name: SettingName.NAMES.MuteFailedBackupsEmails, @@ -107,7 +102,7 @@ describe('SettingInterpreter', () => { value: 'muted', } as jest.Mocked) - await createInterpreter().interpretSettingUpdated(setting, user, EmailBackupFrequency.Daily) + await createInterpreter().interpretSettingUpdated(setting, user, 'daily') expect(domainEventPublisher.publish).toHaveBeenCalled() expect(domainEventFactory.createEmailBackupRequestedEvent).toHaveBeenCalledWith('4-5-6', '6-7-8', true) @@ -116,11 +111,11 @@ describe('SettingInterpreter', () => { it('should not trigger backup if email backup setting is disabled', async () => { const setting = { name: SettingName.NAMES.EmailBackupFrequency, - value: EmailBackupFrequency.Disabled, + value: 'disabled', } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue(null) - await createInterpreter().interpretSettingUpdated(setting, user, EmailBackupFrequency.Disabled) + await createInterpreter().interpretSettingUpdated(setting, user, 'disabled') expect(domainEventPublisher.publish).not.toHaveBeenCalled() expect(domainEventFactory.createEmailBackupRequestedEvent).not.toHaveBeenCalled() @@ -259,11 +254,11 @@ describe('SettingInterpreter', () => { const setting = { name: SettingName.NAMES.OneDriveBackupFrequency, serverEncryptionVersion: 0, - value: OneDriveBackupFrequency.Disabled, + value: 'disabled', sensitive: false, } as jest.Mocked - await createInterpreter().interpretSettingUpdated(setting, user, OneDriveBackupFrequency.Disabled) + await createInterpreter().interpretSettingUpdated(setting, user, 'disabled') expect(domainEventPublisher.publish).not.toHaveBeenCalled() expect(domainEventFactory.createCloudBackupRequestedEvent).not.toHaveBeenCalled() diff --git a/packages/auth/src/Domain/Setting/SettingInterpreter.ts b/packages/auth/src/Domain/Setting/SettingInterpreter.ts index 1d9bd104a..bf23be594 100644 --- a/packages/auth/src/Domain/Setting/SettingInterpreter.ts +++ b/packages/auth/src/Domain/Setting/SettingInterpreter.ts @@ -1,15 +1,5 @@ import { DomainEventPublisherInterface } from '@standardnotes/domain-events' -import { EmailLevel } from '@standardnotes/domain-core' -import { - DropboxBackupFrequency, - EmailBackupFrequency, - GoogleDriveBackupFrequency, - LogSessionUserAgentOption, - MuteFailedBackupsEmailsOption, - MuteFailedCloudBackupsEmailsOption, - OneDriveBackupFrequency, - SettingName, -} from '@standardnotes/settings' +import { EmailLevel, SettingName } from '@standardnotes/domain-core' import { inject, injectable } from 'inversify' import { Logger } from 'winston' import TYPES from '../../Bootstrap/Types' @@ -34,11 +24,7 @@ export class SettingInterpreter implements SettingInterpreterInterface { SettingName.NAMES.OneDriveBackupFrequency, ] - private readonly cloudBackupFrequencyDisabledValues = [ - DropboxBackupFrequency.Disabled, - GoogleDriveBackupFrequency.Disabled, - OneDriveBackupFrequency.Disabled, - ] + private readonly cloudBackupFrequencyDisabledValues = ['disabled'] private readonly emailSettingToSubscriptionRejectionLevelMap: Map = new Map([ [SettingName.MuteFailedBackupsEmails, EmailLevel.LEVELS.FailedEmailBackup], @@ -81,7 +67,7 @@ export class SettingInterpreter implements SettingInterpreterInterface { userUuid, ) if (muteFailedEmailsBackupSetting !== null) { - userHasEmailsMuted = muteFailedEmailsBackupSetting.value === MuteFailedBackupsEmailsOption.Muted + userHasEmailsMuted = muteFailedEmailsBackupSetting.value === 'muted' muteEmailsSettingUuid = muteFailedEmailsBackupSetting.uuid } @@ -100,23 +86,19 @@ export class SettingInterpreter implements SettingInterpreterInterface { } private isEnablingEmailBackupSetting(setting: Setting): boolean { - return setting.name === SettingName.NAMES.EmailBackupFrequency && setting.value !== EmailBackupFrequency.Disabled + return setting.name === SettingName.NAMES.EmailBackupFrequency && setting.value !== 'disabled' } private isEnablingCloudBackupSetting(setting: Setting): boolean { return ( (this.cloudBackupFrequencySettings.includes(setting.name) || this.cloudBackupTokenSettings.includes(setting.name)) && - !this.cloudBackupFrequencyDisabledValues.includes( - setting.value as DropboxBackupFrequency | OneDriveBackupFrequency | GoogleDriveBackupFrequency, - ) + !this.cloudBackupFrequencyDisabledValues.includes(setting.value as string) ) } private isDisablingSessionUserAgentLogging(setting: Setting): boolean { - return ( - SettingName.NAMES.LogSessionUserAgent === setting.name && LogSessionUserAgentOption.Disabled === setting.value - ) + return SettingName.NAMES.LogSessionUserAgent === setting.name && 'disabled' === setting.value } private async triggerEmailSubscriptionChange( @@ -186,7 +168,7 @@ export class SettingInterpreter implements SettingInterpreterInterface { userUuid, ) if (muteFailedCloudBackupSetting !== null) { - userHasEmailsMuted = muteFailedCloudBackupSetting.value === MuteFailedCloudBackupsEmailsOption.Muted + userHasEmailsMuted = muteFailedCloudBackupSetting.value === 'muted' muteEmailsSettingUuid = muteFailedCloudBackupSetting.uuid } diff --git a/packages/auth/src/Domain/Setting/SettingService.spec.ts b/packages/auth/src/Domain/Setting/SettingService.spec.ts index 1e6ed4ce2..3f85bc469 100644 --- a/packages/auth/src/Domain/Setting/SettingService.spec.ts +++ b/packages/auth/src/Domain/Setting/SettingService.spec.ts @@ -1,6 +1,6 @@ import 'reflect-metadata' -import { LogSessionUserAgentOption, MuteSignInEmailsOption, SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { Logger } from 'winston' import { EncryptionVersion } from '../Encryption/EncryptionVersion' import { User } from '../User/User' @@ -56,7 +56,7 @@ describe('SettingService', () => { [ SettingName.NAMES.MuteSignInEmails, { - value: MuteSignInEmailsOption.NotMuted, + value: 'not_muted', sensitive: 0, serverEncryptionVersion: EncryptionVersion.Unencrypted, }, @@ -71,7 +71,7 @@ describe('SettingService', () => { { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, - value: LogSessionUserAgentOption.Disabled, + value: 'disabled', }, ], ]), diff --git a/packages/auth/src/Domain/Setting/SettingsAssociationService.spec.ts b/packages/auth/src/Domain/Setting/SettingsAssociationService.spec.ts index 390fea339..08291e9f8 100644 --- a/packages/auth/src/Domain/Setting/SettingsAssociationService.spec.ts +++ b/packages/auth/src/Domain/Setting/SettingsAssociationService.spec.ts @@ -1,6 +1,6 @@ import 'reflect-metadata' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { PermissionName } from '@standardnotes/features' import { SettingsAssociationService } from './SettingsAssociationService' diff --git a/packages/auth/src/Domain/Setting/SettingsAssociationService.ts b/packages/auth/src/Domain/Setting/SettingsAssociationService.ts index e6b1fdcd1..18d57be57 100644 --- a/packages/auth/src/Domain/Setting/SettingsAssociationService.ts +++ b/packages/auth/src/Domain/Setting/SettingsAssociationService.ts @@ -1,10 +1,5 @@ import { PermissionName } from '@standardnotes/features' -import { - LogSessionUserAgentOption, - MuteMarketingEmailsOption, - MuteSignInEmailsOption, - SettingName, -} from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { injectable } from 'inversify' import { EncryptionVersion } from '../Encryption/EncryptionVersion' @@ -51,7 +46,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, - value: MuteSignInEmailsOption.NotMuted, + value: 'not_muted', replaceable: false, }, ], @@ -60,7 +55,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, - value: MuteMarketingEmailsOption.NotMuted, + value: 'not_muted', replaceable: false, }, ], @@ -69,7 +64,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, - value: LogSessionUserAgentOption.Enabled, + value: 'enabled', replaceable: false, }, ], @@ -81,7 +76,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, - value: LogSessionUserAgentOption.Disabled, + value: 'disabled', replaceable: false, }, ], diff --git a/packages/auth/src/Domain/Setting/SettingsAssociationServiceInterface.ts b/packages/auth/src/Domain/Setting/SettingsAssociationServiceInterface.ts index 69c1f208d..f9e93937c 100644 --- a/packages/auth/src/Domain/Setting/SettingsAssociationServiceInterface.ts +++ b/packages/auth/src/Domain/Setting/SettingsAssociationServiceInterface.ts @@ -1,5 +1,4 @@ import { PermissionName } from '@standardnotes/features' -import { SubscriptionSettingName } from '@standardnotes/settings' import { EncryptionVersion } from '../Encryption/EncryptionVersion' import { SettingDescription } from './SettingDescription' @@ -9,5 +8,5 @@ export interface SettingsAssociationServiceInterface { getPermissionAssociatedWithSetting(settingName: string): PermissionName | undefined getEncryptionVersionForSetting(settingName: string): EncryptionVersion getSensitivityForSetting(settingName: string): boolean - isSettingMutableByClient(settingName: string | SubscriptionSettingName): boolean + isSettingMutableByClient(settingName: string): boolean } diff --git a/packages/auth/src/Domain/Setting/SubscriptionSettingService.spec.ts b/packages/auth/src/Domain/Setting/SubscriptionSettingService.spec.ts index 2642077e7..15ec65f3d 100644 --- a/packages/auth/src/Domain/Setting/SubscriptionSettingService.spec.ts +++ b/packages/auth/src/Domain/Setting/SubscriptionSettingService.spec.ts @@ -1,6 +1,6 @@ import 'reflect-metadata' -import { SubscriptionSettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { Logger } from 'winston' import { EncryptionVersion } from '../Encryption/EncryptionVersion' @@ -68,7 +68,7 @@ describe('SubscriptionSettingService', () => { subscriptionSettingsAssociationService.getDefaultSettingsAndValuesForSubscriptionName = jest.fn().mockReturnValue( new Map([ [ - SubscriptionSettingName.FileUploadBytesUsed, + SettingName.NAMES.FileUploadBytesUsed, { value: '0', sensitive: 0, @@ -102,7 +102,7 @@ describe('SubscriptionSettingService', () => { subscriptionSettingsAssociationService.getDefaultSettingsAndValuesForSubscriptionName = jest.fn().mockReturnValue( new Map([ [ - SubscriptionSettingName.FileUploadBytesUsed, + SettingName.NAMES.FileUploadBytesUsed, { value: '0', sensitive: 0, @@ -127,7 +127,7 @@ describe('SubscriptionSettingService', () => { subscriptionSettingsAssociationService.getDefaultSettingsAndValuesForSubscriptionName = jest.fn().mockReturnValue( new Map([ [ - SubscriptionSettingName.FileUploadBytesUsed, + SettingName.NAMES.FileUploadBytesUsed, { value: '0', sensitive: 0, @@ -152,7 +152,7 @@ describe('SubscriptionSettingService', () => { subscriptionSettingsAssociationService.getDefaultSettingsAndValuesForSubscriptionName = jest.fn().mockReturnValue( new Map([ [ - SubscriptionSettingName.FileUploadBytesUsed, + SettingName.NAMES.FileUploadBytesUsed, { value: '0', sensitive: 0, @@ -266,7 +266,7 @@ describe('SubscriptionSettingService', () => { await createService().findSubscriptionSettingWithDecryptedValue({ userSubscriptionUuid: '2-3-4', userUuid: '1-2-3', - subscriptionSettingName: 'test' as SubscriptionSettingName, + subscriptionSettingName: 'test', }), ).toEqual({ serverEncryptionVersion: 1, diff --git a/packages/auth/src/Domain/Setting/SubscriptionSettingService.ts b/packages/auth/src/Domain/Setting/SubscriptionSettingService.ts index 22ccd3c72..180bde6bc 100644 --- a/packages/auth/src/Domain/Setting/SubscriptionSettingService.ts +++ b/packages/auth/src/Domain/Setting/SubscriptionSettingService.ts @@ -1,5 +1,4 @@ import { SubscriptionName, Uuid } from '@standardnotes/common' -import { SubscriptionSettingName } from '@standardnotes/settings' import { inject, injectable } from 'inversify' import { Logger } from 'winston' @@ -98,7 +97,7 @@ export class SubscriptionSettingService implements SubscriptionSettingServiceInt const existing = await this.findSubscriptionSettingWithDecryptedValue({ userUuid: (await userSubscription.user).uuid, userSubscriptionUuid: userSubscription.uuid, - subscriptionSettingName: props.name as SubscriptionSettingName, + subscriptionSettingName: props.name, settingUuid: props.uuid, }) @@ -128,7 +127,7 @@ export class SubscriptionSettingService implements SubscriptionSettingServiceInt } private async findPreviousSubscriptionSetting( - settingName: SubscriptionSettingName, + settingName: string, currentUserSubscriptionUuid: Uuid, userUuid: Uuid, ): Promise { diff --git a/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationService.spec.ts b/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationService.spec.ts index 3ebd0d76f..36f5fbe31 100644 --- a/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationService.spec.ts +++ b/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationService.spec.ts @@ -1,7 +1,7 @@ import 'reflect-metadata' import { RoleName, SubscriptionName } from '@standardnotes/common' -import { SubscriptionSettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { PermissionName } from '@standardnotes/features' import { EncryptionVersion } from '../Encryption/EncryptionVersion' @@ -50,14 +50,11 @@ describe('SubscriptionSettingsAssociationService', () => { const flatSettings = [ ...( - settings as Map< - SubscriptionSettingName, - { value: string; sensitive: boolean; serverEncryptionVersion: EncryptionVersion } - > + settings as Map ).keys(), ] expect(flatSettings).toEqual(['FILE_UPLOAD_BYTES_USED', 'FILE_UPLOAD_BYTES_LIMIT']) - expect(settings?.get(SubscriptionSettingName.FileUploadBytesLimit)).toEqual({ + expect(settings?.get(SettingName.NAMES.FileUploadBytesLimit)).toEqual({ sensitive: false, serverEncryptionVersion: 0, value: '107374182400', @@ -78,14 +75,11 @@ describe('SubscriptionSettingsAssociationService', () => { const flatSettings = [ ...( - settings as Map< - SubscriptionSettingName, - { value: string; sensitive: boolean; serverEncryptionVersion: EncryptionVersion } - > + settings as Map ).keys(), ] expect(flatSettings).toEqual(['FILE_UPLOAD_BYTES_USED', 'FILE_UPLOAD_BYTES_LIMIT']) - expect(settings?.get(SubscriptionSettingName.FileUploadBytesLimit)).toEqual({ + expect(settings?.get(SettingName.NAMES.FileUploadBytesLimit)).toEqual({ sensitive: false, serverEncryptionVersion: 0, value: '104857600', diff --git a/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationService.ts b/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationService.ts index 8850acb15..72ac3a010 100644 --- a/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationService.ts +++ b/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationService.ts @@ -1,6 +1,6 @@ import { RoleName, SubscriptionName } from '@standardnotes/common' import { PermissionName } from '@standardnotes/features' -import { SubscriptionSettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { inject, injectable } from 'inversify' import TYPES from '../../Bootstrap/Types' @@ -19,15 +19,12 @@ export class SubscriptionSettingsAssociationService implements SubscriptionSetti @inject(TYPES.RoleRepository) private roleRepository: RoleRepositoryInterface, ) {} - private readonly settingsToSubscriptionNameMap = new Map< - SubscriptionName, - Map - >([ + private readonly settingsToSubscriptionNameMap = new Map>([ [ SubscriptionName.PlusPlan, new Map([ [ - SubscriptionSettingName.FileUploadBytesUsed, + SettingName.NAMES.FileUploadBytesUsed, { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, value: '0', replaceable: false }, ], ]), @@ -36,7 +33,7 @@ export class SubscriptionSettingsAssociationService implements SubscriptionSetti SubscriptionName.ProPlan, new Map([ [ - SubscriptionSettingName.FileUploadBytesUsed, + SettingName.NAMES.FileUploadBytesUsed, { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, value: '0', replaceable: false }, ], ]), @@ -45,14 +42,14 @@ export class SubscriptionSettingsAssociationService implements SubscriptionSetti async getDefaultSettingsAndValuesForSubscriptionName( subscriptionName: SubscriptionName, - ): Promise | undefined> { + ): Promise | undefined> { const defaultSettings = this.settingsToSubscriptionNameMap.get(subscriptionName) if (defaultSettings === undefined) { return undefined } - defaultSettings.set(SubscriptionSettingName.FileUploadBytesLimit, { + defaultSettings.set(SettingName.NAMES.FileUploadBytesLimit, { sensitive: false, serverEncryptionVersion: EncryptionVersion.Unencrypted, value: (await this.getFileUploadLimit(subscriptionName)).toString(), diff --git a/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationServiceInterface.ts b/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationServiceInterface.ts index aa8250d8b..e01b8ab85 100644 --- a/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationServiceInterface.ts +++ b/packages/auth/src/Domain/Setting/SubscriptionSettingsAssociationServiceInterface.ts @@ -1,11 +1,10 @@ import { SubscriptionName } from '@standardnotes/common' -import { SubscriptionSettingName } from '@standardnotes/settings' import { SettingDescription } from './SettingDescription' export interface SubscriptionSettingsAssociationServiceInterface { getDefaultSettingsAndValuesForSubscriptionName( subscriptionName: SubscriptionName, - ): Promise | undefined> + ): Promise | undefined> getFileUploadLimit(subscriptionName: SubscriptionName): Promise } diff --git a/packages/auth/src/Domain/UseCase/CreateValetToken/CreateValetToken.ts b/packages/auth/src/Domain/UseCase/CreateValetToken/CreateValetToken.ts index 0d58ff935..4688f3825 100644 --- a/packages/auth/src/Domain/UseCase/CreateValetToken/CreateValetToken.ts +++ b/packages/auth/src/Domain/UseCase/CreateValetToken/CreateValetToken.ts @@ -3,7 +3,7 @@ import { SubscriptionName } from '@standardnotes/common' import { TimerInterface } from '@standardnotes/time' import { TokenEncoderInterface, ValetTokenData } from '@standardnotes/security' import { CreateValetTokenPayload, CreateValetTokenResponseData } from '@standardnotes/responses' -import { SubscriptionSettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import TYPES from '../../../Bootstrap/Types' import { UseCaseInterface } from '../UseCaseInterface' @@ -56,7 +56,7 @@ export class CreateValetToken implements UseCaseInterface { const uploadBytesUsedSetting = await this.subscriptionSettingService.findSubscriptionSettingWithDecryptedValue({ userUuid: regularSubscriptionUserUuid, userSubscriptionUuid: regularSubscription.uuid, - subscriptionSettingName: SubscriptionSettingName.FileUploadBytesUsed, + subscriptionSettingName: SettingName.NAMES.FileUploadBytesUsed, }) if (uploadBytesUsedSetting !== null) { uploadBytesUsed = +(uploadBytesUsedSetting.value as string) @@ -70,7 +70,7 @@ export class CreateValetToken implements UseCaseInterface { await this.subscriptionSettingService.findSubscriptionSettingWithDecryptedValue({ userUuid: regularSubscriptionUserUuid, userSubscriptionUuid: regularSubscription.uuid, - subscriptionSettingName: SubscriptionSettingName.FileUploadBytesLimit, + subscriptionSettingName: SettingName.NAMES.FileUploadBytesLimit, }) if (overwriteWithUserUploadBytesLimitSetting !== null) { uploadBytesLimit = +(overwriteWithUserUploadBytesLimitSetting.value as string) diff --git a/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.spec.ts b/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.spec.ts index ebfa3ba02..d955cf925 100644 --- a/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.spec.ts +++ b/packages/auth/src/Domain/UseCase/GetSetting/GetSetting.spec.ts @@ -1,4 +1,4 @@ -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import 'reflect-metadata' import { SettingProjector } from '../../../Projection/SettingProjector' import { Setting } from '../../Setting/Setting' diff --git a/packages/auth/src/Domain/UseCase/GetSettings/GetSettings.spec.ts b/packages/auth/src/Domain/UseCase/GetSettings/GetSettings.spec.ts index 22cd2b93b..a446242a0 100644 --- a/packages/auth/src/Domain/UseCase/GetSettings/GetSettings.spec.ts +++ b/packages/auth/src/Domain/UseCase/GetSettings/GetSettings.spec.ts @@ -1,6 +1,6 @@ import 'reflect-metadata' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { SettingProjector } from '../../../Projection/SettingProjector' import { Setting } from '../../Setting/Setting' diff --git a/packages/auth/src/Domain/UseCase/GetSubscriptionSetting/GetSubscriptionSetting.spec.ts b/packages/auth/src/Domain/UseCase/GetSubscriptionSetting/GetSubscriptionSetting.spec.ts index 0d8058a34..2097142fd 100644 --- a/packages/auth/src/Domain/UseCase/GetSubscriptionSetting/GetSubscriptionSetting.spec.ts +++ b/packages/auth/src/Domain/UseCase/GetSubscriptionSetting/GetSubscriptionSetting.spec.ts @@ -1,6 +1,6 @@ import 'reflect-metadata' -import { SubscriptionSettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { SubscriptionSettingProjector } from '../../../Projection/SubscriptionSettingProjector' import { SubscriptionSetting } from '../../Setting/SubscriptionSetting' @@ -54,7 +54,7 @@ describe('GetSubscriptionSetting', () => { expect( await createUseCase().execute({ userUuid: '1-2-3', - subscriptionSettingName: SubscriptionSettingName.FileUploadBytesUsed, + subscriptionSettingName: SettingName.NAMES.FileUploadBytesUsed, }), ).toEqual({ success: true, @@ -70,7 +70,7 @@ describe('GetSubscriptionSetting', () => { expect( await createUseCase().execute({ userUuid: '1-2-3', - subscriptionSettingName: SubscriptionSettingName.FileUploadBytesLimit, + subscriptionSettingName: SettingName.NAMES.FileUploadBytesLimit, }), ).toEqual({ success: false, @@ -86,7 +86,7 @@ describe('GetSubscriptionSetting', () => { expect( await createUseCase().execute({ userUuid: '1-2-3', - subscriptionSettingName: SubscriptionSettingName.FileUploadBytesLimit, + subscriptionSettingName: SettingName.NAMES.FileUploadBytesLimit, }), ).toEqual({ success: false, @@ -99,7 +99,7 @@ describe('GetSubscriptionSetting', () => { it('should not retrieve a sensitive setting for user', async () => { subscriptionSetting = { sensitive: true, - name: SubscriptionSettingName.FileUploadBytesLimit, + name: SettingName.NAMES.FileUploadBytesLimit, } as jest.Mocked subscriptionSettingService.findSubscriptionSettingWithDecryptedValue = jest @@ -109,7 +109,7 @@ describe('GetSubscriptionSetting', () => { expect( await createUseCase().execute({ userUuid: '1-2-3', - subscriptionSettingName: SubscriptionSettingName.FileUploadBytesLimit, + subscriptionSettingName: SettingName.NAMES.FileUploadBytesLimit, }), ).toEqual({ success: true, @@ -120,7 +120,7 @@ describe('GetSubscriptionSetting', () => { it('should retrieve a sensitive setting for user if explicitly told to', async () => { subscriptionSetting = { sensitive: true, - name: SubscriptionSettingName.FileUploadBytesLimit, + name: SettingName.NAMES.FileUploadBytesLimit, } as jest.Mocked subscriptionSettingService.findSubscriptionSettingWithDecryptedValue = jest @@ -130,7 +130,7 @@ describe('GetSubscriptionSetting', () => { expect( await createUseCase().execute({ userUuid: '1-2-3', - subscriptionSettingName: SubscriptionSettingName.FileUploadBytesLimit, + subscriptionSettingName: SettingName.NAMES.FileUploadBytesLimit, allowSensitiveRetrieval: true, }), ).toEqual({ diff --git a/packages/auth/src/Domain/UseCase/GetSubscriptionSetting/GetSubscriptionSettingDTO.ts b/packages/auth/src/Domain/UseCase/GetSubscriptionSetting/GetSubscriptionSettingDTO.ts index d2b9e8ae5..131e97327 100644 --- a/packages/auth/src/Domain/UseCase/GetSubscriptionSetting/GetSubscriptionSettingDTO.ts +++ b/packages/auth/src/Domain/UseCase/GetSubscriptionSetting/GetSubscriptionSettingDTO.ts @@ -1,8 +1,7 @@ import { Uuid } from '@standardnotes/common' -import { SubscriptionSettingName } from '@standardnotes/settings' export type GetSubscriptionSettingDTO = { userUuid: Uuid - subscriptionSettingName: SubscriptionSettingName + subscriptionSettingName: string allowSensitiveRetrieval?: boolean } diff --git a/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.spec.ts b/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.spec.ts index 93a42c7aa..ce5fd6659 100644 --- a/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.spec.ts +++ b/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.spec.ts @@ -13,7 +13,7 @@ import { SimpleSetting } from '../../Setting/SimpleSetting' import { User } from '../../User/User' import { UserRepositoryInterface } from '../../User/UserRepositoryInterface' import { UpdateSetting } from './UpdateSetting' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' describe('UpdateSetting', () => { let settingService: SettingServiceInterface diff --git a/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.ts b/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.ts index 6955290d4..8edd36241 100644 --- a/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.ts +++ b/packages/auth/src/Domain/UseCase/UpdateSetting/UpdateSetting.ts @@ -9,7 +9,7 @@ import { SettingProjector } from '../../../Projection/SettingProjector' import { Logger } from 'winston' import { SettingServiceInterface } from '../../Setting/SettingServiceInterface' import { User } from '../../User/User' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { RoleServiceInterface } from '../../Role/RoleServiceInterface' import { SettingsAssociationServiceInterface } from '../../Setting/SettingsAssociationServiceInterface' diff --git a/packages/auth/src/Domain/UseCase/VerifyMFA.spec.ts b/packages/auth/src/Domain/UseCase/VerifyMFA.spec.ts index 4111cecfd..a16b48c6e 100644 --- a/packages/auth/src/Domain/UseCase/VerifyMFA.spec.ts +++ b/packages/auth/src/Domain/UseCase/VerifyMFA.spec.ts @@ -6,7 +6,7 @@ import { UserRepositoryInterface } from '../User/UserRepositoryInterface' import { VerifyMFA } from './VerifyMFA' import { Setting } from '../Setting/Setting' import { SettingServiceInterface } from '../Setting/SettingServiceInterface' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { SelectorInterface } from '@standardnotes/security' import { LockRepositoryInterface } from '../User/LockRepositoryInterface' diff --git a/packages/auth/src/Domain/UseCase/VerifyMFA.ts b/packages/auth/src/Domain/UseCase/VerifyMFA.ts index 30f819741..10bf49b65 100644 --- a/packages/auth/src/Domain/UseCase/VerifyMFA.ts +++ b/packages/auth/src/Domain/UseCase/VerifyMFA.ts @@ -1,6 +1,6 @@ import * as crypto from 'crypto' import { ErrorTag } from '@standardnotes/common' -import { SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { v4 as uuidv4 } from 'uuid' import { inject, injectable } from 'inversify' import { authenticator } from 'otplib' diff --git a/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.spec.ts b/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.spec.ts index 21b9f66c4..eed7af587 100644 --- a/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.spec.ts +++ b/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.spec.ts @@ -8,7 +8,6 @@ import { UserSubscription } from '../../Subscription/UserSubscription' import { UserSubscriptionRepositoryInterface } from '../../Subscription/UserSubscriptionRepositoryInterface' import { VerifyPredicate } from './VerifyPredicate' -import { EmailBackupFrequency } from '@standardnotes/settings' describe('VerifyPredicate', () => { let settingRepository: SettingRepositoryInterface @@ -30,7 +29,7 @@ describe('VerifyPredicate', () => { }) it('should tell that a user has enabled email backups', async () => { - setting = { value: EmailBackupFrequency.Weekly } as jest.Mocked + setting = { value: 'weekly' } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue(setting) expect( @@ -44,7 +43,7 @@ describe('VerifyPredicate', () => { }) it('should tell that a user has disabled email backups', async () => { - setting = { value: EmailBackupFrequency.Disabled } as jest.Mocked + setting = { value: 'disabled' } as jest.Mocked settingRepository.findOneByNameAndUserUuid = jest.fn().mockReturnValue(setting) expect( diff --git a/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.ts b/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.ts index b6b4a4269..504420adf 100644 --- a/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.ts +++ b/packages/auth/src/Domain/UseCase/VerifyPredicate/VerifyPredicate.ts @@ -1,6 +1,6 @@ import { Uuid } from '@standardnotes/common' import { PredicateName, PredicateVerificationResult } from '@standardnotes/predicates' -import { EmailBackupFrequency, SettingName } from '@standardnotes/settings' +import { SettingName } from '@standardnotes/domain-core' import { inject, injectable } from 'inversify' import TYPES from '../../../Bootstrap/Types' @@ -45,7 +45,7 @@ export class VerifyPredicate implements UseCaseInterface { userUuid, ) - if (setting === null || setting.value === EmailBackupFrequency.Disabled) { + if (setting === null || setting.value === 'disabled') { return false } diff --git a/packages/settings/src/Domain/Setting/SettingName.ts b/packages/domain-core/src/Domain/Setting/SettingName.ts similarity index 88% rename from packages/settings/src/Domain/Setting/SettingName.ts rename to packages/domain-core/src/Domain/Setting/SettingName.ts index 579f0cf0c..e150a9b47 100644 --- a/packages/settings/src/Domain/Setting/SettingName.ts +++ b/packages/domain-core/src/Domain/Setting/SettingName.ts @@ -1,4 +1,5 @@ -import { Result, ValueObject } from '@standardnotes/domain-core' +import { Result } from '../Core/Result' +import { ValueObject } from '../Core/ValueObject' import { SettingNameProps } from './SettingNameProps' @@ -19,6 +20,8 @@ export class SettingName extends ValueObject { MuteMarketingEmails: 'MUTE_MARKETING_EMAILS', ListedAuthorSecrets: 'LISTED_AUTHOR_SECRETS', LogSessionUserAgent: 'LOG_SESSION_USER_AGENT', + FileUploadBytesLimit: 'FILE_UPLOAD_BYTES_LIMIT', + FileUploadBytesUsed: 'FILE_UPLOAD_BYTES_USED', } get value(): string { diff --git a/packages/settings/src/Domain/Setting/SettingNameProps.ts b/packages/domain-core/src/Domain/Setting/SettingNameProps.ts similarity index 100% rename from packages/settings/src/Domain/Setting/SettingNameProps.ts rename to packages/domain-core/src/Domain/Setting/SettingNameProps.ts diff --git a/packages/domain-core/src/Domain/index.ts b/packages/domain-core/src/Domain/index.ts index af45a1c0c..6f7dc1290 100644 --- a/packages/domain-core/src/Domain/index.ts +++ b/packages/domain-core/src/Domain/index.ts @@ -30,6 +30,9 @@ export * from './Encryption/EncryptionVersionProps' export * from './Mapping/MapperInterface' +export * from './Setting/SettingName' +export * from './Setting/SettingNameProps' + export * from './Subscription/SubscriptionPlanName' export * from './Subscription/SubscriptionPlanNameProps' diff --git a/packages/settings/bin/server.ts b/packages/settings/bin/server.ts new file mode 100644 index 000000000..f275168b7 --- /dev/null +++ b/packages/settings/bin/server.ts @@ -0,0 +1,69 @@ +import 'reflect-metadata' + +import 'newrelic' + +import * as Sentry from '@sentry/node' + +import '../src/Infra/InversifyExpress/InversifyExpressHealthCheckController' + +import * as cors from 'cors' +import { urlencoded, json, Request, Response, NextFunction, RequestHandler, ErrorRequestHandler } from 'express' +import * as winston from 'winston' + +import { InversifyExpressServer } from 'inversify-express-utils' +import { ContainerConfigLoader } from '../src/Bootstrap/Container' +import TYPES from '../src/Bootstrap/Types' +import { Env } from '../src/Bootstrap/Env' + +const container = new ContainerConfigLoader() +void container.load().then((container) => { + const env: Env = new Env() + env.load() + + const server = new InversifyExpressServer(container) + + server.setConfig((app) => { + app.use((_request: Request, response: Response, next: NextFunction) => { + response.setHeader('X-Settings-Version', container.get(TYPES.VERSION)) + next() + }) + app.use(json()) + app.use(urlencoded({ extended: true })) + app.use(cors()) + + if (env.get('SENTRY_DSN', true)) { + Sentry.init({ + dsn: env.get('SENTRY_DSN'), + integrations: [new Sentry.Integrations.Http({ tracing: false, breadcrumbs: true })], + tracesSampleRate: 0, + }) + + app.use(Sentry.Handlers.requestHandler() as RequestHandler) + } + }) + + const logger: winston.Logger = container.get(TYPES.Logger) + + server.setErrorConfig((app) => { + if (env.get('SENTRY_DSN', true)) { + app.use(Sentry.Handlers.errorHandler() as ErrorRequestHandler) + } + + app.use((error: Record, _request: Request, response: Response, _next: NextFunction) => { + logger.error(error.stack) + + response.status(500).send({ + error: { + message: + "Unfortunately, we couldn't handle your request. Please try again or contact our support if the error persists.", + }, + }) + }) + }) + + const serverInstance = server.build() + + serverInstance.listen(env.get('PORT')) + + logger.info(`Server started on port ${process.env.PORT}`) +}) diff --git a/packages/settings/bin/worker.ts b/packages/settings/bin/worker.ts new file mode 100644 index 000000000..23fe62631 --- /dev/null +++ b/packages/settings/bin/worker.ts @@ -0,0 +1,25 @@ +import 'reflect-metadata' + +import 'newrelic' + +import { Logger } from 'winston' + +import { ContainerConfigLoader } from '../src/Bootstrap/Container' +import TYPES from '../src/Bootstrap/Types' +import { Env } from '../src/Bootstrap/Env' +import { DomainEventSubscriberFactoryInterface } from '@standardnotes/domain-events' + +const container = new ContainerConfigLoader() +void container.load().then((container) => { + const env: Env = new Env() + env.load() + + const logger: Logger = container.get(TYPES.Logger) + + logger.info('Starting worker...') + + const subscriberFactory: DomainEventSubscriberFactoryInterface = container.get(TYPES.DomainEventSubscriberFactory) + subscriberFactory.create().start() + + setInterval(() => logger.info('Alive and kicking!'), 20 * 60 * 1000) +}) diff --git a/packages/settings/package.json b/packages/settings/package.json index 6d08b5b66..324fd0515 100644 --- a/packages/settings/package.json +++ b/packages/settings/package.json @@ -1,35 +1,63 @@ { - "name": "@standardnotes/settings", - "version": "1.18.4", + "name": "@standardnotes/settings-server", + "version": "1.0.0", "engines": { "node": ">=18.0.0 <19.0.0" }, - "description": "Settings SDK for Standard Notes projects", + "private": true, + "description": "Settings Server", "main": "dist/src/index.js", - "author": "Standard Notes", - "types": "dist/src/index.d.ts", - "files": [ - "dist/src/**/*.js", - "dist/src/**/*.d.ts" - ], - "publishConfig": { - "access": "public" - }, + "typings": "dist/src/index.d.ts", + "repository": "git@github.com:standardnotes/server.git", + "author": "Karol Sójko ", "license": "AGPL-3.0-or-later", "scripts": { "clean": "rm -fr dist", - "prestart": "yarn clean", - "start": "tsc -p tsconfig.json --watch", + "setup:env": "cp .env.sample .env", "build": "tsc --build", - "lint": "eslint . --ext .ts" - }, - "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.30.0", - "eslint-plugin-prettier": "^4.2.1", - "typescript": "^4.8.4" + "lint": "eslint . --ext .ts", + "lint:fix": "eslint . --ext .ts --fix", + "pretest": "yarn lint && yarn build", + "test": "jest --coverage --config=./jest.config.js --maxWorkers=50% --passWithNoTests", + "start": "yarn node dist/bin/server.js", + "worker": "yarn node dist/bin/worker.js" }, "dependencies": { + "@newrelic/winston-enricher": "^4.0.0", + "@sentry/node": "^7.19.0", "@standardnotes/domain-core": "workspace:^", - "reflect-metadata": "^0.1.13" + "@standardnotes/domain-events": "workspace:*", + "@standardnotes/domain-events-infra": "workspace:*", + "@standardnotes/security": "workspace:^", + "@standardnotes/time": "workspace:^", + "aws-sdk": "^2.1260.0", + "cors": "2.8.5", + "dotenv": "^16.0.1", + "express": "^4.18.2", + "helmet": "^6.0.0", + "inversify": "^6.0.1", + "inversify-express-utils": "^6.4.3", + "ioredis": "^5.2.4", + "mysql2": "^2.3.3", + "newrelic": "^9.6.0", + "reflect-metadata": "0.1.13", + "typeorm": "^0.3.10", + "winston": "^3.8.1" + }, + "devDependencies": { + "@types/cors": "^2.8.9", + "@types/dotenv": "^8.2.0", + "@types/express": "^4.17.14", + "@types/inversify-express-utils": "^2.0.0", + "@types/ioredis": "^5.0.0", + "@types/jest": "^29.1.1", + "@types/newrelic": "^7.0.4", + "@typescript-eslint/eslint-plugin": "^5.29.0", + "eslint": "^8.14.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "^29.1.2", + "npm-check-updates": "^16.0.1", + "ts-jest": "^29.0.3", + "typescript": "^4.8.4" } } diff --git a/packages/settings/src/Bootstrap/Container.ts b/packages/settings/src/Bootstrap/Container.ts new file mode 100644 index 000000000..20750fbe5 --- /dev/null +++ b/packages/settings/src/Bootstrap/Container.ts @@ -0,0 +1,140 @@ +import * as winston from 'winston' +import Redis from 'ioredis' +import * as AWS from 'aws-sdk' +import { Container } from 'inversify' +import { + DomainEventHandlerInterface, + DomainEventMessageHandlerInterface, + DomainEventSubscriberFactoryInterface, +} from '@standardnotes/domain-events' +import { TokenDecoderInterface, CrossServiceTokenData, TokenDecoder } from '@standardnotes/security' +import { + RedisDomainEventSubscriberFactory, + RedisEventMessageHandler, + SQSDomainEventSubscriberFactory, + SQSEventMessageHandler, + SQSNewRelicEventMessageHandler, +} from '@standardnotes/domain-events-infra' + +import { Env } from './Env' +import TYPES from './Types' +import { AppDataSource } from './DataSource' +import { InversifyExpressApiGatewayAuthMiddleware } from '../Infra/InversifyExpress/InversifyExpressApiGatewayAuthMiddleware' + +// eslint-disable-next-line @typescript-eslint/no-var-requires +const newrelicFormatter = require('@newrelic/winston-enricher') + +export class ContainerConfigLoader { + async load(): Promise { + const env: Env = new Env() + env.load() + + const container = new Container() + + await AppDataSource.initialize() + + const redisUrl = env.get('REDIS_URL') + const isRedisInClusterMode = redisUrl.indexOf(',') > 0 + let redis + if (isRedisInClusterMode) { + redis = new Redis.Cluster(redisUrl.split(',')) + } else { + redis = new Redis(redisUrl) + } + + container.bind(TYPES.Redis).toConstantValue(redis) + + const newrelicWinstonFormatter = newrelicFormatter(winston) + const winstonFormatters = [winston.format.splat(), winston.format.json()] + if (env.get('NEW_RELIC_ENABLED', true) === 'true') { + winstonFormatters.push(newrelicWinstonFormatter()) + } + + const logger = winston.createLogger({ + level: env.get('LOG_LEVEL') || 'info', + format: winston.format.combine(...winstonFormatters), + transports: [new winston.transports.Console({ level: env.get('LOG_LEVEL') || 'info' })], + }) + container.bind(TYPES.Logger).toConstantValue(logger) + + if (env.get('SQS_QUEUE_URL', true)) { + const sqsConfig: AWS.SQS.Types.ClientConfiguration = { + apiVersion: 'latest', + region: env.get('SQS_AWS_REGION', true), + } + if (env.get('SQS_ACCESS_KEY_ID', true) && env.get('SQS_SECRET_ACCESS_KEY', true)) { + sqsConfig.credentials = { + accessKeyId: env.get('SQS_ACCESS_KEY_ID', true), + secretAccessKey: env.get('SQS_SECRET_ACCESS_KEY', true), + } + } + container.bind(TYPES.SQS).toConstantValue(new AWS.SQS(sqsConfig)) + } + + // Map + + // ORM + + // env vars + container.bind(TYPES.REDIS_URL).toConstantValue(env.get('REDIS_URL')) + container.bind(TYPES.SQS_QUEUE_URL).toConstantValue(env.get('SQS_QUEUE_URL', true)) + container.bind(TYPES.REDIS_EVENTS_CHANNEL).toConstantValue(env.get('REDIS_EVENTS_CHANNEL')) + container.bind(TYPES.AUTH_JWT_SECRET).toConstantValue(env.get('AUTH_JWT_SECRET')) + container.bind(TYPES.NEW_RELIC_ENABLED).toConstantValue(env.get('NEW_RELIC_ENABLED', true)) + container.bind(TYPES.VERSION).toConstantValue(env.get('VERSION')) + + // Repositories + + // use cases + + // Controller + + // Handlers + + // Services + container + .bind>(TYPES.CrossServiceTokenDecoder) + .toConstantValue(new TokenDecoder(container.get(TYPES.AUTH_JWT_SECRET))) + + // Middleware + container + .bind(TYPES.ApiGatewayAuthMiddleware) + .to(InversifyExpressApiGatewayAuthMiddleware) + + const eventHandlers: Map = new Map([]) + + if (env.get('SQS_QUEUE_URL', true)) { + container + .bind(TYPES.DomainEventMessageHandler) + .toConstantValue( + env.get('NEW_RELIC_ENABLED', true) === 'true' + ? new SQSNewRelicEventMessageHandler(eventHandlers, container.get(TYPES.Logger)) + : new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Logger)), + ) + container + .bind(TYPES.DomainEventSubscriberFactory) + .toConstantValue( + new SQSDomainEventSubscriberFactory( + container.get(TYPES.SQS), + container.get(TYPES.SQS_QUEUE_URL), + container.get(TYPES.DomainEventMessageHandler), + ), + ) + } else { + container + .bind(TYPES.DomainEventMessageHandler) + .toConstantValue(new RedisEventMessageHandler(eventHandlers, container.get(TYPES.Logger))) + container + .bind(TYPES.DomainEventSubscriberFactory) + .toConstantValue( + new RedisDomainEventSubscriberFactory( + container.get(TYPES.Redis), + container.get(TYPES.DomainEventMessageHandler), + container.get(TYPES.REDIS_EVENTS_CHANNEL), + ), + ) + } + + return container + } +} diff --git a/packages/settings/src/Bootstrap/DataSource.ts b/packages/settings/src/Bootstrap/DataSource.ts new file mode 100644 index 000000000..a9b55cea3 --- /dev/null +++ b/packages/settings/src/Bootstrap/DataSource.ts @@ -0,0 +1,44 @@ +import { DataSource, LoggerOptions } from 'typeorm' + +import { TypeORMSetting } from '../Infra/TypeORM/TypeORMSetting' + +import { Env } from './Env' + +const env: Env = new Env() +env.load() + +const maxQueryExecutionTime = env.get('DB_MAX_QUERY_EXECUTION_TIME', true) + ? +env.get('DB_MAX_QUERY_EXECUTION_TIME', true) + : 45_000 + +export const AppDataSource = new DataSource({ + type: 'mysql', + charset: 'utf8mb4', + supportBigNumbers: true, + bigNumberStrings: false, + maxQueryExecutionTime, + replication: { + master: { + host: env.get('DB_HOST'), + port: parseInt(env.get('DB_PORT')), + username: env.get('DB_USERNAME'), + password: env.get('DB_PASSWORD'), + database: env.get('DB_DATABASE'), + }, + slaves: [ + { + host: env.get('DB_REPLICA_HOST'), + port: parseInt(env.get('DB_PORT')), + username: env.get('DB_USERNAME'), + password: env.get('DB_PASSWORD'), + database: env.get('DB_DATABASE'), + }, + ], + removeNodeErrorCount: 10, + restoreNodeTimeout: 5, + }, + entities: [TypeORMSetting], + migrations: [env.get('DB_MIGRATIONS_PATH', true) ?? 'dist/migrations/*.js'], + migrationsRun: true, + logging: env.get('DB_DEBUG_LEVEL'), +}) diff --git a/packages/settings/src/Bootstrap/Env.ts b/packages/settings/src/Bootstrap/Env.ts new file mode 100644 index 000000000..b26b07aca --- /dev/null +++ b/packages/settings/src/Bootstrap/Env.ts @@ -0,0 +1,24 @@ +import { config, DotenvParseOutput } from 'dotenv' +import { injectable } from 'inversify' + +@injectable() +export class Env { + private env?: DotenvParseOutput + + public load(): void { + const output = config() + this.env = output.parsed + } + + public get(key: string, optional = false): string { + if (!this.env) { + this.load() + } + + if (!process.env[key] && !optional) { + throw new Error(`Environment variable ${key} not set`) + } + + return process.env[key] + } +} diff --git a/packages/settings/src/Bootstrap/Types.ts b/packages/settings/src/Bootstrap/Types.ts new file mode 100644 index 000000000..5a3ea25fa --- /dev/null +++ b/packages/settings/src/Bootstrap/Types.ts @@ -0,0 +1,33 @@ +const TYPES = { + DBConnection: Symbol.for('DBConnection'), + Logger: Symbol.for('Logger'), + Redis: Symbol.for('Redis'), + SQS: Symbol.for('SQS'), + // Map + // ORM + ORMSettingRepository: Symbol.for('ORMSettingRepository'), + // Repositories + SettingRepository: Symbol.for('SettingRepository'), + // env vars + REDIS_URL: Symbol.for('REDIS_URL'), + SQS_QUEUE_URL: Symbol.for('SQS_QUEUE_URL'), + SQS_AWS_REGION: Symbol.for('SQS_AWS_REGION'), + REDIS_EVENTS_CHANNEL: Symbol.for('REDIS_EVENTS_CHANNEL'), + AUTH_JWT_SECRET: Symbol.for('AUTH_JWT_SECRET'), + NEW_RELIC_ENABLED: Symbol.for('NEW_RELIC_ENABLED'), + VERSION: Symbol.for('VERSION'), + // use cases + MuteAllEmails: Symbol.for('MuteAllEmails'), + // Controller + SettingsController: Symbol.for('SettingsController'), + // Handlers + // Services + CrossServiceTokenDecoder: Symbol.for('CrossServiceTokenDecoder'), + DomainEventSubscriberFactory: Symbol.for('DomainEventSubscriberFactory'), + DomainEventMessageHandler: Symbol.for('DomainEventMessageHandler'), + Timer: Symbol.for('Timer'), + // Middleware + ApiGatewayAuthMiddleware: Symbol.for('ApiGatewayAuthMiddleware'), +} + +export default TYPES diff --git a/packages/settings/src/Domain/Setting/SettingProps.ts b/packages/settings/src/Domain/Setting/SettingProps.ts index edb4b38aa..5ddf725d6 100644 --- a/packages/settings/src/Domain/Setting/SettingProps.ts +++ b/packages/settings/src/Domain/Setting/SettingProps.ts @@ -1,6 +1,4 @@ -import { EncryptionVersion, Timestamps, Uuid } from '@standardnotes/domain-core' - -import { SettingName } from './SettingName' +import { EncryptionVersion, SettingName, Timestamps, Uuid } from '@standardnotes/domain-core' export interface SettingProps { userUuid: Uuid diff --git a/packages/settings/src/Domain/Setting/SubscriptionSettingName.ts b/packages/settings/src/Domain/Setting/SubscriptionSettingName.ts deleted file mode 100644 index 35e8e23ea..000000000 --- a/packages/settings/src/Domain/Setting/SubscriptionSettingName.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum SubscriptionSettingName { - FileUploadBytesLimit = 'FILE_UPLOAD_BYTES_LIMIT', - FileUploadBytesUsed = 'FILE_UPLOAD_BYTES_USED', -} diff --git a/packages/settings/src/Domain/index.ts b/packages/settings/src/Domain/index.ts deleted file mode 100644 index 9a7475300..000000000 --- a/packages/settings/src/Domain/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -export * from './CloudProvider/CloudProvider' -export * from './DropboxBackupFrequency/DropboxBackupFrequency' -export * from './EmailBackupFrequency/EmailBackupFrequency' -export * from './GoogleDriveBackupFrequency/GoogleDriveBackupFrequency' -export * from './ListedAuthorSecretsData/ListedAuthorSecretsData' -export * from './LogSessionUserAgent/LogSessionUserAgentOption' -export * from './MuteFailedBackupsEmails/MuteFailedBackupsEmailsOption' -export * from './MuteFailedCloudBackupsEmails/MuteFailedCloudBackupsEmailsOption' -export * from './MuteMarketingEmails/MuteMarketingEmailsOption' -export * from './MuteSignInEmails/MuteSignInEmailsOption' -export * from './OneDriveBackupFrequency/OneDriveBackupFrequency' -export * from './Setting/SettingName' -export * from './Setting/SubscriptionSettingName' diff --git a/packages/settings/src/Infra/InversifyExpress/InversifyExpressApiGatewayAuthMiddleware.ts b/packages/settings/src/Infra/InversifyExpress/InversifyExpressApiGatewayAuthMiddleware.ts new file mode 100644 index 000000000..069dcd891 --- /dev/null +++ b/packages/settings/src/Infra/InversifyExpress/InversifyExpressApiGatewayAuthMiddleware.ts @@ -0,0 +1,60 @@ +import { CrossServiceTokenData, TokenDecoderInterface } from '@standardnotes/security' +import { NextFunction, Request, Response } from 'express' +import { inject, injectable } from 'inversify' +import { BaseMiddleware } from 'inversify-express-utils' +import { Logger } from 'winston' + +import TYPES from '../../Bootstrap/Types' + +@injectable() +export class InversifyExpressApiGatewayAuthMiddleware extends BaseMiddleware { + constructor( + @inject(TYPES.CrossServiceTokenDecoder) private tokenDecoder: TokenDecoderInterface, + @inject(TYPES.Logger) private logger: Logger, + ) { + super() + } + + async handler(request: Request, response: Response, next: NextFunction): Promise { + try { + if (!request.headers['x-auth-token']) { + this.logger.debug('ApiGatewayAuthMiddleware missing x-auth-token header.') + + response.status(401).send({ + error: { + tag: 'invalid-auth', + message: 'Invalid login credentials.', + }, + }) + + return + } + + const token: CrossServiceTokenData | undefined = this.tokenDecoder.decodeToken( + request.headers['x-auth-token'] as string, + ) + + if (token === undefined) { + this.logger.debug('ApiGatewayAuthMiddleware authentication failure.') + + response.status(401).send({ + error: { + tag: 'invalid-auth', + message: 'Invalid login credentials.', + }, + }) + + return + } + + response.locals.user = token.user + response.locals.roles = token.roles + response.locals.session = token.session + response.locals.readOnlyAccess = token.session?.readonly_access ?? false + + return next() + } catch (error) { + return next(error) + } + } +} diff --git a/packages/settings/src/Infra/InversifyExpress/InversifyExpressHealthCheckController.ts b/packages/settings/src/Infra/InversifyExpress/InversifyExpressHealthCheckController.ts new file mode 100644 index 000000000..535288409 --- /dev/null +++ b/packages/settings/src/Infra/InversifyExpress/InversifyExpressHealthCheckController.ts @@ -0,0 +1,9 @@ +import { controller, httpGet } from 'inversify-express-utils' + +@controller('/healthcheck') +export class InversifyExpressHealthCheckController { + @httpGet('/') + public async get(): Promise { + return 'OK' + } +} diff --git a/packages/settings/src/Infra/TypeORM/TypeORMSetting.ts b/packages/settings/src/Infra/TypeORM/TypeORMSetting.ts new file mode 100644 index 000000000..2197e5e2f --- /dev/null +++ b/packages/settings/src/Infra/TypeORM/TypeORMSetting.ts @@ -0,0 +1,55 @@ +import { EncryptionVersion } from '@standardnotes/domain-core' +import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm' + +@Entity({ name: 'settings' }) +@Index('index_settings_on_name_and_user_uuid', ['name', 'userUuid']) +export class TypeORMSetting { + @PrimaryGeneratedColumn('uuid') + declare uuid: string + + @Column({ + length: 255, + }) + declare name: string + + @Column({ + type: 'text', + nullable: true, + }) + declare value: string | null + + @Column({ + name: 'server_encryption_version', + type: 'tinyint', + default: EncryptionVersion.VERSIONS.Unencrypted, + }) + declare serverEncryptionVersion: number + + @Column({ + name: 'created_at', + type: 'bigint', + }) + declare createdAt: number + + @Column({ + name: 'updated_at', + type: 'bigint', + }) + @Index('index_settings_on_updated_at') + declare updatedAt: number + + @Column({ + name: 'user_uuid', + length: 36, + type: 'varchar', + }) + declare userUuid: string + + @Column({ + type: 'tinyint', + width: 1, + nullable: false, + default: 0, + }) + declare sensitive: boolean +} diff --git a/packages/settings/src/index.ts b/packages/settings/src/index.ts deleted file mode 100644 index 920deacdb..000000000 --- a/packages/settings/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './Domain' diff --git a/packages/settings/tsconfig.json b/packages/settings/tsconfig.json index 8d2588d39..d87b89eeb 100644 --- a/packages/settings/tsconfig.json +++ b/packages/settings/tsconfig.json @@ -5,7 +5,9 @@ "outDir": "./dist", }, "include": [ - "src/**/*" + "src/**/*", + "bin/**/*", + "migrations/**/*", ], "references": [] } diff --git a/packages/syncing-server/package.json b/packages/syncing-server/package.json index f560fde17..412097e5a 100644 --- a/packages/syncing-server/package.json +++ b/packages/syncing-server/package.json @@ -35,7 +35,6 @@ "@standardnotes/payloads": "^1.5.1", "@standardnotes/responses": "^1.6.39", "@standardnotes/security": "workspace:*", - "@standardnotes/settings": "workspace:*", "@standardnotes/time": "workspace:*", "aws-sdk": "^2.1260.0", "axios": "^1.1.3", diff --git a/packages/syncing-server/src/Infra/HTTP/AuthHttpService.spec.ts b/packages/syncing-server/src/Infra/HTTP/AuthHttpService.spec.ts index 55ce6a7f1..40b6b7e90 100644 --- a/packages/syncing-server/src/Infra/HTTP/AuthHttpService.spec.ts +++ b/packages/syncing-server/src/Infra/HTTP/AuthHttpService.spec.ts @@ -1,9 +1,9 @@ import 'reflect-metadata' import { AxiosInstance } from 'axios' +import { SettingName } from '@standardnotes/domain-core' import { AuthHttpService } from './AuthHttpService' -import { SettingName } from '@standardnotes/settings' describe('AuthHttpService', () => { let httpClient: AxiosInstance diff --git a/yarn.lock b/yarn.lock index f7e5fb092..878509f5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,7 +1895,6 @@ __metadata: "@standardnotes/predicates": "workspace:*" "@standardnotes/responses": "npm:^1.6.39" "@standardnotes/security": "workspace:*" - "@standardnotes/settings": "workspace:*" "@standardnotes/sncrypto-common": "npm:^1.9.0" "@standardnotes/sncrypto-node": "workspace:*" "@standardnotes/time": "workspace:*" @@ -2355,15 +2354,44 @@ __metadata: languageName: unknown linkType: soft -"@standardnotes/settings@workspace:*, @standardnotes/settings@workspace:packages/settings": +"@standardnotes/settings-server@workspace:packages/settings": version: 0.0.0-use.local - resolution: "@standardnotes/settings@workspace:packages/settings" + resolution: "@standardnotes/settings-server@workspace:packages/settings" dependencies: + "@newrelic/winston-enricher": "npm:^4.0.0" + "@sentry/node": "npm:^7.19.0" "@standardnotes/domain-core": "workspace:^" - "@typescript-eslint/eslint-plugin": "npm:^5.30.0" - eslint-plugin-prettier: "npm:^4.2.1" - reflect-metadata: "npm:^0.1.13" + "@standardnotes/domain-events": "workspace:*" + "@standardnotes/domain-events-infra": "workspace:*" + "@standardnotes/security": "workspace:^" + "@standardnotes/time": "workspace:^" + "@types/cors": "npm:^2.8.9" + "@types/dotenv": "npm:^8.2.0" + "@types/express": "npm:^4.17.14" + "@types/inversify-express-utils": "npm:^2.0.0" + "@types/ioredis": "npm:^5.0.0" + "@types/jest": "npm:^29.1.1" + "@types/newrelic": "npm:^7.0.4" + "@typescript-eslint/eslint-plugin": "npm:^5.29.0" + aws-sdk: "npm:^2.1260.0" + cors: "npm:2.8.5" + dotenv: "npm:^16.0.1" + eslint: "npm:^8.14.0" + eslint-plugin-prettier: "npm:^4.0.0" + express: "npm:^4.18.2" + helmet: "npm:^6.0.0" + inversify: "npm:^6.0.1" + inversify-express-utils: "npm:^6.4.3" + ioredis: "npm:^5.2.4" + jest: "npm:^29.1.2" + mysql2: "npm:^2.3.3" + newrelic: "npm:^9.6.0" + npm-check-updates: "npm:^16.0.1" + reflect-metadata: "npm:0.1.13" + ts-jest: "npm:^29.0.3" + typeorm: "npm:^0.3.10" typescript: "npm:^4.8.4" + winston: "npm:^3.8.1" languageName: unknown linkType: soft @@ -2407,7 +2435,6 @@ __metadata: "@standardnotes/payloads": "npm:^1.5.1" "@standardnotes/responses": "npm:^1.6.39" "@standardnotes/security": "workspace:*" - "@standardnotes/settings": "workspace:*" "@standardnotes/time": "workspace:*" "@types/cors": "npm:^2.8.9" "@types/dotenv": "npm:^8.2.0" From 7d43316597c5393ad82605c90c0b4320b7a4aaec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Thu, 1 Dec 2022 14:40:50 +0100 Subject: [PATCH 3/7] feat(settings): add mutting all emails use case --- packages/settings/src/Bootstrap/Container.ts | 14 ++++++++++ .../src/Domain/CloudProvider/CloudProvider.ts | 5 ---- .../DropboxBackupFrequency.ts | 5 ---- .../EmailBackupFrequency.ts | 5 ---- .../GoogleDriveBackupFrequency.ts | 5 ---- .../ListedAuthorSecretsData.ts | 1 - .../LogSessionUserAgentOption.ts | 4 --- .../MuteFailedBackupsEmailsOption.ts | 4 --- .../MuteFailedCloudBackupsEmailsOption.ts | 4 --- .../MuteMarketingEmailsOption.ts | 4 --- .../MuteSignInEmailsOption.ts | 4 --- .../OneDriveBackupFrequency.ts | 5 ---- .../Setting/SettingRepositoryInterface.ts | 5 ++++ .../MuteAllEmails/MuteAllEmails.spec.ts | 27 +++++++++++++++++++ .../UseCase/MuteAllEmails/MuteAllEmails.ts | 20 ++++++++++++++ .../UseCase/MuteAllEmails/MuteAllEmailsDTO.ts | 3 +++ .../src/Infra/MySQL/MySQLSettingRepository.ts | 21 +++++++++++++++ 17 files changed, 90 insertions(+), 46 deletions(-) delete mode 100644 packages/settings/src/Domain/CloudProvider/CloudProvider.ts delete mode 100644 packages/settings/src/Domain/DropboxBackupFrequency/DropboxBackupFrequency.ts delete mode 100644 packages/settings/src/Domain/EmailBackupFrequency/EmailBackupFrequency.ts delete mode 100644 packages/settings/src/Domain/GoogleDriveBackupFrequency/GoogleDriveBackupFrequency.ts delete mode 100644 packages/settings/src/Domain/ListedAuthorSecretsData/ListedAuthorSecretsData.ts delete mode 100644 packages/settings/src/Domain/LogSessionUserAgent/LogSessionUserAgentOption.ts delete mode 100644 packages/settings/src/Domain/MuteFailedBackupsEmails/MuteFailedBackupsEmailsOption.ts delete mode 100644 packages/settings/src/Domain/MuteFailedCloudBackupsEmails/MuteFailedCloudBackupsEmailsOption.ts delete mode 100644 packages/settings/src/Domain/MuteMarketingEmails/MuteMarketingEmailsOption.ts delete mode 100644 packages/settings/src/Domain/MuteSignInEmails/MuteSignInEmailsOption.ts delete mode 100644 packages/settings/src/Domain/OneDriveBackupFrequency/OneDriveBackupFrequency.ts create mode 100644 packages/settings/src/Domain/Setting/SettingRepositoryInterface.ts create mode 100644 packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts create mode 100644 packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts create mode 100644 packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts create mode 100644 packages/settings/src/Infra/MySQL/MySQLSettingRepository.ts diff --git a/packages/settings/src/Bootstrap/Container.ts b/packages/settings/src/Bootstrap/Container.ts index 20750fbe5..f43abbfd5 100644 --- a/packages/settings/src/Bootstrap/Container.ts +++ b/packages/settings/src/Bootstrap/Container.ts @@ -20,6 +20,11 @@ import { Env } from './Env' import TYPES from './Types' import { AppDataSource } from './DataSource' import { InversifyExpressApiGatewayAuthMiddleware } from '../Infra/InversifyExpress/InversifyExpressApiGatewayAuthMiddleware' +import { MuteAllEmails } from '../Domain/UseCase/MuteAllEmails/MuteAllEmails' +import { Repository } from 'typeorm' +import { TypeORMSetting } from '../Infra/TypeORM/TypeORMSetting' +import { SettingRepositoryInterface } from '../Domain/Setting/SettingRepositoryInterface' +import { MySQLSettingRepository } from '../Infra/MySQL/MySQLSettingRepository' // eslint-disable-next-line @typescript-eslint/no-var-requires const newrelicFormatter = require('@newrelic/winston-enricher') @@ -74,6 +79,9 @@ export class ContainerConfigLoader { // Map // ORM + container + .bind>(TYPES.ORMSettingRepository) + .toConstantValue(AppDataSource.getRepository(TypeORMSetting)) // env vars container.bind(TYPES.REDIS_URL).toConstantValue(env.get('REDIS_URL')) @@ -84,8 +92,14 @@ export class ContainerConfigLoader { container.bind(TYPES.VERSION).toConstantValue(env.get('VERSION')) // Repositories + container + .bind(TYPES.SettingRepository) + .toConstantValue(new MySQLSettingRepository(container.get(TYPES.ORMSettingRepository))) // use cases + container + .bind(TYPES.MuteAllEmails) + .toConstantValue(new MuteAllEmails(container.get(TYPES.SettingRepository))) // Controller diff --git a/packages/settings/src/Domain/CloudProvider/CloudProvider.ts b/packages/settings/src/Domain/CloudProvider/CloudProvider.ts deleted file mode 100644 index 0493daa4f..000000000 --- a/packages/settings/src/Domain/CloudProvider/CloudProvider.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum CloudProvider { - Dropbox = 'Dropbox', - Google = 'Google Drive', - OneDrive = 'OneDrive', -} diff --git a/packages/settings/src/Domain/DropboxBackupFrequency/DropboxBackupFrequency.ts b/packages/settings/src/Domain/DropboxBackupFrequency/DropboxBackupFrequency.ts deleted file mode 100644 index 3350a526d..000000000 --- a/packages/settings/src/Domain/DropboxBackupFrequency/DropboxBackupFrequency.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum DropboxBackupFrequency { - Disabled = 'disabled', - Daily = 'daily', - Weekly = 'weekly', -} diff --git a/packages/settings/src/Domain/EmailBackupFrequency/EmailBackupFrequency.ts b/packages/settings/src/Domain/EmailBackupFrequency/EmailBackupFrequency.ts deleted file mode 100644 index 0aef1c067..000000000 --- a/packages/settings/src/Domain/EmailBackupFrequency/EmailBackupFrequency.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum EmailBackupFrequency { - Disabled = 'disabled', - Daily = 'daily', - Weekly = 'weekly', -} diff --git a/packages/settings/src/Domain/GoogleDriveBackupFrequency/GoogleDriveBackupFrequency.ts b/packages/settings/src/Domain/GoogleDriveBackupFrequency/GoogleDriveBackupFrequency.ts deleted file mode 100644 index c8fb7d0d4..000000000 --- a/packages/settings/src/Domain/GoogleDriveBackupFrequency/GoogleDriveBackupFrequency.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum GoogleDriveBackupFrequency { - Disabled = 'disabled', - Daily = 'daily', - Weekly = 'weekly', -} diff --git a/packages/settings/src/Domain/ListedAuthorSecretsData/ListedAuthorSecretsData.ts b/packages/settings/src/Domain/ListedAuthorSecretsData/ListedAuthorSecretsData.ts deleted file mode 100644 index b3a7d429f..000000000 --- a/packages/settings/src/Domain/ListedAuthorSecretsData/ListedAuthorSecretsData.ts +++ /dev/null @@ -1 +0,0 @@ -export type ListedAuthorSecretsData = Array<{ authorId: number; secret: string; hostUrl: string }> diff --git a/packages/settings/src/Domain/LogSessionUserAgent/LogSessionUserAgentOption.ts b/packages/settings/src/Domain/LogSessionUserAgent/LogSessionUserAgentOption.ts deleted file mode 100644 index 3ab70517a..000000000 --- a/packages/settings/src/Domain/LogSessionUserAgent/LogSessionUserAgentOption.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum LogSessionUserAgentOption { - Disabled = 'disabled', - Enabled = 'enabled', -} diff --git a/packages/settings/src/Domain/MuteFailedBackupsEmails/MuteFailedBackupsEmailsOption.ts b/packages/settings/src/Domain/MuteFailedBackupsEmails/MuteFailedBackupsEmailsOption.ts deleted file mode 100644 index 5df663ded..000000000 --- a/packages/settings/src/Domain/MuteFailedBackupsEmails/MuteFailedBackupsEmailsOption.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum MuteFailedBackupsEmailsOption { - Muted = 'muted', - NotMuted = 'not_muted', -} diff --git a/packages/settings/src/Domain/MuteFailedCloudBackupsEmails/MuteFailedCloudBackupsEmailsOption.ts b/packages/settings/src/Domain/MuteFailedCloudBackupsEmails/MuteFailedCloudBackupsEmailsOption.ts deleted file mode 100644 index ac69bcf8b..000000000 --- a/packages/settings/src/Domain/MuteFailedCloudBackupsEmails/MuteFailedCloudBackupsEmailsOption.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum MuteFailedCloudBackupsEmailsOption { - Muted = 'muted', - NotMuted = 'not_muted', -} diff --git a/packages/settings/src/Domain/MuteMarketingEmails/MuteMarketingEmailsOption.ts b/packages/settings/src/Domain/MuteMarketingEmails/MuteMarketingEmailsOption.ts deleted file mode 100644 index bdcac6fc3..000000000 --- a/packages/settings/src/Domain/MuteMarketingEmails/MuteMarketingEmailsOption.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum MuteMarketingEmailsOption { - Muted = 'muted', - NotMuted = 'not_muted', -} diff --git a/packages/settings/src/Domain/MuteSignInEmails/MuteSignInEmailsOption.ts b/packages/settings/src/Domain/MuteSignInEmails/MuteSignInEmailsOption.ts deleted file mode 100644 index 7028e2c71..000000000 --- a/packages/settings/src/Domain/MuteSignInEmails/MuteSignInEmailsOption.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum MuteSignInEmailsOption { - Muted = 'muted', - NotMuted = 'not_muted', -} diff --git a/packages/settings/src/Domain/OneDriveBackupFrequency/OneDriveBackupFrequency.ts b/packages/settings/src/Domain/OneDriveBackupFrequency/OneDriveBackupFrequency.ts deleted file mode 100644 index de60985c4..000000000 --- a/packages/settings/src/Domain/OneDriveBackupFrequency/OneDriveBackupFrequency.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum OneDriveBackupFrequency { - Disabled = 'disabled', - Daily = 'daily', - Weekly = 'weekly', -} diff --git a/packages/settings/src/Domain/Setting/SettingRepositoryInterface.ts b/packages/settings/src/Domain/Setting/SettingRepositoryInterface.ts new file mode 100644 index 000000000..f9b0ed8ed --- /dev/null +++ b/packages/settings/src/Domain/Setting/SettingRepositoryInterface.ts @@ -0,0 +1,5 @@ +import { Uuid } from '@standardnotes/domain-core' + +export interface SettingRepositoryInterface { + setValueOnMultipleSettings(settingNames: string[], userUuid: Uuid, value: string | null): Promise +} diff --git a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts new file mode 100644 index 000000000..9c0c75e4e --- /dev/null +++ b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts @@ -0,0 +1,27 @@ +import { SettingRepositoryInterface } from '../../Setting/SettingRepositoryInterface' +import { MuteAllEmails } from './MuteAllEmails' + +describe('MuteAllEmails', () => { + let settingRepository: SettingRepositoryInterface + + const createUseCase = () => new MuteAllEmails(settingRepository) + + beforeEach(() => { + settingRepository = {} as jest.Mocked + settingRepository.setValueOnMultipleSettings = jest.fn() + }) + + it('should mute all email settings for a given user', async () => { + const result = await createUseCase().execute({ userUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d' }) + + expect(result.isFailed()).toBeFalsy() + expect(settingRepository.setValueOnMultipleSettings).toHaveBeenCalled() + }) + + it('should not mute all email settings for an invalid user uuid', async () => { + const result = await createUseCase().execute({ userUuid: '1-2-3' }) + + expect(result.isFailed()).toBeTruthy() + expect(settingRepository.setValueOnMultipleSettings).not.toHaveBeenCalled() + }) +}) diff --git a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts new file mode 100644 index 000000000..2025aabab --- /dev/null +++ b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts @@ -0,0 +1,20 @@ +import { Result, SettingName, UseCaseInterface, Uuid } from '@standardnotes/domain-core' + +import { SettingRepositoryInterface } from '../../Setting/SettingRepositoryInterface' +import { MuteAllEmailsDTO } from './MuteAllEmailsDTO' + +export class MuteAllEmails implements UseCaseInterface { + constructor(private settingRepository: SettingRepositoryInterface) {} + + async execute(dto: MuteAllEmailsDTO): Promise> { + const userUuidOrError = Uuid.create(dto.userUuid) + if (userUuidOrError.isFailed()) { + return Result.fail(`Could not mute user emails: ${userUuidOrError.getError()}`) + } + const userUuid = userUuidOrError.getValue() + + await this.settingRepository.setValueOnMultipleSettings([SettingName.NAMES.MuteMarketingEmails], userUuid, 'muted') + + return Result.ok('Muted all emails.') + } +} diff --git a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts new file mode 100644 index 000000000..6c2bef434 --- /dev/null +++ b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts @@ -0,0 +1,3 @@ +export interface MuteAllEmailsDTO { + userUuid: string +} diff --git a/packages/settings/src/Infra/MySQL/MySQLSettingRepository.ts b/packages/settings/src/Infra/MySQL/MySQLSettingRepository.ts new file mode 100644 index 000000000..d2baae991 --- /dev/null +++ b/packages/settings/src/Infra/MySQL/MySQLSettingRepository.ts @@ -0,0 +1,21 @@ +import { Uuid } from '@standardnotes/domain-core' +import { Repository } from 'typeorm' + +import { SettingRepositoryInterface } from '../../Domain/Setting/SettingRepositoryInterface' +import { TypeORMSetting } from '../TypeORM/TypeORMSetting' + +export class MySQLSettingRepository implements SettingRepositoryInterface { + constructor(private ormRepository: Repository) {} + + async setValueOnMultipleSettings(settingNames: string[], userUuid: Uuid, value: string | null): Promise { + await this.ormRepository + .createQueryBuilder() + .update() + .set({ + value, + }) + .where('user_uuid = :userUuid', { userUuid: userUuid.value }) + .andWhere('name IN (:...settingNames)', { settingNames }) + .execute() + } +} From 4f0bc57b1a2a6ba05805bdc0d510e5d52b5d3de4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Thu, 1 Dec 2022 14:54:14 +0100 Subject: [PATCH 4/7] feat(settings): add controller for muting all emails --- .pnp.cjs | 83 ++++++++++++++++ ...-api-npm-1.20.13-3efe52d749-67bdb982ec.zip | Bin 0 -> 95992 bytes ...tion-npm-1.19.21-dfa10f00e6-c8c2c27bfe.zip | Bin 0 -> 57611 bytes ...tures-npm-1.55.3-c124505183-b39fe2d49b.zip | Bin 0 -> 27065 bytes ...odels-npm-1.38.0-108f602f56-2dc2ac957e.zip | Bin 0 -> 396279 bytes ...onses-npm-1.12.9-280dc75972-353fe1ca6d.zip | Bin 0 -> 46466 bytes ...ommon-npm-1.13.3-97ef3850ce-a73af90962.zip | Bin 0 -> 22298 bytes ...utils-npm-1.13.0-28780a59f0-1578e8adb7.zip | Bin 0 -> 17640 bytes ...purify-npm-2.4.1-1c79f22057-ddc0633356.zip | Bin 0 -> 204824 bytes packages/settings/bin/server.ts | 1 + packages/settings/jest.config.js | 1 + packages/settings/package.json | 1 + .../src/Controller/SettingsController.ts | 30 ++++++ .../Infra/Http/MuteAllEmailsRequestParams.ts | 3 + .../InversifyExpressSettingsController.ts | 22 +++++ yarn.lock | 93 +++++++++++++++++- 16 files changed, 232 insertions(+), 2 deletions(-) create mode 100644 .yarn/cache/@standardnotes-api-npm-1.20.13-3efe52d749-67bdb982ec.zip create mode 100644 .yarn/cache/@standardnotes-encryption-npm-1.19.21-dfa10f00e6-c8c2c27bfe.zip create mode 100644 .yarn/cache/@standardnotes-features-npm-1.55.3-c124505183-b39fe2d49b.zip create mode 100644 .yarn/cache/@standardnotes-models-npm-1.38.0-108f602f56-2dc2ac957e.zip create mode 100644 .yarn/cache/@standardnotes-responses-npm-1.12.9-280dc75972-353fe1ca6d.zip create mode 100644 .yarn/cache/@standardnotes-sncrypto-common-npm-1.13.3-97ef3850ce-a73af90962.zip create mode 100644 .yarn/cache/@standardnotes-utils-npm-1.13.0-28780a59f0-1578e8adb7.zip create mode 100644 .yarn/cache/dompurify-npm-2.4.1-1c79f22057-ddc0633356.zip create mode 100644 packages/settings/src/Controller/SettingsController.ts create mode 100644 packages/settings/src/Infra/Http/MuteAllEmailsRequestParams.ts create mode 100644 packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts diff --git a/.pnp.cjs b/.pnp.cjs index 6e733c39d..06cd648bd 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -2582,6 +2582,20 @@ const RAW_RUNTIME_STATE = ["reflect-metadata", "npm:0.1.13"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.20.13", {\ + "packageLocation": "./.yarn/cache/@standardnotes-api-npm-1.20.13-3efe52d749-67bdb982ec.zip/node_modules/@standardnotes/api/",\ + "packageDependencies": [\ + ["@standardnotes/api", "npm:1.20.13"],\ + ["@standardnotes/common", "workspace:packages/common"],\ + ["@standardnotes/encryption", "npm:1.19.21"],\ + ["@standardnotes/models", "npm:1.38.0"],\ + ["@standardnotes/responses", "npm:1.12.9"],\ + ["@standardnotes/security", "workspace:packages/security"],\ + ["@standardnotes/utils", "npm:1.13.0"],\ + ["reflect-metadata", "npm:0.1.13"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@standardnotes/api-gateway", [\ @@ -2811,6 +2825,19 @@ const RAW_RUNTIME_STATE = ["reflect-metadata", "npm:0.1.13"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.19.21", {\ + "packageLocation": "./.yarn/cache/@standardnotes-encryption-npm-1.19.21-dfa10f00e6-c8c2c27bfe.zip/node_modules/@standardnotes/encryption/",\ + "packageDependencies": [\ + ["@standardnotes/encryption", "npm:1.19.21"],\ + ["@standardnotes/common", "workspace:packages/common"],\ + ["@standardnotes/models", "npm:1.38.0"],\ + ["@standardnotes/responses", "npm:1.12.9"],\ + ["@standardnotes/sncrypto-common", "npm:1.13.3"],\ + ["@standardnotes/utils", "npm:1.13.0"],\ + ["reflect-metadata", "npm:0.1.13"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@standardnotes/event-store", [\ @@ -2866,6 +2893,17 @@ const RAW_RUNTIME_STATE = ["reflect-metadata", "npm:0.1.13"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.55.3", {\ + "packageLocation": "./.yarn/cache/@standardnotes-features-npm-1.55.3-c124505183-b39fe2d49b.zip/node_modules/@standardnotes/features/",\ + "packageDependencies": [\ + ["@standardnotes/features", "npm:1.55.3"],\ + ["@standardnotes/auth", "npm:3.19.4"],\ + ["@standardnotes/common", "workspace:packages/common"],\ + ["@standardnotes/security", "workspace:packages/security"],\ + ["reflect-metadata", "npm:0.1.13"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@standardnotes/files-server", [\ @@ -2947,6 +2985,13 @@ const RAW_RUNTIME_STATE = ["reflect-metadata", "npm:0.1.13"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.38.0", {\ + "packageLocation": "./.yarn/cache/@standardnotes-models-npm-1.38.0-108f602f56-2dc2ac957e.zip/node_modules/@standardnotes/models/",\ + "packageDependencies": [\ + ["@standardnotes/models", "npm:1.38.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@standardnotes/payloads", [\ @@ -3000,6 +3045,17 @@ const RAW_RUNTIME_STATE = ["reflect-metadata", "npm:0.1.13"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.12.9", {\ + "packageLocation": "./.yarn/cache/@standardnotes-responses-npm-1.12.9-280dc75972-353fe1ca6d.zip/node_modules/@standardnotes/responses/",\ + "packageDependencies": [\ + ["@standardnotes/responses", "npm:1.12.9"],\ + ["@standardnotes/common", "workspace:packages/common"],\ + ["@standardnotes/features", "npm:1.55.3"],\ + ["@standardnotes/security", "workspace:packages/security"],\ + ["reflect-metadata", "npm:0.1.13"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@standardnotes/revisions-server", [\ @@ -3138,6 +3194,7 @@ const RAW_RUNTIME_STATE = ["@standardnotes/settings-server", "workspace:packages/settings"],\ ["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\ ["@sentry/node", "npm:7.19.0"],\ + ["@standardnotes/api", "npm:1.20.13"],\ ["@standardnotes/domain-core", "workspace:packages/domain-core"],\ ["@standardnotes/domain-events", "workspace:packages/domain-events"],\ ["@standardnotes/domain-events-infra", "workspace:packages/domain-events-infra"],\ @@ -3182,6 +3239,14 @@ const RAW_RUNTIME_STATE = ["reflect-metadata", "npm:0.1.13"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.13.3", {\ + "packageLocation": "./.yarn/cache/@standardnotes-sncrypto-common-npm-1.13.3-97ef3850ce-a73af90962.zip/node_modules/@standardnotes/sncrypto-common/",\ + "packageDependencies": [\ + ["@standardnotes/sncrypto-common", "npm:1.13.3"],\ + ["reflect-metadata", "npm:0.1.13"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@standardnotes/sncrypto-node", [\ @@ -3301,6 +3366,17 @@ const RAW_RUNTIME_STATE = ["reflect-metadata", "npm:0.1.13"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.13.0", {\ + "packageLocation": "./.yarn/cache/@standardnotes-utils-npm-1.13.0-28780a59f0-1578e8adb7.zip/node_modules/@standardnotes/utils/",\ + "packageDependencies": [\ + ["@standardnotes/utils", "npm:1.13.0"],\ + ["@standardnotes/common", "workspace:packages/common"],\ + ["dompurify", "npm:2.4.1"],\ + ["lodash", "npm:4.17.21"],\ + ["reflect-metadata", "npm:0.1.13"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@standardnotes/websockets-server", [\ @@ -6399,6 +6475,13 @@ const RAW_RUNTIME_STATE = ["dompurify", "npm:2.4.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.4.1", {\ + "packageLocation": "./.yarn/cache/dompurify-npm-2.4.1-1c79f22057-ddc0633356.zip/node_modules/dompurify/",\ + "packageDependencies": [\ + ["dompurify", "npm:2.4.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["dot-prop", [\ diff --git a/.yarn/cache/@standardnotes-api-npm-1.20.13-3efe52d749-67bdb982ec.zip b/.yarn/cache/@standardnotes-api-npm-1.20.13-3efe52d749-67bdb982ec.zip new file mode 100644 index 0000000000000000000000000000000000000000..03b92ff675f1cf941c6b17b338c66cfcefa9b469 GIT binary patch literal 95992 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 LBua&ci$wni&Ts`M literal 0 HcmV?d00001 diff --git a/.yarn/cache/@standardnotes-encryption-npm-1.19.21-dfa10f00e6-c8c2c27bfe.zip b/.yarn/cache/@standardnotes-encryption-npm-1.19.21-dfa10f00e6-c8c2c27bfe.zip new file mode 100644 index 0000000000000000000000000000000000000000..5d7c1fb2b737aa5a4449d59b6313f03838041346 GIT binary patch literal 57611 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 lS(SVxr8P|v=Uar{xt?2NEa_9;31a9aM@z#C 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 U1Um-?+6evyE3mQoT*7|)9~_Ra-2eap literal 0 HcmV?d00001 diff --git a/.yarn/cache/@standardnotes-features-npm-1.55.3-c124505183-b39fe2d49b.zip b/.yarn/cache/@standardnotes-features-npm-1.55.3-c124505183-b39fe2d49b.zip new file mode 100644 index 0000000000000000000000000000000000000000..1447fcdc0ca91b850a775a1732b38c25cfc9c9bd GIT binary patch literal 27065 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 z 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®r{_a97{*F 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 literal 0 HcmV?d00001 diff --git a/.yarn/cache/@standardnotes-sncrypto-common-npm-1.13.3-97ef3850ce-a73af90962.zip b/.yarn/cache/@standardnotes-sncrypto-common-npm-1.13.3-97ef3850ce-a73af90962.zip new file mode 100644 index 0000000000000000000000000000000000000000..524f39f7b0989126e56508acf2b23b084b5580af GIT binary patch literal 22298 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 A7XSbN literal 0 HcmV?d00001 diff --git a/.yarn/cache/@standardnotes-utils-npm-1.13.0-28780a59f0-1578e8adb7.zip b/.yarn/cache/@standardnotes-utils-npm-1.13.0-28780a59f0-1578e8adb7.zip new file mode 100644 index 0000000000000000000000000000000000000000..d5b19947be36e4b90bd0ffa38030afcccdf12cb4 GIT binary patch literal 17640 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 BQ6c~U literal 0 HcmV?d00001 diff --git a/.yarn/cache/dompurify-npm-2.4.1-1c79f22057-ddc0633356.zip b/.yarn/cache/dompurify-npm-2.4.1-1c79f22057-ddc0633356.zip new file mode 100644 index 0000000000000000000000000000000000000000..70bc9d428dfe41fc901affd86c5ff1b0317d2a68 GIT binary patch literal 204824 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 literal 0 HcmV?d00001 diff --git a/packages/settings/bin/server.ts b/packages/settings/bin/server.ts index f275168b7..82b96c95e 100644 --- a/packages/settings/bin/server.ts +++ b/packages/settings/bin/server.ts @@ -5,6 +5,7 @@ import 'newrelic' import * as Sentry from '@sentry/node' import '../src/Infra/InversifyExpress/InversifyExpressHealthCheckController' +import '../src/Infra/InversifyExpress/InversifyExpressSettingsController' import * as cors from 'cors' import { urlencoded, json, Request, Response, NextFunction, RequestHandler, ErrorRequestHandler } from 'express' diff --git a/packages/settings/jest.config.js b/packages/settings/jest.config.js index 09dfc80db..3d0ea8c87 100644 --- a/packages/settings/jest.config.js +++ b/packages/settings/jest.config.js @@ -7,4 +7,5 @@ module.exports = { transform: { ...tsjPreset.transform, }, + coveragePathIgnorePatterns: ['/Bootstrap/', '/Controller/', '/Infra/', '/Mapping/'], } diff --git a/packages/settings/package.json b/packages/settings/package.json index 324fd0515..d920bfa95 100644 --- a/packages/settings/package.json +++ b/packages/settings/package.json @@ -25,6 +25,7 @@ "dependencies": { "@newrelic/winston-enricher": "^4.0.0", "@sentry/node": "^7.19.0", + "@standardnotes/api": "^1.20.13", "@standardnotes/domain-core": "workspace:^", "@standardnotes/domain-events": "workspace:*", "@standardnotes/domain-events-infra": "workspace:*", diff --git a/packages/settings/src/Controller/SettingsController.ts b/packages/settings/src/Controller/SettingsController.ts new file mode 100644 index 000000000..dacc92fe1 --- /dev/null +++ b/packages/settings/src/Controller/SettingsController.ts @@ -0,0 +1,30 @@ +import { HttpResponse, HttpStatusCode } from '@standardnotes/api' + +import { MuteAllEmails } from '../Domain/UseCase/MuteAllEmails/MuteAllEmails' +import { MuteAllEmailsRequestParams } from '../Infra/Http/MuteAllEmailsRequestParams' + +export class SettingsController { + constructor(private doMuteAllEmails: MuteAllEmails) {} + + async muteAllEmails(params: MuteAllEmailsRequestParams): Promise { + const result = await this.doMuteAllEmails.execute({ + userUuid: params.userUuid, + }) + + if (result.isFailed()) { + return { + status: HttpStatusCode.BadRequest, + data: { + error: { + message: 'Could not mute emails.', + }, + }, + } + } + + return { + status: HttpStatusCode.Success, + data: { success: true }, + } + } +} diff --git a/packages/settings/src/Infra/Http/MuteAllEmailsRequestParams.ts b/packages/settings/src/Infra/Http/MuteAllEmailsRequestParams.ts new file mode 100644 index 000000000..46efe1ba0 --- /dev/null +++ b/packages/settings/src/Infra/Http/MuteAllEmailsRequestParams.ts @@ -0,0 +1,3 @@ +export interface MuteAllEmailsRequestParams { + userUuid: string +} diff --git a/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts b/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts new file mode 100644 index 000000000..7099b96b3 --- /dev/null +++ b/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts @@ -0,0 +1,22 @@ +import { Request } from 'express' +import { BaseHttpController, controller, httpPost, results } from 'inversify-express-utils' +import { inject } from 'inversify' + +import TYPES from '../../Bootstrap/Types' +import { SettingsController } from '../../Controller/SettingsController' + +@controller('/users/:userUuid/settings', TYPES.ApiGatewayAuthMiddleware) +export class InversifyExpressSettingsController extends BaseHttpController { + constructor(@inject(TYPES.SettingsController) private settingsController: SettingsController) { + super() + } + + @httpPost('/mute-emails') + public async muteAllEmails(request: Request): Promise { + const result = await this.settingsController.muteAllEmails({ + userUuid: request.params.userUuid, + }) + + return this.json(result.data, result.status) + } +} diff --git a/yarn.lock b/yarn.lock index 878509f5e..b585ac11f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1880,6 +1880,21 @@ __metadata: languageName: node linkType: hard +"@standardnotes/api@npm:^1.20.13": + version: 1.20.13 + resolution: "@standardnotes/api@npm:1.20.13" + dependencies: + "@standardnotes/common": "npm:^1.45.0" + "@standardnotes/encryption": "npm:1.19.21" + "@standardnotes/models": "npm:1.38.0" + "@standardnotes/responses": "npm:1.12.9" + "@standardnotes/security": "npm:^1.7.0" + "@standardnotes/utils": "npm:1.13.0" + reflect-metadata: "npm:^0.1.13" + checksum: 67bdb982ec6851c2755b47d4671e68006381316e30c6d3104788483c8433f8c0801169f34e25e2da38427b54ef15170b13b35a346a8736ad81924bbef42204c4 + languageName: node + linkType: hard + "@standardnotes/auth-server@workspace:packages/auth": version: 0.0.0-use.local resolution: "@standardnotes/auth-server@workspace:packages/auth" @@ -1948,7 +1963,7 @@ __metadata: languageName: node linkType: hard -"@standardnotes/common@npm:^1.19.1, @standardnotes/common@npm:^1.23.1, @standardnotes/common@npm:^1.39.0, @standardnotes/common@npm:^1.43.0, @standardnotes/common@workspace:*, @standardnotes/common@workspace:^, @standardnotes/common@workspace:packages/common": +"@standardnotes/common@npm:^1.19.1, @standardnotes/common@npm:^1.23.1, @standardnotes/common@npm:^1.39.0, @standardnotes/common@npm:^1.43.0, @standardnotes/common@npm:^1.45.0, @standardnotes/common@workspace:*, @standardnotes/common@workspace:^, @standardnotes/common@workspace:packages/common": version: 0.0.0-use.local resolution: "@standardnotes/common@workspace:packages/common" dependencies: @@ -2051,6 +2066,20 @@ __metadata: languageName: node linkType: hard +"@standardnotes/encryption@npm:1.19.21": + version: 1.19.21 + resolution: "@standardnotes/encryption@npm:1.19.21" + dependencies: + "@standardnotes/common": "npm:^1.45.0" + "@standardnotes/models": "npm:1.38.0" + "@standardnotes/responses": "npm:1.12.9" + "@standardnotes/sncrypto-common": "npm:1.13.3" + "@standardnotes/utils": "npm:1.13.0" + reflect-metadata: "npm:^0.1.13" + checksum: c8c2c27bfee43ece3b508cb8e8b40bc3baf9040ef30380ad2dcfc80e1281b523d89d19dc3f5e9efd00ad662bbbe0e87462fee1599e4240a584032cc5647457dd + languageName: node + linkType: hard + "@standardnotes/event-store@workspace:packages/event-store": version: 0.0.0-use.local resolution: "@standardnotes/event-store@workspace:packages/event-store" @@ -2104,6 +2133,18 @@ __metadata: languageName: node linkType: hard +"@standardnotes/features@npm:1.55.3": + version: 1.55.3 + resolution: "@standardnotes/features@npm:1.55.3" + dependencies: + "@standardnotes/auth": "npm:^3.19.4" + "@standardnotes/common": "npm:^1.45.0" + "@standardnotes/security": "npm:^1.7.0" + reflect-metadata: "npm:^0.1.13" + checksum: b39fe2d49be6748758907a85fb1e74e4bf3d75d742eca1f9f133399059de24c37c4a3dd9ab61316f063c8161cc07229af1c18bc78b8cfa19fe7ba79dfe50fc76 + languageName: node + linkType: hard + "@standardnotes/files-server@workspace:packages/files": version: 0.0.0-use.local resolution: "@standardnotes/files-server@workspace:packages/files" @@ -2169,6 +2210,13 @@ __metadata: languageName: node linkType: hard +"@standardnotes/models@npm:1.38.0": + version: 1.38.0 + resolution: "@standardnotes/models@npm:1.38.0" + checksum: 2dc2ac957eac529f881cd80b0522a7ab9a7f6827e339007da6bf4752634fa916ddc799f535d5d12585bb996659e5fa01d17d2611ee36f95f340e1c4a4b99708e + languageName: node + linkType: hard + "@standardnotes/models@npm:^1.26.0": version: 1.28.0 resolution: "@standardnotes/models@npm:1.28.0" @@ -2233,6 +2281,18 @@ __metadata: languageName: node linkType: hard +"@standardnotes/responses@npm:1.12.9": + version: 1.12.9 + resolution: "@standardnotes/responses@npm:1.12.9" + dependencies: + "@standardnotes/common": "npm:^1.45.0" + "@standardnotes/features": "npm:1.55.3" + "@standardnotes/security": "npm:^1.7.0" + reflect-metadata: "npm:^0.1.13" + checksum: 353fe1ca6d97cf41548273f495d41fbf716ece18c996b5f608ddf9fd262a0a6c41bea5ed6b858fe541075fa7962b51cdb4b9411241330c6545f93469b9d9fd80 + languageName: node + linkType: hard + "@standardnotes/revisions-server@workspace:packages/revisions": version: 0.0.0-use.local resolution: "@standardnotes/revisions-server@workspace:packages/revisions" @@ -2312,7 +2372,7 @@ __metadata: languageName: unknown linkType: soft -"@standardnotes/security@npm:^1.1.0, @standardnotes/security@npm:^1.2.0, @standardnotes/security@workspace:*, @standardnotes/security@workspace:^, @standardnotes/security@workspace:packages/security": +"@standardnotes/security@npm:^1.1.0, @standardnotes/security@npm:^1.2.0, @standardnotes/security@npm:^1.7.0, @standardnotes/security@workspace:*, @standardnotes/security@workspace:^, @standardnotes/security@workspace:packages/security": version: 0.0.0-use.local resolution: "@standardnotes/security@workspace:packages/security" dependencies: @@ -2360,6 +2420,7 @@ __metadata: dependencies: "@newrelic/winston-enricher": "npm:^4.0.0" "@sentry/node": "npm:^7.19.0" + "@standardnotes/api": "npm:^1.20.13" "@standardnotes/domain-core": "workspace:^" "@standardnotes/domain-events": "workspace:*" "@standardnotes/domain-events-infra": "workspace:*" @@ -2404,6 +2465,15 @@ __metadata: languageName: node linkType: hard +"@standardnotes/sncrypto-common@npm:1.13.3": + version: 1.13.3 + resolution: "@standardnotes/sncrypto-common@npm:1.13.3" + dependencies: + reflect-metadata: "npm:^0.1.13" + checksum: a73af909622d9014b149ab64c83efe89ed65e35b6a2056281fc873c3ddce2054d54032d457de4e768b2c1a0e61f6d0dea97f64bff12827f3c100889a65675a0e + languageName: node + linkType: hard + "@standardnotes/sncrypto-node@workspace:*, @standardnotes/sncrypto-node@workspace:packages/sncrypto-node": version: 0.0.0-use.local resolution: "@standardnotes/sncrypto-node@workspace:packages/sncrypto-node" @@ -2517,6 +2587,18 @@ __metadata: languageName: node linkType: hard +"@standardnotes/utils@npm:1.13.0": + version: 1.13.0 + resolution: "@standardnotes/utils@npm:1.13.0" + dependencies: + "@standardnotes/common": "npm:^1.45.0" + dompurify: "npm:^2.4.1" + lodash: "npm:^4.17.21" + reflect-metadata: "npm:^0.1.13" + checksum: 1578e8adb7d5c506fbb84c01babd4fdeba2246e92c05ca83e6c39452eedd25f9590936c0aadfd940c9b3719e0568054e99e8986f18b01afbdc85b9a779287b5f + languageName: node + linkType: hard + "@standardnotes/websockets-server@workspace:packages/websockets": version: 0.0.0-use.local resolution: "@standardnotes/websockets-server@workspace:packages/websockets" @@ -4902,6 +4984,13 @@ __metadata: languageName: node linkType: hard +"dompurify@npm:^2.4.1": + version: 2.4.1 + resolution: "dompurify@npm:2.4.1" + checksum: ddc06333563ee84ab39267f8258e5c3e15ca53f038e1468338e97f687cbff2c7f882342087081a7a3154c1fe87b70579bcbda20bbe87a84d2bb498d1ca645208 + languageName: node + linkType: hard + "dot-prop@npm:^5.1.0": version: 5.3.0 resolution: "dot-prop@npm:5.3.0" From 0b205287d12eeb363b8b2aa4ccf555f9d4bba621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Thu, 1 Dec 2022 14:56:16 +0100 Subject: [PATCH 5/7] fix(settings): binding for controller --- packages/settings/src/Bootstrap/Container.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/settings/src/Bootstrap/Container.ts b/packages/settings/src/Bootstrap/Container.ts index f43abbfd5..4cc6dfaf7 100644 --- a/packages/settings/src/Bootstrap/Container.ts +++ b/packages/settings/src/Bootstrap/Container.ts @@ -25,6 +25,7 @@ import { Repository } from 'typeorm' import { TypeORMSetting } from '../Infra/TypeORM/TypeORMSetting' import { SettingRepositoryInterface } from '../Domain/Setting/SettingRepositoryInterface' import { MySQLSettingRepository } from '../Infra/MySQL/MySQLSettingRepository' +import { SettingsController } from '../Controller/SettingsController' // eslint-disable-next-line @typescript-eslint/no-var-requires const newrelicFormatter = require('@newrelic/winston-enricher') @@ -102,6 +103,9 @@ export class ContainerConfigLoader { .toConstantValue(new MuteAllEmails(container.get(TYPES.SettingRepository))) // Controller + container + .bind(TYPES.SettingsController) + .toConstantValue(new SettingsController(container.get(TYPES.MuteAllEmails))) // Handlers From 3953dbc6b4de8d130f1d1ea915b87124a43e7ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Thu, 1 Dec 2022 15:52:11 +0100 Subject: [PATCH 6/7] feat(settings): add unsubscribe token for muting emails --- .../src/Domain/Setting/SettingName.ts | 1 + packages/settings/src/Bootstrap/Container.ts | 13 +++- packages/settings/src/Bootstrap/Types.ts | 1 + .../src/Controller/SettingsController.ts | 2 +- .../Setting/SettingRepositoryInterface.ts | 5 +- .../MuteAllEmails/MuteAllEmails.spec.ts | 21 +++++- .../UseCase/MuteAllEmails/MuteAllEmails.ts | 22 ++++-- .../UseCase/MuteAllEmails/MuteAllEmailsDTO.ts | 2 +- .../Infra/Http/MuteAllEmailsRequestParams.ts | 2 +- .../InversifyExpressSettingsController.ts | 4 +- .../src/Infra/MySQL/MySQLSettingRepository.ts | 22 +++++- .../src/Mapping/SettingPersistenceMapper.ts | 72 +++++++++++++++++++ 12 files changed, 149 insertions(+), 18 deletions(-) create mode 100644 packages/settings/src/Mapping/SettingPersistenceMapper.ts diff --git a/packages/domain-core/src/Domain/Setting/SettingName.ts b/packages/domain-core/src/Domain/Setting/SettingName.ts index e150a9b47..457cfdc3e 100644 --- a/packages/domain-core/src/Domain/Setting/SettingName.ts +++ b/packages/domain-core/src/Domain/Setting/SettingName.ts @@ -22,6 +22,7 @@ export class SettingName extends ValueObject { LogSessionUserAgent: 'LOG_SESSION_USER_AGENT', FileUploadBytesLimit: 'FILE_UPLOAD_BYTES_LIMIT', FileUploadBytesUsed: 'FILE_UPLOAD_BYTES_USED', + EmailUnsubscribeToken: 'EMAIL_UNSUBSCRIBE_TOKEN', } get value(): string { diff --git a/packages/settings/src/Bootstrap/Container.ts b/packages/settings/src/Bootstrap/Container.ts index 4cc6dfaf7..c355e5fd2 100644 --- a/packages/settings/src/Bootstrap/Container.ts +++ b/packages/settings/src/Bootstrap/Container.ts @@ -7,6 +7,7 @@ import { DomainEventMessageHandlerInterface, DomainEventSubscriberFactoryInterface, } from '@standardnotes/domain-events' +import { MapperInterface } from '@standardnotes/domain-core' import { TokenDecoderInterface, CrossServiceTokenData, TokenDecoder } from '@standardnotes/security' import { RedisDomainEventSubscriberFactory, @@ -26,6 +27,8 @@ import { TypeORMSetting } from '../Infra/TypeORM/TypeORMSetting' import { SettingRepositoryInterface } from '../Domain/Setting/SettingRepositoryInterface' import { MySQLSettingRepository } from '../Infra/MySQL/MySQLSettingRepository' import { SettingsController } from '../Controller/SettingsController' +import { SettingPersistenceMapper } from '../Mapping/SettingPersistenceMapper' +import { Setting } from '../Domain/Setting/Setting' // eslint-disable-next-line @typescript-eslint/no-var-requires const newrelicFormatter = require('@newrelic/winston-enricher') @@ -78,6 +81,9 @@ export class ContainerConfigLoader { } // Map + container + .bind>(TYPES.SettingPersistenceMapper) + .toConstantValue(new SettingPersistenceMapper()) // ORM container @@ -95,7 +101,12 @@ export class ContainerConfigLoader { // Repositories container .bind(TYPES.SettingRepository) - .toConstantValue(new MySQLSettingRepository(container.get(TYPES.ORMSettingRepository))) + .toConstantValue( + new MySQLSettingRepository( + container.get(TYPES.ORMSettingRepository), + container.get(TYPES.SettingPersistenceMapper), + ), + ) // use cases container diff --git a/packages/settings/src/Bootstrap/Types.ts b/packages/settings/src/Bootstrap/Types.ts index 5a3ea25fa..7559499e1 100644 --- a/packages/settings/src/Bootstrap/Types.ts +++ b/packages/settings/src/Bootstrap/Types.ts @@ -4,6 +4,7 @@ const TYPES = { Redis: Symbol.for('Redis'), SQS: Symbol.for('SQS'), // Map + SettingPersistenceMapper: Symbol.for('SettingPersistenceMapper'), // ORM ORMSettingRepository: Symbol.for('ORMSettingRepository'), // Repositories diff --git a/packages/settings/src/Controller/SettingsController.ts b/packages/settings/src/Controller/SettingsController.ts index dacc92fe1..07537f830 100644 --- a/packages/settings/src/Controller/SettingsController.ts +++ b/packages/settings/src/Controller/SettingsController.ts @@ -8,7 +8,7 @@ export class SettingsController { async muteAllEmails(params: MuteAllEmailsRequestParams): Promise { const result = await this.doMuteAllEmails.execute({ - userUuid: params.userUuid, + unsubscribeToken: params.unsubscribeToken, }) if (result.isFailed()) { diff --git a/packages/settings/src/Domain/Setting/SettingRepositoryInterface.ts b/packages/settings/src/Domain/Setting/SettingRepositoryInterface.ts index f9b0ed8ed..47e7ebcfa 100644 --- a/packages/settings/src/Domain/Setting/SettingRepositoryInterface.ts +++ b/packages/settings/src/Domain/Setting/SettingRepositoryInterface.ts @@ -1,5 +1,8 @@ -import { Uuid } from '@standardnotes/domain-core' +import { SettingName, Uuid } from '@standardnotes/domain-core' + +import { Setting } from './Setting' export interface SettingRepositoryInterface { + findOneByNameAndValue(name: SettingName, value: string): Promise setValueOnMultipleSettings(settingNames: string[], userUuid: Uuid, value: string | null): Promise } diff --git a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts index 9c0c75e4e..d48dc49f4 100644 --- a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts +++ b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts @@ -1,3 +1,6 @@ +import { Uuid } from '@standardnotes/domain-core' + +import { Setting } from '../../Setting/Setting' import { SettingRepositoryInterface } from '../../Setting/SettingRepositoryInterface' import { MuteAllEmails } from './MuteAllEmails' @@ -9,17 +12,29 @@ describe('MuteAllEmails', () => { beforeEach(() => { settingRepository = {} as jest.Mocked settingRepository.setValueOnMultipleSettings = jest.fn() + settingRepository.findOneByNameAndValue = jest.fn().mockReturnValue({ + props: { userUuid: Uuid.create('84c0f8e8-544a-4c7e-9adf-26209303bc1d').getValue() }, + } as jest.Mocked) }) it('should mute all email settings for a given user', async () => { - const result = await createUseCase().execute({ userUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d' }) + const result = await createUseCase().execute({ unsubscribeToken: 'foobar' }) expect(result.isFailed()).toBeFalsy() expect(settingRepository.setValueOnMultipleSettings).toHaveBeenCalled() }) - it('should not mute all email settings for an invalid user uuid', async () => { - const result = await createUseCase().execute({ userUuid: '1-2-3' }) + it('should not mute all email settings if user was not found', async () => { + settingRepository.findOneByNameAndValue = jest.fn().mockReturnValue(null) + const result = await createUseCase().execute({ unsubscribeToken: 'foobar' }) + + expect(result.isFailed()).toBeTruthy() + expect(settingRepository.setValueOnMultipleSettings).not.toHaveBeenCalled() + }) + + it('should not mute all email settings if unsubscribe token is not provided', async () => { + settingRepository.findOneByNameAndValue = jest.fn().mockReturnValue(null) + const result = await createUseCase().execute({ unsubscribeToken: null as unknown as string }) expect(result.isFailed()).toBeTruthy() expect(settingRepository.setValueOnMultipleSettings).not.toHaveBeenCalled() diff --git a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts index 2025aabab..33c162f87 100644 --- a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts +++ b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts @@ -1,4 +1,4 @@ -import { Result, SettingName, UseCaseInterface, Uuid } from '@standardnotes/domain-core' +import { Result, SettingName, UseCaseInterface } from '@standardnotes/domain-core' import { SettingRepositoryInterface } from '../../Setting/SettingRepositoryInterface' import { MuteAllEmailsDTO } from './MuteAllEmailsDTO' @@ -7,13 +7,23 @@ export class MuteAllEmails implements UseCaseInterface { constructor(private settingRepository: SettingRepositoryInterface) {} async execute(dto: MuteAllEmailsDTO): Promise> { - const userUuidOrError = Uuid.create(dto.userUuid) - if (userUuidOrError.isFailed()) { - return Result.fail(`Could not mute user emails: ${userUuidOrError.getError()}`) + if (!dto.unsubscribeToken) { + return Result.fail('No unsubscribe token provider') } - const userUuid = userUuidOrError.getValue() - await this.settingRepository.setValueOnMultipleSettings([SettingName.NAMES.MuteMarketingEmails], userUuid, 'muted') + const unsubscribeTokenSetting = await this.settingRepository.findOneByNameAndValue( + SettingName.create(SettingName.NAMES.EmailUnsubscribeToken).getValue(), + dto.unsubscribeToken, + ) + if (unsubscribeTokenSetting === null) { + return Result.fail(`Could not find user with given unsubscribe token: ${dto.unsubscribeToken}`) + } + + await this.settingRepository.setValueOnMultipleSettings( + [SettingName.NAMES.MuteMarketingEmails], + unsubscribeTokenSetting.props.userUuid, + 'muted', + ) return Result.ok('Muted all emails.') } diff --git a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts index 6c2bef434..5afccb91f 100644 --- a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts +++ b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts @@ -1,3 +1,3 @@ export interface MuteAllEmailsDTO { - userUuid: string + unsubscribeToken: string } diff --git a/packages/settings/src/Infra/Http/MuteAllEmailsRequestParams.ts b/packages/settings/src/Infra/Http/MuteAllEmailsRequestParams.ts index 46efe1ba0..9c34a6618 100644 --- a/packages/settings/src/Infra/Http/MuteAllEmailsRequestParams.ts +++ b/packages/settings/src/Infra/Http/MuteAllEmailsRequestParams.ts @@ -1,3 +1,3 @@ export interface MuteAllEmailsRequestParams { - userUuid: string + unsubscribeToken: string } diff --git a/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts b/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts index 7099b96b3..5520bae42 100644 --- a/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts +++ b/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts @@ -11,10 +11,10 @@ export class InversifyExpressSettingsController extends BaseHttpController { super() } - @httpPost('/mute-emails') + @httpPost('/mute-emails/:unsubscribeToken') public async muteAllEmails(request: Request): Promise { const result = await this.settingsController.muteAllEmails({ - userUuid: request.params.userUuid, + unsubscribeToken: request.params.unsubscribeToken, }) return this.json(result.data, result.status) diff --git a/packages/settings/src/Infra/MySQL/MySQLSettingRepository.ts b/packages/settings/src/Infra/MySQL/MySQLSettingRepository.ts index d2baae991..1fb55fa95 100644 --- a/packages/settings/src/Infra/MySQL/MySQLSettingRepository.ts +++ b/packages/settings/src/Infra/MySQL/MySQLSettingRepository.ts @@ -1,11 +1,29 @@ -import { Uuid } from '@standardnotes/domain-core' +import { MapperInterface, SettingName, Uuid } from '@standardnotes/domain-core' import { Repository } from 'typeorm' +import { Setting } from '../../Domain/Setting/Setting' import { SettingRepositoryInterface } from '../../Domain/Setting/SettingRepositoryInterface' import { TypeORMSetting } from '../TypeORM/TypeORMSetting' export class MySQLSettingRepository implements SettingRepositoryInterface { - constructor(private ormRepository: Repository) {} + constructor( + private ormRepository: Repository, + private settingMapper: MapperInterface, + ) {} + + async findOneByNameAndValue(name: SettingName, value: string): Promise { + const typeormSetting = await this.ormRepository + .createQueryBuilder() + .where('name = :name', { name: name.value }) + .andWhere('value = :value', { value }) + .getOne() + + if (typeormSetting === null) { + return null + } + + return this.settingMapper.toDomain(typeormSetting) + } async setValueOnMultipleSettings(settingNames: string[], userUuid: Uuid, value: string | null): Promise { await this.ormRepository diff --git a/packages/settings/src/Mapping/SettingPersistenceMapper.ts b/packages/settings/src/Mapping/SettingPersistenceMapper.ts new file mode 100644 index 000000000..831e9abca --- /dev/null +++ b/packages/settings/src/Mapping/SettingPersistenceMapper.ts @@ -0,0 +1,72 @@ +import { + EncryptionVersion, + MapperInterface, + SettingName, + Timestamps, + UniqueEntityId, + Uuid, +} from '@standardnotes/domain-core' + +import { Setting } from '../Domain/Setting/Setting' +import { TypeORMSetting } from '../Infra/TypeORM/TypeORMSetting' + +export class SettingPersistenceMapper implements MapperInterface { + toDomain(projection: TypeORMSetting): Setting { + const settingNameOrError = SettingName.create(projection.name) + if (settingNameOrError.isFailed()) { + throw new Error(`Could not create setting projection: ${settingNameOrError.getError()}`) + } + const name = settingNameOrError.getValue() + + const serverEncryptionVersionOrError = EncryptionVersion.create(projection.serverEncryptionVersion) + if (serverEncryptionVersionOrError.isFailed()) { + throw new Error(`Could not create setting projection: ${serverEncryptionVersionOrError.getError()}`) + } + const serverEncryptionVersion = serverEncryptionVersionOrError.getValue() + + const userUuidOrError = Uuid.create(projection.userUuid) + if (userUuidOrError.isFailed()) { + throw new Error(`Could not create setting projection: ${userUuidOrError.getError()}`) + } + const userUuid = userUuidOrError.getValue() + + const timestampsOrError = Timestamps.create(projection.createdAt, projection.updatedAt) + if (timestampsOrError.isFailed()) { + throw new Error(`Could not create setting projection: ${timestampsOrError.getError()}`) + } + const timestamps = timestampsOrError.getValue() + + const settingOrError = Setting.create( + { + name, + sensitive: projection.sensitive, + serverEncryptionVersion, + timestamps, + userUuid, + value: projection.value, + }, + new UniqueEntityId(projection.uuid), + ) + if (settingOrError.isFailed()) { + throw new Error(`Could not create setting projection: ${settingOrError.getError()}`) + } + const setting = settingOrError.getValue() + + return setting + } + + toProjection(domain: Setting): TypeORMSetting { + const typeOrmSetting = new TypeORMSetting() + + typeOrmSetting.name = domain.props.name.value + typeOrmSetting.sensitive = domain.props.sensitive + typeOrmSetting.serverEncryptionVersion = domain.props.serverEncryptionVersion.value + typeOrmSetting.userUuid = domain.props.userUuid.value + typeOrmSetting.uuid = domain.id.toString() + typeOrmSetting.value = domain.props.value + typeOrmSetting.createdAt = domain.props.timestamps.createdAt + typeOrmSetting.updatedAt = domain.props.timestamps.updatedAt + + return typeOrmSetting + } +} From 55f8f65c3f94285c1590976061077b0b295b4054 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Tue, 13 Dec 2022 13:27:19 +0100 Subject: [PATCH 7/7] wip --- packages/settings/src/Bootstrap/Container.ts | 8 +--- packages/settings/src/Bootstrap/Types.ts | 1 - .../src/Controller/SettingsController.ts | 29 +------------ .../Domain/UseCase/GetSettings/GetSettings.ts | 22 ++++++++++ .../MuteAllEmails/MuteAllEmails.spec.ts | 42 ------------------- .../UseCase/MuteAllEmails/MuteAllEmails.ts | 30 ------------- .../UseCase/MuteAllEmails/MuteAllEmailsDTO.ts | 3 -- .../InversifyExpressSettingsController.ts | 12 +----- 8 files changed, 25 insertions(+), 122 deletions(-) create mode 100644 packages/settings/src/Domain/UseCase/GetSettings/GetSettings.ts delete mode 100644 packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts delete mode 100644 packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts delete mode 100644 packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts diff --git a/packages/settings/src/Bootstrap/Container.ts b/packages/settings/src/Bootstrap/Container.ts index c355e5fd2..9e7c0925e 100644 --- a/packages/settings/src/Bootstrap/Container.ts +++ b/packages/settings/src/Bootstrap/Container.ts @@ -21,7 +21,6 @@ import { Env } from './Env' import TYPES from './Types' import { AppDataSource } from './DataSource' import { InversifyExpressApiGatewayAuthMiddleware } from '../Infra/InversifyExpress/InversifyExpressApiGatewayAuthMiddleware' -import { MuteAllEmails } from '../Domain/UseCase/MuteAllEmails/MuteAllEmails' import { Repository } from 'typeorm' import { TypeORMSetting } from '../Infra/TypeORM/TypeORMSetting' import { SettingRepositoryInterface } from '../Domain/Setting/SettingRepositoryInterface' @@ -109,14 +108,9 @@ export class ContainerConfigLoader { ) // use cases - container - .bind(TYPES.MuteAllEmails) - .toConstantValue(new MuteAllEmails(container.get(TYPES.SettingRepository))) // Controller - container - .bind(TYPES.SettingsController) - .toConstantValue(new SettingsController(container.get(TYPES.MuteAllEmails))) + container.bind(TYPES.SettingsController).toConstantValue(new SettingsController()) // Handlers diff --git a/packages/settings/src/Bootstrap/Types.ts b/packages/settings/src/Bootstrap/Types.ts index 7559499e1..3c2d7095e 100644 --- a/packages/settings/src/Bootstrap/Types.ts +++ b/packages/settings/src/Bootstrap/Types.ts @@ -18,7 +18,6 @@ const TYPES = { NEW_RELIC_ENABLED: Symbol.for('NEW_RELIC_ENABLED'), VERSION: Symbol.for('VERSION'), // use cases - MuteAllEmails: Symbol.for('MuteAllEmails'), // Controller SettingsController: Symbol.for('SettingsController'), // Handlers diff --git a/packages/settings/src/Controller/SettingsController.ts b/packages/settings/src/Controller/SettingsController.ts index 07537f830..77e33d65f 100644 --- a/packages/settings/src/Controller/SettingsController.ts +++ b/packages/settings/src/Controller/SettingsController.ts @@ -1,30 +1,3 @@ -import { HttpResponse, HttpStatusCode } from '@standardnotes/api' - -import { MuteAllEmails } from '../Domain/UseCase/MuteAllEmails/MuteAllEmails' -import { MuteAllEmailsRequestParams } from '../Infra/Http/MuteAllEmailsRequestParams' - export class SettingsController { - constructor(private doMuteAllEmails: MuteAllEmails) {} - - async muteAllEmails(params: MuteAllEmailsRequestParams): Promise { - const result = await this.doMuteAllEmails.execute({ - unsubscribeToken: params.unsubscribeToken, - }) - - if (result.isFailed()) { - return { - status: HttpStatusCode.BadRequest, - data: { - error: { - message: 'Could not mute emails.', - }, - }, - } - } - - return { - status: HttpStatusCode.Success, - data: { success: true }, - } - } + constructor() {} } diff --git a/packages/settings/src/Domain/UseCase/GetSettings/GetSettings.ts b/packages/settings/src/Domain/UseCase/GetSettings/GetSettings.ts new file mode 100644 index 000000000..f37a46fcd --- /dev/null +++ b/packages/settings/src/Domain/UseCase/GetSettings/GetSettings.ts @@ -0,0 +1,22 @@ +import { inject, injectable } from 'inversify' + +import TYPES from '../../../Bootstrap/Types' +import { SettingRepositoryInterface } from '../../Setting/SettingRepositoryInterface' +import { UseCaseInterface, Uuid } from '@standardnotes/domain-core' +import { Setting } from '../../Setting/Setting' + +@injectable() +export class GetSettings implements UseCaseInterface { + constructor( + @inject(TYPES.SettingRepository) private settingRepository: SettingRepositoryInterface, + @inject(TYPES.Crypter) private crypter: CrypterInterface, + ) {} + + async execute(dto: GetSettingsDto): Promise { + const userUuidOrError = Uuid.create(dto.userUuid) + if (userUuidOrError.isFailed()) { + + } + let settings = await this.settingRepository.findAllByUserUuid(userUuid) + } +} diff --git a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts deleted file mode 100644 index d48dc49f4..000000000 --- a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.spec.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Uuid } from '@standardnotes/domain-core' - -import { Setting } from '../../Setting/Setting' -import { SettingRepositoryInterface } from '../../Setting/SettingRepositoryInterface' -import { MuteAllEmails } from './MuteAllEmails' - -describe('MuteAllEmails', () => { - let settingRepository: SettingRepositoryInterface - - const createUseCase = () => new MuteAllEmails(settingRepository) - - beforeEach(() => { - settingRepository = {} as jest.Mocked - settingRepository.setValueOnMultipleSettings = jest.fn() - settingRepository.findOneByNameAndValue = jest.fn().mockReturnValue({ - props: { userUuid: Uuid.create('84c0f8e8-544a-4c7e-9adf-26209303bc1d').getValue() }, - } as jest.Mocked) - }) - - it('should mute all email settings for a given user', async () => { - const result = await createUseCase().execute({ unsubscribeToken: 'foobar' }) - - expect(result.isFailed()).toBeFalsy() - expect(settingRepository.setValueOnMultipleSettings).toHaveBeenCalled() - }) - - it('should not mute all email settings if user was not found', async () => { - settingRepository.findOneByNameAndValue = jest.fn().mockReturnValue(null) - const result = await createUseCase().execute({ unsubscribeToken: 'foobar' }) - - expect(result.isFailed()).toBeTruthy() - expect(settingRepository.setValueOnMultipleSettings).not.toHaveBeenCalled() - }) - - it('should not mute all email settings if unsubscribe token is not provided', async () => { - settingRepository.findOneByNameAndValue = jest.fn().mockReturnValue(null) - const result = await createUseCase().execute({ unsubscribeToken: null as unknown as string }) - - expect(result.isFailed()).toBeTruthy() - expect(settingRepository.setValueOnMultipleSettings).not.toHaveBeenCalled() - }) -}) diff --git a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts deleted file mode 100644 index 33c162f87..000000000 --- a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmails.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Result, SettingName, UseCaseInterface } from '@standardnotes/domain-core' - -import { SettingRepositoryInterface } from '../../Setting/SettingRepositoryInterface' -import { MuteAllEmailsDTO } from './MuteAllEmailsDTO' - -export class MuteAllEmails implements UseCaseInterface { - constructor(private settingRepository: SettingRepositoryInterface) {} - - async execute(dto: MuteAllEmailsDTO): Promise> { - if (!dto.unsubscribeToken) { - return Result.fail('No unsubscribe token provider') - } - - const unsubscribeTokenSetting = await this.settingRepository.findOneByNameAndValue( - SettingName.create(SettingName.NAMES.EmailUnsubscribeToken).getValue(), - dto.unsubscribeToken, - ) - if (unsubscribeTokenSetting === null) { - return Result.fail(`Could not find user with given unsubscribe token: ${dto.unsubscribeToken}`) - } - - await this.settingRepository.setValueOnMultipleSettings( - [SettingName.NAMES.MuteMarketingEmails], - unsubscribeTokenSetting.props.userUuid, - 'muted', - ) - - return Result.ok('Muted all emails.') - } -} diff --git a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts b/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts deleted file mode 100644 index 5afccb91f..000000000 --- a/packages/settings/src/Domain/UseCase/MuteAllEmails/MuteAllEmailsDTO.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface MuteAllEmailsDTO { - unsubscribeToken: string -} diff --git a/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts b/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts index 5520bae42..ed13e92fc 100644 --- a/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts +++ b/packages/settings/src/Infra/InversifyExpress/InversifyExpressSettingsController.ts @@ -1,5 +1,4 @@ -import { Request } from 'express' -import { BaseHttpController, controller, httpPost, results } from 'inversify-express-utils' +import { BaseHttpController, controller } from 'inversify-express-utils' import { inject } from 'inversify' import TYPES from '../../Bootstrap/Types' @@ -10,13 +9,4 @@ export class InversifyExpressSettingsController extends BaseHttpController { constructor(@inject(TYPES.SettingsController) private settingsController: SettingsController) { super() } - - @httpPost('/mute-emails/:unsubscribeToken') - public async muteAllEmails(request: Request): Promise { - const result = await this.settingsController.muteAllEmails({ - unsubscribeToken: request.params.unsubscribeToken, - }) - - return this.json(result.data, result.status) - } }

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 z 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≧qv?EMXckf>6t%Dwx~#Go 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