0d056a45e9
Vue 3 + Vuetify 4 + TypeScript + Vue Router 4 + Pinia frontend, replacing the old Tailwind+Alpine.js static pages. Infrastructure (8 new files): - composables/useSnackbar.ts — centralized notifications - composables/useServerList.ts — server dropdown data - composables/useServerPagination.ts — paginated server table - types/api.ts — 14 typed API response interfaces - types/global.d.ts — Window augmentation - utils/status.ts — server status display helpers - utils/validation.ts — 8 form validation rules - components/MonacoEditor.vue — fullscreen code editor 14 pages rebuilt: - LoginPage, DashboardPage, ServersPage, TerminalPage - FilesPage, PushPage, ScriptsPage, CredentialsPage - SchedulesPage, RetriesPage, CommandsPage - AlertsPage, AuditPage, SettingsPage Critical fixes (from audit): - Files upload JWT auth (was missing Authorization header) - API Key reveal password verification dialog - 6 silent catch blocks → snackbar error feedback - 33 as any → 0 (typed interfaces + global.d.ts) - Dashboard: alerts/summary/categories/audit data loading - WebSocket reconnect timer cleanup + auth failure handling - Terminal ResizeObserver leak fix - PushPage timer cleanup on unmount - FilesPage path double-slash fix (joinPath helper) - Filter changes reset pagination to page 1 Features added: - Servers: batch operations, CSV export/import, detail panel - Push: sync modes, ZIP upload, WebSocket real-time progress, cancel - Scripts: quick execute panel, execution status tracking - Files: Monaco editor, context menu, batch delete, rename, chmod - Terminal: right-click menu, server sidebar, tab persistence - Settings: batch save, TOTP manual key, password TOTP verification - Dashboard: category distribution, recent audit, WS refresh Quality: - vue-tsc --noEmit zero errors - vite build passes (1613 modules) - Formal 8-step security audit passed (0 FINDING) - .gitignore: dist/ → **/dist/ to cover web/app/dist/ Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
73 lines
865 B
Plaintext
73 lines
865 B
Plaintext
# Nexus — Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.egg-info/
|
|
build/
|
|
.eggs/
|
|
|
|
# Environment (NEVER commit — contains production credentials)
|
|
.env
|
|
.install_locked
|
|
.install_state.json
|
|
SECRETS.md
|
|
*.pem
|
|
.env.*
|
|
.venv/
|
|
venv/
|
|
ENV/
|
|
|
|
# Agent memory (local MCP persistence, do not commit)
|
|
.claude/mcp-memory.jsonl
|
|
|
|
# MCP tool data (local development artifacts)
|
|
.megamemory/
|
|
.playwright-mcp/
|
|
tmp/
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Logs
|
|
*.log
|
|
nexus.log
|
|
|
|
# Node offline cache for WSL install (large tarball)
|
|
.cache/
|
|
|
|
# Test
|
|
.pytest_cache/
|
|
htmlcov/
|
|
.coverage
|
|
coverage.xml
|
|
|
|
# Node (for Tailwind/Alpine.js build)
|
|
node_modules/
|
|
web/css/tailwind-output.css
|
|
|
|
# Build output (Vite/Vuetify frontend)
|
|
**/dist/
|
|
|
|
# Uploads
|
|
web/uploads/
|
|
|
|
# Data (sensitive)
|
|
web/data/config.php
|
|
web/data/*.db
|
|
|
|
# Backups
|
|
backups/
|
|
|
|
# Deploy
|
|
deploy/*.key
|
|
|
|
# Backups
|
|
backups/ |