REST Outbound Connector
The REST outbound connector is available under <host>:<eddie.management.server.port>/outbound-connectors/rest.
| Parameter | Type | Default | Description |
|---|---|---|---|
outbound-connector.rest.enabled | true or false | false | Enables or disables the REST outbound connector. |
outbound-connector.rest.retention-time | ISO-8601 for durations | PT48H | Sets how long the outbound connector retains the messages. |
outbound-connector.rest.retention-removal | Spring Cron Syntax | 0 0 * * * * | Sets the interval in which messages are deleted. |
outbound-connector.rest.oauth2.enabled | true or false | false | Enables security via an oauth 2.0 server. If this property is set, the outbound-connector.rest.oauth2.issuer-url has also be set. |
outbound-connector.rest.oauth2.issuer-url | URI | Sets the issuer URL of the oauth 2.0 server, for keycloak this is the realm URL, for example http://localhost:8888/realms/master. Only OAuth 2.0 with JWT is supported. | |
outbound-connector.rest.oauth2.scopes.enabled | true or false | false | Adds finely grained scopes to the REST endpoints, see the Scopes section for more information. The access token used for each endpoint requires to contain the required scope, to be able to read or write to the endpoint. This property may only be used in combination with outbound-connector.rest.oauth2.enabled. |
properties
outbound-connector.rest.enabled=true
outbound-connector.rest.retention-time=PT48H
outbound-connector.rest.retention-removal=0 0 * * * *
outbound-connector.rest.oauth2.enabled=false
outbound-connector.rest.oauth2.issuer-url=http://localhost:8888/realms/EDDIEyaml
outbound-connector:
rest:
enabled: true
retention-time: PT48H
retention-removal: 0 0 * * * *
oauth2:
enabled: false
issuer-url: http://localhost:8888/realms/EDDIEdotenv
OUTBOUND_CONNECTOR_REST_ENABLED=true
OUTBOUND_CONNECTOR_REST_RETENTION_TIME=PT48H
OUTBOUND_CONNECTOR_REST_RETENTION_REMOVAL=0 0 * * * *
OUTBOUND_CONNECTOR_REST_OAUTH2_ENABLED=false
OUTBOUND_CONNECTOR_REST_OAUTH2_ISSUER_URL=http://localhost:8888/realms/EDDIEEndpoints
The endpoints are documented via OpenAPI and are made available during the runtime under <host>:<eddie.management.server.port>/outbound-connectors/rest/v3/api-docs. They can be seen via the hosted swagger UI under <host>:<server.port>/data-needs/swagger-ui/index.html. While OpenAPI provides examples and schemas, it is recommended to use the client library to parse CIM documents, since the OpenAPI generated schemas are not true to the actual schema.
http
### GET connection status messages as json
GET http://localhost:9090/outbound-connectors/rest/agnostic/connection-status-messages
Accept: application/json
Authorization: Bearer {{$auth.token("keycloak")}}
### GET connection status messages as xml
GET http://localhost:9090/outbound-connectors/rest/agnostic/connection-status-messages
Accept: application/xml
Authorization: Bearer {{$auth.token("keycloak")}}
### Get connection status messages as event stream
GET http://localhost:9090/outbound-connectors/rest/agnostic/connection-status-messages
Accept: text/event-stream
Authorization: Bearer {{$auth.token("keycloak")}}
### GET raw data messages as json
GET http://localhost:9090/outbound-connectors/rest/agnostic/raw-data-messages
Accept: application/json
Authorization: Bearer {{$auth.token("keycloak")}}
### GET raw data messages as xml
GET http://localhost:9090/outbound-connectors/rest/agnostic/raw-data-messages
Accept: application/xml
Authorization: Bearer {{$auth.token("keycloak")}}
### Get raw data messages as event stream
GET http://localhost:9090/outbound-connectors/rest/agnostic/raw-data-messages
Accept: text/event-stream
Authorization: Bearer {{$auth.token("keycloak")}}
### Get validated historical data market documents as json
GET http://localhost:9090/outbound-connectors/rest/cim_0_82/validated-historical-data-md
Accept: application/json
Authorization: Bearer {{$auth.token("keycloak")}}
### Get validated historical data market documents as xml
GET http://localhost:9090/outbound-connectors/rest/cim_0_82/validated-historical-data-md
Accept: application/xml
Authorization: Bearer {{$auth.token("keycloak")}}
### Get validated historical data market documents as event stream
GET http://localhost:9090/outbound-connectors/rest/cim_0_82/validated-historical-data-md
Accept: text/event-stream
Authorization: Bearer {{$auth.token("keycloak")}}
### Get validated historical data market documents as json V1.04
GET http://localhost:9090/outbound-connectors/rest/cim_1_04/validated-historical-data-md
Accept: application/json
Authorization: Bearer {{$auth.token("keycloak")}}
### Get validated historical data market documents as xml V1.04
GET http://localhost:9090/outbound-connectors/rest/cim_1_04/validated-historical-data-md
Accept: application/xml
Authorization: Bearer {{$auth.token("keycloak")}}
### Get validated historical data market documents as event stream V1.04
GET http://localhost:9090/outbound-connectors/rest/cim_1_04/validated-historical-data-md
Accept: text/event-stream
Authorization: Bearer {{$auth.token("keycloak")}}
### Get near real-time data market documents as json
GET http://localhost:9090/outbound-connectors/rest/cim_1_04/near-real-time-data-md
Accept: application/json
Authorization: Bearer {{$auth.token("keycloak")}}
### Get near real-time data market documents as xml
GET http://localhost:9090/outbound-connectors/rest/cim_1_04/near-real-time-data-md
Accept: application/xml
Authorization: Bearer {{$auth.token("keycloak")}}
### Get near real-time data market documents as event stream
GET http://localhost:9090/outbound-connectors/rest/cim_1_04/near-real-time-data-md
Accept: text/event-stream
Authorization: Bearer {{$auth.token("keycloak")}}
### Get permission market documents as json
GET http://localhost:9090/outbound-connectors/rest/cim_0_82/permission-md
Accept: application/json
Authorization: Bearer {{$auth.token("keycloak")}}
### Get permission market documents as xml
GET http://localhost:9090/outbound-connectors/rest/cim_0_82/permission-md
Accept: application/xml
Authorization: Bearer {{$auth.token("keycloak")}}
### Get permission market documents as event stream
GET http://localhost:9090/outbound-connectors/rest/cim_0_82/permission-md
Accept: text/event-stream
Authorization: Bearer {{$auth.token("keycloak")}}
### Get accounting point data market documents as json
GET http://localhost:9090/outbound-connectors/rest/cim_0_82/accounting-point-data-md
Accept: application/json
Authorization: Bearer {{$auth.token("keycloak")}}
### Get accounting point data market documents as xml
GET http://localhost:9090/outbound-connectors/rest/cim_0_82/accounting-point-data-md
Accept: application/xml
Authorization: Bearer {{$auth.token("keycloak")}}
### Get accounting point data market documents as event stream
GET http://localhost:9090/outbound-connectors/rest/cim_0_82/accounting-point-data-md
Accept: text/event-stream
Authorization: Bearer {{$auth.token("keycloak")}}
# Termination Market Documents
### POST termination market document as json
@permissionId=REPLACE_ME
@region-connector-id=REPLACE_ME
POST http://localhost:9090/outbound-connectors/rest/cim_0_82/termination-md
Content-Type: application/json
Authorization: Bearer {{$auth.token("keycloak")}}
{
"Permission_MarketDocument": {
"mRID": "{{permissionId}}",
"type": "Z01",
"PermissionList": {
"Permission": [
{
"MktActivityRecordList": {
"MktActivityRecord": [
{
"type": "{{region-connector-id}}"
}
]
},
"ReasonList": {
"Reason": [
{
"code": "Z03"
}
]
}
}
]
}
}
}
### POST termination market document as xml
POST http://localhost:9090/outbound-connectors/rest/cim_0_82/termination-md
Content-Type: application/xml
Authorization: Bearer {{$auth.token("keycloak")}}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Permission_Envelope xmlns="http://www.eddie.energy/Consent/EDD02/20240125">
<Permission_MarketDocument>
<mRID>{{permissionId}}</mRID>
<type>Z01</type>
<PermissionList>
<Permission>
<MktActivityRecordList>
<MktActivityRecord>
<type>{{region-connector-id}}</type>
</MktActivityRecord>
</MktActivityRecordList>
<ReasonList>
<Reason>
<code>Z03</code>
</Reason>
</ReasonList>
</Permission>
</PermissionList>
</Permission_MarketDocument>
</Permission_Envelope>
### POST Redistribution Transaction Request as JSON
POST http://localhost:9090/outbound-connectors/rest/cim_0_91_08/redistribution-transaction-rd
Accept: application/json
Content-Type: application/json
Authorization: Bearer {{$auth.token("keycloak")}}
{
"messageDocumentHeader.creationDateTime": "2025-01-03T00:00:00Z",
"messageDocumentHeader.metaInformation.permissionId": "permissionId",
"messageDocumentHeader.metaInformation.region.connector": "rc-id",
"marketDocument.period.timeInterval": {
"start": "2025-01-01T01:01Z",
"end": "2025-01-02T00:00Z"
}
}
### POST Redistribution Transaction Request as XML
POST http://localhost:9090/outbound-connectors/rest/cim_0_91_08/redistribution-transaction-rd
Accept: application/json
Content-Type: application/xml
Authorization: Bearer {{$auth.token("keycloak")}}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns4:RTR_Envelope
xmlns:ns4="https://eddie.energy/CIM/RTR">
<ns4:messageDocumentHeader.creationDateTime>2025-01-03T00:00:00Z</ns4:messageDocumentHeader.creationDateTime>
<ns4:messageDocumentHeader.metaInformation.permissionId>permissionId
</ns4:messageDocumentHeader.metaInformation.permissionId>
<ns4:messageDocumentHeader.metaInformation.region.connector>rc-id
</ns4:messageDocumentHeader.metaInformation.region.connector>
<ns4:marketDocument.period.timeInterval>
<ns4:start>2025-01-01T01:01Z</ns4:start>
<ns4:end>2025-01-02T00:00Z</ns4:end>
</ns4:marketDocument.period.timeInterval>
</ns4:RTR_Envelope>Scopes
The following table lists all the endpoints and its required scopes, if the setting is enabled.
| Endpoint | Scope |
|---|---|
/agnostic/connection-status-messages | agnostic-connection-status-messages:read |
/agnostic/raw-data-messages | agnostic-raw-data-messages:read |
/cim_0_82/permission-md | cim-permission-md:read |
/cim_0_82/accounting-point-data-md | cim-accounting-point-data-md:read |
/cim_0_82/validated-historical-data-md | cim-validated-historical-data-md:read |
/cim_1_04/validated-historical-data-md | cim-validated-historical-data-md:read |
/cim_1_04/near-real-time-data-md | cim-near-real-time-data-md:read |
/cim_0_82/termination-md | cim-termination-md:write |
/cim_0_91_08/redistribution-transaction-rd | cim-redistribution-transaction-rd:write |