refactor: complete migration from .env to YAML configuration
BREAKING CHANGE: Application now uses config.yaml instead of .env files ## Changes: - Remove dotenv dependency from package.json - Update all services to use ConfigManager for configuration - Update tests to use fixed credentials instead of env vars - Delete obsolete config-manager.test.ts (used old .env API) - Update documentation (README.md, CLAUDE.md) to reflect new config system ## Configuration Architecture: - ConfigManager: Centralized YAML configuration with Zod validation - config.yaml location: - Development: Project root (easy to edit and version control) - Production: User AppData (persists across updates) - ERP credentials: Stored in database (dbo_BIPUsers) per user - Other settings: Stored in config.yaml (database, paths, extraction, etc.) ## Files Modified: - package.json: Removed dotenv dependency - cleaner-handler.ts: Use ConfigManager.getDatabaseType() - run-migration.ts: Read from config.yaml instead of .env - All integration tests: Use fixed test credentials - tests/setup.ts: Removed dotenv loading - README.md, CLAUDE.md: Updated documentation Migration is complete. Application no longer depends on .env files.
This commit is contained in:
@@ -6,10 +6,11 @@ import fs from 'fs/promises'
|
||||
import path from 'path'
|
||||
|
||||
describe('Cleaner Service (Integration)', () => {
|
||||
// For integration tests, use fixed test credentials or configure via config.yaml
|
||||
const config: ErpConfig = {
|
||||
url: process.env.ERP_URL || '',
|
||||
username: process.env.ERP_USERNAME || '',
|
||||
password: process.env.ERP_PASSWORD || ''
|
||||
url: '',
|
||||
username: '',
|
||||
password: ''
|
||||
}
|
||||
|
||||
// Test data paths
|
||||
|
||||
@@ -4,10 +4,11 @@ import type { ErpConfig } from '../../src/main/types/erp.types'
|
||||
|
||||
describe('ERP Authentication Service (Integration)', () => {
|
||||
let authService: ErpAuthService
|
||||
// For integration tests, use fixed test credentials or configure via config.yaml
|
||||
const config: ErpConfig = {
|
||||
url: process.env.ERP_URL || '',
|
||||
username: process.env.ERP_USERNAME || '',
|
||||
password: process.env.ERP_PASSWORD || ''
|
||||
url: '',
|
||||
username: '',
|
||||
password: ''
|
||||
}
|
||||
|
||||
// Check if we have ERP credentials
|
||||
|
||||
@@ -6,10 +6,11 @@ import fs from 'fs/promises'
|
||||
import path from 'path'
|
||||
|
||||
describe('Extractor Service (Integration)', () => {
|
||||
// For integration tests, use fixed test credentials or configure via config.yaml
|
||||
const config: ErpConfig = {
|
||||
url: process.env.ERP_URL || '',
|
||||
username: process.env.ERP_USERNAME || '',
|
||||
password: process.env.ERP_PASSWORD || ''
|
||||
url: '',
|
||||
username: '',
|
||||
password: ''
|
||||
}
|
||||
|
||||
const testOrderNumber = 'SC70202602120085' // From references/demo/productionID.txt
|
||||
|
||||
@@ -8,13 +8,13 @@ import { describe, it, expect, beforeAll, afterAll } from 'vitest'
|
||||
import { MySqlService, MySqlConfig } from '@services/database/mysql'
|
||||
|
||||
// MySQL test configuration
|
||||
// In production, these should come from environment variables
|
||||
// For integration tests, use fixed test credentials or configure via config.yaml
|
||||
const testConfig: MySqlConfig = {
|
||||
host: process.env.MYSQL_HOST || 'localhost',
|
||||
port: parseInt(process.env.MYSQL_PORT || '3306'),
|
||||
user: process.env.MYSQL_USER || 'root',
|
||||
password: process.env.MYSQL_PASSWORD || 'password',
|
||||
database: process.env.MYSQL_DATABASE || 'test_db'
|
||||
host: 'localhost',
|
||||
port: 3306,
|
||||
user: 'root',
|
||||
password: 'password',
|
||||
database: 'test_db'
|
||||
}
|
||||
|
||||
describe('MySqlService Integration Tests', () => {
|
||||
|
||||
@@ -9,12 +9,13 @@ import { SqlServerService, SqlServerConfig } from '@main/services/database/sql-s
|
||||
import * as sql from 'mssql'
|
||||
|
||||
// SQL Server test configuration
|
||||
// For integration tests, use fixed test credentials or configure via config.yaml
|
||||
const testConfig: SqlServerConfig = {
|
||||
server: process.env.SQL_SERVER_HOST || 'localhost',
|
||||
port: parseInt(process.env.SQL_SERVER_PORT || '1433'),
|
||||
user: process.env.SQL_SERVER_USER || 'sa',
|
||||
password: process.env.SQL_SERVER_PASSWORD || 'password',
|
||||
database: process.env.SQL_SERVER_DATABASE || 'testdb',
|
||||
server: 'localhost',
|
||||
port: 1433,
|
||||
user: 'sa',
|
||||
password: 'password',
|
||||
database: 'testdb',
|
||||
options: {
|
||||
encrypt: false, // Set to true for Azure SQL
|
||||
trustServerCertificate: true // Set to false in production with valid cert
|
||||
|
||||
Reference in New Issue
Block a user