Ingest live 3proxy traffic from access logs
This commit is contained in:
@@ -11,10 +11,10 @@ import { validateCreateUserInput, validateSystemInput } from '../src/shared/vali
|
||||
import {
|
||||
buildRuntimePaths,
|
||||
createUserRecord,
|
||||
deriveDashboardSnapshot,
|
||||
render3proxyConfig,
|
||||
type RuntimePaths,
|
||||
} from './lib/config';
|
||||
import { getDashboardSnapshot } from './lib/snapshot';
|
||||
import { AuthService } from './lib/auth';
|
||||
import type { RuntimeController } from './lib/runtime';
|
||||
import { StateStore } from './lib/store';
|
||||
@@ -81,7 +81,7 @@ export function createApp({ store, runtime, runtimeRootDir, auth }: AppServices)
|
||||
|
||||
app.get('/api/state', async (_request, response, next) => {
|
||||
try {
|
||||
const payload = await getSnapshot(store, runtime, runtimePaths);
|
||||
const payload = await getDashboardSnapshot(store, runtime, runtimePaths);
|
||||
response.json(payload);
|
||||
} catch (error) {
|
||||
next(error);
|
||||
@@ -106,7 +106,7 @@ export function createApp({ store, runtime, runtimeRootDir, auth }: AppServices)
|
||||
}
|
||||
|
||||
await writeConfigAndState(store, state, runtimePaths);
|
||||
response.json(await getSnapshot(store, runtime, runtimePaths));
|
||||
response.json(await getDashboardSnapshot(store, runtime, runtimePaths));
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
@@ -120,7 +120,7 @@ export function createApp({ store, runtime, runtimeRootDir, auth }: AppServices)
|
||||
state.userRecords.push(record);
|
||||
state.service.lastEvent = `User ${record.username} created from panel`;
|
||||
await persistRuntimeMutation(store, runtime, state, runtimePaths);
|
||||
response.status(201).json(await getSnapshot(store, runtime, runtimePaths));
|
||||
response.status(201).json(await getDashboardSnapshot(store, runtime, runtimePaths));
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
@@ -147,7 +147,7 @@ export function createApp({ store, runtime, runtimeRootDir, auth }: AppServices)
|
||||
? `System configuration updated from panel and removed ${removedUsers.length} linked users`
|
||||
: 'System configuration updated from panel';
|
||||
await persistRuntimeMutation(store, runtime, state, runtimePaths);
|
||||
response.json(await getSnapshot(store, runtime, runtimePaths));
|
||||
response.json(await getDashboardSnapshot(store, runtime, runtimePaths));
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
@@ -169,7 +169,7 @@ export function createApp({ store, runtime, runtimeRootDir, auth }: AppServices)
|
||||
: `User ${user.username} resumed from panel`;
|
||||
|
||||
await persistRuntimeMutation(store, runtime, state, runtimePaths);
|
||||
response.json(await getSnapshot(store, runtime, runtimePaths));
|
||||
response.json(await getDashboardSnapshot(store, runtime, runtimePaths));
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
@@ -188,7 +188,7 @@ export function createApp({ store, runtime, runtimeRootDir, auth }: AppServices)
|
||||
const [removed] = state.userRecords.splice(index, 1);
|
||||
state.service.lastEvent = `User ${removed.username} deleted from panel`;
|
||||
await persistRuntimeMutation(store, runtime, state, runtimePaths);
|
||||
response.json(await getSnapshot(store, runtime, runtimePaths));
|
||||
response.json(await getDashboardSnapshot(store, runtime, runtimePaths));
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
@@ -214,15 +214,6 @@ export function createApp({ store, runtime, runtimeRootDir, auth }: AppServices)
|
||||
return app;
|
||||
}
|
||||
|
||||
async function getSnapshot(
|
||||
store: StateStore,
|
||||
runtime: RuntimeController,
|
||||
runtimePaths: RuntimePaths,
|
||||
) {
|
||||
const state = await store.read();
|
||||
const previewConfig = render3proxyConfig(state, runtimePaths);
|
||||
return deriveDashboardSnapshot(state, runtime.getSnapshot(), previewConfig);
|
||||
}
|
||||
async function persistRuntimeMutation(
|
||||
store: StateStore,
|
||||
runtime: RuntimeController,
|
||||
|
||||
Reference in New Issue
Block a user