Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Higgins XRDS Service Endpoint
This page describes the XRDS convention Higgins uses to discover metadata about a ContextId necessary to resolve and access its Context. The mechanism itself is described in Context Discovery
Contents
Introduction
A Higgins XRDS Service Endpoint is a Higgins convention on the use of service endpoints (SEPs) in an XRDS document. XRDS documents and SEP construction and selection are fully defined in XRI Resolution 2.0. A Higgins SEP is obtained either from a ContextURI (using standard "Yadis" discovery, defined in Section 6 of XRI Resolution 2.0) or from a ContextXRI (using standard XRI resolution), and contains all information needed to instantiate a Higgins Context (i.e. a datastore containing identity information such as an LDAP directory or a Facebook account).
Higgins SEPs are therefore a key enabling building block for the Higgins Dataweb: They act as discoverable "pointers" into contexts containing slices of your identity.
Note: see also Higgins XDI Context Reference – these contain identical data/metadata as in a Higgins XRDS Service Endpoint, but in XDI format.
Higgins XRDS Service Endpoint
The information in a Higgins XRDS Service Endpoint can be summarized as follows:
- One or more Context Types: This is a string that identifies the underlying technology of the Context. Based on this string, a suitable Context Provider is selected to instantiate the context.
- The schema of the context: This is a URL pointing to a Higgins OWL file describing the context's schema (i.e. the kind of subjects and attributes in the context). For example, a context may contain "people" who have "names", "e-mail addresses" and "friends". This schema is based on the Higgins Data Model
- (Optional) Context authentication type: The type of authentication materials needed to open the context (e.g. a password).
- (Optional) Context configuration: Arbitrary information required to instantiate the Higgins Context (e.g. the address of a server to connect to).
Examples
Facebook account
Example Higgins Relation pointing to a facebook account: @higgins*contexts/$context@facebook//2345673826
- @higgins*contexts/$context@facebook is the ContextId XRI that resolves to the SEP below.
- 2345673826 is the SubjectId, i.e. the unique identifier in the context that can be instantiated using the metadata in the SEP below.
<Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration"> <Path select="true">$context@facebook</Path> <Type select="true">$context@facebook</Type> <Type>$context</Type> <hconf:Schema>http://www.higgins-project.org/schemas/facebook.owl</hconf:Schema> <hconf:Configuration> <Setting Name="apikey" Type="xsd:string">FB8189237498</Setting> </hconf:Configuration> </Service>
LDAP directory
Example Higgins Relation pointing to a user in an LDAP directory. In this example, the relation can be expressed as both an XRI or a URI:
- XRI: @parity/$context$ldap//msabadello
- URI: http://ldap.parityinc.inc#msabadello
In this XRI:
- @parity/$context$ldap is the ContextId that resolves to the SEP below within the XRDS document. Note that this XRDS document may contain multiple SEPs for @Parity – it is the XRI path $context$ldap that is used to select the SEP below (see the Service Endpoint Selection rules in section 13 of XRI Resolution 2.0.
- msabadello is the SubjectId, i.e. the unique identifier in the context.
In this URI:
- http://ldap.parityinc.inc resolved directly to an XRDS document as defined in section 6 of XRI Resolution 2.0.
- This XRDS document must contain only the SEP below (OR the consuming application must know to select this type of SEP).
<Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration"> <Path select="true">$context$ldap</Type> <Type select="true">$context$ldap</Type> <Type>$context</Type> <hconf:Schema>http://www.parityinc.net/schemas/ldap.owl</hconf:Schema> <hconf:Configuration> <Setting Name="Connection" Type="htf:map"> <Setting Name="ConnectionType" Type="xsd:string">LDAP</Setting> <Setting Name="AddressList" Type="htf:list"> <Setting Name="Address" Type="xsd:string">ldap://ldap.parityinc.net:389</Setting> </Setting> <Setting Name="jndiProvider" Type="xsd:string">com.sun.jndi.ldap.LdapCtxFactory</Setting> </Setting> <Setting Name="env" Type="htf:map"> <Setting Name="java.naming.security.authentication" Type="xsd:string">simple</Setting> </Setting> </hconf:Configuration>
XDI endpoint
Example Higgins Relation pointing to a subject at an XDI endpoint: @parity/$context$xdi//=markus
- =markus is the SubjectId, i.e. the unique identifier in the context.
- @parity/$context$xdi is the ContextId, it resolves to the following SEP:
<Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration"> <Path select="true">$context$xdi</Path> <Type select="true">$context$xdi</Type> <Type>$context</Type> <hconf:Schema>http://www.parityinc.net/schemas/xdi-test.owl</hconf:Schema> <URI>http://graceland.parityinc.net/xdi-endpoint/idas</URI> </Service>
See Also
- Higgins XDI Context Reference is the XDI equivalent of a Higgins XRDS Service Endpoint.
- A ContextId is the identifier that resolves to a Higgins XRDS Service Endpoint. It is either a URI or an XRI.
- Context Discovery describes the process of resolving a ContextId to instantiate a Context.
- Context Discovery Components describes in more detail the Higgins components involved in Context Discovery.