172 lines
5.2 KiB
Markdown
172 lines
5.2 KiB
Markdown
# Enterprise Demo Fixtures Validation Scripts
|
|
|
|
This directory contains scripts for validating and managing enterprise demo fixtures for the Bakery AI platform.
|
|
|
|
## Scripts Overview
|
|
|
|
### 1. `validate_enterprise_demo_fixtures.py`
|
|
**Main Validation Script**
|
|
|
|
Validates all cross-references between JSON fixtures for enterprise demo sessions. Checks that all referenced IDs exist and are consistent across files.
|
|
|
|
**Features:**
|
|
- Validates user-tenant relationships
|
|
- Validates parent-child tenant relationships
|
|
- Validates product-tenant and product-user relationships
|
|
- Validates ingredient-tenant and ingredient-user relationships
|
|
- Validates recipe-tenant and recipe-product relationships
|
|
- Validates supplier-tenant relationships
|
|
- Checks UUID format validity
|
|
- Detects duplicate IDs
|
|
|
|
**Usage:**
|
|
```bash
|
|
python scripts/validate_enterprise_demo_fixtures.py
|
|
```
|
|
|
|
### 2. `fix_inventory_user_references.py`
|
|
**Fix Script for Missing User References**
|
|
|
|
Replaces missing user ID `c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6` with the production director user ID `ae38accc-1ad4-410d-adbc-a55630908924` in all inventory.json files.
|
|
|
|
**Usage:**
|
|
```bash
|
|
python scripts/fix_inventory_user_references.py
|
|
```
|
|
|
|
### 3. `generate_child_auth_files.py`
|
|
**Child Auth Files Generator**
|
|
|
|
Creates auth.json files for each child tenant with appropriate users (manager and staff).
|
|
|
|
**Usage:**
|
|
```bash
|
|
python scripts/generate_child_auth_files.py
|
|
```
|
|
|
|
### 4. `demo_fixtures_summary.py`
|
|
**Summary Report Generator**
|
|
|
|
Provides a comprehensive summary of the enterprise demo fixtures status including file sizes, entity counts, and totals.
|
|
|
|
**Usage:**
|
|
```bash
|
|
python scripts/demo_fixtures_summary.py
|
|
```
|
|
|
|
### 5. `comprehensive_demo_validation.py`
|
|
**Comprehensive Validation Runner**
|
|
|
|
Runs all validation checks and provides a complete report. This is the recommended script to run for full validation.
|
|
|
|
**Usage:**
|
|
```bash
|
|
python scripts/comprehensive_demo_validation.py
|
|
```
|
|
|
|
## Validation Process
|
|
|
|
### Step 1: Run Comprehensive Validation
|
|
```bash
|
|
python scripts/comprehensive_demo_validation.py
|
|
```
|
|
|
|
This script will:
|
|
1. Run the main validation to check all cross-references
|
|
2. Generate a summary report
|
|
3. Provide a final status report
|
|
|
|
### Step 2: Review Results
|
|
|
|
The validation will output:
|
|
- ✅ **Success**: All cross-references are valid
|
|
- ❌ **Failure**: Lists specific issues that need to be fixed
|
|
|
|
### Step 3: Fix Issues (if any)
|
|
|
|
If validation fails, you may need to run specific fix scripts:
|
|
|
|
```bash
|
|
# Fix missing user references in inventory
|
|
python scripts/fix_inventory_user_references.py
|
|
|
|
# Generate missing auth files for children
|
|
python scripts/generate_child_auth_files.py
|
|
```
|
|
|
|
### Step 4: Re-run Validation
|
|
|
|
After fixing issues, run the comprehensive validation again:
|
|
```bash
|
|
python scripts/comprehensive_demo_validation.py
|
|
```
|
|
|
|
## Current Status
|
|
|
|
✅ **All validation checks are passing!**
|
|
|
|
The enterprise demo fixtures are ready for use with:
|
|
- **6 Tenants** (1 parent + 5 children)
|
|
- **25 Users** (15 parent + 10 children)
|
|
- **45 Ingredients** (25 parent + 20 children)
|
|
- **4 Recipes** (parent only)
|
|
- **6 Suppliers** (parent only)
|
|
|
|
All cross-references have been validated and no missing IDs or broken relationships were detected.
|
|
|
|
## Fixture Structure
|
|
|
|
```
|
|
shared/demo/fixtures/enterprise/
|
|
├── parent/
|
|
│ ├── 01-tenant.json # Parent tenant and children definitions
|
|
│ ├── 02-auth.json # Parent tenant users
|
|
│ ├── 03-inventory.json # Parent inventory (ingredients, products)
|
|
│ ├── 04-recipes.json # Parent recipes
|
|
│ ├── 05-suppliers.json # Parent suppliers
|
|
│ ├── 06-production.json # Parent production data
|
|
│ ├── 07-procurement.json # Parent procurement data
|
|
│ ├── 08-orders.json # Parent orders
|
|
│ ├── 09-sales.json # Parent sales data
|
|
│ ├── 10-forecasting.json # Parent forecasting data
|
|
│ └── 11-orchestrator.json # Parent orchestrator data
|
|
│
|
|
└── children/
|
|
├── A0000000-0000-4000-a000-000000000001/ # Madrid - Salamanca
|
|
├── B0000000-0000-4000-a000-000000000001/ # Barcelona - Eixample
|
|
├── C0000000-0000-4000-a000-000000000001/ # Valencia - Ruzafa
|
|
├── D0000000-0000-4000-a000-000000000001/ # Seville - Triana
|
|
└── E0000000-0000-4000-a000-000000000001/ # Bilbao - Casco Viejo
|
|
```
|
|
|
|
## Key Relationships Validated
|
|
|
|
1. **User-Tenant**: Users belong to specific tenants
|
|
2. **Parent-Child**: Parent tenant has 5 child locations
|
|
3. **Ingredient-Tenant**: Ingredients are associated with tenants
|
|
4. **Ingredient-User**: Ingredients are created by users
|
|
5. **Recipe-Tenant**: Recipes belong to tenants
|
|
6. **Recipe-Product**: Recipes produce specific products
|
|
7. **Supplier-Tenant**: Suppliers are associated with tenants
|
|
|
|
## Requirements
|
|
|
|
- Python 3.7+
|
|
- No additional dependencies required
|
|
|
|
## Maintenance
|
|
|
|
To add new validation checks:
|
|
1. Add new relationship processing in `validate_enterprise_demo_fixtures.py`
|
|
2. Add corresponding validation logic
|
|
3. Update the summary script if needed
|
|
|
|
## Troubleshooting
|
|
|
|
If validation fails:
|
|
1. Check the specific error messages
|
|
2. Verify the referenced IDs exist in the appropriate files
|
|
3. Run the specific fix scripts if available
|
|
4. Manually correct any remaining issues
|
|
5. Re-run validation
|