Files
edncfix/CLAUDE.md
cproudlock 52a264ea0b v1.5.0: API logging to ShopDB
- Logs events (started, cleaned, ok, failed, error, stopped) to ShopDB API
- Tracks installations and stats per hostname in ednc_installations table
- Event history stored in ednc_logs table
- Added CLAUDE.md with project instructions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 08:55:20 -05:00

4.5 KiB

eDNC Special Character Fix - Claude Code Instructions

Project Overview

PowerShell utility that monitors DNC folders and removes invalid special characters (0xFF) from .pun files in real-time. Deployed to CNC workstations via network share.

Technology Stack

  • Language: PowerShell 5.1+
  • Deployment: Network share (S:\DT\cameron\eDNC-Fix) → Local (C:\eDNC-Fix)
  • Logging: ShopDB API (http://geitshopdb/api.asp)
  • Version Control: Gitea (localhost:3000/cproudlock/edncfix)

IMPORTANT: After Making Changes

Always do the following after any code changes:

  1. Update version numbers in ALL of these files:

    • eDNC-SpecialCharFix.ps1 - $ScriptVersion variable (line ~81)
    • eDNC-SpecialCharFix.ps1 - .NOTES section Version field
    • version.ini - Version=x.x.x
    • README.md - Version History table
  2. Commit and push to Gitea:

    cd /home/camp/projects/powershell/edncfix
    git add -A
    git commit -m "vX.X.X: Description of changes"
    git push
    
  3. Version format: Use semantic versioning (MAJOR.MINOR.PATCH)

    • MAJOR: Breaking changes
    • MINOR: New features
    • PATCH: Bug fixes

File Structure

/home/camp/projects/powershell/edncfix/
├── eDNC-SpecialCharFix.ps1   # Main script
├── Run-eDNCFix.bat           # Manual launcher (auto-elevates)
├── Install-ScheduledTask.ps1 # Creates Windows scheduled task
├── Deploy.bat                # Copies from S: to C:\eDNC-Fix\
├── version.ini               # Version file for auto-updates
├── README.md                 # Documentation
└── CLAUDE.md                 # This file

Configuration (Hardcoded)

Setting Value Location
Watch Folder C:\Dnc_Files\Q eDNC-SpecialCharFix.ps1
File Filter *.pun eDNC-SpecialCharFix.ps1
Update Source S:\DT\cameron\eDNC-Fix eDNC-SpecialCharFix.ps1
API URL http://geitshopdb/api.asp eDNC-SpecialCharFix.ps1
Update Interval 300 seconds (5 min) eDNC-SpecialCharFix.ps1

ShopDB API Integration

The script logs events to ShopDB via the API. Reference the ShopDB API documentation at:

  • ShopDB Project: /home/camp/projects/windows/shopdb/
  • API File: /home/camp/projects/windows/shopdb/api.asp
  • Standards Doc: /home/camp/projects/windows/shopdb/docs/STANDARDS.md

API Endpoint: logDNCEvent

Method: POST URL: http://geitshopdb/api.asp

Parameters:

Parameter Type Required Description
action string Yes Must be "logDNCEvent"
hostname string Yes PC hostname
eventType string Yes Event type: started, cleaned, ok, failed, error, stopped
filename string No File being processed
bytesRemoved int No Number of bytes removed
version string No Script version
message string No Additional details
watchFolder string No Folder being watched
fileFilter string No File filter pattern

Database Tables:

  • ednc_logs - Individual event log entries
  • ednc_installations - Per-hostname installation tracking

API Endpoint: getDNCStats

Method: GET URL: http://geitshopdb/api.asp?action=getDNCStats

Returns JSON with all eDNC installations and their stats.

Deployment Workflow

  1. Development: Edit files in /home/camp/projects/powershell/edncfix/
  2. Update versions: Bump all version numbers
  3. Commit: Push to Gitea
  4. Stage: Copy files to S:\DT\cameron\eDNC-Fix\
  5. Deploy: On target PC, run Deploy.bat from S: drive
  6. Install: Run Install-ScheduledTask.ps1 as Admin

Auto-Update Mechanism

Running instances check S:\DT\cameron\eDNC-Fix\version.ini every 5 minutes. If a newer version is found, they automatically:

  1. Copy new files from S: to C:\eDNC-Fix\
  2. Restart themselves

To deploy an update to all PCs:

  1. Update version.ini with new version number
  2. Copy updated files to S:\DT\cameron\eDNC-Fix\
  3. Wait up to 5 minutes for auto-update

Quick Reference

Test API endpoint:

curl -X POST http://192.168.122.151:8080/api.asp \
  -d "action=logDNCEvent&hostname=TESTPC&eventType=started&version=1.5.0"

Check installations:

curl "http://192.168.122.151:8080/api.asp?action=getDNCStats"

View logs in database:

SELECT * FROM ednc_logs ORDER BY created DESC LIMIT 20;
SELECT * FROM ednc_installations;