Skip to content

Commit ed2f3f2

Browse files
committed
feat: expose public server status history without sensitive data
1 parent 6099ccd commit ed2f3f2

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

src/server/model/serverStatus.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ async function getServerHistoryFromCache(
6565
const cachedValue = await cacheManager.get(key);
6666
if (cachedValue) {
6767
try {
68-
return JSON.parse(String(cachedValue));
68+
return JSON.parse(String(cachedValue));
6969
} catch (err) {
7070
logger.error('[ServerStatus] Error parsing cached history:', err);
7171
return [];
@@ -191,9 +191,19 @@ export async function getServerCount(workspaceId: string): Promise<number> {
191191
return Object.keys(serverMap).length;
192192
}
193193

194-
export async function getServerStatusHistory(
194+
export async function getPublicServerStatusHistory(
195195
workspaceId: string,
196196
name: string
197197
): Promise<ServerStatusInfo[]> {
198-
return await getServerHistoryFromCache(workspaceId, name);
198+
const serverStatus = await getServerHistoryFromCache(workspaceId, name);
199+
return serverStatus.map((item: ServerStatusInfo) => {
200+
// we remove sensitive datas
201+
const { secret, ...rest } = item;
202+
const { top_cpu_processes, top_memory_processes, docker, ...restPayload } =
203+
rest.payload;
204+
return {
205+
...rest,
206+
payload: restPayload,
207+
};
208+
});
199209
}

src/server/trpc/routers/serverStatus.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
} from '../trpc.js';
88
import {
99
clearOfflineServerStatus,
10-
getServerStatusHistory,
10+
getPublicServerStatusHistory,
1111
getServerMapFromCache,
1212
} from '../../model/serverStatus.js';
1313
import { OPENAPI_TAG } from '../../utils/const.js';
@@ -84,6 +84,6 @@ export const serverStatusRouter = router({
8484
)
8585
.query(async ({ input }) => {
8686
const { workspaceId, name } = input;
87-
return getServerStatusHistory(workspaceId, name);
87+
return getPublicServerStatusHistory(workspaceId, name);
8888
}),
8989
});

0 commit comments

Comments
 (0)