Pending Review
Pending Review from User Experience (UX)
Connector Component
Overview
The Connector component provides a comprehensive edge appliance management system for managing Progress infrastructure connections and deployments. This solution component combines data management, wizard workflows, and API integration to deliver enterprise-grade connector lifecycle management with real-time monitoring and configuration capabilities.
Core Capabilities
- Edge Appliance Management - Complete lifecycle management of connector and collector appliances with CRUD operations
- Real-time Status Monitoring - Live appliance status tracking with booting, updating, installing, online, and ready states
- Configuration Wizard Integration - Multi-step deployment workflows with guided setup and validation processes
- Context-Aware State Management - Centralized EdgeContext provider for consistent state across all connector views
- Multi-Product Support - Support for LM360, WUG360, and CHEF360 product deployments with different configurations
- Hypervisor Integration - Support for VMware, KVM, Nutanix, Hyper-V, AWS, and Azure deployment targets
When to use Connector:
- Enterprise Edge Deployments - Managing distributed appliance infrastructure across multiple locations and environments
- Infrastructure Automation - Automating connector provisioning, configuration, and deployment workflows for IT operations
- Monitoring Dashboards - Building comprehensive infrastructure monitoring interfaces with real-time status updates
- IT Operations Centers - Centralizing edge appliance management, troubleshooting, and maintenance activities
When not to use Connector:
- Simple API Integrations - Use basic HTTP client components for straightforward API connections without appliance management
- Static Configuration - Consider simpler alternatives for applications that don't require dynamic connector lifecycle management
- Non-Enterprise Environments - Use lighter-weight solutions for small-scale deployments without complex infrastructure needs
Basic Implementation
import React, { useState } from 'react';
import { PwcConnectors } from '@progress-i360/pwc-react';
function ConnectorManagement() {
const [connectors, setConnectors] = useState([
{ id: 1, name: 'Edge Connector 1', status: 'online' },
{ id: 2, name: 'Edge Connector 2', status: 'offline' }
]);
const handleConnectorUpdate = (id: number, status: string) => {
setConnectors(prev => prev.map(conn =>
conn.id === id ? { ...conn, status } : conn
));
};
return (
<PwcConnectors
baseApiUrl="/api/v1/connectors"
connectors={connectors}
onConnectorUpdate={handleConnectorUpdate}
/>
);
}
import { useCallback, useDeferredValue, useEffect, useRef, useState } from 'react';
import '@progress-i360/progress-web-components/connectors';
function ConnectorDeployment() {
const [deploymentState, setDeploymentState] = useState({
products: ['LM360', 'WUG360'],
isDeploying: false
});
const deferredState = useDeferredValue(deploymentState);
const { products, isDeploying } = deferredState;
const connectorsRef = useRef<(HTMLElement & { products: string[]; isDeploying: boolean }) | null>(null);
const handleDeployment = useCallback((event: CustomEvent<{ connectorId: string; product: string }>) => {
const { connectorId, product } = event.detail;
console.log(`Deploying ${product} to connector ${connectorId}`);
setDeploymentState(prev => ({ ...prev, isDeploying: true }));
setTimeout(() => {
setDeploymentState(prev => ({ ...prev, isDeploying: false }));
}, 2000);
}, []);
useEffect(() => {
if (connectorsRef.current) {
connectorsRef.current.products = products;
connectorsRef.current.isDeploying = isDeploying;
}
}, [products, isDeploying]);
return (
<pwc-connectors
ref={connectorsRef}
base-api-url="/api/v1/connectors"
onPwcDeploy={handleDeployment}
></pwc-connectors>
);
}
import { Component, CUSTOM_ELEMENTS_SCHEMA } from "@angular/core";
import "@progress-i360/progress-web-components/connectors";
import "@progress-i360/progress-web-components/action-bar";
import "@progress-i360/progress-web-components/button";
@Component({
selector: 'connector-demo',
template: `
<pwc-connectors [baseApiUrl]="apiUrl" [products]="products"></pwc-connectors>
<pwc-action-bar heading="Edge Appliances" [rowCount]="applianceCount">
<pwc-button slot="actions" label="Add Appliance" variant="primary" (pwc-click)="addAppliance()"></pwc-button>
</pwc-action-bar>
`,
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class ConnectorDemo {
apiUrl = "/mockedgeapi";
products = ["LM360", "WUG360", "CHEF360"];
applianceCount = 3;
addAppliance() {
this.applianceCount++;
}
}
// Create connector management with API integration
const connectors = document.createElement('pwc-connectors');
connectors.setAttribute('base-api-url', '/edgeapi');
// Configure supported products for deployment
const products = ['LM360', 'WUG360', 'CHEF360'];
connectors.products = products;
// Monitor appliance status changes
connectors.addEventListener('pwc-appliance-status-changed', (event) => {
console.log('Appliance status updated:', event.detail);
});
// Handle appliance lifecycle events
connectors.addEventListener('pwc-appliance-deleted', (event) => {
console.log('Appliance removed:', event.detail.applianceId);
});
document.body.appendChild(connectors);
Usage Patterns
- Appliance Lifecycle Management - Complete management of connector and collector appliances from deployment to decommissioning
- Multi-Environment Deployments - Managing appliances across development, staging, and production environments with consistent workflows
- Status Monitoring Dashboards - Real-time monitoring of appliance health with status indicators and automated status polling
- Guided Configuration Workflows - Step-by-step wizard-based setup for complex appliance configurations and deployments
Best Practices
Content Strategy Guidelines
- Clear Status Communication - Use descriptive status labels and visual indicators that clearly communicate appliance health and deployment progress
- Consistent Terminology - Maintain consistent language for appliance types, statuses, and actions across all connector management interfaces
- Progressive Disclosure - Present complex configuration options in logical steps that build upon previous selections and context
- Error Message Clarity - Provide specific, actionable error messages that guide users toward resolution steps
Performance Optimization
- Efficient State Management - Utilize EdgeContext provider pattern to minimize unnecessary re-renders and API calls across components
- API Call Optimization - Implement proper polling strategies for status updates and batch operations for bulk appliance management
- Lazy Loading - Load connector views and configuration data only when needed to improve initial load performance
- Caching Strategy - Cache appliance data and status information appropriately to reduce server load and improve response times
Integration Architecture
- Modular View Architecture - Structure connector views (Summary, Editor, Config, Deploy, Download) as independent, reusable components
- Context-Driven Design - Leverage EdgeContext for consistent state management across all connector management workflows
- API Abstraction - Implement clean API layer with proper error handling, retry logic, and response validation
- Flexible Configuration - Support multiple products and deployment targets through configurable properties and extensible architecture
Common Use Cases
Data Table Headers
- Appliance Management Tables - Display connector and collector appliances with status, name, and type columns for efficient management
- Status Monitoring Views - Real-time status updates with visual indicators for booting, updating, installing, online, and ready states
- Bulk Operations Interface - Action bars for performing batch operations on multiple selected appliances simultaneously
Search Result Sections
- Appliance Discovery - Search and filter capabilities across large deployments to quickly locate specific appliances or groups
- Configuration Search - Find appliances by configuration parameters, deployment settings, or assigned products
- Status-Based Filtering - Filter appliances by current status to focus on specific operational concerns or maintenance needs
Dashboard Widget Headers
- Infrastructure Overview - High-level dashboard widgets showing appliance distribution, health metrics, and deployment statistics
- Operational Metrics - Real-time performance indicators for appliance connectivity, resource utilization, and service availability
- Deployment Progress - Status widgets showing ongoing deployments, configuration changes, and system updates across the infrastructure
Troubleshooting
Common Issues
Actions Not Triggering
Problem: Appliance management actions (edit, delete, deploy) don't respond or fail to execute properly
Solutions:
- Verify that EdgeContext is properly provided and consumed by connector components
- Check that API endpoints are correctly configured with baseApiUrl property
- Ensure that event handlers are properly bound to component methods and context
Actions Not Visible
Problem: Management actions or appliance data don't appear in the interface
Solutions:
- Confirm that appliance data is being fetched successfully from the API endpoints
- Check that connector views are properly imported and registered in the component structure
- Verify that products array is configured correctly for the target deployment environment
Layout Issues
Problem: Connector management interface doesn't display correctly or has responsive layout problems
Solutions:
- Ensure that required CSS styles and design tokens are properly loaded
- Check that container components have appropriate flex layout and spacing configurations
- Verify that table and wizard components have proper responsive breakpoint handling
Icon Problems
Problem: Status icons, action buttons, or visual indicators don't display correctly
Solutions:
- Confirm that icon fonts and assets are properly bundled and available
- Check that status mapping objects correctly map appliance states to visual variants
- Verify that action buttons have proper icon keys and variant configurations matching the design system
Implementation Support
- Framework Integration - Complete examples and integration guides for React, Angular, and vanilla JavaScript implementations
- EdgeContext Integration - Comprehensive state management patterns using the provided context system for appliance management
- API Integration Support - Full documentation for REST API endpoints, error handling, and data management patterns
Resources
Storybook Documentation
For comprehensive API documentation, interactive examples, and testing tools: 📖 View Complete API Documentation in Storybook →
This guide provides high-level implementation guidance. For detailed API specifications and interactive examples, visit our Storybook documentation.