This commit is contained in:
@@ -3,9 +3,6 @@ import { createHash } from 'node:crypto';
|
||||
import { db } from './db/index.js';
|
||||
import { fleetSettings } from './settings.js';
|
||||
import { runtimeLaunchSql } from './fleet/runtime-config.js';
|
||||
import { ensureHostSchema } from './hosts/schema.js';
|
||||
import { ensureGameFileSchema } from './game-files/schema.js';
|
||||
import { ensureAuthSchema } from './auth/schema.js';
|
||||
import { logResultMetadata } from './hosts/log-results.js';
|
||||
import type { FleetSettings } from '../fleet-settings.js';
|
||||
|
||||
@@ -266,10 +263,6 @@ function versionReferences(): string {
|
||||
}
|
||||
return clauses.join(' AND ') || '1';
|
||||
}
|
||||
function initialize() {
|
||||
ensureHostSchema(db());
|
||||
ensureAuthSchema(db());
|
||||
}
|
||||
|
||||
function withoutFileBodies(value: unknown): unknown {
|
||||
if (Array.isArray(value)) return value.map(withoutFileBodies);
|
||||
@@ -364,7 +357,6 @@ function selection(policy: Policy, settings = fleetSettings()) {
|
||||
}
|
||||
// better-sqlite3 accepts unused named bindings, keeping selection reusable.
|
||||
export function retentionPreview(settings = fleetSettings()) {
|
||||
initialize();
|
||||
return policies().map((policy) => {
|
||||
const query = selection(policy, settings);
|
||||
const summary = db()
|
||||
@@ -393,8 +385,6 @@ export function setRetentionControl(input: {
|
||||
protected?: boolean;
|
||||
resolve?: boolean;
|
||||
}) {
|
||||
initialize();
|
||||
ensureGameFileSchema(db());
|
||||
const policy =
|
||||
policies().find((policy) => policy.category === input.category) ??
|
||||
(['game-file', 'upload'].includes(input.category)
|
||||
@@ -449,7 +439,6 @@ export function setRetentionControl(input: {
|
||||
|
||||
/** Each policy removes at most 500 eligible records per pass; dependencies are checked again under the transaction. */
|
||||
export function pruneHistory(only?: string): number {
|
||||
initialize();
|
||||
if (only === 'observation') return pruneRoutineObservations();
|
||||
let removed = only ? 0 : pruneRoutineObservations();
|
||||
for (const policy of policies().filter(
|
||||
@@ -594,7 +583,6 @@ function samplePolicies(s = fleetSettings()) {
|
||||
];
|
||||
}
|
||||
export function sampleRetentionPreview(settings = fleetSettings()) {
|
||||
initialize();
|
||||
const result = samplePolicies(settings)
|
||||
.filter((p) => p.category !== 'telemetry')
|
||||
.map((p) => ({
|
||||
@@ -634,7 +622,6 @@ export function sampleRetentionPreview(settings = fleetSettings()) {
|
||||
return result;
|
||||
}
|
||||
export function pruneSampleHistory() {
|
||||
initialize();
|
||||
let removed = 0;
|
||||
for (const p of samplePolicies().filter((p) => p.enabled))
|
||||
removed += db()
|
||||
@@ -663,7 +650,6 @@ export function pruneSampleHistory() {
|
||||
export async function drainRetention(): Promise<number> {
|
||||
let total = 0,
|
||||
logCursor = 0;
|
||||
initialize();
|
||||
while (true) {
|
||||
const removed = pruneHistory() + pruneSampleHistory();
|
||||
total += removed;
|
||||
|
||||
Reference in New Issue
Block a user