Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BC-7834 #8

Merged
merged 113 commits into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
53f362f
BC-7674 - add y-redis-server
SevenWaysDP Jul 18, 2024
3d0bc42
rename repository to tldraw-server
SevenWaysDP Jul 18, 2024
c47794b
added .gitattributes
Loki-Afro Jul 18, 2024
a948087
added .idea to gitignore
Loki-Afro Jul 18, 2024
d60f7b8
gh-actions & Dockerfile
Loki-Afro Jul 18, 2024
a8ef256
AGPL-3.0 OR PROPRIETARY
Loki-Afro Jul 18, 2024
0e4ee1b
license foo
Loki-Afro Jul 18, 2024
d2f1497
specified branch in tldraw server for deploy
Loki-Afro Jul 18, 2024
2792706
added ansible actions
Loki-Afro Jul 18, 2024
77df212
add envs to server.js and storage.js
SevenWaysDP Jul 18, 2024
aad54dd
Update package-lock
dyedwiper Jul 18, 2024
4a59a52
Update readme
dyedwiper Jul 18, 2024
791a68e
Merge branch 'BC-7674' of github.com:hpi-schul-cloud/tldraw-server in…
dyedwiper Jul 18, 2024
4cc4c2c
added ansible vars
Loki-Afro Jul 18, 2024
78c0755
sd
Loki-Afro Jul 18, 2024
d32f235
common
Loki-Afro Jul 18, 2024
3e70516
cleanup
Loki-Afro Jul 18, 2024
5a4e20e
jaja
Loki-Afro Jul 18, 2024
f0f1a6e
meh
Loki-Afro Jul 18, 2024
c6d6ff5
add .env file to Docker image
SevenWaysDP Jul 19, 2024
8a91a34
refactor: update deployment names for tldraw server and worker
SevenWaysDP Jul 19, 2024
619173d
chore: Add gcompat package to Dockerfile
SevenWaysDP Jul 19, 2024
0f4aeeb
fix: temporary hack to fix dependencies on var AUTH_PUBLIC_KEY
SevenWaysDP Jul 19, 2024
44962ae
remove unused vars
SevenWaysDP Jul 19, 2024
b18a6bc
chore: Update API_HOST in configmap.yml.j2
SevenWaysDP Jul 22, 2024
b624461
chore: Add WS_PATH_PREFIX to configmap.yml.j2 and server.js
SevenWaysDP Jul 22, 2024
28d7d90
Remove unnecessary props from package.json
dyedwiper Jul 22, 2024
57ede7b
Update package lock
dyedwiper Jul 22, 2024
bbf2110
chore: Update replicas for tldraw worker deployment
SevenWaysDP Jul 22, 2024
b19f63e
Fix authz
dyedwiper Jul 23, 2024
4130b3d
Merge branch 'BC-7674' of github.com:hpi-schul-cloud/tldraw-server in…
dyedwiper Jul 23, 2024
e48b38e
Clean code
dyedwiper Jul 23, 2024
b512d0e
Install prettier and format code
dyedwiper Jul 23, 2024
45c63b7
Update VSCode settings
dyedwiper Jul 23, 2024
5dc0940
Fix authz
dyedwiper Jul 23, 2024
d96c040
Decode userId from JWT in authz
dyedwiper Jul 23, 2024
13154b6
Use nodemon to start server for dev
dyedwiper Jul 23, 2024
d110841
Remove typescript because unused
dyedwiper Jul 24, 2024
5972a62
Add some logs
dyedwiper Jul 24, 2024
e92524b
Disable some jobs in github workflow not needed atm
dyedwiper Jul 24, 2024
9733370
Get userId from auth response
dyedwiper Jul 24, 2024
51ed075
Update logs
dyedwiper Jul 24, 2024
84d1c55
Update logs
dyedwiper Jul 24, 2024
c55dc1a
Remove comments
dyedwiper Jul 24, 2024
c80ada2
add LOG values
SevenWaysDP Jul 26, 2024
bc13813
added valkey cluster with metrics
Loki-Afro Jul 30, 2024
780b9e3
added notes
Loki-Afro Jul 30, 2024
baaf730
update deps
SevenWaysDP Jul 31, 2024
e26a1ac
add redis as sentinel hosts
SevenWaysDP Jul 31, 2024
1b1956b
chore: Update redis sentinel hosts and remove unnecessary comments
SevenWaysDP Aug 1, 2024
314df0a
add password
SevenWaysDP Aug 1, 2024
29bb87b
valkey-static-secret
Loki-Afro Aug 1, 2024
f311a93
added missing secret to worker
Loki-Afro Aug 1, 2024
448c0d2
Add metrics (#4)
dyedwiper Aug 2, 2024
14d4ae3
i hate yaml
Loki-Afro Aug 2, 2024
2132cc0
Fix pod-monitor yaml
dyedwiper Aug 2, 2024
f3760a7
Fix deployment
dyedwiper Aug 2, 2024
620893a
i love yaml
dyedwiper Aug 2, 2024
db61f22
Fix pod monitor
dyedwiper Aug 2, 2024
e75da6f
Update y-redis package version
dyedwiper Aug 2, 2024
f37729b
Fix pod monitor
dyedwiper Aug 2, 2024
97cbb0a
named ports for the win
Loki-Afro Aug 2, 2024
6245dab
Update y-redis package version
dyedwiper Aug 5, 2024
713546a
Update logging envs
dyedwiper Aug 5, 2024
ef62330
Fix type of env
dyedwiper Aug 5, 2024
e5f7437
chore: Update y-redis package version and dependencies
SevenWaysDP Aug 6, 2024
c6bedbf
chore: Update y-redis package version to deb646c062f0d743111831abc4cd…
SevenWaysDP Aug 8, 2024
1ea3365
Remove logs for testing colored logs
dyedwiper Aug 5, 2024
3c0b85d
Reduce interval in pod-monitor
dyedwiper Aug 8, 2024
8d89348
Merge branch 'BC-7674' of github.com:hpi-schul-cloud/tldraw-server in…
dyedwiper Aug 8, 2024
7bb906d
Add histogram for getDoc
dyedwiper Aug 8, 2024
57ba31e
Update histogram name
dyedwiper Aug 8, 2024
4c4ba95
Update histogram
dyedwiper Aug 12, 2024
c09390e
Fix log in metrics
dyedwiper Aug 12, 2024
c6afd64
update chart version
Loki-Afro Aug 12, 2024
afbc29d
BC-7834 - add nestjs
SevenWaysDP Aug 14, 2024
9ad0621
BC-7834 - implement tldraw server module and worker module
SevenWaysDP Aug 14, 2024
37e0f54
BC-7834 - code review
SevenWaysDP Aug 15, 2024
4f99ad9
feat: Add Redis, Storage, and Authorization modules
SevenWaysDP Aug 20, 2024
566eb44
Merge remote-tracking branch 'origin/BC-7674' into BC-7834
SevenWaysDP Aug 20, 2024
c0c994f
chore: Update deployment commands
SevenWaysDP Aug 20, 2024
2c45288
chore: remove unused code
SevenWaysDP Aug 20, 2024
f9b59a8
feat: Add logger module
SevenWaysDP Aug 20, 2024
ef57c33
chore: Update start commands for server and worker
SevenWaysDP Aug 20, 2024
a6d25d1
code review
SevenWaysDP Aug 20, 2024
45cf47b
feat: change ext to .ts
SevenWaysDP Aug 21, 2024
722ed49
code review
SevenWaysDP Aug 21, 2024
1a783c1
chore: Refactor AuthorizationService to use JWT cookie for token retr…
SevenWaysDP Aug 21, 2024
4c5cf75
feat: Add MetricsModule for server metrics tracking
SevenWaysDP Aug 21, 2024
c3f4480
chore: Update .gitignore for VSCode settings
SevenWaysDP Aug 21, 2024
b6a837c
do not use hostnames when running as sentinel
Loki-Afro Aug 21, 2024
9d2fed8
run eslint --fix
SevenWaysDP Aug 22, 2024
e9e6a78
code review
SevenWaysDP Aug 22, 2024
b2d3d60
refactor: Remove AppController
SevenWaysDP Aug 22, 2024
62d64b0
chore: Update @y/redis dependency to latest commit in main
SevenWaysDP Aug 22, 2024
b1adfc5
Merge remote-tracking branch 'origin/BC-7674' into BC-7834
SevenWaysDP Aug 22, 2024
16bce5e
chore: Update deployment workflow to use main branch for dof_app_deploy
SevenWaysDP Aug 22, 2024
ad8177a
temp
SevenWaysDP Aug 23, 2024
ee122ed
chore: Update Dockerfile to copy files from 'dist' directory
SevenWaysDP Aug 23, 2024
4ac9e6c
chore: Update Dockerfile to include npm build step
SevenWaysDP Aug 23, 2024
81d7492
chore: Update tldraw-server deployment tasks to use WITH_TLDRAW variable
SevenWaysDP Aug 23, 2024
ac4419c
chore: Update Dockerfile to include TypeScript configuration files an…
SevenWaysDP Aug 23, 2024
b2625af
chore: Update tldraw-server deployment tasks to use WITH_TLDRAW2 vari…
SevenWaysDP Aug 23, 2024
7b10ac4
chore: Add gcompat package to Dockerfile
SevenWaysDP Aug 23, 2024
e94c74a
chore: Update websocket.gateway.ts to use inferred type for WS_PORT
SevenWaysDP Aug 23, 2024
9d8e419
chore: Add Content-Type header to metrics endpoint
SevenWaysDP Aug 23, 2024
cb8f31d
chore: Update @y/redis dependency to latest version
SevenWaysDP Aug 26, 2024
945676a
chore: Update tldraw-server deployment tasks to use tags for differen…
SevenWaysDP Aug 26, 2024
8574d71
chore: Remove commented out code and unused workflow steps
SevenWaysDP Aug 26, 2024
a68f378
chore: Update pod-monitor.yml.j2 to remove interval for metrics endpoint
SevenWaysDP Aug 26, 2024
ded15fc
code review
SevenWaysDP Aug 26, 2024
82666e3
chore: Update dof_app_deploy workflow to use main branch
SevenWaysDP Aug 26, 2024
e432851
chore: Update tldraw-valkey tasks to use tags for helm deployment
SevenWaysDP Aug 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintrc.js → .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = {
node: true,
jest: true,
},
ignorePatterns: ['.eslintrc.js'],
ignorePatterns: ['.eslintrc.cjs'],
dyedwiper marked this conversation as resolved.
Show resolved Hide resolved
rules: {
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ jobs:
needs:
- build_and_push
- branch_meta
uses: hpi-schul-cloud/dof_app_deploy/.github/workflows/deploy.yml@BC-7674
uses: hpi-schul-cloud/dof_app_deploy/.github/workflows/deploy.yml@main
with:
branch: ${{ needs.branch_meta.outputs.branch }}
secrets:
Expand Down
14 changes: 7 additions & 7 deletions ansible/roles/tldraw-server/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
template: onepassword.yml.j2
when:
- ONEPASSWORD_OPERATOR is defined and ONEPASSWORD_OPERATOR|bool
- WITH_TLDRAW is defined and WITH_TLDRAW|bool
- WITH_TLDRAW2 is defined and WITH_TLDRAW2|bool

- name: TlDraw server configmap
kubernetes.core.k8s:
Expand All @@ -14,40 +14,40 @@
template: configmap.yml.j2
when:
- ONEPASSWORD_OPERATOR is defined and ONEPASSWORD_OPERATOR|bool
- WITH_TLDRAW is defined and WITH_TLDRAW|bool
- WITH_TLDRAW2 is defined and WITH_TLDRAW2|bool

- name: TlDraw server deployment
kubernetes.core.k8s:
kubeconfig: ~/.kube/config
namespace: "{{ NAMESPACE }}"
template: deployment.yml.j2
when: WITH_TLDRAW is defined and WITH_TLDRAW|bool
when: WITH_TLDRAW2 is defined and WITH_TLDRAW2|bool

- name: TlDraw worker deployment
kubernetes.core.k8s:
kubeconfig: ~/.kube/config
namespace: "{{ NAMESPACE }}"
template: worker-deployment.yml.j2
when: WITH_TLDRAW is defined and WITH_TLDRAW|bool
when: WITH_TLDRAW2 is defined and WITH_TLDRAW2|bool

- name: TlDraw server service
kubernetes.core.k8s:
kubeconfig: ~/.kube/config
namespace: "{{ NAMESPACE }}"
template: server-svc.yml.j2
when: WITH_TLDRAW is defined and WITH_TLDRAW|bool
when: WITH_TLDRAW2 is defined and WITH_TLDRAW2|bool

- name: TlDraw server pod monitor
kubernetes.core.k8s:
kubeconfig: ~/.kube/config
namespace: "{{ NAMESPACE }}"
template: pod-monitor.yml.j2
when: WITH_TLDRAW is defined and WITH_TLDRAW|bool
when: WITH_TLDRAW2 is defined and WITH_TLDRAW2|bool

- name: Tldraw ingress
kubernetes.core.k8s:
kubeconfig: ~/.kube/config
namespace: "{{ NAMESPACE }}"
template: ingress.yml.j2
apply: yes
when: WITH_TLDRAW is defined and WITH_TLDRAW|bool
when: WITH_TLDRAW2 is defined and WITH_TLDRAW2|bool
2 changes: 2 additions & 0 deletions ansible/roles/tldraw-valkey/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
enabled: false
serviceAccount:
create: false
# https://github.com/bitnami/charts/issues/9689
useHostnames: false
resources:
limits:
cpu: "{{ TLDRAW_VALKEY_CPU_LIMITS|default('1000m', true) }}"
Expand Down
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"start:worker:dev": "nest start worker --watch",
"start:worker:debug": "nest start worker --debug --watch",
"start:worker:prod": "node dist/apps/tldraw-worker.js",
"lint": "eslint \"{src}/**/*.ts\" --fix",
"lint": "eslint \"src/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
Expand All @@ -31,7 +31,7 @@
"@nestjs/config": "^3.2.3",
"@nestjs/core": "^10.4.1",
"@nestjs/platform-express": "^10.4.1",
"@y/redis": "github:hpi-schul-cloud/y-redis#c9863e74d8d22dd75f53e894835cede66afdddd9",
"@y/redis": "github:hpi-schul-cloud/y-redis#0211a7c3645ffb740279e28e491539cda2e4afaf",
"ioredis": "^5.4.1",
"prom-client": "^15.1.3",
"reflect-metadata": "^0.2.2",
Expand Down
33 changes: 16 additions & 17 deletions src/apps/tldraw-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,24 @@ import { MetricsModule } from '../infra/metrics/metrics.module.js';
import { ServerModule } from '../modules/server/server.module.js';

async function bootstrap() {
const httpPort = 3347;
const nestApp = await NestFactory.create(ServerModule);
nestApp.enableCors();
await nestApp.init();
const httpPort = 3347;
const nestApp = await NestFactory.create(ServerModule);
nestApp.enableCors();
await nestApp.init();

const metricsPort = 9090;
const metricsApp = await NestFactory.create(MetricsModule);
const metricsPort = 9090;
const metricsApp = await NestFactory.create(MetricsModule);

await metricsApp.listen(metricsPort, async () => {
const logger = await metricsApp.resolve(Logger);
logger.setContext('METRICS');
logger.log(`Server is running on port ${metricsPort}`);
});

await nestApp.listen(httpPort, async () => {
const logger = await nestApp.resolve(Logger);
logger.setContext('TLDRAW');
logger.log(`Server is running on port ${httpPort}`);
});
await metricsApp.listen(metricsPort, async () => {
const logger = await metricsApp.resolve(Logger);
logger.setContext('METRICS');
logger.log(`Metrics server is running on port ${metricsPort}`);
});

await nestApp.listen(httpPort, async () => {
const logger = await nestApp.resolve(Logger);
logger.setContext('TLDRAW');
logger.log(`Server is running on port ${httpPort}`);
});
}
bootstrap();
4 changes: 2 additions & 2 deletions src/apps/tldraw-worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { NestFactory } from '@nestjs/core';
import { WorkerModule } from '../modules/worker/worker.module.js';

async function bootstrap() {
const nestApp = await NestFactory.createApplicationContext(WorkerModule);
const nestApp = await NestFactory.createApplicationContext(WorkerModule);

await nestApp.init();
await nestApp.init();
}
bootstrap();
4 changes: 2 additions & 2 deletions src/infra/authorization/authorization.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
import { AuthorizationService } from './authorization.service.js';

@Module({
providers: [AuthorizationService],
exports: [AuthorizationService],
providers: [AuthorizationService],
exports: [AuthorizationService],
})
export class AuthorizationModule {}
1 change: 0 additions & 1 deletion src/infra/authorization/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
export * from './authorization.module.js';
export * from './authorization.service.js';

1 change: 0 additions & 1 deletion src/infra/logging/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
export * from './logger.js';
export * from './logger.module.js';

7 changes: 3 additions & 4 deletions src/infra/logging/logger.module.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@

import { Module } from '@nestjs/common';
import { Logger } from './logger.js';

@Module({
providers: [Logger],
exports: [Logger]
providers: [Logger],
exports: [Logger],
})
export class LoggerModule {}
export class LoggerModule {}
2 changes: 1 addition & 1 deletion src/infra/logging/logger.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';

@Injectable({ scope: Scope.TRANSIENT })
export class Logger extends ConsoleLogger {}
export class Logger extends ConsoleLogger {}
12 changes: 6 additions & 6 deletions src/infra/metrics/api/metrics.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import { MetricsService } from '../metrics.service.js';

@Controller('/metrics')
export class MetricsController {
constructor(private readonly appService: MetricsService) {}
constructor(private readonly appService: MetricsService) {}

@Get()
getMetrics(): Promise<string> {
return this.appService.getMetrics();
}
}
@Get()
getMetrics(): Promise<string> {
return this.appService.getMetrics();
}
}
1 change: 0 additions & 1 deletion src/infra/metrics/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
export * from './metrics.module.js';
export * from './metrics.service.js';

9 changes: 4 additions & 5 deletions src/infra/metrics/metrics.module.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@

import { Module } from '@nestjs/common';
import { LoggerModule } from '../logging/logger.module.js';
import { MetricsController } from './api/metrics.controller.js';
import { MetricsService } from './metrics.service.js';

@Module({
imports: [LoggerModule],
controllers: [MetricsController],
providers: [MetricsService],
imports: [LoggerModule],
controllers: [MetricsController],
providers: [MetricsService],
})
export class MetricsModule {};
export class MetricsModule {}
1 change: 0 additions & 1 deletion src/infra/redis/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
export * from './redis.module.js';
export * from './redis.service.js';

6 changes: 3 additions & 3 deletions src/infra/redis/redis.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { LoggerModule } from '../logging/logger.module.js';
import { RedisService } from './redis.service.js';

@Module({
imports: [LoggerModule],
providers: [RedisService],
exports: [RedisService],
imports: [LoggerModule],
providers: [RedisService],
exports: [RedisService],
})
export class RedisModule {}
96 changes: 49 additions & 47 deletions src/infra/redis/redis.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,63 +7,65 @@ import { Logger } from '../logging/logger.js';

@Injectable()
export class RedisService {
private sentinelServiceName: string;
private sentinelServiceName: string;

constructor(private configService: ConfigService, private logger: Logger) {
this.sentinelServiceName = this.configService.get<string>(
'REDIS_SENTINEL_SERVICE_NAME') || '';
constructor(
private configService: ConfigService,
private logger: Logger,
) {
this.sentinelServiceName = this.configService.get<string>('REDIS_SENTINEL_SERVICE_NAME') || '';

this.logger.setContext(RedisService.name);
}
this.logger.setContext(RedisService.name);
}

async getRedisInstance() {
let redisInstance: Redis;
if (this.sentinelServiceName) {
redisInstance = await this.createRedisSentinelInstance();
} else {
redisInstance = this.createNewRedisInstance();
}
async getRedisInstance() {
let redisInstance: Redis;
if (this.sentinelServiceName) {
redisInstance = await this.createRedisSentinelInstance();
} else {
redisInstance = this.createNewRedisInstance();
}

return redisInstance;
}
return redisInstance;
}

private createNewRedisInstance() {
const redisUrl = this.configService.getOrThrow('REDIS');;
const redisInstance = new Redis(redisUrl);
private createNewRedisInstance() {
const redisUrl = this.configService.getOrThrow('REDIS');
const redisInstance = new Redis(redisUrl);

return redisInstance;
}
return redisInstance;
}

private async createRedisSentinelInstance() {
const sentinelName = this.configService.get<string>('REDIS_SENTINEL_NAME') || 'mymaster';
const sentinelPassword = this.configService.getOrThrow('REDIS_SENTINEL_PASSWORD');
const sentinels = await this.discoverSentinelHosts();
this.logger.log('Discovered sentinels:', sentinels);
private async createRedisSentinelInstance() {
const sentinelName = this.configService.get<string>('REDIS_SENTINEL_NAME') || 'mymaster';
const sentinelPassword = this.configService.getOrThrow('REDIS_SENTINEL_PASSWORD');
const sentinels = await this.discoverSentinelHosts();
this.logger.log('Discovered sentinels:', sentinels);

const redisInstance = new Redis({
sentinels,
sentinelPassword,
password: sentinelPassword,
name: sentinelName,
});
const redisInstance = new Redis({
sentinels,
sentinelPassword,
password: sentinelPassword,
name: sentinelName,
});

return redisInstance;
}
return redisInstance;
}

private async discoverSentinelHosts() {
const resolveSrv = util.promisify(dns.resolveSrv);
try {
const records = await resolveSrv(this.sentinelServiceName);
private async discoverSentinelHosts() {
const resolveSrv = util.promisify(dns.resolveSrv);
try {
const records = await resolveSrv(this.sentinelServiceName);

const hosts = records.map((record) => ({
host: record.name,
port: record.port,
}));
const hosts = records.map((record) => ({
host: record.name,
port: record.port,
}));

return hosts;
} catch (err) {
this.logger.error('Error during service discovery:', err);
throw err;
}
}
return hosts;
} catch (err) {
this.logger.error('Error during service discovery:', err);
throw err;
}
}
}
1 change: 0 additions & 1 deletion src/infra/storage/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
export * from './storage.module.js';
export * from './storage.service.js';

6 changes: 3 additions & 3 deletions src/infra/storage/storage.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { LoggerModule } from '../logging/logger.module.js';
import { StorageService } from './storage.service.js';

@Module({
imports: [LoggerModule],
providers: [StorageService],
exports: [StorageService],
imports: [LoggerModule],
providers: [StorageService],
exports: [StorageService],
})
export class StorageModule {}
Loading
Loading