| name | provider-register |
| description | Register an external WPS or OGC API - Processes service as a remote provider, making its processes
available through Weaver. Enables federation of services and distributed workflow execution. Use
when integrating remote processing services.
|
| license | Apache-2.0 |
| compatibility | Requires Weaver API access with provider registration permissions. |
| metadata | {"author":"fmigneault"} |
Register Provider
Register an external WPS or OGC API - Processes service as a remote provider.
When to Use
- Integrating external WPS services
- Connecting to remote OGC API - Processes instances
- Building federated processing networks
- Enabling distributed workflow execution
- Accessing specialized remote processing capabilities
- Implementing multi-organization collaborations
Parameters
Required
- provider_id (string): Unique provider identifier
- url (string): Provider service URL
Optional
- type (string): Provider type
wps: WPS 1.0/2.0 service
ogcapi: OGC API - Processes
esgf: ESGF processing service
- public (boolean): Whether provider is publicly accessible (default: true)
- auth (object): Authentication credentials (if required)
CLI Usage
weaver register -u $WEAVER_URL -n my-wps-provider -w https://remote-wps.example.com/wps
weaver register -u $WEAVER_URL -n my-ogc-provider -w https://remote-ogc.example.com/processes
weaver register -u $WEAVER_URL -n secure-provider -w https://secure.example.com/wps --auth token:SECRET_TOKEN
Python Usage
from weaver.cli import WeaverClient
client = WeaverClient(url="https://weaver.example.com")
result = client.register(
provider_id="my-provider",
url="https://remote.example.com/wps",
type="wps",
public=True
)
if result.success:
print(f"Provider registered: {result.body['id']}")
API Request
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"id": "my-provider",
"url": "https://remote.example.com/wps",
"type": "wps",
"public": true
}' \
"${WEAVER_URL}/providers"
Returns
{
"id": "my-provider",
"url": "https://remote.example.com/wps",
"type": "wps",
"public": true,
"status": "registered"
}
Note: Response may include additional fields. See
API documentation for complete response schemas.
Provider Types
WPS (Web Processing Service)
- Supports WPS 1.0.0 and 2.0.0
- Automatic process discovery via GetCapabilities
- Execute operations via WPS Execute
OGC API - Processes
- Modern RESTful API
- JSON-based communication
- Standardized endpoints
ESGF
- Earth System Grid Federation services
- Climate data processing
- Specialized scientific workflows
After Registration
Once registered, you can:
weaver capabilities -u $WEAVER_URL -P my-provider
weaver describe -u $WEAVER_URL -P my-provider -p remote-process
weaver execute -u $WEAVER_URL -P my-provider -p remote-process -I inputs.json
Use Cases
Federated Workflows
for provider_name, provider_url in providers.items():
client.register(provider_id=provider_name, url=provider_url)
step1 = client.execute(provider="provider1", process_id="preprocess", ...)
step2 = client.execute(provider="provider2", process_id="analyze", ...)
Service Integration
weaver register -u $WEAVER_URL -n institution-a -w https://inst-a.org/wps
weaver register -u $WEAVER_URL -n institution-b -w https://inst-b.org/processes
weaver capabilities -u $WEAVER_URL -P institution-a
weaver capabilities -u $WEAVER_URL -P institution-b
Error Handling
- 409 Conflict: Provider ID already exists
- 400 Bad Request: Invalid URL or parameters
- 503 Service Unavailable: Cannot connect to provider URL
Related Skills
Documentation