Commit Graph

483 Commits

Author SHA1 Message Date
Frank ae4ccbe416 I am not sure if this is doing right 2026-01-18 22:26:15 +01:00
Frank e85a317394 deploymen is crashing on backup 2026-01-18 22:14:37 +01:00
Frank 0da2ad556d update and bugfix deployment 2026-01-18 21:47:05 +01:00
Frank 114a3e38b0 fixed problems in deploy app and deployment package 2026-01-18 00:54:32 +01:00
Frank 04b21ca42b added deploy binary to prod backend container 2026-01-17 23:32:59 +01:00
Frank 483dd4c72b created a README for deployment
I hope at makes me remember the right steps
2026-01-17 23:11:51 +01:00
Frank d4341a4730 removed the Git_Commit from system information output
it is not easyly to manage since both backend and frontend are running in compiled packages  in production and we have no git repository underneath
2026-01-17 08:07:26 +01:00
Frank 56e761fed1 cleanup docs 2026-01-17 07:57:41 +01:00
Frank 36c619dbb6 changed string Bamort to BaMoRT 2026-01-17 07:35:18 +01:00
Frank 7731aa4125 check again if all goals are met 2026-01-17 00:15:10 +01:00
Frank 33f80be1ca added additional integration tests 2026-01-16 23:41:57 +01:00
Frank 2a2f951ae6 feat: Complete Phase 6 - Testing & Documentation
Implemented comprehensive testing and documentation for deployment system:

Testing:
- Created integration_test.go with 7 test scenarios
- Tests cover: fresh installation, updates, rollback, concurrent migrations
- Tests validate version tracking and compatibility checks

Documentation:
- DEPLOYMENT_RUNBOOK.md: Complete deployment procedures with checklists
- ROLLBACK_GUIDE.md: Rollback procedures for all scenarios with time estimates
- TROUBLESHOOTING.md: Common issues and solutions with diagnostic commands
- VERSION_COMPATIBILITY.md: Version matrix and upgrade paths

Deployment Scripts:
- deploy-dev.sh: Development deployment automation
- deploy-staging.sh: Staging deployment with backup creation
- deploy-production.sh: Production deployment with migrations and validation

All scripts follow KISS principle and include:
- Pre-deployment validation
- Automatic backup creation
- Database migration execution
- Master data import (when package provided)
- Health checks and rollback on failure
- Comprehensive logging

Phase 6 complete. Ready for production deployment testing.

Refs: #DEPLOYMENT_IMPLEMENTATION_PLAN Phase 6
2026-01-16 23:28:35 +01:00
Frank 134ceb18b2 feat: implement Phase 5 - Frontend Warning Banner
- Add SystemAlert.vue component with health check polling
- Poll /api/system/health every 30 seconds
- Display warning banner when migrations pending
- Display error banner when versions incompatible
- Auto-hide when system compatible
- Add smooth slide-down animation
- Fixed position at top (z-index 9999)

Features:
- Non-intrusive design (doesn't block UI)
- Displays version info (backend & database)
- i18n support (German/English translations)
- Automatic cleanup on component unmount
- No authentication required (uses public endpoint)

Visual states:
- Warning (yellow): Database migration required
- Error (red): Incompatible versions
- Hidden: All systems compatible

Integration:
- Added to App.vue (always visible)
- Uses axios for API calls
- Minimal dependencies
- Follows KISS principle

Ready for Phase 6: Testing & Documentation
2026-01-16 22:53:36 +01:00
Frank caec3293ab feat: implement Phase 4 - API Health Endpoint
- Add system package with health check and version endpoints
- Implement GET /api/system/health (public, no auth required)
- Implement GET /api/system/version (public, no auth required)
- Health endpoint returns version compatibility and migration status
- Version endpoint returns detailed backend and database version info
- Add comprehensive test suite (6 tests, all passing)
- Register public routes in cmd/main.go
- Fix maintenance handler to use pointers for migration structs

Health endpoint response includes:
- Backend version and required DB version
- Current DB version and compatibility status
- Pending migrations count
- Timestamp

Ready for Phase 5: Frontend Warning Banner integration
2026-01-16 22:44:48 +01:00
Frank 0438307700 Phase 3 added deployment strutures migration to migrateAllStructures 2026-01-16 16:44:57 +01:00
Frank 4b8113aada fixed indention 2026-01-16 16:25:09 +01:00
Frank 1d9475c25f feat: Phase 3 - CLI Deployment Tool
Implements command-line interface for deployment operations with
colored output and comprehensive documentation.

Components Added:
- cmd/deploy/main.go: CLI tool implementation (140 lines)
  * Command routing for version/status/help
  * ANSI color-coded output
  * Database connectivity
  * Version compatibility checking

- cmd/deploy/README.md: Complete CLI documentation
  * Building instructions
  * Command reference with examples
  * Usage patterns (new setup, upgrades, master data sync)
  * Environment variables
  * CI/CD integration examples (GitLab, Docker)
  * Troubleshooting guide

- deployment/PHASE_3_COMPLETE.md: Implementation summary

Commands Implemented:
- version: Show backend and required DB versions
- status: Display database version, compatibility, pending migrations
- help: Show usage information

Features:
- Color-coded output (Green: success, Red: error, Yellow: warning, Cyan: headers)
- Database connection via database.ConnectDatabase()
- Version compatibility checking with detailed reason
- Pending migrations detection
- Exit codes (0: success, 1: error)

Integration:
- Uses config.GetVersion() for backend version
- Uses version.CheckCompatibility() for version checks
- Uses migrations.NewMigrationRunner() for migration info
- Compatible with existing database connection system

Build & Test:
✓ go build -o deploy cmd/deploy/main.go
✓ ./deploy version - shows version info
✓ ./deploy help - displays command list
✓ ./deploy status - checks database status

Dependencies:
- golang.org/x/term v0.39.0 (secure password input, ready for future commands)
- golang.org/x/sys v0.40.0 (upgraded)

Documentation:
- Comprehensive README with examples
- CI/CD integration patterns
- Docker deployment guide
- Troubleshooting section

Next: Phase 4 - API Endpoints for UI integration
2026-01-16 16:23:30 +01:00
Frank 33633f1d46 feat: Phase 2 - Master Data Versioning & Fresh Installation
Implements master data versioning system with backward compatibility
transformers and fresh installation orchestrator.

Components Added:
- deployment/masterdata/: Versioned export/import with transformers
  * export.go: ExportData structure (v1.0) with JSON I/O
  * transformers.go: ImportTransformer registry for version migrations
  * sync.go: MasterDataSync orchestrator with dependency-ordered imports
  * Tests: 8 tests covering export, transform, and sync operations

- deployment/install/: Fresh installation system
  * installer.go: NewInstallation orchestrator with 4-step process
  * createDatabaseSchema(): GORM AutoMigrate integration
  * initializeVersionTracking(): Version table setup
  * importMasterData(): Delegates to gsmaster functions
  * createAdmin(): Admin user creation with MD5 hashing
  * Tests: 7 tests covering installation flow and validation

Features:
- Export versioning (CurrentExportVersion = "1.0")
- Backward compatibility via transformer chain
- Dry-run capability for safe testing
- Dependency-ordered master data imports
- Admin user creation with role assignment

Integration:
- Uses models.MigrateStructure() for database-agnostic schema
- Delegates to gsmaster.ImportSources/Skills/Equipment/etc.
- Compatible with existing user authentication (MD5 hashing)

Testing:
 38 tests passing across all deployment packages
 backup: 6 tests
 install: 7 tests
 masterdata: 8 tests
 migrations: 11 tests
 version: 6 tests

Documentation:
- PHASE_2_COMPLETE.md: Comprehensive summary and API examples

Ready for Phase 3: CLI Deployment Tool
2026-01-16 16:03:34 +01:00
Frank ccf0e9b3f2 feat: implement Phase 1 deployment system foundation
- Version tracking with RequiredDBVersion constant
- Migration framework with GORM-based database-agnostic migrations
- Backup service with JSON export and retention policy
- schema_version and migration_history tables
- Full test coverage: 23 unit tests, all passing
- Works on SQLite (dev/test) and MariaDB (production)

Components:
- backend/deployment/version/ (version management)
- backend/deployment/migrations/ (migration runner)
- backend/deployment/backup/ (backup service)

See PHASE_1_COMPLETE.md for details.
2026-01-16 15:40:33 +01:00
Frank 152b02efcf made a plan for deployment management 2026-01-16 14:56:05 +01:00
Frank 8f674da0fc auto commit version update 2026-01-16 13:41:54 +01:00
Bardioc26 33e3cfa955 Merge pull request #18 from Bardioc26/new_pages
Added new pages and a lot of bugfixes and improvements visually and structural
v0.1.37
2026-01-15 06:43:32 +01:00
Frank fc18212f43 Bump backend to 0.1.37, frontend to 0.1.29 backend-v0.1.37 frontend-v0.1.29 2026-01-15 06:39:55 +01:00
Frank 4cbadaf561 FAQs können einfach durch hinzufügen zur language datei erweitert werden 2026-01-15 00:17:13 +01:00
Frank e1a3d01cdc Update pages mit Ko-Fi sponsoring link 2026-01-14 23:57:57 +01:00
Frank a9aa3beb75 bring FileUploadPage top the new layout 2026-01-14 23:38:56 +01:00
Frank dd997fbd2b Fileupload should only be possible if authenticated 2026-01-14 23:37:05 +01:00
Frank ad525375e9 updated register form to new layout
This one was very old
2026-01-14 23:27:14 +01:00
Frank 5a93b0cf71 ease setting new Version 2026-01-14 23:14:07 +01:00
Frank 7adff0e5be Update CSS to fix some ugly spots 2026-01-14 23:13:36 +01:00
Frank c18be276d1 Bump backend to 0.1.36, frontend to 0.1.28 2026-01-14 22:25:55 +01:00
Frank 15662d845a added MiscLookup to the export import 2026-01-14 22:14:23 +01:00
Frank f4691a7947 remove sqlite DB Backup 2026-01-14 22:03:15 +01:00
Frank 43227ec423 Bugfixes GetMiscLookupByKey 2026-01-14 21:58:37 +01:00
Frank c0a4b656d4 created GetMiscLookupByKey
for values we do not want hard coded but that are not worth its own struct
2026-01-14 21:13:25 +01:00
Frank 7775170634 moved some basic value lists to database 2026-01-14 18:52:29 +01:00
Frank 73ebe6f00d Bugfix
some fields (Gender, SocialClass, Herkunft, ResistenzKoerper, ResistenzGeist, Abwehr, Zaubern, Raufen) from the character generation process where not tranfered to the saved character
2026-01-14 16:48:32 +01:00
Frank c9aec1df03 Profile and Logout moved into a user menu 2026-01-14 16:14:42 +01:00
Frank 4e58a3b4bc added language setting to the users profile 2026-01-14 15:35:51 +01:00
Frank 4972816c75 Added new pages 2026-01-13 23:34:35 +01:00
Frank 24919dcd64 The image was curupted 2026-01-13 23:32:45 +01:00
Frank 469cdfcc90 changed modal dialogs
and images on landingpage
2026-01-13 23:11:57 +01:00
Frank 96ea032dcc Learn costs for creation where taken from the wrong source 2026-01-12 20:32:58 +01:00
Frank fa285c1d2b Learn costs for creation where taken from the wrong source 2026-01-12 17:11:17 +01:00
Frank 8e030ee6c9 Learn costs for creation where taken from the wrong source 2026-01-12 17:11:06 +01:00
Frank 6cd9681fc3 Lerning points where not fetched with correct params 2026-01-12 16:36:35 +01:00
Frank 0b57fbc618 added export functions for newly created tables 2026-01-12 16:36:35 +01:00
Frank 5e7acb8099 renamed tables for a name more matching the purpose 2026-01-12 16:36:35 +01:00
Frank f83faad432 move classmapping to DB
LearningPointsData transfered to DataBase
2026-01-12 16:36:35 +01:00
Frank 1a7d8af65c Weaponskill Categories test fixing 2026-01-12 16:36:35 +01:00