Broker
SelfDescription
Self Description document, in json format, for connector, can be found at following URL - GET request
https://{IPADDRESS}:8091/
or
http://{IPADDRESS}:8091/
depending on
REST_ENABLE_HTTPS=true
configured in .env file.
In order to set different values for Self Description document, based on connector role (Data Consumer/Data Provider), following file and properties needs to be modified:
ecc_resources_consumer/application-docker.properties
or
ecc_resources_provider/application-docker.properties
and following properties:
application.selfdescription.description=Data Connector description
application.selfdescription.title=Data Connector title
application.selfdescription.curator=http://curatorURI.com
application.selfdescription.maintainer=http://maintainerURI.com
Registration request
In order to register to broker, proxy endpoint can be used to send register request.
Forward-To needs to be BrokerURL. message part or proxy request, ConnectorUpdateMessage as json must be created and set as value. payload object of proxy request set self description json string of connector that we wish to register.
Example of ConnectorUpdateMessage:
Remark applicable for all Broker messages - be sure to match senderAgent, issuerConnector and affectedConnector values from ConnectorUpdateMessage with the value in Self Description message
{
"@context" : {
"ids" : "https://w3id.org/idsa/core/",
"idsc" : "https://w3id.org/idsa/code/"
},
"@type" : "ids:ConnectorUpdateMessage",
"@id" : "https://w3id.org/idsa/autogen/connectorUpdateMessage/6d875403-cfea-4aad-979c-3515c2e71967",
"ids:modelVersion" : "4.0.0",
"ids:issued" : {
"@value" : "2021-03-09T12:59:36.780+01:00",
"@type" : "http://www.w3.org/2001/XMLSchema#dateTimeStamp"
},
"ids:senderAgent" : {
"@id" : "http://example.org"
},
"ids:issuerConnector" : {
"@id" : "https://eng.true-connector.com/"
},
"ids:affectedConnector" : {
"@id" : "https://eng.true-connector.com/"
}
}
Update registration request
In order to register update existing registration, proxy endpoint can be used to send update request.
Forward-To needs to be BrokerURL. message part or proxy request, ConnectorUpdateMessage as json must be created and set as value. payload object of proxy request set self description json string of connector that we wish to register.
Delete registration request
In order to delete broker registration, proxy endpoint can be used to send delete request.
Forward-To needs to be BrokerURL. message part or proxy request, ConnectorUnavailableMessage as json must be created and set as value. payload object of proxy request set self description json string of connector that we wish to register.
Example of ConnectorUnavailableMessage:
{
"@context" : {
"ids" : "https://w3id.org/idsa/core/",
"idsc" : "https://w3id.org/idsa/code/"
},
"@type" : "ids:ConnectorUnavailableMessage",
"@id" : "http://industrialdataspace.org/connectorUnavailableMessage/911c7676-d5f2-4ae6-874c-73a26f865e12",
"ids:issued" : {
"@value" : "2021-03-09T13:00:36.045+01:00",
"@type" : "http://www.w3.org/2001/XMLSchema#dateTimeStamp"
},
"ids:senderAgent" : {
"@id" : "http://example.org"
},
"ids:modelVersion" : "4.0.0",
"ids:issuerConnector" : {
"@id" : "https://eng.true-connector.com/"
},
"ids:affectedConnector" : {
"@id" : "https://eng.true-connector.com/"
}
}
Passivate broker registration
In order to passivate broker registration, proxy endpoint can be used to send passivate request.
Forward-To needs to be BrokerURL. message part or proxy request, ConnectorInactiveMessage as json must be created and set as value. payload object of proxy request set self description json string of connector that we wish to register.
Example of ConnectorInactiveMessage:
{
"@context" : {
"ids" : "https://w3id.org/idsa/core/",
"idsc" : "https://w3id.org/idsa/code/"
},
"@type" : "ids:ConnectorUnavailableMessage",
"@id" : "https://w3id.org/idsa/autogen/connectorInactiveMessage/8ea20fa1-7258-41c9-abc2-82c787d50ec3",
"ids:affectedConnector" : {
"@id" : "https://eng.true-connector.com/"
},
"ids:senderAgent" : {
"@id" : "http://example.org"
},
"ids:issued" : {
"@value" : "2021-03-09T13:01:55.255+01:00",
"@type" : "http://www.w3.org/2001/XMLSchema#dateTimeStamp"
},
"ids:modelVersion" : "4.0.0",
"ids:issuerConnector" : {
"@id" : "https://eng.true-connector.com/"
}
}
Query broker
In order to query broker, proxy endpoint can be used to send register request.
Forward-To needs to be BrokerURL. message part or proxy request, QueryMessage as json must be created and set as value. payload object of proxy request set query we wish to sent to Broker.
Example of QueryMessage:
{
"@context" : {
"ids" : "https://w3id.org/idsa/core/",
"idsc" : "https://w3id.org/idsa/code/"
},
"@type" : "ids:QueryMessage",
"@id" : "https://w3id.org/idsa/autogen/queryMessage/1242e627-ef26-48ce-8deb-772e86750f9d",
"ids:queryScope" : {
"@id" : "idsc:ALL"
},
"ids:queryLanguage" : {
"@id" : "idsc:SPARQL"
},
"ids:issued" : {
"@value" : "2021-03-09T13:22:05.209+01:00",
"@type" : "http://www.w3.org/2001/XMLSchema#dateTimeStamp"
},
"ids:modelVersion" : "4.0.0",
"ids:issuerConnector" : {
"@id" : "https://eng.true-connector.com/"
}
}
Payload can be like following:
PREFIX ids: <https://w3id.org/idsa/core/>
SELECT ?connectorUri WHERE { ?connectorUri a ids:BaseConnector . }
{ At the moment, broker supports only multipart/mixed requests, this means that connector will have to be configured to mulitpar/mixed configuration. }