Harden secrets handling: env-var DB password + defensive .gitignore

Move hardcoded 'rootpassword' default in parser/{config,backfill_changeover,
clmparser,udcparser}.py behind os.environ.get('SHOPDB_DB_PASSWORD',
'rootpassword'). Add defensive patterns (.env, *.key, *.pem, id_rsa*,
secrets.*, etc.) to .gitignore across all project repos.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-04-17 12:50:12 -04:00
parent 0f78f76410
commit ccd29d9e4b
5 changed files with 30 additions and 10 deletions

View File

@@ -1,11 +1,9 @@
#!/usr/bin/env python3
"""Backfill changeover values for udcparts"""
import mysql.connector
from config import DB_CONFIG
conn = mysql.connector.connect(
host='127.0.0.1', port=3306, user='root',
password='rootpassword', database='shopdb'
)
conn = mysql.connector.connect(**DB_CONFIG)
cursor = conn.cursor()
# Get all machines

View File

@@ -35,13 +35,14 @@ from mysql.connector import Error
try:
from config import DB_CONFIG, CLM_DATA_PATH, BATCH_SIZE
except ImportError:
import os
import platform
IS_WINDOWS = platform.system() == 'Windows'
DB_CONFIG = {
'host': '127.0.0.1',
'port': 3306,
'user': 'root',
'password': 'rootpassword',
'password': os.environ.get('SHOPDB_DB_PASSWORD', 'rootpassword'),
'database': 'shopdb'
}
CLM_DATA_PATH = r'S:\SPC\UDC\CLM_Data' if IS_WINDOWS else '/home/camp/projects/UDC/CLM_Data'

View File

@@ -1,6 +1,7 @@
"""
UDC Parser Configuration
"""
import os
import platform
# Detect OS
@@ -21,16 +22,16 @@ DB_CONFIG_DEV = {
'host': '127.0.0.1',
'port': 3306,
'user': 'root',
'password': 'rootpassword',
'password': os.environ.get('SHOPDB_DB_PASSWORD', 'rootpassword'),
'database': 'shopdb'
}
# Database - Production (update these values)
DB_CONFIG_PROD = {
'host': 'PROD_MYSQL_HOST', # TODO: Update with production host
'host': os.environ.get('SHOPDB_DB_HOST', 'PROD_MYSQL_HOST'),
'port': 3306,
'user': 'PROD_USER', # TODO: Update with production user
'password': 'PROD_PASSWORD', # TODO: Update with production password
'user': os.environ.get('SHOPDB_DB_USER', 'PROD_USER'),
'password': os.environ.get('SHOPDB_DB_PASSWORD', 'PROD_PASSWORD'),
'database': 'shopdb'
}

View File

@@ -23,13 +23,14 @@ from mysql.connector.pooling import MySQLConnectionPool
try:
from config import DB_CONFIG, UDC_LOG_PATH as LOG_DIRECTORY, BATCH_SIZE
except ImportError:
import os
import platform
IS_WINDOWS = platform.system() == 'Windows'
DB_CONFIG = {
'host': '127.0.0.1',
'port': 3306,
'user': 'root',
'password': 'rootpassword',
'password': os.environ.get('SHOPDB_DB_PASSWORD', 'rootpassword'),
'database': 'shopdb'
}
LOG_DIRECTORY = r'S:\SPC\UDC\LogFiles' if IS_WINDOWS else '/home/camp/projects/UDC/LogFiles'