Urtzi Alfaro 6f5e8b11f6 Fix enterprise demo tenant loading race condition
Prevent loadUserTenants from being called too early for demo sessions by excluding demo mode from the authenticated user auto-load logic.

## Problem

In enterprise demo sessions, loadUserTenants() was being called BEFORE child tenants were created, resulting in only the parent tenant (1 tenant) being returned instead of all 6 tenants (parent + 5 children).

Timeline of the race condition:
- 15:37:20: Session created, parent tenant cloning started
- 15:37:21: loadUserTenants() called by first useEffect → returned 1 tenant 
- 15:37:22: Child tenants created (5 tenants)
- 15:38:03: Session status changed to 'ready'

The first useEffect (for authenticated users) triggered immediately when isAuthenticated became true, calling loadUserTenants() at 15:37:21. This happened BEFORE the session polling logic in the second useEffect could wait for status='ready' and BEFORE child tenants were created.

## Solution

Added `!isDemoMode` condition to the first useEffect that auto-loads tenants for authenticated users. This ensures demo sessions use only the special initialization logic with session status polling (second useEffect), which waits for the session to be fully ready before loading tenants.

## Files Changed

- frontend/src/stores/useTenantInitializer.ts:61
  - Added `&& !isDemoMode` to prevent early tenant loading for demo users
  - Added dependency `isDemoMode` to useEffect dependency array
  - Updated comment to clarify demo users have separate initialization

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-17 16:43:45 +01:00
2025-12-05 20:07:01 +01:00
2025-12-17 16:28:58 +01:00
2025-12-14 16:04:16 +01:00
2025-12-17 16:36:26 +01:00
2025-12-17 16:28:58 +01:00
2025-12-17 16:36:26 +01:00
2025-07-17 14:34:24 +02:00
2025-12-17 13:03:52 +01:00
2025-09-23 12:49:35 +02:00
2025-12-05 20:07:01 +01:00
2025-11-06 11:04:50 +01:00
2025-12-13 23:57:54 +01:00

🍞 BakeWise - Multi-Service Architecture

Welcome to BakeWise, an advanced AI-powered platform for bakery management and optimization. This project implements a microservices architecture with multiple interconnected services to provide comprehensive bakery management solutions.

🚀 Quick Start

Prerequisites

  • Docker Desktop with Kubernetes enabled
  • Docker Compose
  • Node.js (for frontend development)

Running the Application

  1. Clone the repository:

    git clone <repository-url>
    cd bakery-ia
    
  2. Set up environment variables:

    cp .env.example .env
    # Edit .env with your specific configuration
    
  3. Run with Docker Compose:

    docker-compose up --build
    
  4. Or run with Kubernetes (Docker Desktop):

    # Enable Kubernetes in Docker Desktop
    # Run the setup script
    ./scripts/setup-kubernetes-dev.sh
    

🏗️ Architecture Overview

The project follows a microservices architecture with the following main components:

  • Frontend: React-based dashboard for user interaction
  • Gateway: API gateway handling authentication and routing
  • Services: Multiple microservices handling different business domains
  • Infrastructure: Redis, RabbitMQ, PostgreSQL databases

🐳 Kubernetes Infrastructure

🛠️ Services

The project includes multiple services:

  • Auth Service: Authentication and authorization
  • Tenant Service: Multi-tenancy management
  • Sales Service: Sales processing
  • External Service: Integration with external systems
  • Training Service: AI model training
  • Forecasting Service: Demand forecasting
  • Notification Service: Notifications and alerts
  • Inventory Service: Inventory management
  • Recipes Service: Recipe management
  • Suppliers Service: Supplier management
  • POS Service: Point of sale
  • Orders Service: Order management
  • Production Service: Production planning
  • Alert Processor: Background alert processing

📊 Monitoring

The system includes comprehensive monitoring with:

  • Prometheus for metrics collection
  • Grafana for visualization
  • ELK stack for logging (planned)

🚀 Production Deployment

For production deployment on clouding.io with Kubernetes:

  1. Set up your clouding.io Kubernetes cluster
  2. Update image references to your container registry
  3. Configure production-specific values
  4. Deploy using the production kustomization:
    kubectl apply -k infrastructure/kubernetes/environments/production/
    

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

📄 License

This project is licensed under the MIT License.

Description
Main repository for Bakery IA project - Automatically created
Readme 20 MiB
Languages
Python 56.3%
TypeScript 39.6%
Shell 2.9%
CSS 0.4%
Starlark 0.3%
Other 0.3%