Provider Types
Meshery supports two types of providers:Local Provider
The Local Provider stores data in the local filesystem and uses simple authentication. It’s suitable for single-user deployments and development environments. Characteristics:- File-based storage (
~/.meshery/) - No remote authentication
- Limited collaboration features
- Offline operation support
Remote Provider
Remote Providers integrate with cloud backends for authentication, data persistence, and team collaboration. Characteristics:- OAuth/OIDC/SAML authentication
- Cloud-based storage
- Multi-user workspaces
- Design pattern catalogs
- Performance result persistence
- Organization and team management
Provider Interface
All providers implement theProvider interface defined in server/models/providers.go:
Provider Properties
Providers declare their capabilities through aProviderProperties struct:
Capabilities System
Capabilities indicate which features the provider supports:Checking Capabilities
Creating a Remote Provider
1. Provider Server
Create a backend service that implements the capabilities endpoint and feature endpoints:2. Authentication Flow
Implement OAuth 2.0 / OIDC authentication:3. Data Persistence Endpoints
Persist Patterns
Persist Connections
4. Extension Package
Create a tarball with UI extensions:UI Extensions
Providers can extend the Meshery UI through remote React components:Navigator Extension
Add custom navigation items:User Preferences Extension
Registering a Provider
Providers are registered in Meshery’s configuration file: ~/.meshery/config.yaml:/provider.
Environment Variables
| Variable | Description |
|---|---|
PROVIDER_BASE_URLS | Comma-separated list of provider URLs |
SKIP_DOWNLOAD_EXTENSIONS | Skip extension package download |
PROVIDER_CAPABILITIES_FILEPATH | Local file path for capabilities (dev mode) |
Anonymous User Support
Providers can support anonymous users for public deployments:Best Practices
-
Security:
- Use HTTPS for all provider endpoints
- Validate all tokens server-side
- Never expose user credentials in responses
- Implement rate limiting on API endpoints
-
Performance:
- Cache provider capabilities
- Use pagination for large datasets
- Implement query filters and search
-
User Experience:
- Provide clear error messages
- Support deep linking with
refparameter - Implement session timeout warnings
-
Compatibility:
- Support multiple Meshery versions
- Version your API endpoints
- Document breaking changes
Example Providers
Reference implementations:Next Steps
UI Extensions
Create custom UI components
Adapters
Build gRPC adapters