Add FQDN support for network devices and fix printer installer map
## Printer Installer Map Fixes - Fixed printer_installer_map.asp to pass printer IDs instead of generated names - Fixed install_printer.asp dictionary key collision by using printerid ## Network Device FQDN Support - Added fqdn column to machines table (migration script included) - Updated device edit pages: deviceaccesspoint.asp, deviceserver.asp, deviceswitch.asp, devicecamera.asp - Updated save_network_device.asp to handle FQDN in INSERT/UPDATE - Updated network_devices.asp to display FQDN for Server, Switch, Camera - Updated vw_network_devices view to include FQDN from machines table - Added FQDN field to machine_edit.asp Network tab - Updated savemachineedit.asp to save FQDN ## Printer Install Path Edit - Added installpath field to displayprinter.asp Edit tab - Updated editprinter.asp to save installpath changes ## Documentation - Added IIS log location to CLAUDE.md ## Production Migration - sql/add_fqdn_to_machines.sql - Run on production to add column and update view 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
165
CLAUDE.md
Normal file
165
CLAUDE.md
Normal file
@@ -0,0 +1,165 @@
|
||||
# ShopDB - Claude Code Instructions
|
||||
|
||||
## Project Overview
|
||||
|
||||
ShopDB is a Classic ASP/VBScript web application for managing manufacturing shop floor infrastructure at GE Aerospace. It tracks machines, PCs, printers, and network devices.
|
||||
|
||||
## Technology Stack
|
||||
|
||||
- **Backend:** Classic ASP (VBScript)
|
||||
- **Database:** MySQL 5.6
|
||||
- **Frontend:** Bootstrap 4.6, jQuery, DataTables
|
||||
- **Server:** IIS on Windows VM (192.168.122.151:8080)
|
||||
- **Version Control:** Gitea (localhost:3000)
|
||||
|
||||
## Key Architecture
|
||||
|
||||
### Database Schema (Phase 2 - Current)
|
||||
|
||||
```
|
||||
machines table (unified)
|
||||
├── Equipment (machinetypeid 1-24, pctypeid IS NULL)
|
||||
├── PCs (machinetypeid 33-35, pctypeid IS NOT NULL)
|
||||
└── Network Devices (machinetypeid 16-20)
|
||||
|
||||
printers table (separate)
|
||||
communications table (all network interfaces)
|
||||
machinerelationships table (PC↔equipment links)
|
||||
```
|
||||
|
||||
### Key Queries
|
||||
|
||||
```sql
|
||||
-- All PCs
|
||||
SELECT * FROM machines WHERE pctypeid IS NOT NULL;
|
||||
|
||||
-- All Equipment
|
||||
SELECT * FROM machines WHERE pctypeid IS NULL AND machinetypeid < 16;
|
||||
|
||||
-- Network devices
|
||||
SELECT * FROM machines WHERE machinetypeid IN (16,17,18,19,20);
|
||||
```
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
/home/camp/projects/windows/shopdb/
|
||||
├── *.asp # Main ASP pages
|
||||
├── api.asp # REST API for PowerShell
|
||||
├── includes/ # Shared includes (header, footer, sql)
|
||||
├── js/ # JavaScript files
|
||||
├── css/ # Stylesheets
|
||||
├── images/ # Images and icons
|
||||
├── docs/ # Documentation
|
||||
├── sql/ # SQL scripts
|
||||
│ ├── migration_phase1/
|
||||
│ ├── migration_phase2/
|
||||
│ └── migration_phase3/
|
||||
└── logs/ # Application logs
|
||||
```
|
||||
|
||||
## Log Locations
|
||||
|
||||
**IIS Logs (Windows VM):** `/home/camp/projects/windows/logs/shopdb/`
|
||||
- Format: `ex[YYMMDD].log` (e.g., `ex251201.log` for Dec 1, 2025)
|
||||
- These are synced from the Windows VM via Samba share
|
||||
- Contains HTTP request logs with status codes and error messages
|
||||
|
||||
**API Logs:** Check `logs/` folder in shopdb directory on IIS
|
||||
|
||||
## Coding Standards
|
||||
|
||||
### ASP/VBScript
|
||||
|
||||
1. **Always use parameterized queries** - Never concatenate user input into SQL
|
||||
2. **Use HTMLEncode for output** - Prevent XSS attacks
|
||||
3. **Convert text fields to strings** - Use `& ""` to avoid type mismatch errors
|
||||
4. **Use Option Explicit** - Declare all variables
|
||||
|
||||
### Example Safe Query
|
||||
|
||||
```vbscript
|
||||
Dim cmd, rs
|
||||
Set cmd = Server.CreateObject("ADODB.Command")
|
||||
cmd.ActiveConnection = objConn
|
||||
cmd.CommandText = "SELECT * FROM machines WHERE machineid = ?"
|
||||
cmd.Parameters.Append cmd.CreateParameter("@id", 3, 1, , machineId)
|
||||
Set rs = cmd.Execute()
|
||||
```
|
||||
|
||||
### Example Safe Output
|
||||
|
||||
```vbscript
|
||||
' Always convert to string and encode
|
||||
Dim hostname
|
||||
hostname = ""
|
||||
If NOT IsNull(rs("hostname")) Then hostname = rs("hostname") & ""
|
||||
Response.Write(Server.HTMLEncode(hostname))
|
||||
```
|
||||
|
||||
## Common Tasks
|
||||
|
||||
### Reading Files
|
||||
- Main pages are in project root (*.asp)
|
||||
- Includes are in /includes/
|
||||
- Check docs/ for documentation
|
||||
|
||||
### Making Changes
|
||||
1. Read the file first
|
||||
2. Use parameterized queries for any SQL
|
||||
3. Test on dev server (192.168.122.151:8080)
|
||||
4. Check IIS logs for errors
|
||||
|
||||
### Database Access
|
||||
```bash
|
||||
docker exec -it dev-mysql mysql -u root -prootpassword shopdb
|
||||
```
|
||||
|
||||
## Important Notes
|
||||
|
||||
### VBScript Limitations
|
||||
- No `IIf()` function - use If-Then-Else instead
|
||||
- No Try-Catch - use On Error Resume Next carefully
|
||||
- Strings are 1-indexed, not 0-indexed
|
||||
|
||||
### Column Name Gotchas
|
||||
- `address` not `ipaddress` in communications table
|
||||
- `machinenotes` not `notes` in machines table
|
||||
- `machineid` not `pcid` for PCs in machines table
|
||||
|
||||
### PC Identification
|
||||
PCs are in the machines table, identified by:
|
||||
- `pctypeid IS NOT NULL`
|
||||
- `machinetypeid IN (33, 34, 35)`
|
||||
|
||||
## API Endpoints
|
||||
|
||||
**Base URL:** `http://192.168.122.151:8080/api.asp`
|
||||
|
||||
| Action | Method | Description |
|
||||
|--------|--------|-------------|
|
||||
| updateCompleteAsset | POST | PC data collection |
|
||||
| getDashboardData | GET | Health check |
|
||||
| updatePrinterMapping | POST | Printer assignments |
|
||||
|
||||
## Quick Reference
|
||||
|
||||
### Start Dev Environment
|
||||
```bash
|
||||
~/start-dev-env.sh
|
||||
~/status-dev-env.sh
|
||||
```
|
||||
|
||||
### Git Commands
|
||||
```bash
|
||||
cd /home/camp/projects/windows/shopdb
|
||||
git status
|
||||
git add .
|
||||
git commit -m "message"
|
||||
git push
|
||||
```
|
||||
|
||||
### Test a Page
|
||||
```bash
|
||||
curl -s http://192.168.122.151:8080/pagename.asp | head -50
|
||||
```
|
||||
Reference in New Issue
Block a user