- Add package.json version to /api/version endpoint - Move version display from footer to top (next to logo) - Show format: v1.5.1 (abc1234) - 12/9/2024 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { Router, Request, Response } from 'express';
|
|
import { readFileSync } from 'fs';
|
|
import { join } from 'path';
|
|
|
|
const router = Router();
|
|
|
|
// Read package.json version at startup
|
|
let packageVersion = 'unknown';
|
|
try {
|
|
const packageJson = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
|
|
packageVersion = packageJson.version || 'unknown';
|
|
} catch {
|
|
// Fallback if package.json not found
|
|
}
|
|
|
|
/**
|
|
* GET /api/version
|
|
* Returns build version information for display in admin UI
|
|
*/
|
|
router.get('/', async (req: Request, res: Response) => {
|
|
try {
|
|
const gitSha = process.env.APP_GIT_SHA || 'unknown';
|
|
const versionInfo = {
|
|
version: packageVersion,
|
|
build_version: process.env.APP_BUILD_VERSION?.slice(0, 8) || 'dev',
|
|
git_sha: gitSha.slice(0, 8) || 'unknown',
|
|
git_sha_full: gitSha,
|
|
build_time: process.env.APP_BUILD_TIME || 'unknown',
|
|
image_tag: process.env.CONTAINER_IMAGE_TAG?.slice(0, 8) || 'local',
|
|
};
|
|
|
|
res.json(versionInfo);
|
|
} catch (error: any) {
|
|
console.error('Error fetching version info:', error);
|
|
res.status(500).json({ error: 'Failed to fetch version info' });
|
|
}
|
|
});
|
|
|
|
export default router;
|