SCRAPE-20: Implement credential redaction in scraper log calls (#24)

Co-authored-by: Stephen Minakian <stephenminakian@gmail.com>
Co-committed-by: Stephen Minakian <stephenminakian@gmail.com>
This commit is contained in:
2026-02-06 23:00:08 -07:00
committed by stephen
parent d0538334a5
commit f389970d16

View File

@ -1156,8 +1156,12 @@ const {
getNextScheduledRun
} = require('../jobs/scraperJob');
const { runScrape } = require('../services/scraperService');
const { createLogger } = require('../services/scraperLogger');
const scraperConfig = require('../config/scraper');
// Logger for scraper admin routes
const scraperRouteLogger = createLogger('scraper-admin');
/**
* POST /api/admin/scraper/run
* Trigger a manual scrape
@ -1190,7 +1194,10 @@ router.post('/scraper/run', async (req, res) => {
// Start scrape asynchronously (do not await - return 202 immediately)
runScrape(db, { trigger: 'manual', jobId, dryRun, htmlContent })
.catch((error) => {
console.error('Async scrape failed:', error.message);
scraperRouteLogger.error('Async scrape failed', {
errorType: error.name,
errorMessage: error.message
});
})
.finally(() => releaseLock());
@ -1205,7 +1212,10 @@ router.post('/scraper/run', async (req, res) => {
});
} catch (error) {
console.error('Error triggering scrape:', error);
scraperRouteLogger.error('Error triggering scrape', {
errorType: error.name,
errorMessage: error.message
});
res.status(500).json({ error: 'Failed to start scrape job' });
}
});
@ -1245,7 +1255,10 @@ router.get('/scraper/status', async (req, res) => {
});
} catch (error) {
console.error('Error fetching scraper status:', error);
scraperRouteLogger.error('Error fetching scraper status', {
errorType: error.name,
errorMessage: error.message
});
res.status(503).json({ error: 'Service temporarily unavailable' });
}
});
@ -1295,7 +1308,10 @@ router.get('/scraper/history', async (req, res) => {
res.json({ data: history });
} catch (error) {
console.error('Error fetching scraper history:', error);
scraperRouteLogger.error('Error fetching scraper history', {
errorType: error.name,
errorMessage: error.message
});
res.status(503).json({ error: 'Service temporarily unavailable' });
}
});