Files
shopdb-flask/plugins
Proudlock 87582d0851 Fix endpoints plugin load failure (audit_log decorator incorrect usage)
Critical Bug Fix: Plugin load failure

Problem:
- Endpoints plugin failed to load after adding server cert management
- Error: audit_log() missing 1 required positional argument: 'entitytype'
- Plugin completely broken - no endpoints routes available

Root Cause:
- Used @audit_log('action') as decorator on routes.py:4394, 4521
- audit_log() is NOT a decorator - it's a function requiring (action, entitytype)
- Decorator pattern doesn't exist in ShopDB API

Solution:
- Removed @audit_log decorators from both endpoints:
  - /settings/server-cert/generate
  - /settings/server-cert/upload
- Added manual AuditLog.log() calls inside functions after success
- Wrapped in try/except to prevent audit logging from breaking endpoint

Implementation:
  try:
      AuditLog.log(action='endpoints.server_cert.generated',
                   userid=current_user.userid if current_user else None,
                   details='Generated self-signed certificate: CN=...')
  except Exception:
      pass

Result:
- Endpoints plugin loads successfully
- Blueprint registered: /api/endpoints
- All endpoints routes working (tested: /api/endpoints/alerts)
- Settings menu now visible in sidebar
- Audit logging still captures cert operations

Verification:
- docker-compose logs: 'Endpoints plugin initialized (v0.1.0)'
- GET /api/endpoints/alerts returns 200
- GET /api/dashboard/health returns healthy

Impact:
- Entire endpoints plugin was broken since commit d11ba5c5d6
- Fleet alerts, agent commands, cert renewal ALL non-functional
- Fixed within 2 minutes of discovery

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-09-14 15:36:48 -04:00
..