feat: stabilize API startup and lifecycle management
- Refactor server initialization to separate concerns and improve error handling. - Implement centralized environment validation using Zod. - Introduce database, Redis, and queue lifecycle management. - Add health check endpoints for liveness and readiness. - Enhance error handling middleware for better response structure. - Implement rate limiting for API endpoints. - Add request ID middleware for traceability. - Create Sequelize CLI configuration and baseline migration for schema management. - Establish CI workflow with Gitea for testing and syntax checks. - Document foundational changes and migration strategy in PHASE_0_FOUNDATION_STABILIZATION.md. - Add Docker Compose configuration for local development and testing. - Implement unit and integration tests for critical functionality.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
require("dotenv").config();
|
||||
|
||||
const required = ["DB_HOST", "DB_NAME", "DB_USER"];
|
||||
const missing = required.filter((name) => !process.env[name]);
|
||||
if (missing.length) throw new Error(`Missing migration environment variables: ${missing.join(", ")}`);
|
||||
|
||||
const configuration = {
|
||||
username: process.env.DB_USER,
|
||||
password: process.env.DB_PASSWORD || "",
|
||||
database: process.env.DB_NAME,
|
||||
host: process.env.DB_HOST,
|
||||
port: Number(process.env.DB_PORT || 3306),
|
||||
dialect: "mysql",
|
||||
logging: false,
|
||||
};
|
||||
|
||||
module.exports = { development: configuration, test: configuration, production: configuration };
|
||||
Reference in New Issue
Block a user