update
This commit is contained in:
@@ -3,7 +3,7 @@ import { logger } from '../logging.ts';
|
||||
import { ConnectionManager } from './connectionmanager.ts';
|
||||
import { OpsServer } from '../opsserver/index.ts';
|
||||
import { StorageManager } from '../storage/index.ts';
|
||||
import { CacheDb, CacheCleaner, CachedProject } from '../cache/index.ts';
|
||||
import { CacheDb, CacheCleaner, CachedProject, CachedSecret, SecretsScanService } from '../cache/index.ts';
|
||||
import { resolvePaths } from '../paths.ts';
|
||||
|
||||
/**
|
||||
@@ -16,6 +16,8 @@ export class GitopsApp {
|
||||
public opsServer: OpsServer;
|
||||
public cacheDb: CacheDb;
|
||||
public cacheCleaner: CacheCleaner;
|
||||
public secretsScanService!: SecretsScanService;
|
||||
private scanIntervalId: number | null = null;
|
||||
|
||||
constructor() {
|
||||
const paths = resolvePaths();
|
||||
@@ -32,6 +34,7 @@ export class GitopsApp {
|
||||
});
|
||||
this.cacheCleaner = new CacheCleaner(this.cacheDb);
|
||||
this.cacheCleaner.registerClass(CachedProject);
|
||||
this.cacheCleaner.registerClass(CachedSecret);
|
||||
|
||||
this.opsServer = new OpsServer(this);
|
||||
}
|
||||
@@ -45,6 +48,20 @@ export class GitopsApp {
|
||||
// Initialize connection manager (loads saved connections)
|
||||
await this.connectionManager.init();
|
||||
|
||||
// Initialize secrets scan service with 24h auto-scan
|
||||
this.secretsScanService = new SecretsScanService(this.connectionManager);
|
||||
const SCAN_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
||||
this.scanIntervalId = setInterval(() => {
|
||||
this.secretsScanService.fullScan().catch((err) => {
|
||||
logger.error(`Scheduled secrets scan failed: ${err}`);
|
||||
});
|
||||
}, SCAN_INTERVAL_MS);
|
||||
Deno.unrefTimer(this.scanIntervalId);
|
||||
// Fire-and-forget initial scan (doesn't block startup)
|
||||
this.secretsScanService.fullScan().catch((err) => {
|
||||
logger.error(`Initial secrets scan failed: ${err}`);
|
||||
});
|
||||
|
||||
// Start CacheCleaner
|
||||
this.cacheCleaner.start();
|
||||
|
||||
@@ -56,6 +73,10 @@ export class GitopsApp {
|
||||
|
||||
async stop(): Promise<void> {
|
||||
logger.info('Shutting down GitOps...');
|
||||
if (this.scanIntervalId !== null) {
|
||||
clearInterval(this.scanIntervalId);
|
||||
this.scanIntervalId = null;
|
||||
}
|
||||
await this.opsServer.stop();
|
||||
this.cacheCleaner.stop();
|
||||
await this.cacheDb.stop();
|
||||
|
||||
Reference in New Issue
Block a user