Initial commit: Clean DSS implementation

Migrated from design-system-swarm with fresh git history.
Old project history preserved in /home/overbits/apps/design-system-swarm

Core components:
- MCP Server (Python FastAPI with mcp 1.23.1)
- Claude Plugin (agents, commands, skills, strategies, hooks, core)
- DSS Backend (dss-mvp1 - token translation, Figma sync)
- Admin UI (Node.js/React)
- Server (Node.js/Express)
- Storybook integration (dss-mvp1/.storybook)

Self-contained configuration:
- All paths relative or use DSS_BASE_PATH=/home/overbits/dss
- PYTHONPATH configured for dss-mvp1 and dss-claude-plugin
- .env file with all configuration
- Claude plugin uses ${CLAUDE_PLUGIN_ROOT} for portability

Migration completed: $(date)
🤖 Clean migration with full functionality preserved
This commit is contained in:
Digital Production Factory
2025-12-09 18:45:48 -03:00
commit 276ed71f31
884 changed files with 373737 additions and 0 deletions

178
PROJECT_CONFIG.md Normal file
View File

@@ -0,0 +1,178 @@
# Design System Swarm (DSS) - Production Configuration
## ✅ Production Status: LIVE & ACCESSIBLE
**Domain:** https://dss.overbits.luz.uy/
**Status:** Deployed and accessible from anywhere without credentials
**Last Updated:** 2025-12-08
---
## Services & Ports
| Service | Port | Status | Details |
|---------|------|--------|---------|
| **Admin UI** | 443 (nginx) | ✅ Live | Vite production build |
| **API Backend** | 3001 | ✅ Live | Express.js server |
| **Nginx Reverse Proxy** | 443 (HTTPS) | ✅ Live | Routes requests, serves static files |
| **Database** | 5432 | ✅ Live | Seeded with demo data |
---
## Authentication
### Auto-Login System
- **Demo User:** demo@example.com / demo123
- **Script:** `/admin-ui/js/utils/demo-auth-init.js`
- **Behavior:** Auto-authenticates first-time visitors without prompting
- **Method:** Fetches `/api/auth/login`, stores JWT token in localStorage
- **Event:** Dispatches `auth-change` event to notify components
### Nginx Auth
- **Status:** ✅ DISABLED
- **Reason:** App handles authentication via auto-login script
- **File:** `/etc/nginx/sites-available/dss.overbits.luz.uy.conf` (lines 13-14 commented)
---
## Critical Files & Paths
### Frontend Code
```
/home/overbits/dss/admin-ui/
├── dist/ # Production build (served by nginx)
├── index.html # Added demo-auth-init.js script
├── js/
│ ├── utils/demo-auth-init.js # Auto-login script (NEW)
│ ├── core/stylesheet-manager.js # Fixed CSS paths
│ └── components/
│ └── layout/
│ └── ds-project-selector.js # Fixed event delegation
```
### Backend Code
```
/home/overbits/dss/server/
└── src/scripts/seed.js # Database seeding (contains demo user)
```
### Nginx Configuration
```
/etc/nginx/sites-available/dss.overbits.luz.uy.conf
- Static serving: /admin-ui/dist/ (aliased as /)
- API proxy: /api/* → http://127.0.0.1:3001/api/
- Storybook: /storybook/static/
```
---
## Asset Locations
| Asset | Path | Status |
|-------|------|--------|
| Tokens CSS | `/admin-ui/css/tokens.css` | ✅ 200 OK |
| Components CSS | `/admin-ui/css/dss-components.css` | ✅ 200 OK |
| Integrations CSS | `/admin-ui/css/dss-integrations.css` | ⚠️ 404 (optional) |
---
## Build Information
### Production Build
```bash
npm run build # Builds to /dist/
npm run build-storybook # Builds storybook to /storybook-static/
```
### Build Outputs
- **Admin UI Build:** 3.38s
- **Main Bundle:** components-*.js (393KB gzipped: 74.28KB)
- **Core Library:** core-*.js (9.48KB gzipped: 3.46KB)
---
## Project Selector Component
**Status:** ✅ FIXED - Fully functional
- **Component:** `ds-project-selector`
- **Location:** `/admin-ui/js/components/layout/ds-project-selector.js`
- **Fix Applied:** Event delegation pattern (lines 228-251)
- Was: Individual `addEventListener` on dynamic buttons (unreliable)
- Now: Container-level listener with `e.target.closest('.project-modal-button')`
- **Behavior:** Auto-selects first available project on initial load
- **Modal:** Only shows if no project is selected
---
## Key Configuration Values
### Stylesheet Manager (stylesheet-manager.js: lines 30-32)
```javascript
static #config = {
tokens: '/admin-ui/css/tokens.css',
components: '/admin-ui/css/dss-components.css',
integrations: '/admin-ui/css/dss-integrations.css'
};
```
### Demo User (seed.js: lines 21-26)
```
Email: demo@example.com
Password: demo123
Role: admin
```
---
## Deployment Checklist
- [x] Nginx configured to serve production build
- [x] API backend running on port 3001
- [x] Auto-login script deployed and functional
- [x] Database seeded with demo user
- [x] HTTPS enabled with valid certificate
- [x] Nginx basic auth disabled (app handles auth)
- [x] CSS paths corrected for production build
- [x] Event delegation fix for project selector
- [x] Production build tested and verified
---
## How to Deploy Changes
1. **Code Changes:** Edit source files in `/admin-ui/js/`
2. **Rebuild:** `npm run build`
3. **Verify:** Test at https://dss.overbits.luz.uy/
4. **No Restart Needed:** Nginx serves updated files immediately
---
## Database Seeding
To reset database with fresh demo data:
```bash
cd /home/overbits/dss/server
npm run seed # Runs seed.js script
```
---
## Production Test Results
✅ HTTP Status: 200 OK
✅ Auto-Login: SUCCESS (demo@example.com)
✅ Auth Token: Stored (466 chars)
✅ Project Selector: Loaded & Auto-Selected
✅ CSS Assets: Loaded (tokens, components)
✅ Public Access: Confirmed (no credentials needed)
---
## Notes for Future Work
- `dss-integrations.css` is currently missing (optional, not critical)
- Stylesheet errors don't break functionality (graceful degradation)
- Modal auto-closes when project is selected
- Auto-login fires on every fresh page load (no cache check for stored auth)