Files
claudetools/.claude/agents/DATABASE_CONNECTION_INFO.md
Mike Swanson 25f3759ecc [Config] Add coding guidelines and code-fixer agent
Major additions:
- Add CODING_GUIDELINES.md with "NO EMOJIS" rule
- Create code-fixer agent for automated violation fixes
- Add offline mode v2 hooks with local caching/queue
- Add periodic context save with invisible Task Scheduler setup
- Add agent coordination rules and database connection docs

Infrastructure:
- Update hooks: task-complete-v2, user-prompt-submit-v2
- Add periodic_save_check.py for auto-save every 5min
- Add PowerShell scripts: setup_periodic_save.ps1, update_to_invisible.ps1
- Add sync-contexts script for queue synchronization

Documentation:
- OFFLINE_MODE.md, PERIODIC_SAVE_INVISIBLE_SETUP.md
- Migration procedures and verification docs
- Fix flashing window guide

Updates:
- Update agent configs (backup, code-review, coding, database, gitea, testing)
- Update claude.md with coding guidelines reference
- Update .gitignore for new cache/queue directories

Status: Pre-automated-fixer baseline commit

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-17 12:51:43 -07:00

5.9 KiB

Database Connection Information

FOR ALL AGENTS - UPDATED 2026-01-17


Current Database Configuration

Production Database (RMM Server)

  • Host: 172.16.3.30
  • Port: 3306
  • Database: claudetools
  • User: claudetools
  • Password: CT_e8fcd5a3952030a79ed6debae6c954ed
  • Character Set: utf8mb4
  • Tables: 43 tables (all migrated)

Connection String

mysql+pymysql://claudetools:CT_e8fcd5a3952030a79ed6debae6c954ed@172.16.3.30:3306/claudetools?charset=utf8mb4

Environment Variable

DATABASE_URL=mysql+pymysql://claudetools:CT_e8fcd5a3952030a79ed6debae6c954ed@172.16.3.30:3306/claudetools?charset=utf8mb4

ClaudeTools API

Production API (RMM Server)

JWT Token Location

  • File: D:\ClaudeTools\.claude\context-recall-config.env
  • Variable: JWT_TOKEN
  • Expiration: 2026-02-16 (30 days from creation)

Authentication Header

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJpbXBvcnQtc2NyaXB0Iiwic2NvcGVzIjpbImFkbWluIiwiaW1wb3J0Il0sImV4cCI6MTc3MTI2NzQzMn0.7HddDbQahyRvaOq9o7OEk6vtn6_nmQJCTzf06g-fv5k

Database Access Methods

Method 1: Direct MySQL Connection (from RMM server)

# SSH to RMM server
ssh guru@172.16.3.30

# Connect to database
mysql -u claudetools -p'CT_e8fcd5a3952030a79ed6debae6c954ed' -D claudetools

# Example query
SELECT COUNT(*) FROM conversation_contexts;

Method 2: Via ClaudeTools API (preferred for agents)

# Get contexts
curl -s "http://172.16.3.30:8001/api/conversation-contexts?limit=10" \
  -H "Authorization: Bearer $JWT_TOKEN"

# Create context
curl -X POST "http://172.16.3.30:8001/api/conversation-contexts" \
  -H "Authorization: Bearer $JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{...}'

Method 3: Python with SQLAlchemy

from sqlalchemy import create_engine, text

DATABASE_URL = "mysql+pymysql://claudetools:CT_e8fcd5a3952030a79ed6debae6c954ed@172.16.3.30:3306/claudetools?charset=utf8mb4"

engine = create_engine(DATABASE_URL)

with engine.connect() as conn:
    result = conn.execute(text("SELECT COUNT(*) FROM conversation_contexts"))
    count = result.scalar()
    print(f"Contexts: {count}")

OLD vs NEW Configuration

⚠️ DEPRECATED - Old Jupiter Database (DO NOT USE)

  • Host: 172.16.3.20 (Jupiter - Docker MariaDB)
  • Status: Deprecated, data not migrated
  • Contains: 68 old conversation contexts (pre-2026-01-17)

CURRENT - New RMM Database (USE THIS)

  • Host: 172.16.3.30 (RMM - Native MariaDB)
  • Status: Production, current
  • Contains: 7+ contexts (as of 2026-01-17)

Migration Date: 2026-01-17 Reason: Centralized architecture - all clients connect to RMM server


For Database Agent

When performing operations, use:

Read Operations

# Use API for reads
import requests

headers = {
    "Authorization": f"Bearer {jwt_token}"
}

response = requests.get(
    "http://172.16.3.30:8001/api/conversation-contexts",
    headers=headers,
    params={"limit": 10}
)

contexts = response.json()

Write Operations

# Use API for writes
payload = {
    "context_type": "session_summary",
    "title": "...",
    "dense_summary": "...",
    "relevance_score": 8.5,
    "tags": "[\"tag1\", \"tag2\"]"
}

response = requests.post(
    "http://172.16.3.30:8001/api/conversation-contexts",
    headers=headers,
    json=payload
)

result = response.json()

Direct Database Access (if API unavailable)

# SSH to RMM server first
ssh guru@172.16.3.30

# Then query database
mysql -u claudetools -p'CT_e8fcd5a3952030a79ed6debae6c954ed' -D claudetools \
  -e "SELECT id, title FROM conversation_contexts LIMIT 5;"

Common Database Operations

Count Records

SELECT COUNT(*) FROM conversation_contexts;
SELECT COUNT(*) FROM clients;
SELECT COUNT(*) FROM sessions;

List Recent Contexts

SELECT id, title, relevance_score, created_at
FROM conversation_contexts
ORDER BY created_at DESC
LIMIT 10;

Search Contexts by Tag

# Via API (preferred)
curl "http://172.16.3.30:8001/api/conversation-contexts/recall?tags=migration&limit=5" \
  -H "Authorization: Bearer $JWT_TOKEN"

Health Checks

Check Database Connectivity

# From RMM server
mysql -u claudetools -p'CT_e8fcd5a3952030a79ed6debae6c954ed' \
  -h 172.16.3.30 \
  -e "SELECT 1"

Check API Health

curl http://172.16.3.30:8001/health
# Expected: {"status":"healthy","database":"connected"}

Check API Service Status

ssh guru@172.16.3.30 "sudo systemctl status claudetools-api"

Troubleshooting

Cannot Connect to Database

# Check if MariaDB is running
ssh guru@172.16.3.30 "sudo systemctl status mariadb"

# Check if port is open
curl telnet://172.16.3.30:3306

API Returns 401 Unauthorized

# JWT token may be expired - regenerate
python D:\ClaudeTools\create_jwt_token.py

# Update config file
# Edit: D:\ClaudeTools\.claude\context-recall-config.env

API Returns 404 Not Found

# Check if API service is running
ssh guru@172.16.3.30 "sudo systemctl status claudetools-api"

# Check API logs
ssh guru@172.16.3.30 "sudo journalctl -u claudetools-api -n 50"

Important Notes

  1. Always use the API when possible - Better for access control and validation
  2. JWT tokens expire - Regenerate monthly (currently valid until 2026-02-16)
  3. Database is centralized - All machines connect to RMM server
  4. No local database - Don't try to connect to localhost:3306
  5. Use parameterized queries - Prevent SQL injection

Last Updated: 2026-01-17 Current Database: 172.16.3.30:3306 (RMM) Current API: http://172.16.3.30:8001