-
-
Notifications
You must be signed in to change notification settings - Fork 187
Feat bundle technical sheet modules #197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Feat bundle technical sheet modules #197
Conversation
…and replace with minimal stub backend(solar-monitoring): add MonitoringSubscription model and export index
…letons): add solar monitoring module + admin view-config; register module; fix imports & skeleton indexes; format docs - backend: add solar-monitoring module (index + service + models import fixes) and register it in medusa-config - backend: add admin view-configuration route for "solar-projects" and accompanying zod validators for solar project metadata - backend/docs: normalize CATALOG_ENRICHMENT_GUIDE code fences to tsx for consistency - service: minor refactor in SolarMonitoringModuleService (import path, formatting, update methods to not return DB update result, improve maintenance date parsing) - storefront: fix many import paths to discovery/* modules and discovery product components - storefront/common: add component index files for skeleton-order-confirmed and skeleton-related-products and update skeleton imports to use absolute module paths - storefront/products: update solar-integration import path to configuration module
…ormatting in paginated-products
…amed declarations; storefront(purchase/order): fix billing import path; storefront(lib/solar): add solar calculator data client
…ics, lib/http, lib/cart, error-boundary): add Solar Calculator UI, Select component & analytics; small fixes; backend(docs): add LLAMA_VISION_PERFORMANCE_ANALYSIS.md - Add Solar Calculator page and comprehensive SolarCalculatorForm component (UI, layout, inputs, results, financing & recommendations) - Add reusable Select UI component (Radix + lucide + utility styles) - Add analytics events module for centralized event tracking (trackEvent, trackProductView, trackCartEvent, trackSearch) - Export default ErrorBoundaryResilient for convenience - Re-export CartResilientLayer for compatibility from resilient-layer - Remove stray "use server" directive from resilient HTTP client - Add LLAMA_VISION_PERFORMANCE_ANALYSIS.md (performance analysis / optimization notes)
…xport path storefront(lib/monitoring, modules/analytics): add monitoring data client + types; fix minor formatting in analytics events
…with realtime WebSocket updates; remove server-only directive from resilient-layer
… page (integrates SolarMonitoringDashboard) and temporarily comment out GradientDefs; backend(output/image-analysis-optimized/cache, docs): add cached image analysis JSON + cache_index.json and tweak LLAMA_VISION_PERFORMANCE_ANALYSIS.md formatting/summary
…MA_VISION_PERFORMANCE_ANALYSIS.md
…ge with subscription listing, initial monitoring data fetch, and empty-state CTA
…add cached image-analysis JSON + cache_index, add solar index workflows and optimization guide; storefront(public): add yello logomark SVGs; update sku metadata timestamp
…sing analyzeSolarFleetWorkflow - new route at src/api/admin/solar/fleet-analysis/route.ts - accepts query params: sales_channel_id, category, min_capacity_kwp, status - returns fleet_analysis result and a performance note (Index Module v2.10.2, ~75% faster)
…dmin/solar): add cached image-analysis outputs; use Index Module in kit matcher; normalize admin solar orders response; storefront(lib/cart): update resilient http import - backend/output/image-analysis-optimized: add cached artifacts (PROCESSING_REPORT_OPTIMIZED.md, processing_summary_optimized.json, per-image metadata and cache JSONs) and update cache_index.json - backend/src/modules/solar/services/kit-matcher.ts: switch product query to query.index (Index Module, faster) and include variant prices, inventory fields and variant.line_items.order.id for stock/popularity ranking - backend/src/api/admin/solar/orders/route.ts: tidy formatting, cast/extract orders into a variable and return orders + count - storefront/src/lib/cart/resilient-layer-class.ts: update import to use "@/lib/http/resilient-client"
… Fleet page and SolarFleetDashboard (Index Module) - Add server-side SolarFleetPage that fetches fleet data via getSolarFleetAnalysis (uses Index Module optimized query). - Add client SolarFleetDashboard component to display performance metrics, summary cards, products table and Index Module info (shows query time, items analyzed, capacity, stock, revenue). - ui(styles/gradients.css): replace generic gradient vars with YSH brand gradients, add .ysh-gradient-defs, .ysh-stroke-gradient and background gradient variants (.ysh-bg-gradient, -horizontal, -diagonal) and default angle/color stops.
…low, POST /store/solar-quotes route, and Index Module docs; storefront(app, lib/http): enable GradientDefs in RootLayout and remove server-only import from resilient client; packages/ui: fix GradientDefs export path; storefront/packages/ui: remove deprecated Badge, Button, Card and YelloSolarButton components; docs: minor formatting tweaks to WORKFLOW_OPTIMIZATION_GUIDE
…(products table, metrics) and tidy server fetch backend(workflows/solar, api/store, docs): formatting/indentation cleanup and minor schema/zod formatting
…ator - Add scripts/agentflow_catalog_orchestrator.py implementing a multi-agent pipeline: Planner, Vision, Enrichment, Validator and Search agents + CatalogOrchestrator. - Integrates with ollama for multimodal/chat calls (with fallback model selector). - PVLib loading and fuzzy matching for inverter/panel normalization and validation. - CLI batch processing (category, max, output, background), per-product JSON output and summary. - Includes error handling, verbose timing/logging and a stubbed incremental web search.
…formatting and remove trailing newline
…and normalize indentation (no functional changes)
…ok name arg and tidy formatting (no functional changes)
…ort solar feasibility utilities
…rmalize indentation in route.ts (no functional changes)
…ze indentation (no functional changes)
… SolarFeasibilityChecker component to run feasibility validation and display results
…lidation hooks and integrations
…nclusive promotions & free shipping) - Add CreateSolarPromotionInput and create-solar-promotion workflow that builds promotions using is_tax_inclusive to ensure discounts are applied after taxes. - Add create-solar-free-shipping workflow to create conditional free-shipping promotions for solar projects. - Use core createPromotionsWorkflow and createCampaignsWorkflow steps and return WorkflowResponse with promotion/campaign details. storefront(ui): remove direct Badge, Button and Card exports from public index - Rely on consolidated exports from ./components to avoid duplicate/inline exports in the package public surface.
… input backend(api/admin/solar/promotions): add POST route to create tax-inclusive solar promotions storefront(ui): remove obsolete Button.test.tsx
…dentation in free-shipping route
…cs, and agentflow output - storefront(packages/ui): add theme.css and gradients.css; expose "styles" in package.json files field - backend/docs: add TAX_INCLUSIVE_PROMOTIONS.md and comprehensive IMPLEMENTATION_SUMMARY_Q1_2025.md - backend/output: add generated agentflow result 112369_agentflow.json
…add agentflow result for SKU 135720 - storefront/packages/ui/package.json: point main/types to src, remove dist from files, and simplify build script to use `tsc --noEmit` (no bundling/output). - backend/output/agentflow-results/135720_agentflow.json: add full agentflow output JSON for SKU 135720 (vision, enrichment, validation, search results).
…nd REVIEW_SUMMARY.md; update .obsidian/workspace.json lastOpenFiles (refresh/trim)
- Created 7 modular components: core/, pipelines/, tests/, analysis/, docs/, data/, config/ - Moved 46+ files from root to organized modules - Consolidated 16 docs into 3 categories (guides/architecture/reports) - Created comprehensive README.md (16.6 KB) - Backup: products-inventory-backup-20251017-134630
- Complete checklist of all 6 reorganization phases - Final metrics: 46+ files organized into 7 modules - 25 directories created, documentation consolidated - All guarantees verified: backup, git history, reversibility - Ready for production - Commit: 3045ce3 validated successfully
- Create detailed 12-domain mapping (Catalog, Pricing, Quotes, Approvals, etc) - Define JTBD, inputs/outputs, outcomes and KPIs per domain - Propose new folder structure: src/domains/ with DDD layers - Document 6-phase migration plan with success criteria - Add performance targets and SLIs/SLOs - Include risk mitigation strategies - Map current modules to target architecture Phase 0 (Inventory) complete - ready for Phase 1 (Domain Base)
- Merge detailed plan from BACKEND_RESTRUCTURE_PLAN.md - Add visual structure with emojis and status badges - Expand JTBD tables with inputs/outputs/outcomes/KPIs - Detail 6-phase migration with activities and criteria - Add comprehensive performance section (DB, cache, API, async) - Include SLIs/SLOs table per domain with specific targets - Document Grafana dashboards and alerts - Add risks, mitigations, and immediate next steps - Create executive summary with cross-references Phase 0 complete - REESTRUTURACAO_360.md is now single source of truth
- Generate agent templates for 5 remaining distributors (Solfácil, Fotus, Odex, Edeltec, Dynamis) - 25 new agent files created from Neosolar reference implementation - Generic import pipeline for all 7 distributors: import-generic-distributor-to-db.ts - Comprehensive Phase 3 status reports and documentation - All agents ready for credential-based testing - Infrastructure: 15/15 Docker services operational, PostgreSQL seeded with 7 distributors
- Create languages.ts with i18n message definitions - Add language support to base MCP server class - Update all 7 distributor servers with multilingual logging - Create apply-multilingual-support.ts script for batch updates - Add MULTILINGUAL_SUPPORT.md documentation - Support currency and date formatting per language - All log messages now translatable (Portuguese and English)
- Created extract-neosolar-final.ts: working browser automation script - Extracts 20 products from Neosolar B2B portal (1400 available) - Includes login detection, session reuse, and lazy loading - Exports to JSON/CSV with auto-categorization - Added supporting scripts for debugging and production attempts - Comprehensive extraction report with technical discoveries - Execution time: 6.85s for 20 products - Portal structure mapped: React SPA with Material-UI components
Scripts added: - extract-neosolar-all-products.ts: Multi-iteration scroll loading (100 iterations) - extract-neosolar-pagination.ts: Pagination strategy with API analysis - extract-neosolar-api.ts: Direct API access attempt - extract-neosolar-aggressive-scroll.ts: Maximum scroll iterations (200) - debug-neosolar-structure.ts: Deep portal structure analysis Findings: - Portal uses React + Material-UI with IntersectionObserver lazy loading - Authentication successful with provided credentials - 20 products consistently extracted (appears to be portal-wide maximum) - No obvious pagination controls or additional data pages found - API endpoint discovered but returns 404 when accessed directly - Prices unavailable (return 0) in public portal access Key Insight: - May be a demo/sample catalog rather than full 1400 product inventory - Credentials may have restricted access - Recommend contacting Neosolar for: 1. Full product catalog access 2. API documentation for B2B integration 3. Confirmation if 20 is intentional limit Documentation added: - NEOSOLAR_EXTRACTION_FINAL_REPORT.md with complete analysis and next steps - Technical specifications of portal architecture - Recommendations for further investigation
Summary of investigation: - 20 products successfully extracted and categorized - 5 different extraction strategies tested - Portal analysis: React + Material-UI with IntersectionObserver - Consistent 20-product limit across all approaches - API endpoint found but inaccessible directly Key findings: - May be demo/sample catalog (20 products appear intentional) - Credentials authenticate successfully - No pricing data available in public portal - No pagination controls visible - Recommends contacting Neosolar for full catalog access Next steps: 1. Contact Neosolar support for full API access 2. Test alternative URLs and parameters 3. Extract from other distributors while waiting 4. Implement database import pipeline
Includes: - Complete session summary (90 minutes of work) - All scripts created and tested (7 total) - Technical findings and analysis - 5 extraction strategies evaluated - Hypotheses about 20-product limit - Recommendations for next steps - Git commits tracking - Contact information for follow-up - Success metrics and KPIs - Detailed learnings from investigation Key Result: - 20 products successfully extracted - Portal structure fully analyzed (React + MUI) - Multiple strategies tested and documented - Ready for database import when approved - Awaiting Neosolar response for full catalog access
- Created extract-all-distributors.ts (parallel extraction from 7 distributors) - Successfully extracted 81 products (Edeltec: 79, Neosolar: 1, Odex: 1) - Corrected B2B URLs for Solfácil and Fotus - Created debug-login-portals.ts for portal inspection - Generated 3 comprehensive reports (extraction, URLs, executive summary) Results: - 3/7 distributors working (42.9% success rate) - 133.34s total duration - Edeltec champion with 79 products (97.5% of total) Pending: - Solfácil and Fotus: Login automation requires debugging - Fortlev and Dynamis: Missing correct B2B URLs - Neosolar: Requires support contact for full catalog access
BREAKTHROUGH: Fortlev now functional! 🎉 Results: - ✅ Edeltec: 79 products (champion) - ✅ Fortlev: 3 products (NEW - fortlevsolar.app/login discovered) - ✅ Neosolar: 1 product (limited access) - ✅ Odex: 1 product (partial) - ❌ Solfácil: SSO Keycloak authentication pending - ❌ Fotus: Login form not detected - ❌ Dynamis: Login form not detected Metrics: - Success rate: 57.1% (4/7 distributors) - Total products: 84 - Duration: 164.22s (~2.7 minutes) - URLs corrected: 6/7 (85.7%) Next steps: - Deep scraping Fortlev and Odex categories - Implement SSO authentication for Solfácil - Debug Fotus and Dynamis login flows - Database import of 84 products
- Database schema with 50+ fields, indexes, views, triggers - TypeScript validators with Zod schemas per category - Widget helpers for database queries and formatting - Import script with batch processing and validation - Complete implementation guide 468/1138 products imported successfully (41% with valid data)
Scripts: - run-rds-migration.js: Execute SQL migrations on RDS via tunnel - import-catalog-to-rds.js: Import catalog with production schema - check-rds-schema.js: Validate RDS table structure Documentation: - AWS_DEPLOYMENT_GUIDE.md: Docker build + ECS deployment steps - AWS_RDS_CONNECTION_SETUP.md: SSH tunnel + connection docs - CATALOG_CDN_INTEGRATION_READY.md: Executive summary Status: ✅ Migration executed (14 indexes, 5 views, 3 functions) ✅ Catalog imported (574/1138 products, R$ 2.8M) ⏳ Docker/ECS deployment pending (manual steps)
Implements the backend infrastructure for custom product bundles and technical sheets, following the architectural blueprint. - Creates a `TechnicalSheet` module with a data model, service, and API endpoints to manage technical sheet URLs and associate them with products. - Creates a `Bundle` module with `Bundle` and `BundleItem` data models, a service, and data links to the core `Product` module. - Implements a transactional `createBundleWorkflow` to orchestrate the creation of bundle products. - Exposes the bundle creation and listing functionality through the Admin API at `/admin/bundles`. - Standardizes module imports and resolves critical bugs identified during code review.
- Implements the Admin UI for managing product bundles, including a new page for creating and listing bundles with component quantities. - Adds a widget to the product details page in the Admin UI for managing technical sheets. - Integrates "Technical Sheets" and "Bundle Components" tabs into the storefront product details page. - Creates the necessary storefront API endpoints to support these features. - Fixes critical bugs in the backend and UI identified during code review.
Overhauls the main README file to provide a comprehensive, enterprise-grade guide for developers. The new structure includes: - A clear executive summary (TL;DR). - Mermaid diagrams for architecture, business workflows, agent communication, and dataflows. - A detailed table of MCP contracts and consumption maps. - Streamlined, verifiable setup and installation instructions. - A consolidated list of useful scripts for development and CI. - Clear guidelines for testing, quality, observability, and deployment. - An updated roadmap and FAQ section. This change aligns the documentation with the current state of the repository and significantly improves the onboarding experience.
Overhauls the main README file to provide a comprehensive, enterprise-grade guide for developers. The new structure includes: - A clear executive summary (TL;DR). - Mermaid diagrams for architecture, business workflows, agent communication, and dataflows. - A detailed table of MCP contracts and consumption maps. - Streamlined, verifiable setup and installation instructions. - A consolidated list of useful scripts for development and CI. - Clear guidelines for testing, quality, observability, and deployment. - An updated roadmap and FAQ section. This change aligns the documentation with the current state of the repository and significantly improves the onboarding experience.
|
@google-labs-jules[bot] is attempting to deploy a commit to the medusajs Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request adds comprehensive technical documentation for the YSH B2B platform, focusing on bundling technical sheet modules. The changes include:
- Added deployment automation scripts (PowerShell) for AWS infrastructure with custom domain support
- Created extensive documentation for deployment, setup, and feature mapping
- Added new configuration files for ECS services and Docker setup
- Provided detailed mapping between frontend components and backend APIs aligned with customer journeys
Reviewed Changes
Copilot reviewed 67 out of 7647 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| aws/ecs-services-config.json | ECS service configuration for backend and storefront with auto-scaling policies |
| aws/deploy-with-domain.ps1 | PowerShell deployment automation script with AWS SSO and domain setup |
| aws/cloudformation-with-domain.yml | CloudFormation template for AWS infrastructure with custom domain integration |
| aws/cloudformation-infrastructure.yml | Infrastructure CloudFormation template optimized for performance |
| aws/cloudformation-free-tier.yml | Free-tier optimized CloudFormation template with detailed resource configuration |
| aws/backend-task-definition.json | ECS task definition for backend service with Medusa.js configuration |
| aws/backend-migrations-*.json | Task definitions for database migrations and seeding |
| aws/aws-outputs.json | AWS resource outputs for infrastructure |
| aws/SYNTAX_FIX_SUMMARY.md | Documentation of PowerShell syntax fixes applied |
| aws/README.md | Index and navigation guide for AWS deployment documentation |
| aws/POST_DEPLOYMENT_README.md | Post-deployment automation scripts documentation |
| aws/DEPLOYMENT_SUMMARY.md | Summary of deployment options, costs, and next steps |
| aws/DEPLOYMENT_GUIDE_DOMAIN.md | Complete step-by-step deployment guide with custom domain |
| aws/*.ps1 | PowerShell scripts for ECS deployment, database setup, monitoring, and environment configuration |
| STOREFRONT_BACKEND_JTBD_MAPPING.md | Comprehensive mapping of storefront features to backend modules by customer class |
| SETUP_DOCKER_GUIDE.md | Docker Desktop installation and setup guide |
| README.md | Updated project README with architecture diagrams and setup instructions |
| .yarnrc.yml | Yarn configuration file |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| - | - | Generic Password | aefb291 | backend/mcp-servers/.env.example | View secret |
| - | - | PostgreSQL Credentials | 2156710 | backend/AWS_RDS_CONNECTION_SETUP.md | View secret |
| - | - | Username Password | 0e63478 | backend/data/products-inventory/data-pipeline/docker-compose.yml | View secret |
| - | - | Generic Password | 0e63478 | backend/data/products-inventory/data-pipeline/infrastructure/grafana/provisioning/datasources/datasources.yml | View secret |
| - | - | Redis Server Password | 0e63478 | backend/data/products-inventory/data-pipeline/docker-compose.yml | View secret |
| - | - | Generic Password | 0e63478 | backend/data/products-inventory/data-pipeline/docker-compose.yml | View secret |
| - | - | Generic Password | 8fce2fd | docker-compose.full-stack.yml | View secret |
| - | - | Generic Password | 2271463 | backend/data/project-helios/haas/tests/test_auth.py | View secret |
| - | - | Generic CLI Secret | 3d548d7 | backend/data/products-inventory/data-pipeline/workflows/airflow/docker-compose.yml | View secret |
| - | - | Company Email Password | bf94cf7 | backend/NEOSOLAR_EXTRACTION_SUMMARY.md | View secret |
| - | - | Redis Server Password | c5afabf | backend/data/project-helios/haas/docker-compose.alt-ports.yml | View secret |
| - | - | Company Email Password | aefb291 | backend/mcp-servers/.env.example | View secret |
| - | - | Generic Password | 0e63478 | backend/data/products-inventory/data-pipeline/infrastructure/grafana/provisioning/datasources/datasources.yml | View secret |
| - | - | Generic Password | 0e63478 | backend/data/products-inventory/data-pipeline/docker-compose.yml | View secret |
| - | - | Generic Password | 2156710 | backend/scripts/check-rds-schema.js | View secret |
| - | - | Generic Password | 0e63478 | backend/data/products-inventory/data-pipeline/docker-compose.yml | View secret |
| - | - | Generic Database Assignment | bc9ee25 | backend/scripts/query-catalog-stats.py | View secret |
| - | - | Generic Password | aefb291 | backend/mcp-servers/.env.example | View secret |
| - | - | Username Password | 562e861 | aws/deploy-with-domain.ps1 | View secret |
| - | - | Redis Server Password | 0e63478 | backend/data/products-inventory/data-pipeline/docker-compose.yml | View secret |
| - | - | Generic Password | 6735fbd | .env.multicloud | View secret |
| - | - | SMTP credentials | 3d548d7 | backend/data/products-inventory/data-pipeline/workflows/airflow/README.md | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secrets safely. Learn here the best practices.
- Revoke and rotate these secrets.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
Fixes a Mermaid syntax error in the "Mapa de Consumo MCP pelos Agentes" diagram within the `README.md` file. The previous syntax used special characters in edge labels, causing a rendering failure. The labels have been simplified to be compliant with the Mermaid parser, ensuring the diagram now renders correctly in compliant Markdown viewers.
No description provided.