diff --git a/changelog.md b/changelog.md index 03b05392..7af2eddd 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,25 @@ +# Twake Drive v1.0.5 + +*Note: `-rc2` should be 1.0.6, but to align with internal release cycle numbering, we +will just continue 1.0.5 for this release. Canditates through `rc11` were hotfixes* + +## Features + +- AntiVirus - Uploaded files are now scanned by ClamAV +- Reveal file in location + +## Fixes and Improvements + +- Push client error logs to the server logs +- Tolerate some configuration qwirks (like extra `/`s) +- Move operations now self-rename if target exists +- Minor UI fixes related to the search bar, pagination, + sorting by size, no more loading segment, and move + operation from a public link +- Email link when folder updated by public link fixed +- Fix download for Safari users who block popups +- Fix for OnlyOffice based on postgres + # Twake Drive v1.0.5-rc1 ## Features @@ -19,6 +41,7 @@ - Fix file browser vertical borders (and fix react warning) - Fix only office filename getting overwritten at session end + # Twake Drive v1.0.4 ## Features @@ -43,6 +66,7 @@ - Add collation fix. - Cli db seed tool + # Twake Drive v1.0.3 ## Features @@ -61,6 +85,7 @@ - A large number of minor fixes - Translation of user notifications + # Twake Drive v1.0.2 ## Features @@ -74,6 +99,7 @@ - Refactored starting docker-compose file - Fix navigation for shared link view + # Twake Drive v1.0.1 ## Features @@ -94,6 +120,7 @@ - Malformed URL when you share a file - ... + # Twake Drive v2023.Q3.012 ## Features diff --git a/tdrive/backend/node/src/core/platform/services/email-pusher/index.ts b/tdrive/backend/node/src/core/platform/services/email-pusher/index.ts index dcdc9984..bc4b7413 100644 --- a/tdrive/backend/node/src/core/platform/services/email-pusher/index.ts +++ b/tdrive/backend/node/src/core/platform/services/email-pusher/index.ts @@ -1,4 +1,5 @@ import { getLogger, TdriveLogger, TdriveService } from "../../framework"; +import { getConfigOrDefault } from "../../../../utils/get-config"; import EmailPusherAPI from "./provider"; import { EmailBuilderDataPayload, @@ -42,7 +43,7 @@ export default class EmailPusherClass }); this.interface = this.configuration.get("email_interface", ""); this.platformUrl = this.configuration.get("platform_url", ""); - this.debug = this.configuration.get("debug", false); + this.debug = getConfigOrDefault("email-pusher.debug", true); if (this.interface === "smtp") { const useTLS = this.configuration.get("smtp_tls", "false") == "true"; const smtpConfig: SMTPClientConfigType = { diff --git a/tdrive/backend/node/src/core/platform/services/storage/connectors/S3/s3-service.ts b/tdrive/backend/node/src/core/platform/services/storage/connectors/S3/s3-service.ts index d2d16f54..e70cfc4a 100644 --- a/tdrive/backend/node/src/core/platform/services/storage/connectors/S3/s3-service.ts +++ b/tdrive/backend/node/src/core/platform/services/storage/connectors/S3/s3-service.ts @@ -3,6 +3,7 @@ import { logger } from "../../../../../../core/platform/framework"; import { Readable } from "stream"; import { StorageConnectorAPI, WriteMetadata } from "../../provider"; import { randomUUID } from "crypto"; +import _ from "lodash"; export type S3Configuration = { id: string; @@ -22,8 +23,15 @@ export default class S3ConnectorService implements StorageConnectorAPI { id: string; constructor(S3Configuration: S3Configuration) { - this.client = new Minio.Client(S3Configuration); - this.minioConfiguration = S3Configuration; + const confCopy = _.cloneDeep(S3Configuration) as S3Configuration; + if (confCopy.port && typeof confCopy.port === "string") { + confCopy.port = parseInt(confCopy.port, 10); + } + if (confCopy.useSSL && typeof confCopy.useSSL === "string") { + confCopy.useSSL = !(!confCopy.useSSL || confCopy.useSSL === "false"); + } + this.client = new Minio.Client(confCopy); + this.minioConfiguration = confCopy; this.id = this.minioConfiguration.id; if (!this.id) { this.id = randomUUID(); diff --git a/tdrive/backend/node/src/services/documents/utils.ts b/tdrive/backend/node/src/services/documents/utils.ts index dad901ef..6bae8632 100644 --- a/tdrive/backend/node/src/services/documents/utils.ts +++ b/tdrive/backend/node/src/services/documents/utils.ts @@ -50,8 +50,19 @@ export const isSharedWithMeFolder = (id: string) => { export const getVirtualFoldersNames = async (id: string, context: DriveExecutionContext) => { const configuration = new Configuration("drive"); const defaultLang = configuration.get("defaultLanguage") || "en"; - const user = await gr.services.users.get({ id: context.user?.id }); - const locale = user?.preferences?.locale || defaultLang; + const locale = await (async () => { + try { + const user = await gr.services.users.get({ id: context.user?.id }); + return user?.preferences?.locale || defaultLang; + } catch (error) { + logger.error( + { error, context }, + "Ignoring error getting user to translate root. This is expected from requests coming from applications as the user id is not a valid UUID for postgres. Defaulting to " + + defaultLang, + ); + return defaultLang; + } + })(); if (id.startsWith("user_")) { return gr.services.i18n.translate("virtual-folder.my-drive", locale); diff --git a/tdrive/backend/node/src/version.ts b/tdrive/backend/node/src/version.ts index 449761a0..80f6adac 100644 --- a/tdrive/backend/node/src/version.ts +++ b/tdrive/backend/node/src/version.ts @@ -1,7 +1,7 @@ export default { - current: /* @VERSION_DETAIL */ "1.0.5-rc1", + current: /* @VERSION_DETAIL */ "1.0.5", minimal: { - web: /* @MIN_VERSION_WEB */ "1.0.5-rc1", - mobile: /* @MIN_VERSION_MOBILE */ "1.0.5-rc1", + web: /* @MIN_VERSION_WEB */ "1.0.5", + mobile: /* @MIN_VERSION_MOBILE */ "1.0.5", }, }; diff --git a/tdrive/frontend/src/app/environment/version.ts b/tdrive/frontend/src/app/environment/version.ts index a3bc8bca..238b4c85 100644 --- a/tdrive/frontend/src/app/environment/version.ts +++ b/tdrive/frontend/src/app/environment/version.ts @@ -1,5 +1,5 @@ export default { - version: /* @VERSION */ '1.0.5-rc1', - version_detail: /* @VERSION_DETAIL */ '1.0.5-rc1', + version: /* @VERSION */ '1.0.5', + version_detail: /* @VERSION_DETAIL */ '1.0.5', version_name: /* @VERSION_NAME */ 'Ghost-Dog', }; \ No newline at end of file