summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-07-02 16:02:32 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-07-02 16:02:32 +0900
commitaf3258dc79488b73435819e7799eb1515f15a6aa (patch)
tree7e6567ec44162784b1f96903ab2334edfa62b644 /packages/backend/src/server/api
parentperf(frontend): MkImgWithBlurhashでblurhash描画に使うcanvasは再利用... (diff)
downloadsharkey-af3258dc79488b73435819e7799eb1515f15a6aa.tar.gz
sharkey-af3258dc79488b73435819e7799eb1515f15a6aa.tar.bz2
sharkey-af3258dc79488b73435819e7799eb1515f15a6aa.zip
perf(backend): make some features optionable
Resolve #11064 Resolve #11065
Diffstat (limited to 'packages/backend/src/server/api')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/meta.ts10
-rw-r--r--packages/backend/src/server/api/endpoints/admin/update-meta.ts10
-rw-r--r--packages/backend/src/server/api/endpoints/server-info.ts19
3 files changed, 39 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts
index 4cc1b6011f..28aec7a090 100644
--- a/packages/backend/src/server/api/endpoints/admin/meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/meta.ts
@@ -262,6 +262,14 @@ export const meta = {
type: 'boolean',
optional: false, nullable: false,
},
+ enableServerMachineStats: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ enableIdenticonGeneration: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
policies: {
type: 'object',
optional: false, nullable: false,
@@ -364,6 +372,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
enableActiveEmailValidation: instance.enableActiveEmailValidation,
enableChartsForRemoteUser: instance.enableChartsForRemoteUser,
enableChartsForFederatedInstances: instance.enableChartsForFederatedInstances,
+ enableServerMachineStats: instance.enableServerMachineStats,
+ enableIdenticonGeneration: instance.enableIdenticonGeneration,
policies: { ...DEFAULT_POLICIES, ...instance.policies },
};
});
diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
index 1de5e9efd3..5c9d8e3fac 100644
--- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
@@ -96,6 +96,8 @@ export const paramDef = {
enableActiveEmailValidation: { type: 'boolean' },
enableChartsForRemoteUser: { type: 'boolean' },
enableChartsForFederatedInstances: { type: 'boolean' },
+ enableServerMachineStats: { type: 'boolean' },
+ enableIdenticonGeneration: { type: 'boolean' },
serverRules: { type: 'array', items: { type: 'string' } },
preservedUsernames: { type: 'array', items: { type: 'string' } },
},
@@ -399,6 +401,14 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
set.enableChartsForFederatedInstances = ps.enableChartsForFederatedInstances;
}
+ if (ps.enableServerMachineStats !== undefined) {
+ set.enableServerMachineStats = ps.enableServerMachineStats;
+ }
+
+ if (ps.enableIdenticonGeneration !== undefined) {
+ set.enableIdenticonGeneration = ps.enableIdenticonGeneration;
+ }
+
if (ps.serverRules !== undefined) {
set.serverRules = ps.serverRules;
}
diff --git a/packages/backend/src/server/api/endpoints/server-info.ts b/packages/backend/src/server/api/endpoints/server-info.ts
index 1620e8ae52..552441e430 100644
--- a/packages/backend/src/server/api/endpoints/server-info.ts
+++ b/packages/backend/src/server/api/endpoints/server-info.ts
@@ -2,9 +2,12 @@ import * as os from 'node:os';
import si from 'systeminformation';
import { Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
+import { MetaService } from '@/core/MetaService.js';
export const meta = {
requireCredential: false,
+ allowGet: true,
+ cacheSec: 60 * 1,
tags: ['meta'],
} as const;
@@ -19,8 +22,24 @@ export const paramDef = {
@Injectable()
export default class extends Endpoint<typeof meta, typeof paramDef> {
constructor(
+ private metaService: MetaService,
) {
super(meta, paramDef, async () => {
+ if (!(await this.metaService.fetch()).enableServerMachineStats) return {
+ machine: '?',
+ cpu: {
+ model: '?',
+ cores: 0,
+ },
+ mem: {
+ total: 0,
+ },
+ fs: {
+ total: 0,
+ used: 0,
+ },
+ };
+
const memStats = await si.mem();
const fsStats = await si.fsSize();