Browse Source

fix: allow self hosted to use new model of items (#714)

* fix: allow self hosted to use new model of items

* fix: env sample

* fix: binding
Karol Sójko 1 năm trước cách đây
mục cha
commit
aef9254713

+ 2 - 0
docker/docker-entrypoint.sh

@@ -2,6 +2,8 @@
 
 # Setup environment variables
 
+export MODE="self-hosted"
+
 #########
 # PORTS #
 #########

+ 1 - 1
packages/api-gateway/.env.sample

@@ -1,4 +1,4 @@
-MODE=microservice # microservice | home-server
+MODE=microservice # microservice | home-server | self-hosted
 LOG_LEVEL=debug
 NODE_ENV=development
 VERSION=development

+ 1 - 1
packages/auth/.env.sample

@@ -1,4 +1,4 @@
-MODE=microservice # microservice | home-server
+MODE=microservice # microservice | home-server | self-hosted
 LOG_LEVEL=debug
 NODE_ENV=development
 VERSION=development

+ 1 - 1
packages/files/.env.sample

@@ -1,4 +1,4 @@
-MODE=microservice # microservice | home-server
+MODE=microservice # microservice | home-server | self-hosted
 LOG_LEVEL=debug
 NODE_ENV=development
 VERSION=development

+ 1 - 1
packages/revisions/.env.sample

@@ -1,4 +1,4 @@
-MODE=microservice # microservice | home-server
+MODE=microservice # microservice | home-server | self-hosted
 LOG_LEVEL=info
 NODE_ENV=development
 VERSION=development

+ 1 - 1
packages/syncing-server/.env.sample

@@ -1,4 +1,4 @@
-MODE=microservice # microservice | home-server
+MODE=microservice # microservice | home-server | self-hosted
 LOG_LEVEL=info
 NODE_ENV=development
 VERSION=development

+ 3 - 1
packages/syncing-server/src/Bootstrap/Container.ts

@@ -213,6 +213,8 @@ export class ContainerConfigLoader {
     container.bind<TimerInterface>(TYPES.Sync_Timer).toConstantValue(new Timer())
 
     const isConfiguredForHomeServer = env.get('MODE', true) === 'home-server'
+    const isConfiguredForSelfHosting = env.get('MODE', true) === 'self-hosted'
+    const isConfiguredForHomeServerOrSelfHosting = isConfiguredForHomeServer || isConfiguredForSelfHosting
     const isSecondaryDatabaseEnabled = env.get('SECONDARY_DB_ENABLED', true) === 'true'
 
     container.bind<Env>(TYPES.Sync_Env).toConstantValue(env)
@@ -412,7 +414,7 @@ export class ContainerConfigLoader {
     container
       .bind<ItemRepositoryInterface>(TYPES.Sync_SQLItemRepository)
       .toConstantValue(
-        isConfiguredForHomeServer
+        isConfiguredForHomeServerOrSelfHosting
           ? new SQLItemRepository(
               container.get<Repository<SQLItem>>(TYPES.Sync_ORMItemRepository),
               container.get<MapperInterface<Item, SQLItem>>(TYPES.Sync_SQLItemPersistenceMapper),

+ 4 - 3
packages/syncing-server/src/Bootstrap/DataSource.ts

@@ -68,14 +68,15 @@ export class AppDataSource {
     this.env.load()
 
     const isConfiguredForMySQL = this.env.get('DB_TYPE') === 'mysql'
-    const isConfiguredForHomeServer = this.env.get('MODE', true) === 'home-server'
+    const isConfiguredForHomeServerOrSelfHosting =
+      this.env.get('MODE', true) === 'home-server' || this.env.get('MODE', true) === 'self-hosted'
 
     const maxQueryExecutionTime = this.env.get('DB_MAX_QUERY_EXECUTION_TIME', true)
       ? +this.env.get('DB_MAX_QUERY_EXECUTION_TIME', true)
       : 45_000
 
     const migrationsSourceDirectoryName = isConfiguredForMySQL
-      ? isConfiguredForHomeServer
+      ? isConfiguredForHomeServerOrSelfHosting
         ? 'mysql'
         : 'mysql-legacy'
       : 'sqlite'
@@ -83,7 +84,7 @@ export class AppDataSource {
     const commonDataSourceOptions = {
       maxQueryExecutionTime,
       entities: [
-        isConfiguredForHomeServer ? SQLItem : SQLLegacyItem,
+        isConfiguredForHomeServerOrSelfHosting ? SQLItem : SQLLegacyItem,
         TypeORMNotification,
         TypeORMSharedVault,
         TypeORMSharedVaultUser,

+ 4 - 4
packages/syncing-server/src/Infra/TypeORM/SQLItemRepository.ts

@@ -3,20 +3,20 @@ import { MapperInterface } from '@standardnotes/domain-core'
 import { Logger } from 'winston'
 
 import { Item } from '../../Domain/Item/Item'
-import { SQLLegacyItem } from './SQLLegacyItem'
+import { SQLItem } from './SQLItem'
 import { SQLLegacyItemRepository } from './SQLLegacyItemRepository'
 import { ItemQuery } from '../../Domain/Item/ItemQuery'
 
 export class SQLItemRepository extends SQLLegacyItemRepository {
   constructor(
-    protected override ormRepository: Repository<SQLLegacyItem>,
-    protected override mapper: MapperInterface<Item, SQLLegacyItem>,
+    protected override ormRepository: Repository<SQLItem>,
+    protected override mapper: MapperInterface<Item, SQLItem>,
     protected override logger: Logger,
   ) {
     super(ormRepository, mapper, logger)
   }
 
-  protected override createFindAllQueryBuilder(query: ItemQuery): SelectQueryBuilder<SQLLegacyItem> {
+  protected override createFindAllQueryBuilder(query: ItemQuery): SelectQueryBuilder<SQLItem> {
     const queryBuilder = this.ormRepository.createQueryBuilder('item')
 
     if (query.sortBy !== undefined && query.sortOrder !== undefined) {