You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
client: The client extension: Automated contract negotiation from HTTP endpoints
config: Checkstyle files for code formatting
data-plane-aas: AAS data plane implementation (following HTTP data plane)
edc-extension4aas: The AAS extension
example: Example use case for the AAS extension with a preconfigured EDC launcher.
public-api-management: Managing outward facing endpoints (http) which require no authentication
Example Usage
For a data transfer example using two connectors communicating with the DSP protocol, check
the example's README.
Functionality
AAS data can be shared over the EDC by linking an EDC Asset to the HTTP endpoint of the AAS element/submodel.
Additionally,
contracts have to be defined for each element. In order to minimize configuration effort and prevent errors, this
extension is able to link running AAS into EDC Assets by connecting to AAS repositories or AAS registries. Furthermore,
this
extension can also start an AAS repository by reading an AAS
model (AASX / JSON). A default contract can be chosen to be applied for all elements. For critical elements, additional
contracts can
be placed via API. External changes to the model of an AAS are automatically synchronized by the extension, reducing
management of metadata significantly.
Additionally, a client extension providing API calls for aggregations of processes such as contract negotiation and data
transfer is available. The result is a one-click negotiation and data transfer, ideal for SME or individuals.
Use Cases
Provide digital twin (AAS) data to business partners in Data Spaces. Data Providers can share their AAS Repository / AAS
Registry with other participants.
Technical Details
Interfaces
Provider Interfaces
HTTP Method
Interface (edc:1234/api/...) ((a) = only for authenticated users)
Parameters ((r) = required)
Description
GET
config (a)
-
Get current extension configuration values.
PATCH
config (a)
Body: Updated config values (JSON) (r)
Update config values.
POST
service (a)
Query Parameter "url" (r)
Register a standalone AAS service (e.g., FA³ST) to this extension.
DELETE
service (a)
Query Parameter "url" (r)
Unregister an AAS service (e.g., FA³ST) from this extension, possibly shutting down the service if it has been started internally.
POST
registry (a)
Query Parameter "url" (r)
Register an AAS registry (e.g., FA³ST) to this extension.
DELETE
registry (a)
Query Parameter "url" (r)
Unregister an AAS registry (e.g., FA³ST) from this extension.
POST
environment (a)
Query Parameters: "environment": Path to AAS environment (r), "port": HTTP communication port of service to be created , "config": Path to an AAS service configuration file
Start a new AAS service internally. If a port is provided explicitly, this port will be used for communications with the AAS service.
GET
selfDescription
Query Parameter "url" (r)
Return the self-description of all registered services/registries of this extension. If url is defined, return only this self-description.
Client Interfaces
HTTP Method
Interface (edc:1234/api/automated/...) ((a) = only for authenticated users)
Perform an automated contract negotiation with a provider (given provider URL and ID) and get the data stored for the specified asset. Optionally, a data destination URL can be specified where the data is sent to instead of the extension's log, or a data address can be provided through the request body which defines the data destination
Submits a data transfer request to the providerUrl. On success, returns the data behind the specified asset. Optionally, a data destination URL can be specified where the data is sent to instead of the extension's log.
POST
acceptedPolicies (a)
request body: List of PolicyDefinitions (JSON) (r)
Adds the given PolicyDefinitions to the accepted PolicyDefinitions list (Explanation: On fully automated negotiation, the provider's PolicyDefinition is matched against the consumer's accepted PolicyDefinitions list. If any PolicyDefinition fits the provider's, the negotiation continues.) Returns "OK"-Response if requestBody is valid.
GET
acceptedPolicies (a)
-
Returns the client extension's accepted policy definitions for fully automated negotiation.
Accept self-signed certificates from ALL AAS services (internal+external, provider+consumer)
edc.dataplane.aas.acceptOwnSelfSignedCertificates
True/False
Accept self-signed certificates from registered services (example: Creating AAS service in extension -> extension registers service at dataplane to allow its self-signed certificate)
EDC-Extension-for-AAS
Key
Value Type
Description
edc.aas.defaultAccessPolicyPath
path
Path to an access policy file (JSON). This policy will be used as the default access policy for all assets created after the configuration value has been set.
edc.aas.defaultContractPolicyPath
path
Path to a contract policy file (JSON). This policy will be used as the default contract policy for all assets created after the configuration value has been set.
edc.aas.exposeSelfDescription
boolean
Whether the Self Description should be exposed on {edc}/api/selfDescription. When set to False, the selfDescription is still available for authenticated requests. Default: True
Path to AAS config for locally started AAS service. Required, if localAASServicePort is not defined, but localAASModelPath is defined.
edc.aas.localAASServicePort
Open network port
Port to locally created AAS service. Required, if localAASModelPath is defined and localAASServiceConfigPath is not defined.
edc.aas.onlySubmodels
boolean
(Provider) Only register submodels of AAS services. Default: False
edc.aas.remoteAasLocation
URL
Register a URL of an AAS service (such as FA³ST) that is already running and is conformant with official AAS API specification
edc.aas.syncPeriod
number in seconds
Time period in which AAS services should be polled for structural changes (added/deleted elements etc.). Default: 5 (seconds).
Client Extension
Key
Value Type
Description
edc.client.acceptAllProviderOffers
True/False
Accept any contractOffer offered by all provider connectors on automated contract negotiation (e.g., trusted provider)
edc.client.acceptedPolicyDefinitionsPath
path
Path pointing to a JSON-file containing acceptable PolicyDefinitions for automated contract negotiation in a list (only policies must match in a provider's PolicyDefinition)
edc.client.waitForAgreementTimeout
whole number in seconds
How long should the extension wait for an agreement when automatically negotiating a contract? Default value is 10(s).
edc.client.waitForTransferTimeout
whole number in seconds
How long should the extension wait for a data transfer when automatically negotiating a contract? Default value is 10(s).