v4.1.21: Реструктуризация проекта для Synology ARM

- Реструктуризация: src/ разбит на middleware/, utils/, repositories/ (удалены), routes/ (удалены)
- Добавлен src/original-html.ts — полный HTML с reportModal
- Добавлен src/index.tsx.backup — React-компонент с reportModal
- Миграции переименованы (0001_initial_schema.sql)
- Добавлена миграция 0018 (удалена позже)
- Docker: multi-stage build, wrangler.toml
- Frontend: public/static/app.js + style.css
- seed.sql добавлен
- Документация: CHANGELOG, CHANGES_v4.1.0-4.1.9, PROJECT_STRUCTURE
This commit is contained in:
Deploy Bot
2026-01-14 18:37:00 +02:00
parent 4898f5ec7f
commit 64403d6fd6
113 changed files with 19231 additions and 3084 deletions

228
CHANGES_v4.1.3.md Normal file
View File

@@ -0,0 +1,228 @@
# 🔧 CHANGES v4.1.3 - UI Polish & New User
**Дата**: 2025-11-28
**Версия**: v4.1.3
**Тип**: UI Improvement + User Management
---
## 📝 Что изменено
### 1. Убрано слово "Sorteerimine"
- **ДО**: Кнопка имела label "Sorteerimine" над ней
- **ПОСЛЕ**: Только кнопка "ID" с иконкой сортировки (↕)
- **Причина**: Более компактный и чистый UI
### 2. Добавлен новый пользователь "kasutaja"
- **Username**: kasutaja
- **Password**: tootmine
- **Full Name**: Kasutaja
- **Role**: user (обычный пользователь)
### 3. Уточнена система ролей
**Три пользователя с двумя уровнями доступа**:
| Username | Password | Full Name | Role | Уровень доступа |
|----------|----------|-----------|------|-----------------|
| kasutaja | tootmine | Kasutaja | user | Обычный пользователь |
| aknaproff | demo123 | AKNAPROFF | admin | Администратор |
| admin | demo123 | Administrator | admin | Администратор |
**Права доступа**:
#### User (kasutaja)
- ✅ Просмотр всех записей
- ✅ Изменение проблем (текст + галочки)
- ✅ Просмотр Notes (read-only)
- ❌ Изменение дат
- ❌ Изменение MAT-1/MAT-2
- ❌ Добавление/редактирование/удаление записей
#### Admin (aknaproff, admin)
-Все права User
- ✅ Изменение дат (toggle)
- ✅ Изменение MAT-1/MAT-2 (toggle)
- ✅ Изменение LÕIKUS/KLAAS/VALMIS/VÄLJAS (3-step cycle)
- ✅ Добавление записей
- ✅ Редактирование записей
- ✅ Удаление записей
**Примечание**: aknaproff и admin имеют одинаковый уровень доступа (оба admin).
---
## 🎨 Визуальные изменения
### ДО (v4.1.2):
```
┌─ Kiir otsing ─────────────────────────────┐
│ Sorteerimine │
│ [ID ↕] │
│ │
│ Klient │
│ [Otsi kliendi järgi...] │
└───────────────────────────────────────────┘
```
### ПОСЛЕ (v4.1.3):
```
┌─ Kiir otsing ─────────────────────────────┐
│ [ID ↕] [Klient: Otsi kliendi järgi...] │
└───────────────────────────────────────────┘
```
**Преимущества**:
- Более компактный UI
- Меньше визуального шума
- Интуитивно понятно, что кнопка ID для сортировки
---
## 📦 Изменённые файлы
### 1. public/original.html
- Убран label с текстом "Sorteerimine"
- Кнопка ID теперь без label (только иконка + текст)
- Обновлена версия: `app.js?v=4.1.2``app.js?v=4.1.3`
### 2. seed.sql
- Добавлен пользователь "kasutaja" с паролем "tootmine"
- Обновлены комментарии с пояснением ролей
- Добавлен SHA-256 hash для пароля "tootmine"
### 3. src/original-html.ts
- Регенерирован embedded HTML
### 4. dist/_worker.js
- Пересобран с обновлениями
---
## 🧪 Тестирование
### Проверка UI
✅ Кнопка ID отображается без label "Sorteerimine"
✅ Кнопка компактная и выровнена с другими полями
✅ Функционал сортировки работает (↑ ↓ ↕)
### Проверка нового пользователя
✅ Вход: kasutaja / tootmine
✅ Роль: user
✅ Доступ только к просмотру и изменению проблем
✅ Остальные функции заблокированы (alert)
### Проверка существующих пользователей
✅ aknaproff / demo123 - admin права
✅ admin / demo123 - admin права
Оба имеют полный доступ
---
## 🔐 Учётные данные
### Production Users
**Обычный пользователь**:
- Username: `kasutaja`
- Password: `tootmine`
- Доступ: просмотр + изменение проблем
**Администраторы** (одинаковые права):
- Username: `aknaproff` | Password: `demo123`
- Username: `admin` | Password: `demo123`
- Доступ: полный
**Гость** (без входа):
- Кнопка: "Vaata ainult"
- Доступ: только просмотр (read-only)
---
## 🔗 URLs
- **Production**: https://3000-iabcqs9fpouqnd3allaai-82b888ba.sandbox.novita.ai
- **Git Commit**: Будет добавлен после коммита
---
## 📊 Статус
**Версия**: v4.1.3
**Статус**: ✅ Production Ready
**HTTP Status**: 200 OK
**JavaScript Errors**: 0
**Database**: Обновлена (добавлен пользователь kasutaja)
---
## 🚀 Deployment Instructions
### ⚠️ ВАЖНО: Требуется обновление базы данных!
**На production сервере**:
```bash
# 1. Скопировать seed.sql с новым пользователем
scp seed.sql user@server:/path/to/webapp/
# 2. На сервере применить seed.sql
docker-compose exec aknaproff-backend sh -c "
cd /app &&
npx wrangler d1 execute webapp-production --local --file=./seed.sql
"
# 3. Проверить, что пользователь добавлен
docker-compose exec aknaproff-backend sh -c "
npx wrangler d1 execute webapp-production --local \
--command='SELECT username, full_name, role FROM users'
"
# Должно вывести:
# - kasutaja | Kasutaja | user
# - aknaproff | AKNAPROFF | admin
# - admin | Administrator | admin
# 4. Скопировать обновлённые файлы
scp dist/_worker.js user@server:/path/to/webapp/dist/
# или
scp public/original.html user@server:/path/to/webapp/public/
scp src/original-html.ts user@server:/path/to/webapp/src/
# и потом: npm run build
# 5. Перезапустить
docker-compose restart
```
### Проверка после deployment
```bash
# 1. Проверить HTTP
curl -I http://localhost:8180
# 2. Войти в браузере под kasutaja/tootmine
# 3. Проверить, что доступно только изменение проблем
# 4. Войти под aknaproff/demo123 или admin/demo123
# 5. Проверить полный доступ
```
---
## 💾 Password Hashes
Для справки (SHA-256):
- **demo123**: `d3ad9315b7be5dd53b31a273b3b3aba5defe700808305aa16a3062b76658a791`
- **tootmine**: `a1026b7bd143f7190248bc79901e9a357a408e208f2d8e4d38fccf184754f35f`
---
## 📝 Заметки
1. **База данных изменена**: Добавлен новый пользователь, требуется применение seed.sql на production
2. **Роли**: aknaproff и admin - оба admin, kasutaja - user
3. **UI**: Более компактный, убран label "Sorteerimine"
4. **Cache-busting**: v4.1.3, нужен Ctrl+Shift+R после deployment
---
**🎯 Готово!** UI упрощён, добавлен пользователь kasutaja (tootmine), система ролей уточнена.