Service locations are dynamically resolved by the Registry service based on tenant and serviceName. The resourceful scheme provides an abstraction of the protocol and authority part of the service location so that resolution can be deferred.

URI Scheme Syntax

resourceful-uri = "resourceful://" service-ref path [ "?" query ] [ "#" fragment ]
service-ref     = tenant "." service-name
tenant          = name
service-name    = name
name            = 1*( ALPHA / DIGIT / "_" / "-" )

path, query, fragment are as defined in URI.

Examples:

resourceful://root.identity/data/tenants?page=1&perPage=100

resourceful://piksel.geolocation/geoip

URI Scheme Semantics

Provides an abstraction of service locations to be resolved by the Registry service. The protocol is usually resolved to either http or https. The authority is resolved to host[:port]. Path, query and fragment remains unchanged.

Encoding Considerations

resourceful URIs are subject to encoding rules as defined in URI.

Security Considerations

The Registry service needs to ensure that services that handle sensitive information are resolved to a secure protocol. It cannot be guaranteed nor enforced by the scheme.