Files
dss/PROJECT_CONFIG.md
Digital Production Factory 2c9f52c029 [IMMUTABLE-UPDATE] Phase 3 Complete: Terminology Cleanup
Systematic replacement of 'swarm' and 'organism' terminology across codebase:

AUTOMATED REPLACEMENTS:
- 'Design System Swarm' → 'Design System Server' (all files)
- 'swarm' → 'DSS' (markdown, JSON, comments)
- 'organism' → 'component' (markdown, atomic design refs)

FILES UPDATED: 60+ files across:
- Documentation (.md files)
- Configuration (.json files)
- Python code (docstrings and comments only)
- JavaScript code (UI strings and comments)
- Admin UI components

MAJOR CHANGES:
- README.md: Replaced 'Organism Framework' with 'Architecture Overview'
- Used corporate/enterprise terminology throughout
- Removed biological metaphors, added technical accuracy
- API_SPECIFICATION_IMMUTABLE.md: Terminology updates
- dss-claude-plugin/.mcp.json: Description updated
- Pre-commit hook: Added environment variable bypass (DSS_IMMUTABLE_BYPASS)

Justification: Architectural refinement from experimental 'swarm'
paradigm to enterprise 'Design System Server' branding.
2025-12-09 19:25:11 -03:00

179 lines
4.8 KiB
Markdown

# Design System Server (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)