<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Eclipse Dataspace Components</title><link>https://eclipse-edc.github.io/</link><description>Recent content on Eclipse Dataspace Components</description><generator>Hugo</generator><language>en</language><atom:link href="https://eclipse-edc.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Best practices and recommendations</title><link>https://eclipse-edc.github.io/documentation/for-contributors/best-practices/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/best-practices/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#1-preface"&gt;1. Preface&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#2-security-recommendations"&gt;2. Security recommendations&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#21-exposing-apis-to-the-internet"&gt;2.1 Exposing APIs to the internet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#22-use-only-official-tls-certificatescas"&gt;2.2 Use only official TLS certificates/CAs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#23-use-appropriate-network-infrastructure"&gt;2.3 Use appropriate network infrastructure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#24-a-word-on-authentication-and-authorization"&gt;2.4 A word on authentication and authorization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#25-docker-builds"&gt;2.5 Docker builds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#26-use-proper-database-security"&gt;2.6 Use proper database security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#27-store-sensitive-data-in-a-vault"&gt;2.7 Store sensitive data in a vault&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#3-general-recommendations"&gt;3. General recommendations&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#31-use-only-official-releases"&gt;3.1 Use only official releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#32-dependency-hygiene"&gt;3.2 Dependency hygiene&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#33-use-database-persistence-wherever-possible"&gt;3.3 Use database persistence wherever possible&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#34-use-proper-vault-implementations"&gt;3.4 Use proper &lt;code&gt;Vault&lt;/code&gt; implementations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/best-practices/#34-use-uuids-as-object-identifiers"&gt;3.4 Use UUIDs as object identifiers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;h2 id="1-preface"&gt;1. Preface&lt;a class="td-heading-self-link" href="#1-preface" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;This document aims at giving guidelines and recommendations to developers who want to use or extend EDC or EDC modules
in their applications, to DevOps engineers who are tasked with packaging and operating EDC modules as runnable
application images.&lt;/p&gt;</description></item><item><title>Connector</title><link>https://eclipse-edc.github.io/documentation/autodoc/connector/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/autodoc/connector/</guid><description>&lt;h2 id="module-accesstokendata-store-sql"&gt;Module &lt;code&gt;accesstokendata-store-sql&lt;/code&gt;&lt;a class="td-heading-self-link" href="#module-accesstokendata-store-sql" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Artifact:&lt;/strong&gt; org.eclipse.edc:accesstokendata-store-sql:0.17.0&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Categories:&lt;/strong&gt; &lt;em&gt;None&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="extension-points"&gt;Extension points&lt;a class="td-heading-self-link" href="#extension-points" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;em&gt;None&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="extensions"&gt;Extensions&lt;a class="td-heading-self-link" href="#extensions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 id="class-orgeclipseedcconnectordataplanestoresqlsqlaccesstokendatastoreextension"&gt;Class: &lt;code&gt;org.eclipse.edc.connector.dataplane.store.sql.SqlAccessTokenDataStoreExtension&lt;/code&gt;&lt;a class="td-heading-self-link" href="#class-orgeclipseedcconnectordataplanestoresqlsqlaccesstokendatastoreextension" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Name:&lt;/strong&gt; &amp;ldquo;Sql AccessTokenData Store&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt; Provides Sql Store for {@link AccessTokenData} objects&lt;/p&gt;
&lt;h3 id="configuration"&gt;Configuration&lt;a class="td-heading-self-link" href="#configuration" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Required&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Pattern&lt;/th&gt;
 &lt;th&gt;Min&lt;/th&gt;
 &lt;th&gt;Max&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;edc.sql.store.accesstokendata.datasource&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;default&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;The datasource to be used&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="provided-services"&gt;Provided services&lt;a class="td-heading-self-link" href="#provided-services" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.connector.dataplane.spi.store.AccessTokenDataStore&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="referenced-injected-services"&gt;Referenced (injected) services&lt;a class="td-heading-self-link" href="#referenced-injected-services" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.transaction.datasource.spi.DataSourceRegistry&lt;/code&gt; (required)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.transaction.spi.TransactionContext&lt;/code&gt; (required)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.connector.dataplane.store.sql.schema.AccessTokenDataStatements&lt;/code&gt; (optional)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;java.time.Clock&lt;/code&gt; (required)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.spi.types.TypeManager&lt;/code&gt; (required)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.sql.QueryExecutor&lt;/code&gt; (required)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.sql.bootstrapper.SqlSchemaBootstrapper&lt;/code&gt; (required)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="module-aes-encryption"&gt;Module &lt;code&gt;aes-encryption&lt;/code&gt;&lt;a class="td-heading-self-link" href="#module-aes-encryption" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Artifact:&lt;/strong&gt; org.eclipse.edc:aes-encryption:0.17.0&lt;/p&gt;</description></item><item><title>Json LD</title><link>https://eclipse-edc.github.io/documentation/for-contributors/runtime/json-ld/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/runtime/json-ld/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/json-ld/#1-json-ld-in-edc"&gt;JSON-LD in EDC&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/json-ld/#1-json-ld-in-edc"&gt;1. JSON-LD in EDC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/json-ld/#11-compact-iri"&gt;1.1 Compact IRI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/json-ld/#12-custom-remote-context"&gt;1.2 Custom Remote Context&lt;/a&gt; * &lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/json-ld/#11-json-ld-validation"&gt;1.1 JSON-LD Validation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is a simple example taken from &lt;a href="https://json-ld.org"&gt;json-ld.org&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#000;font-weight:bold"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#204a87;font-weight:bold"&gt;&amp;#34;@context&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt; &lt;span style="color:#4e9a06"&gt;&amp;#34;https://json-ld.org/contexts/person.jsonld&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#204a87;font-weight:bold"&gt;&amp;#34;@id&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt; &lt;span style="color:#4e9a06"&gt;&amp;#34;http://dbpedia.org/resource/John_Lennon&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#204a87;font-weight:bold"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt; &lt;span style="color:#4e9a06"&gt;&amp;#34;John Lennon&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#204a87;font-weight:bold"&gt;&amp;#34;born&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt; &lt;span style="color:#4e9a06"&gt;&amp;#34;1940-10-09&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#204a87;font-weight:bold"&gt;&amp;#34;spouse&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt; &lt;span style="color:#4e9a06"&gt;&amp;#34;http://dbpedia.org/resource/Cynthia_Lennon&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#000;font-weight:bold"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It&amp;rsquo;s similar on how a &lt;code&gt;Person&lt;/code&gt; would be represented in JSON, with additional known properties such as &lt;code&gt;@context&lt;/code&gt; and
&lt;code&gt;@id&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;@id&lt;/code&gt; is used to uniquely identify an object.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;@context&lt;/code&gt; is used to define how &lt;a href="https://www.w3.org/TR/json-ld/#dfn-term"&gt;terms&lt;/a&gt; should be interpreted and help
expressing specific identifier with shorthand names instead
of &lt;a href="https://datatracker.ietf.org/doc/html/rfc3987#section-2"&gt;IRI&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Policy Monitor</title><link>https://eclipse-edc.github.io/documentation/for-contributors/control-plane/policy-monitor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/control-plane/policy-monitor/</guid><description>&lt;p&gt;Some transfer types, once accepted by the &lt;code&gt;provider&lt;/code&gt;, never reach the &lt;code&gt;COMPLETED&lt;/code&gt; state. Streaming and HTTP transfers in consumer pull scenario are examples of this. In those scenarios the transfer will remain active (&lt;code&gt;STARTED&lt;/code&gt;) until it gets terminated either manually by using the transfer processes &lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/entities/#7-transfer-processes"&gt;management API&lt;/a&gt;, or automatically by the policy monitor, if it has been configured in the EDC runtime.&lt;/p&gt;
&lt;p&gt;The policy monitor (&lt;code&gt;PolicyMonitorManager&lt;/code&gt;) is a component that watches over ongoing transfers on the provider side and ensures that the associated policies are still valid. The default implementation of the policy monitor tracks the monitored transfer processes in it&amp;rsquo;s own entity &lt;code&gt;PolicyMonitorEntry&lt;/code&gt; stored in the &lt;code&gt;PolicyMonitorStore&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Programming Primitives</title><link>https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#1-state-machines"&gt;1 State machines&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#11-batch-size-sorting-and-tick-over-timeout"&gt;1.1 Batch-size, sorting and tick-over timeout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#12-database-level-locking"&gt;1.2 Database-level locking&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#2-transformers"&gt;2. Transformers&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#21-basic-serialization-and-deserialization"&gt;2.1 Basic Serialization and Deserialization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#21-transformer-context"&gt;2.1 Transformer context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#22-segmented-transformer-registries"&gt;2.2 Segmented transformer registries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#23-reporting-transformation-errors"&gt;2.3 Reporting transformation errors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#3-token-generation-and-decorators"&gt;3. Token generation and decorators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#4-token-validation-and-rules"&gt;4. Token validation and rules&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#41-public-key-resolvers"&gt;4.1 Public Key Resolvers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#42-validation-rules"&gt;4.2 Validation Rules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/programming-primitives/#43-validation-rules-registry"&gt;4.3 Validation Rules Registry&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;h2 id="1-state-machines"&gt;1 State machines&lt;a class="td-heading-self-link" href="#1-state-machines" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;EDC is asynchronous by design, which means that processes are processed in such a way that they don&amp;rsquo;t block neither the
runtime nor the caller. For example starting a contract negotiation is a long-running process and every contract
negotiation has to traverse a series of
&lt;a href="https://docs.internationaldataspaces.org/ids-knowledgebase/v/dataspace-protocol/contract-negotiation/contract.negotiation.protocol#id-1.2-state-machine"&gt;states&lt;/a&gt;,
most of which involve sending remote messages to the counterparty. These state transitions are not guaranteed to happen
within a certain time frame, they could take hours or even days.&lt;/p&gt;</description></item><item><title>Protocol Extensions</title><link>https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#protocol-extensions"&gt;Protocol Extensions&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#1-remotemessage"&gt;1. RemoteMessage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#11-delivering-messages-with-remotemessagedispatcher"&gt;1.1 Delivering messages with RemoteMessageDispatcher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#12-handling-incoming-messages-with-protocol-services"&gt;1.2 Handling incoming messages with protocol services&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#2-dsp-protocol-implementation"&gt;2. DSP protocol implementation&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#21-remotemessage-handlers"&gt;2.1 &lt;code&gt;RemoteMessage&lt;/code&gt; handlers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#22-http-endpoints"&gt;2.2 HTTP endpoints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#22-remotemessage-transformers"&gt;2.2 &lt;code&gt;RemoteMessage&lt;/code&gt; transformers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;p&gt;The EDC officially supports the &lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#2-dsp-protocol"&gt;Dataspace protocol&lt;/a&gt; using the HTTPs bindings, but since it is an extensible platform, multiple protocol implementations can be supported for inter-connectors communication. Each supported protocols is identified by a unique key used by EDC for dispatching a &lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/control-plane/protocol-extensions/#1-remotemessage"&gt;remote message&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Service Layers</title><link>https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#1-api-controllers"&gt;1. API controllers&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#11-api-contexts"&gt;1.1 API contexts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#12-registering-controllers"&gt;1.2 Registering controllers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#13-registering-other-resources"&gt;1.3 Registering other resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#14-api-authentication"&gt;1.4 API Authentication&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#141-authentication-configuration"&gt;1.4.1 Authentication Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#142-manual-authentication-wiring"&gt;1.4.2 Manual Authentication wiring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#2-validators"&gt;2. Validators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#3-transformers"&gt;3. Transformers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#4-aggregate-services"&gt;4. Aggregate services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#5-data-persistence"&gt;5. Data persistence&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#51-in-memory-stores"&gt;5.1 In-Memory stores&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#6-events-and-callbacks"&gt;6. Events and Callbacks&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#61-event-vs-eventenvelope"&gt;6.1 &lt;code&gt;Event&lt;/code&gt; vs &lt;code&gt;EventEnvelope&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#62-registering-for-events-in-process"&gt;6.2 Registering for events (in-process)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#63-registering-for-callbacks-webhooks"&gt;6.3 Registering for callbacks (webhooks)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#64-emitting-custom-events"&gt;6.4 Emitting custom events&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/service-layers/#65-serialization-and-deserialization-of-custom-events"&gt;6.5 Serialization and Deserialization of custom events&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;p&gt;This document describes the EDC service layers.&lt;/p&gt;</description></item><item><title>Dependency Injection</title><link>https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#1-registering-a-service-implementation"&gt;1. Registering a service implementation&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#11-use-provider-methods-recommended"&gt;1.1 Use &lt;code&gt;@Provider&lt;/code&gt; methods (recommended)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#12-provide-defaults"&gt;1.2 Provide &amp;ldquo;defaults&amp;rdquo;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#13-register-manually-not-recommended"&gt;1.3 Register manually (not recommended)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#2-injecting-a-service"&gt;2. Injecting a service&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#21-use-inject-to-declare-dependencies-recommended"&gt;2.1 Use &lt;code&gt;@Inject&lt;/code&gt; to declare dependencies (recommended)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#22-use-requires-to-declare-dependencies"&gt;2.2 Use &lt;code&gt;@Requires&lt;/code&gt; to declare dependencies&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#3-injecting-configuration-values"&gt;3. Injecting configuration values&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#31-value-injection"&gt;3.1 Value injection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#32-config-object-injection"&gt;3.2 Config object injection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#33-handling-dependent-configuration"&gt;3.3. Handling dependent configuration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#4-extension-initialization-sequence"&gt;4. Extension initialization sequence&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#5-testing-extension-classes"&gt;5. Testing extension classes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#6-advanced-concepts-default-providers"&gt;6. Advanced concepts: default providers&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#61-fallbacks-versus-extensibility"&gt;6.1 Fallbacks versus extensibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#62-fallback-implementations"&gt;6.2 Fallback implementations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#63-extensibility"&gt;6.3 Extensibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#64-deep-dive-into-extension-lifecycle-management"&gt;6.4 Deep-dive into extension lifecycle management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#65-example-1---provider-method"&gt;6.5 Example 1 - provider method&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#66-example-2---default-provider-method"&gt;6.6 Example 2 - default provider method&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#67-usage-guidelines-when-using-default-providers"&gt;6.7 Usage guidelines when using default providers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/dependency-injection/#7-limitations"&gt;7. Limitations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;h2 id="1-registering-a-service-implementation"&gt;1. Registering a service implementation&lt;a class="td-heading-self-link" href="#1-registering-a-service-implementation" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As a general rule, the module that provides the implementation also should register it with the
&lt;code&gt;ServiceExtensionContext&lt;/code&gt;. This is done in an accompanying service extension. For example, providing a &amp;ldquo;FunkyDB&amp;rdquo; based
implementation for a &lt;code&gt;FooStore&lt;/code&gt; (stores &lt;code&gt;Foo&lt;/code&gt; objects) would require the following classes:&lt;/p&gt;</description></item><item><title>Developer Tools</title><link>https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#1-introduction"&gt;1. Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#2-edc-build"&gt;2. &lt;code&gt;edc-build&lt;/code&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#21-usage"&gt;2.1. Usage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#3-autodoc"&gt;3. &lt;code&gt;autodoc&lt;/code&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#31-usage"&gt;3.1. Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#311-add-the-plugin-to-the-buildscript-block-of-your-buildgradlekts"&gt;3.1.1. Add the plugin to the &lt;code&gt;buildscript&lt;/code&gt; block of your &lt;code&gt;build.gradle.kts&lt;/code&gt;:&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#312-apply-the-plugin-to-the-project"&gt;3.1.2. Apply the plugin to the project:&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#313-configure-the-plugin-optional"&gt;3.1.3. Configure the plugin [optional]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#32-merging-the-manifests"&gt;3.2. Merging the manifests&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#33-rendering-manifest-files-as-markdown-or-html"&gt;3.3. Rendering manifest files as Markdown or HTML&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/developer-tools/#34-using-published-manifest-files-mavencentral"&gt;3.4. Using published manifest files (MavenCentral)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;h2 id="1-introduction"&gt;1. Introduction&lt;a class="td-heading-self-link" href="#1-introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;We provide two Gradle plugins that could be used to simplify your build/documentation efforts.&lt;/p&gt;</description></item><item><title>Identity-Hub</title><link>https://eclipse-edc.github.io/documentation/autodoc/identity-hub/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/autodoc/identity-hub/</guid><description>&lt;h2 id="module-attestation-api"&gt;Module &lt;code&gt;attestation-api&lt;/code&gt;&lt;a class="td-heading-self-link" href="#module-attestation-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Artifact:&lt;/strong&gt; org.eclipse.edc:attestation-api:0.17.0&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Categories:&lt;/strong&gt; &lt;em&gt;None&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="extension-points"&gt;Extension points&lt;a class="td-heading-self-link" href="#extension-points" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;em&gt;None&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="extensions"&gt;Extensions&lt;a class="td-heading-self-link" href="#extensions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 id="class-orgeclipseedcissuerserviceapiadmincredentialsissuerattestationadminapiextension"&gt;Class: &lt;code&gt;org.eclipse.edc.issuerservice.api.admin.credentials.IssuerAttestationAdminApiExtension&lt;/code&gt;&lt;a class="td-heading-self-link" href="#class-orgeclipseedcissuerserviceapiadmincredentialsissuerattestationadminapiextension" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Name:&lt;/strong&gt; &amp;ldquo;Issuer Service Credentials Admin API Extension&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt; No overview provided.&lt;/p&gt;
&lt;h3 id="configuration_none_"&gt;Configuration_None_&lt;a class="td-heading-self-link" href="#configuration_none_" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 id="provided-services"&gt;Provided services&lt;a class="td-heading-self-link" href="#provided-services" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;em&gt;None&lt;/em&gt;&lt;/p&gt;
&lt;h4 id="referenced-injected-services"&gt;Referenced (injected) services&lt;a class="td-heading-self-link" href="#referenced-injected-services" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.web.spi.WebService&lt;/code&gt; (required)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.issuerservice.spi.issuance.attestation.AttestationDefinitionService&lt;/code&gt; (required)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.api.auth.spi.AuthorizationService&lt;/code&gt; (required)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="module-common-core"&gt;Module &lt;code&gt;common-core&lt;/code&gt;&lt;a class="td-heading-self-link" href="#module-common-core" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Artifact:&lt;/strong&gt; org.eclipse.edc:common-core:0.17.0&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Categories:&lt;/strong&gt; &lt;em&gt;None&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="extension-points-1"&gt;Extension points&lt;a class="td-heading-self-link" href="#extension-points-1" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;em&gt;None&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="extensions-1"&gt;Extensions&lt;a class="td-heading-self-link" href="#extensions-1" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 id="class-orgeclipseedcidentityhubdiscriminatormappingextension"&gt;Class: &lt;code&gt;org.eclipse.edc.identityhub.DiscriminatorMappingExtension&lt;/code&gt;&lt;a class="td-heading-self-link" href="#class-orgeclipseedcidentityhubdiscriminatormappingextension" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Name:&lt;/strong&gt; &amp;ldquo;Discriminator Mapping Extension&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt; No overview provided.&lt;/p&gt;
&lt;h3 id="configuration"&gt;Configuration&lt;a class="td-heading-self-link" href="#configuration" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Required&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Pattern&lt;/th&gt;
 &lt;th&gt;Min&lt;/th&gt;
 &lt;th&gt;Max&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;edc.identityhub.discriminator.&amp;lt;alias&amp;gt;.value&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;``&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;the full value for the discriminator&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;edc.identityhub.discriminator.&amp;lt;alias&amp;gt;.alias&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;``&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;the discriminator alias&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="provided-services-1"&gt;Provided services&lt;a class="td-heading-self-link" href="#provided-services-1" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.edc.identityhub.spi.transformation.DiscriminatorMappingRegistry&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="referenced-injected-services-1"&gt;Referenced (injected) services&lt;a class="td-heading-self-link" href="#referenced-injected-services-1" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;em&gt;None&lt;/em&gt;&lt;/p&gt;</description></item><item><title>OpenApi spec</title><link>https://eclipse-edc.github.io/documentation/for-contributors/openapi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/openapi/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/openapi/#generate-yaml-files"&gt;Generate &lt;code&gt;*.yaml&lt;/code&gt; files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/openapi/#gradle-plugins"&gt;Gradle Plugins&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/openapi/#categorizing-your-api"&gt;Categorizing your API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/openapi/#how-to-generate-code"&gt;How to generate code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;p&gt;It is possible to generate an OpenApi spec in the form of a &lt;code&gt;*.yaml&lt;/code&gt; file by invoking two simple Gradle tasks.&lt;/p&gt;
&lt;h2 id="generate-yaml-files"&gt;Generate &lt;code&gt;*.yaml&lt;/code&gt; files&lt;a class="td-heading-self-link" href="#generate-yaml-files" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Every module (=subproject) that contains REST endpoints is scanned for Jakarta Annotations which are then used to
generate a &lt;code&gt;*.yaml&lt;/code&gt; specification for that particular module. This means that there is one &lt;code&gt;*.yaml&lt;/code&gt;file &lt;em&gt;per module&lt;/em&gt;,
resulting in several &lt;code&gt;*.yaml&lt;/code&gt; files.&lt;/p&gt;</description></item><item><title>Custom Data Plane</title><link>https://eclipse-edc.github.io/documentation/for-contributors/data-plane/custom-data-plane/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/data-plane/custom-data-plane/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/data-plane/custom-data-plane/#1-the-registration-phase"&gt;1. The Registration Phase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/data-plane/custom-data-plane/#2-handling-dps-messages"&gt;2. Handling DPS messages&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/data-plane/custom-data-plane/#21-start"&gt;2.1 &lt;code&gt;START&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/data-plane/custom-data-plane/#211-push"&gt;2.1.1 &lt;code&gt;PUSH&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/data-plane/custom-data-plane/#212-pull"&gt;2.1.2 &lt;code&gt;PULL&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/data-plane/custom-data-plane/#22-suspend-and-terminate"&gt;2.2 &lt;code&gt;SUSPEND&lt;/code&gt; and &lt;code&gt;TERMINATE&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;p&gt;When the data-plane is not embedded, EDC uses the Data Plane Signaling protocol (&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/data-plane/data-plane-signaling/"&gt;DPS&lt;/a&gt;)
for the communication between control plane and data plane. In this chapter we will see how to leverage on &lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/data-plane/data-plane-signaling/"&gt;DPS&lt;/a&gt;
for writing a custom data plane from scratch.&lt;/p&gt;
&lt;p&gt;For example purposes, this chapter contains JS snippets that use &lt;code&gt;express&lt;/code&gt; as web framework.&lt;/p&gt;</description></item><item><title>Data Persistence with PostgreSQL</title><link>https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#1-configuring-datasources"&gt;1. Configuring DataSources&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#12-using-custom-datasource-in-stores"&gt;1.2 Using custom datasource in stores&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#2-sql-statement-abstraction"&gt;2. SQL Statement abstraction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#3-querying-postgresql-databases"&gt;3. Querying PostgreSQL databases&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#31-the-canonical-form"&gt;3.1 The canonical form&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#31-translation-mappings"&gt;3.1 Translation Mappings&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#311-mapping-primitive-fields"&gt;3.1.1 Mapping primitive fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#312-mapping-complex-objects"&gt;3.1.2 Mapping complex objects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#option-1-using-foreign-keys"&gt;Option 1: using foreign keys&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#option-2a-encoding-the-object"&gt;Option 2a: encoding the object&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/postgres-persistence/#option-2b-encoding-listsarrays"&gt;Option 2b: encoding lists/arrays&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;p&gt;By default, the &lt;code&gt;in-memory&lt;/code&gt; stores are provided by the dependency injection, the &lt;code&gt;sql&lt;/code&gt; implementations can be used by
simply registering the relative extensions (e.g. &lt;code&gt;asset-index-sql&lt;/code&gt;, &lt;code&gt;contract-negotiation-store-sql&lt;/code&gt;, &amp;hellip;).&lt;/p&gt;</description></item><item><title>Extension Model</title><link>https://eclipse-edc.github.io/documentation/for-contributors/runtime/extension-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/runtime/extension-model/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/extension-model/#1-extension-basics"&gt;1. Extension basics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/extension-model/#2-autodoc-and-metamodel-annotations"&gt;2. Autodoc and Metamodel Annotations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/runtime/extension-model/#3-configuration-and-best-practices"&gt;3. Configuration and best practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;h2 id="1-extension-basics"&gt;1. Extension basics&lt;a class="td-heading-self-link" href="#1-extension-basics" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Three things are needed to register an extension module with the EDC runtime:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;a class that implements &lt;code&gt;ServiceExtension&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;a &lt;a href="https://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html"&gt;provider-configuration file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;adding the module to your runtime&amp;rsquo;s build file. EDC uses Gradle, so your runtime build file should contain&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-groovy" data-lang="groovy"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#000"&gt;runtimeOnly&lt;/span&gt;&lt;span style="color:#ce5c00;font-weight:bold"&gt;(&lt;/span&gt;&lt;span style="color:#000"&gt;project&lt;/span&gt;&lt;span style="color:#ce5c00;font-weight:bold"&gt;(&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;:module:path:of:your:extension&amp;#34;&lt;/span&gt;&lt;span style="color:#ce5c00;font-weight:bold"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Extensions should &lt;strong&gt;not&lt;/strong&gt; contain business logic or application code. Their main job is to&lt;/p&gt;</description></item><item><title>Logging</title><link>https://eclipse-edc.github.io/documentation/for-contributors/logging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/logging/</guid><description>&lt;p&gt;A comprehensive and consistent way of logging is a crucial pillar for operability. Therefore, the following rules should be followed:&lt;/p&gt;
&lt;h2 id="logging-component"&gt;Logging component&lt;a class="td-heading-self-link" href="#logging-component" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Logs must only be produced using the &lt;code&gt;Monitor&lt;/code&gt; service, which offers 4 different log levels:&lt;/p&gt;
&lt;h3 id="severe"&gt;&lt;code&gt;severe&lt;/code&gt;&lt;a class="td-heading-self-link" href="#severe" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Error events that might lead the application to abort or still allow it to continue running.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Used in case of an unexpected interruption of the flow or when something is broken, i.e. an operator has to take action.
e.g. service crashes, database in illegal state, &amp;hellip; even if there is chance of self recovery.&lt;/p&gt;</description></item><item><title>Writing tests</title><link>https://eclipse-edc.github.io/documentation/for-contributors/testing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/testing/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#1-adding-edc-test-fixtures"&gt;1. Adding EDC test fixtures&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#2-controlling-test-verbosity"&gt;2. Controlling test verbosity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#3-definition-and-distinction"&gt;3. Definition and distinction&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#31-coding-guidelines"&gt;3.1 Coding Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#4-integration-tests"&gt;4. Integration Tests&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#41-tldr"&gt;4.1 TL;DR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#42-when-to-use-them"&gt;4.2 When to use them&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#44-running-integration-tests-locally"&gt;4.4 Running integration tests locally&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#45-running-them-in-the-ci-pipeline"&gt;4.5 Running them in the CI pipeline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#46-dos-and-donts"&gt;4.6 Do&amp;rsquo;s and Don&amp;rsquo;ts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#5-system-tests"&gt;5. System tests&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#51-running-an-edc-instance-from-a-junit-test"&gt;5.1 Running an EDC instance from a JUnit test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/testing/#52-solve-potential-port-conflict-issues-with-testcontainers"&gt;5.2 Solve potential port conflict issues with Testcontainers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;h2 id="1-adding-edc-test-fixtures"&gt;1. Adding EDC test fixtures&lt;a class="td-heading-self-link" href="#1-adding-edc-test-fixtures" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;To add EDC test utilities and test fixtures to downstream projects, simply add the following Gradle dependency:&lt;/p&gt;</description></item><item><title>Known Friends</title><link>https://eclipse-edc.github.io/documentation/known-friends/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/known-friends/</guid><description>&lt;p&gt;To get to know how we define &amp;ldquo;adoptions&amp;rdquo; and see how to submit a feature, please take a look at our
&lt;a href="https://eclipse-edc.github.io/documentation/adoption/"&gt;guidelines for submitting adoption requests&lt;/a&gt;.&lt;/p&gt;
&lt;div class="ft" data-ft
 data-ft-title-header="Title"
 data-ft-desc-header="Description"&gt;

 &lt;div class="ft-controls"&gt;
 &lt;label class="ft-label" for="ft-1777973772116924742"&gt;Filter&lt;/label&gt;
 &lt;input
 id="ft-1777973772116924742"
 class="ft-input"
 type="search"
 placeholder="Filter by title or description…"
 autocomplete="off"
 /&gt;
 &lt;div class="ft-status" aria-live="polite"&gt;&lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="ft-content"&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;Title&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Description&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Links&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;EDC Extension for Asset Administration Shell (AAS)&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Asset Administration Shell (AAS) data can be manually shared over the EDC by linking an EDC Asset to the HTTP endpoint of the specific AAS element. Additionally, contracts and policies have to be defined for each element. In order to minimize configuration effort and prevent errors, this extension is able to link existing AAS services and its elements to the EDC automatically. Furthermore, this extension can also start an AAS service by reading an static AAS model file. A default contract and policy can be chosen to be applied for all elements. For critical elements, additional contracts and policies can be placed. External changes to the structure of an AAS are automatically synchronized by the extension.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/FraunhoferIOSB/EDC-Extension-for-AAS"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Eclipse Tractus-X EDC&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Extension of the EDC Connector for &amp;ldquo;Manufacturing-X&amp;rdquo; dataspaces that are based on the &lt;a href="https://catena-x.net/"&gt;Catena-X&lt;/a&gt; data ecosystem. The Tractus-X EDC focus in the automatization of the data exchange and contract negotiation withouth human interaction. Additionally it offers a number of optimizations like the &amp;ldquo;Endpoint Data Reference&amp;rdquo; (EDR) interface which simplifies the data negotiation and transfer mechanism, handling token callback for the business applications. It provides also a token refresh handler, an optional BPN-DID resolution service for easier identification of the partners and &amp;ldquo;restricts&amp;rdquo; the usage of &amp;ldquo;odrl&amp;rdquo; policies based on legal requirements, provided by several company lawyers, which stablished the &lt;a href="https://catenax-ev.github.io/docs/regulatory-framework/governance-framework"&gt;goverance/regulatory framework from Catena-X&lt;/a&gt;, enabling the data exchange in a data ecosystem, via this EDC Connector, to be done with legal coverage. Additionally, this EDC Connector offers a deployment configuration via Helm Charts and an extensive architecture documentation from Business/Adoption Level to Development/Operation Level in the &lt;a href="https://eclipse-tractusx.github.io/docs-kits/kits/connector-kit/adoption-view"&gt;Eclipse Tractus-X Connector KIT&lt;/a&gt;.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/eclipse-tractusx/tractusx-edc"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Data tracking by auditing data&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Proof of concept of how to track data usage by aggregating audit-logs of different components in a single instance: The work presents a first proof of concept of how traceability of data usage can be implemented using the EDC Connector event framework and audit logging. In this PoC, the traceability of data is limited to the AWS dataplane. The EDC Connector logs which exact assets are stored with which key in the AWS bucket. With this information, data usage can be traced from the shared logs of the EDC Connector and the AWS S3 bucket. Elasticsearch was chosen as the instance to merge both logs in this project. A simple Python script takes over the analysis of the log data.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/FraunhoferISST/edc-data-tracebility-app"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;EDC GUI&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Extended EDC Data Dashboard that integrates the open-source EDC Connector interfaces while adding asset properties and form validation, providing design and UX changes, and introducing configuration profiles.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/sovity/edc-ui"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;EDC Connector HTTP client&lt;/td&gt;
 &lt;td style="text-align: left"&gt;An HTTP client to communicate with the EDC Connector for Node.js and the browser.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/Think-iT-Labs/edc-connector-client"&gt;Link to repository&lt;/a&gt; &lt;a href="https://www.npmjs.com/package/@think-it-labs/edc-connector-client"&gt;npm&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Integration for Microsoft Dynamics 365 and Power Platform&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The prototype demonstrates how to publish product information from a &lt;a href="https://learn.microsoft.com/en-us/power-apps/powerapps-overview"&gt;Microsoft Power App&lt;/a&gt; to a participant in an existing dataspace. The &lt;a href="https://learn.microsoft.com/en-us/connectors/custom-connectors/define-blank"&gt;Microsoft Power Automate custom connector&lt;/a&gt; calls the EDC endpoints from the Nocode/lowcode platform to publish an asset and create a contract. This example shows the integration into the &lt;a href="https://learn.microsoft.com/en-us/power-apps/maker/data-platform/data-platform-intro"&gt;Microsoft Dataverse&lt;/a&gt;.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/edc-oneweek/MinimumViableDataspace/blob/2c20b19b2a70b0631818a25112d04e9cc9fad414/dataverse/README.md"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Silicon Economy EDC&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The Silicon Economy EDC is a configured version from the Connector of the Eclipse Dataspace Components (EDC). It is used and specialized to easily integrate Silicon Economy components with the IDS.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://git.openlogisticsfoundation.org/silicon-economy/base/ids/silicon-economy-edc"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;EDC Extension for IONOS S3 storage&lt;/td&gt;
 &lt;td style="text-align: left"&gt;We are providing an EDC extension to allow the connector to save and to access files kept into an IONOS S3 storage&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/ionos-cloud/edc-ionos-s3"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;EDC metadata extractor extension&lt;/td&gt;
 &lt;td style="text-align: left"&gt;This extension is a PoC to automatically extract metadata of a file that can be used for further processing (e.g., calculating the FAIRness score).&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://gitlab.fit.fraunhofer.de/ameerali.khan/edc-metadata-extractor-extension"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Huawei Dataspace Components&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Technology repository containing OBS (S3-compatible object storage hosted in the cloud) and GaussDB (a relational database based on Postgres 9.2.4 as data retention backend) extensions&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/eclipse-edc/Technology-HuaweiCloud"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;A Rust client for EDC connector&lt;/td&gt;
 &lt;td style="text-align: left"&gt;A Rust HTTP client to communicate with the EDC Connector.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/dataspace-rs/edc-rs"&gt;Link to repository&lt;/a&gt; &lt;a href="https://crates.io/crates/edc-connector-client"&gt;Link to crates.io&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;EDC Connector TUI&lt;/td&gt;
 &lt;td style="text-align: left"&gt;A TUI client for EDC Connector written in Rust&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://github.com/dataspace-rs/edc-connector-tui"&gt;Link to repository&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&amp;hellip;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&amp;hellip;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&amp;hellip;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Custom validation framework</title><link>https://eclipse-edc.github.io/documentation/for-contributors/custom-validation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/custom-validation/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/custom-validation/#when-to-use-it"&gt;When to use it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/custom-validation/#building-blocks"&gt;Building blocks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/custom-validation/#limitations-and-caveats"&gt;Limitations and caveats&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;p&gt;The validation framework hooks into the normal Jetty/Jersey request dispatch mechanism and is designed to allow users to
intercept the request chain to perform additional validation tasks. In its current form it is intended for intercepting
REST requests. Users can elect any validation framework they desire, such as &lt;code&gt;jakarta.validation&lt;/code&gt; or
the &lt;a href="https://commons.apache.org/proper/commons-validator/"&gt;Apache Commons Validator&lt;/a&gt;, or they can implement one
themselves.&lt;/p&gt;</description></item><item><title>Getting adopted</title><link>https://eclipse-edc.github.io/documentation/adoption/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/adoption/</guid><description>&lt;p&gt;This document is intended as guideline for contributors who either already have implemented a feature, e.g. an
extension, or intend to do so, and are looking for ways to upstream that feature into the EDC.&lt;/p&gt;
&lt;p&gt;There are currently two possible levels of adoption for the EDC project:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;incorporate a feature as core EDC component&lt;/li&gt;
&lt;li&gt;reference a feature as &amp;ldquo;friend&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="get-referenced-as-friend"&gt;Get referenced as &amp;ldquo;friend&amp;rdquo;&lt;a class="td-heading-self-link" href="#get-referenced-as-friend" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;This means we will add a link to our &lt;a href="https://eclipse-edc.github.io/documentation/known-friends/"&gt;known friends&lt;/a&gt; list, where we reference projects and features
that we are aware of. These are repositories that have no direct affiliation with EDC and are hosted outside the
&lt;code&gt;eclipse-edc&lt;/code&gt; GitHub organization. We call this a &amp;ldquo;friend&amp;rdquo; of EDC (derived from the C++ &lt;a href="https://en.cppreference.com/w/cpp/language/friend"&gt;
&lt;code&gt;friend class&lt;/code&gt; concept&lt;/a&gt;).
In order to become a &amp;ldquo;friend&amp;rdquo; of EDC, we do a quick scan of the code base to make sure it does not contain anything
offensive, or that contradicts our code of conduct, ethics or other core OSS values.&lt;/p&gt;</description></item><item><title>Release process</title><link>https://eclipse-edc.github.io/documentation/for-contributors/guidelines/release-process/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/guidelines/release-process/</guid><description>&lt;p&gt;EDC is a set of java modules, that are released all together as a whole with a single version number across all the
different code repositories, that are, to date:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/eclipse-edc/Runtime-Metamodel"&gt;Runtime-Metamodel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eclipse-edc/GradlePlugins"&gt;GradlePlugins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eclipse-edc/Connector"&gt;Connector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eclipse-edc/IdentityHub"&gt;IdentityHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eclipse-edc/FederatedCatalog"&gt;FederatedCatalog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eclipse-edc/Technology-Aws"&gt;Technology-Aws&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eclipse-edc/Technology-Azure"&gt;Technology-Azure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eclipse-edc/Technology-Gcp"&gt;Technology-Gcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eclipse-edc/Technology-HuaweiCloud"&gt;Technology-HuaweiCloud&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: the &lt;code&gt;Technology&lt;/code&gt; repositories are not considered part of the core release and the committer group is not accountable
for unreleased versions of those components.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The released artifacts are divided in 3 categories:&lt;/p&gt;</description></item><item><title>Committers</title><link>https://eclipse-edc.github.io/documentation/committers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/committers/</guid><description>&lt;p&gt;Committers decide what code goes into the code base, they decide how a project builds, and they ultimately decide what
gets delivered to the adopter community. With awesome power, comes awesome responsibility, and
so &lt;a href="https://www.eclipse.org/projects/dev_process/#2_1_Open_Source_Rules_of_Engagement"&gt;the Open Source Rules of Engagement&lt;/a&gt;
described by &lt;a href="https://www.eclipse.org/projects/dev_process/"&gt;the Eclipse Foundation Development Process&lt;/a&gt; puts
meritocracy on equal footing with transparency and openness: becoming a committer isn’t necessarily hard, but it does
require a demonstration of merit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operate in an open, transparent, and meritocratic manner;&lt;/li&gt;
&lt;li&gt;Write code (and other project content) and push it directly into the project’s source code repository;&lt;/li&gt;
&lt;li&gt;Review contributions (merge and pull requests) from contributors;&lt;/li&gt;
&lt;li&gt;Engage in the Intellectual Property Due Diligence Process;&lt;/li&gt;
&lt;li&gt;Vote in committer and project lead elections;&lt;/li&gt;
&lt;li&gt;Engage in the project planning process; and&lt;/li&gt;
&lt;li&gt;Otherwise represent the interests of the open source project.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For Eclipse projects (and the open source world in general), committers are the ones who hold the keys. Committers are
either appointed at the time of project creation or elected by the existing project team.&lt;/p&gt;</description></item><item><title>Instrumentation with Micrometer</title><link>https://eclipse-edc.github.io/documentation/for-contributors/metrics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/documentation/for-contributors/metrics/</guid><description>&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/metrics/#micrometer-extension"&gt;Micrometer Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/metrics/#jetty-micrometer-extension"&gt;Jetty Micrometer Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/metrics/#jersey-micrometer-extension"&gt;Jersey Micrometer Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/metrics/#instrumenting-executorservices"&gt;Instrumenting ExecutorServices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse-edc.github.io/documentation/for-contributors/metrics/#configuration"&gt;Configuration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;p&gt;EDC provides extensions for instrumentation with the &lt;a href="https://micrometer.io/"&gt;Micrometer&lt;/a&gt; metrics library to automatically collect metrics from the host system, JVM, and frameworks and libraries used in EDC (including OkHttp, Jetty, Jersey and ExecutorService).&lt;/p&gt;
&lt;p&gt;See &lt;a href="https://github.com/eclipse-edc/Samples/tree/main/transfer/transfer-04-event-consumer/README.md"&gt;sample 04.3&lt;/a&gt; for an example of an instrumented EDC consumer.&lt;/p&gt;
&lt;h2 id="micrometer-extension"&gt;Micrometer Extension&lt;a class="td-heading-self-link" href="#micrometer-extension" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;This extension provides support for instrumentation for some core EDC components:&lt;/p&gt;</description></item><item><title>Management API upcoming versions</title><link>https://eclipse-edc.github.io/blog/2026/02/19/management-api-upcoming-versions/</link><pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/blog/2026/02/19/management-api-upcoming-versions/</guid><description>&lt;p&gt;The current, stable Management API of EDC Connector version 3 has served well during the last 2 years, but changes in the underlying protocols and the solidification of the EDC-V concept demand new versions.&lt;/p&gt;
&lt;h2 id="rationale"&gt;Rationale&lt;a class="td-heading-self-link" href="#rationale" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;There will be 2 new Management API version releases.&lt;/p&gt;
&lt;h3 id="version-4"&gt;Version 4&lt;a class="td-heading-self-link" href="#version-4" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Version 4, which is already in its beta phase (as you can check in the &lt;a href="https://eclipse-edc.github.io/Connector/openapi/management-api/"&gt;OpenAPI documentation&lt;/a&gt;, so you can test it out and provide feedback), has been introduced to better align with the &lt;a href="https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/"&gt;DSP 2025-1 spec&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Data Plane Signaling</title><link>https://eclipse-edc.github.io/blog/2026/01/19/data-plane-signaling/</link><pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/blog/2026/01/19/data-plane-signaling/</guid><description>&lt;p&gt;Data Plane Signaling is a specification for interoperable communication between Dataspace Protocol Control Planes and
Data Planes (&lt;a href="https://github.com/eclipse-dataplane-signaling"&gt;github project&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;We decided to fully adopt this specification and to deprecate the current approach. This will involve deprecating the
current implementation of the communication layer between the Control Plane and Data Plane in addition to the EDC Data
Plane Framework.&lt;/p&gt;
&lt;h2 id="rationale"&gt;Rationale&lt;a class="td-heading-self-link" href="#rationale" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The Data Plane Signaling specification addresses key architectural ambiguities by clearly delineating the roles of the
Control Plane (orchestration and protocol-level authentication) and the Data Plane (actual data transfer and flow-specific
authentication). This separation resolves design confusion, establishes symmetry between push and pull patterns, and,
most importantly, creates a standard interface. This allows any application to become a compliant Data Plane,
fostering innovation and moving the industry toward a future where data sharing is a seamless, integrated layer within
sovereign applications, rather than a connector-centric task.&lt;/p&gt;</description></item><item><title/><link>https://eclipse-edc.github.io/blog/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/blog/1/01/01/</guid><description>&lt;h1 id="the-path-to-version-1-for-the-eclipse-dataspace-components"&gt;The Path to Version 1 for the Eclipse Dataspace Components&lt;a class="td-heading-self-link" href="#the-path-to-version-1-for-the-eclipse-dataspace-components" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;The &lt;a href="https://github.com/eclipse-edc"&gt;Eclipse Dataspace Components (EDC)&lt;/a&gt; project has evolved significantly since its initial release. What started as an experimental reference implementation for dataspace connectors has grown into a mature, modular framework used in a variety of production-grade data sharing environments.&lt;/p&gt;
&lt;p&gt;Over the past few years, the project has continuously expanded its capabilities, aligned with emerging dataspace specifications, and improved its operational maturity. With these developments in place, the project is now approaching an important milestone: &lt;strong&gt;Version 1.0&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Search Results</title><link>https://eclipse-edc.github.io/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse-edc.github.io/search/</guid><description/></item></channel></rss>