From 8cd8dd156a8c2fbc12fc091da364f27de0862325 Mon Sep 17 00:00:00 2001 From: SevenWaysDP <97111299+SevenWaysDP@users.noreply.github.com> Date: Thu, 12 Oct 2023 10:23:48 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20hpi-schu?= =?UTF-8?q?l-cloud/schulcloud-server@43d02f81a6e832e2df394f1f3f54e932fa6f1?= =?UTF-8?q?a78=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/CopyFileParams.html | 7 +- classes/CopyFilesOfParentParams.html | 5 +- classes/CopyFilesOfParentPayload.html | 9 +- classes/DownloadFileParams.html | 7 +- classes/FileParams.html | 5 +- classes/FileRecordParams.html | 9 +- classes/FileRecordSecurityCheck.html | 8 +- classes/FileUrlParams.html | 9 +- classes/PreviewParams.html | 9 +- classes/RenameFileParams.html | 5 +- classes/ScanResultParams.html | 15 +- classes/SingleFileParams.html | 5 +- coverage.html | 32 +- dependencies.html | 2 + entities/FileRecord.html | 8 +- injectables/AntivirusService.html | 141 +++++++- injectables/FilesStorageService.html | 133 +++---- interfaces/AntivirusModuleOptions.html | 116 ++++-- interfaces/AntivirusServiceOptions.html | 51 +-- interfaces/IFileRecordProperties.html | 8 +- .../IFileRecordSecurityCheckProperties.html | 8 +- interfaces/IFileStorageConfig.html | 43 ++- interfaces/IParentInfo.html | 8 +- interfaces/ScanResult.html | 333 ++++++++++++++++++ js/menu-wc.js | 9 +- js/search/search_index.js | 4 +- miscellaneous/variables.html | 5 +- modules/AccountModule.html | 122 +++---- modules/AccountModule/dependencies.svg | 122 +++---- modules/AntivirusModule.html | 32 +- modules/AuthenticationModule.html | 8 +- modules/AuthenticationModule/dependencies.svg | 8 +- modules/AuthorizationModule.html | 274 +++++++------- modules/AuthorizationModule/dependencies.svg | 274 +++++++------- modules/ClassModule.html | 8 +- modules/ClassModule/dependencies.svg | 8 +- .../CollaborativeStorageAdapterModule.html | 98 +++--- .../dependencies.svg | 98 +++--- modules/CollaborativeStorageModule.html | 96 ++--- .../dependencies.svg | 96 ++--- modules/ContextExternalToolModule.html | 8 +- .../dependencies.svg | 8 +- modules/CoreModule.html | 8 +- modules/CoreModule/dependencies.svg | 8 +- modules/ExternalToolModule.html | 8 +- modules/ExternalToolModule/dependencies.svg | 8 +- modules/FeathersModule.html | 8 +- modules/FeathersModule/dependencies.svg | 8 +- modules/FilesModule.html | 46 +-- modules/FilesModule/dependencies.svg | 46 +-- modules/FilesStorageApiModule.html | 54 +-- .../FilesStorageApiModule/dependencies.svg | 54 +-- modules/FilesStorageClientModule.html | 72 ++-- .../FilesStorageClientModule/dependencies.svg | 72 ++-- modules/FilesStorageModule.html | 114 +++--- modules/FilesStorageModule/dependencies.svg | 112 +++--- modules/FwuLearningContentsTestModule.html | 78 ++-- .../dependencies.svg | 78 ++-- modules/GroupModule.html | 8 +- modules/GroupModule/dependencies.svg | 8 +- modules/ImportUserModule.html | 86 ++--- modules/ImportUserModule/dependencies.svg | 86 ++--- modules/KeycloakAdministrationModule.html | 8 +- .../dependencies.svg | 8 +- modules/KeycloakConfigurationModule.html | 8 +- .../dependencies.svg | 8 +- modules/KeycloakModule.html | 8 +- modules/KeycloakModule/dependencies.svg | 8 +- modules/LearnroomApiModule.html | 158 ++++----- modules/LearnroomApiModule/dependencies.svg | 158 ++++----- modules/LearnroomModule.html | 8 +- modules/LearnroomModule/dependencies.svg | 8 +- modules/LessonApiModule.html | 38 +- modules/LessonApiModule/dependencies.svg | 38 +- modules/LessonModule.html | 112 +++--- modules/LessonModule/dependencies.svg | 112 +++--- modules/LoggerModule.html | 8 +- modules/LoggerModule/dependencies.svg | 8 +- modules/LtiToolModule.html | 8 +- modules/LtiToolModule/dependencies.svg | 8 +- modules/ManagementModule.html | 102 +++--- modules/ManagementModule/dependencies.svg | 102 +++--- modules/NewsModule.html | 8 +- modules/NewsModule/dependencies.svg | 8 +- modules/OauthModule.html | 138 ++++---- modules/OauthModule/dependencies.svg | 138 ++++---- modules/OauthProviderModule.html | 114 +++--- modules/OauthProviderModule/dependencies.svg | 114 +++--- modules/PseudonymModule.html | 90 ++--- modules/PseudonymModule/dependencies.svg | 90 ++--- modules/RoleModule.html | 8 +- modules/RoleModule/dependencies.svg | 8 +- modules/SchoolExternalToolModule.html | 8 +- .../SchoolExternalToolModule/dependencies.svg | 8 +- modules/SharingModule.html | 88 ++--- modules/SharingModule/dependencies.svg | 88 ++--- modules/SystemModule.html | 64 ++-- modules/SystemModule/dependencies.svg | 64 ++-- modules/TaskModule.html | 114 +++--- modules/TaskModule/dependencies.svg | 114 +++--- modules/TeamsModule.html | 8 +- modules/TeamsModule/dependencies.svg | 8 +- modules/ToolApiModule.html | 166 ++++----- modules/ToolApiModule/dependencies.svg | 166 ++++----- modules/ToolLaunchModule.html | 8 +- modules/ToolLaunchModule/dependencies.svg | 8 +- modules/ToolModule.html | 104 +++--- modules/ToolModule/dependencies.svg | 104 +++--- modules/UserLoginMigrationModule.html | 146 ++++---- .../UserLoginMigrationModule/dependencies.svg | 146 ++++---- modules/UserModule.html | 88 ++--- modules/UserModule/dependencies.svg | 88 ++--- modules/VideoConferenceApiModule.html | 70 ++-- .../VideoConferenceApiModule/dependencies.svg | 70 ++-- modules/VideoConferenceModule.html | 134 +++---- .../VideoConferenceModule/dependencies.svg | 134 +++---- overview.html | 2 +- 117 files changed, 3737 insertions(+), 3109 deletions(-) create mode 100644 interfaces/ScanResult.html diff --git a/classes/CopyFileParams.html b/classes/CopyFileParams.html index 3ae1379074c..3c2423b3e61 100644 --- a/classes/CopyFileParams.html +++ b/classes/CopyFileParams.html @@ -147,7 +147,7 @@

-
Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:94
+
Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:95
@@ -184,7 +184,7 @@

-
Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:90
+
Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:91
@@ -206,6 +206,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -256,7 +257,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/CopyFilesOfParentParams.html b/classes/CopyFilesOfParentParams.html index b064372307f..41e4ef7f196 100644 --- a/classes/CopyFilesOfParentParams.html +++ b/classes/CopyFilesOfParentParams.html @@ -142,7 +142,7 @@

- + @@ -164,6 +164,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -214,7 +215,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/CopyFilesOfParentPayload.html b/classes/CopyFilesOfParentPayload.html index 62b663119c1..041518d210e 100644 --- a/classes/CopyFilesOfParentPayload.html +++ b/classes/CopyFilesOfParentPayload.html @@ -148,7 +148,7 @@

- + @@ -184,7 +184,7 @@

- + @@ -220,7 +220,7 @@

- + @@ -242,6 +242,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -292,7 +293,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/DownloadFileParams.html b/classes/DownloadFileParams.html index 8b47a8c3e8c..11b4104ade4 100644 --- a/classes/DownloadFileParams.html +++ b/classes/DownloadFileParams.html @@ -147,7 +147,7 @@

- + @@ -184,7 +184,7 @@

- + @@ -206,6 +206,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -256,7 +257,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/FileParams.html b/classes/FileParams.html index 9a701800749..889f9b9f0c2 100644 --- a/classes/FileParams.html +++ b/classes/FileParams.html @@ -142,7 +142,7 @@

- + @@ -164,6 +164,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -214,7 +215,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/FileRecordParams.html b/classes/FileRecordParams.html index 19f74280e7a..931f4b03b3a 100644 --- a/classes/FileRecordParams.html +++ b/classes/FileRecordParams.html @@ -152,7 +152,7 @@

- + @@ -189,7 +189,7 @@

- + @@ -226,7 +226,7 @@

- + @@ -248,6 +248,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -298,7 +299,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/FileRecordSecurityCheck.html b/classes/FileRecordSecurityCheck.html index bbf3803daba..0c79b365782 100644 --- a/classes/FileRecordSecurityCheck.html +++ b/classes/FileRecordSecurityCheck.html @@ -638,6 +638,12 @@

return isVerified; } + public isPreviewPossible(): boolean { + const isPreviewPossible = Object.values<string>(PreviewInputMimeTypes).includes(this.mimeType); + + return isPreviewPossible; + } + public getParentInfo(): IParentInfo { const { parentId, parentType, schoolId } = this; @@ -653,7 +659,7 @@

return PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED; } - if (!Object.values<string>(PreviewInputMimeTypes).includes(this.mimeType)) { + if (!this.isPreviewPossible()) { return PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE; } diff --git a/classes/FileUrlParams.html b/classes/FileUrlParams.html index b8492cd2f1e..6166012b0f5 100644 --- a/classes/FileUrlParams.html +++ b/classes/FileUrlParams.html @@ -156,7 +156,7 @@

- + @@ -194,7 +194,7 @@

- + @@ -232,7 +232,7 @@

- + @@ -254,6 +254,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -304,7 +305,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/PreviewParams.html b/classes/PreviewParams.html index abcd83d43e3..9cac0bc117f 100644 --- a/classes/PreviewParams.html +++ b/classes/PreviewParams.html @@ -162,7 +162,7 @@

- + @@ -201,7 +201,7 @@

- + @@ -240,7 +240,7 @@

- + @@ -262,6 +262,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -312,7 +313,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/RenameFileParams.html b/classes/RenameFileParams.html index a5eb35920a0..2d4c2c7a3c0 100644 --- a/classes/RenameFileParams.html +++ b/classes/RenameFileParams.html @@ -144,7 +144,7 @@

- + @@ -166,6 +166,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -216,7 +217,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/ScanResultParams.html b/classes/ScanResultParams.html index 037593de067..d83b1694af8 100644 --- a/classes/ScanResultParams.html +++ b/classes/ScanResultParams.html @@ -74,6 +74,12 @@

File

+

+

Implements

+

+

+ ScanResult +

@@ -156,7 +162,7 @@

- + @@ -194,7 +200,7 @@

- + @@ -232,7 +238,7 @@

- + @@ -254,6 +260,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -304,7 +311,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/classes/SingleFileParams.html b/classes/SingleFileParams.html index ccdd881ea49..ee05d8bedf5 100644 --- a/classes/SingleFileParams.html +++ b/classes/SingleFileParams.html @@ -142,7 +142,7 @@

- + @@ -164,6 +164,7 @@

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
 import { StringToBoolean } from '@shared/controller';
 import { EntityId } from '@shared/domain';
+import { ScanResult } from '@shared/infra/antivirus';
 import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
 import { FileRecordParentType } from '../../entity';
 import { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';
@@ -214,7 +215,7 @@ 

fileName!: string; } -export class ScanResultParams { +export class ScanResultParams implements ScanResult { @ApiProperty() @Allow() virus_detected?: boolean; diff --git a/coverage.html b/coverage.html index 0c73f3cea6a..01ee312afd6 100644 --- a/coverage.html +++ b/coverage.html @@ -3364,7 +3364,7 @@ FileRecord 3 % - (1/32) + (1/33) @@ -3460,7 +3460,7 @@ IFileStorageConfig 0 % - (0/3) + (0/4) @@ -14290,10 +14290,10 @@ - apps/server/src/shared/infra/antivirus/antivirus.module.ts + apps/server/src/shared/infra/antivirus/antivirus.service.ts - interface - AntivirusModuleOptions + injectable + AntivirusService 0 % (0/5) @@ -14302,19 +14302,19 @@ - apps/server/src/shared/infra/antivirus/antivirus.service.ts + apps/server/src/shared/infra/antivirus/interfaces/antivirus.ts - injectable - AntivirusService + interface + AntivirusModuleOptions 0 % - (0/4) + (0/7) - apps/server/src/shared/infra/antivirus/antivirus.service.ts + apps/server/src/shared/infra/antivirus/interfaces/antivirus.ts interface AntivirusServiceOptions @@ -14323,6 +14323,18 @@ (0/5) + + + + apps/server/src/shared/infra/antivirus/interfaces/antivirus.ts + + interface + ScanResult + + 0 % + (0/4) + + diff --git a/dependencies.html b/dependencies.html index 973592afdc1..bfab93b9f77 100644 --- a/dependencies.html +++ b/dependencies.html @@ -149,6 +149,8 @@ cache-manager-redis-store : ^2.0.0
  • chalk : ^5.0.0
  • +
  • + clamscan : ^2.1.2
  • class-transformer : ^0.4.0
  • diff --git a/entities/FileRecord.html b/entities/FileRecord.html index 88c6979970e..c30c682d630 100644 --- a/entities/FileRecord.html +++ b/entities/FileRecord.html @@ -778,6 +778,12 @@

    return isVerified; } + public isPreviewPossible(): boolean { + const isPreviewPossible = Object.values<string>(PreviewInputMimeTypes).includes(this.mimeType); + + return isPreviewPossible; + } + public getParentInfo(): IParentInfo { const { parentId, parentType, schoolId } = this; @@ -793,7 +799,7 @@

    return PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED; } - if (!Object.values<string>(PreviewInputMimeTypes).includes(this.mimeType)) { + if (!this.isPreviewPossible()) { return PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE; } diff --git a/injectables/AntivirusService.html b/injectables/AntivirusService.html index d8f8e204968..a31c585219d 100644 --- a/injectables/AntivirusService.html +++ b/injectables/AntivirusService.html @@ -84,6 +84,11 @@

    Methods
  • @@ -197,14 +236,16 @@

    Properties

    export interface IFileStorageConfig extends ICoreModuleConfig { MAX_FILE_SIZE: number; MAX_SECURITY_CHECK_FILE_SIZE: number; + USE_STREAM_TO_ANTIVIRUS: boolean; } const fileStorageConfig: IFileStorageConfig = { INCOMING_REQUEST_TIMEOUT: Configuration.get('FILES_STORAGE__INCOMING_REQUEST_TIMEOUT') as number, INCOMING_REQUEST_TIMEOUT_COPY_API: Configuration.get('INCOMING_REQUEST_TIMEOUT_COPY_API') as number, MAX_FILE_SIZE: Configuration.get('FILES_STORAGE__MAX_FILE_SIZE') as number, - MAX_SECURITY_CHECK_FILE_SIZE: Configuration.get('FILE_SECURITY_CHECK_MAX_FILE_SIZE') as number, + MAX_SECURITY_CHECK_FILE_SIZE: Configuration.get('FILES_STORAGE__MAX_FILE_SIZE') as number, NEST_LOG_LEVEL: Configuration.get('NEST_LOG_LEVEL') as string, + USE_STREAM_TO_ANTIVIRUS: Configuration.get('FILES_STORAGE__USE_STREAM_TO_ANTIVIRUS') as boolean, }; // The configurations lookup diff --git a/interfaces/IParentInfo.html b/interfaces/IParentInfo.html index 2cc4bd48d91..a6d46452b9f 100644 --- a/interfaces/IParentInfo.html +++ b/interfaces/IParentInfo.html @@ -478,6 +478,12 @@

    Properties

    return isVerified; } + public isPreviewPossible(): boolean { + const isPreviewPossible = Object.values<string>(PreviewInputMimeTypes).includes(this.mimeType); + + return isPreviewPossible; + } + public getParentInfo(): IParentInfo { const { parentId, parentType, schoolId } = this; @@ -493,7 +499,7 @@

    Properties

    return PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED; } - if (!Object.values<string>(PreviewInputMimeTypes).includes(this.mimeType)) { + if (!this.isPreviewPossible()) { return PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE; } diff --git a/interfaces/ScanResult.html b/interfaces/ScanResult.html new file mode 100644 index 00000000000..9d684a0cc9d --- /dev/null +++ b/interfaces/ScanResult.html @@ -0,0 +1,333 @@ + + + + + + schulcloud-server documentation + + + + + + + + + + + + + +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + + +
    +
    +

    +

    File

    +

    +

    + apps/server/src/shared/infra/antivirus/interfaces/antivirus.ts +

    + + + + +
    +

    Index

    + + + + + + + + + +
    +
    Properties
    +
    + +
    +
    + + + +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + +
    + + error + + + + +
    + error: string + +
    + Type : string + +
    + Optional +
    + + + + + + + + + + + + + + + + + + + + + + +
    + + virus_detected + + + + +
    + virus_detected: boolean + +
    + Type : boolean + +
    + Optional +
    + + + + + + + + + + + + + + + + + + + + + + +
    + + virus_signature + + + + +
    + virus_signature: string + +
    + Type : string + +
    + Optional +
    +
    +
    + + +
    +
    export interface AntivirusModuleOptions {
    +	enabled: boolean;
    +	filesServiceBaseUrl: string;
    +	exchange: string;
    +	routingKey: string;
    +	hostname: string;
    +	port: number;
    +}
    +
    +export interface AntivirusServiceOptions {
    +	enabled: boolean;
    +	filesServiceBaseUrl: string;
    +	exchange: string;
    +	routingKey: string;
    +}
    +
    +export interface ScanResult {
    +	virus_detected?: boolean;
    +	virus_signature?: string;
    +	error?: string;
    +}
    +
    +
    +
    + + + + + + + + +
    +
    +

    results matching ""

    +
      +
      +
      +

      No results matching ""

      +
      +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/js/menu-wc.js b/js/menu-wc.js index bc1e5239a0a..ec3a2735a17 100644 --- a/js/menu-wc.js +++ b/js/menu-wc.js @@ -890,13 +890,13 @@ customElements.define('compodoc-menu', class extends HTMLElement { FilesStorageModule
    • -