Skip to content

Aas Registry

Kevalkumar edited this page Jan 23, 2026 · 1 revision

Purpose

The AAS Registry API exposes Shell Descriptors. It allows clients to:

  • Discover which Asset Administration Shells exist.
  • Retrieve descriptors for specific shells.

Main Endpoints

Get ShellDescriptors

  • Method: GET
  • Route: /shell-descriptors
  • Query parameters:
    • limit (int, optional) – Maximum number of items to return.
    • cursor (string, optional) – Paging cursor for fetching the next page.
  • Request body: None
  • Responses:
    • 200 OK – Returns a paginated list of ShellDescriptor objects.
                   {
                    "paging_metadata": {
                      "cursor": null
                    },
                    "result": [
                      {
                        "description": null,
                        "displayName": null,
                        "extensions": null,
                        "administration": null,
                        "assetKind": 0,
                        "assetType": 0,
                        "endpoints": [
                          {
                            "interface": "AAS-3.0",
                            "protocolInformation": {
                              "href": "https://localhost:5059/shells/aHR0cHM6Ly9leGFtcGxlLmNvbS9pZHMvYWFzLzExNzBfMTE2MF8zMDUyXzY1Njg",
                              "endpointProtocol": "http",
                              "endpointProtocolVersion": null,
                              "subprotocol": null,
                              "subprotocolBody": null,
                              "subprotocolBodyEncoding": null,
                              "securityAttributes": null
                            }
                          }
                        ],
                        "globalAssetId": "https://example.com/ids/F/5350_5407_2522_6562",
                        "idShort": "SensorWeatherStationExample",
                        "id": "https://example.com/ids/aas/1170_1160_3052_6568",
                        "specificAssetIds": [],
                        "submodelDescriptors": null
                      },
                      {
                        "description": null,
                        "displayName": null,
                        "extensions": null,
                        "administration": null,
                        "assetKind": 0,
                        "assetType": 0,
                        "endpoints": [
                          {
                            "interface": "AAS-3.0",
                            "protocolInformation": {
                              "href": "https://localhost:5059/shells/aHR0cHM6Ly9leGFtcGxlLmNvbS9pZHMvYWFzLzIyMDYtMTYzMS8xMDAwLTg1OQ",
                              "endpointProtocol": "http",
                              "endpointProtocolVersion": null,
                              "subprotocol": null,
                              "subprotocolBody": null,
                              "subprotocolBodyEncoding": null,
                              "securityAttributes": null
                            }
                          }
                        ],
                        "globalAssetId": "https://example.com/ids/assets/2206-1631/1000-859",
                        "idShort": "2206-1631/1000-859",
                        "id": "https://example.com/ids/aas/2206-1631/1000-859",
                        "specificAssetIds": [],
                        "submodelDescriptors": null
                      }
                    ]
                  }

Get ShellDescriptor by ID

  • Method: GET
  • Route: /shell-descriptors/{aasIdentifier}
  • Route parameters:
    • aasIdentifier (string, required) – Identifier of the target Asset Administration Shell.
  • Request body: None
  • Responses:
    • 200 OK – Returns a single ShellDescriptor.
{
 "description": null,
 "displayName": null,
 "extensions": null,
 "administration": null,
 "assetKind": 0,
 "assetType": 0,
 "endpoints": [
   {
     "interface": "AAS-3.0",
     "protocolInformation": {
       "href": "https://localhost:5059/shells/aHR0cHM6Ly9leGFtcGxlLmNvbS9pZHMvYWFzLzExNzBfMTE2MF8zMDUyXzY1Njg",
       "endpointProtocol": "http",
       "endpointProtocolVersion": null,
       "subprotocol": null,
       "subprotocolBody": null,
       "subprotocolBodyEncoding": null,
       "securityAttributes": null
     }
   }
 ],
 "globalAssetId": "https://example.com/ids/F/5350_5407_2522_6562",
 "idShort": "SensorWeatherStationExample",
 "id": "https://example.com/ids/aas/1170_1160_3052_6568",
 "specificAssetIds": [],
 "submodelDescriptors": null
}

Shell Descriptor Template Requirements

Template shells (in the template registry) must:

  • Have stable AAS IDs and idShorts.
  • Reference template submodels for each relevant aspect (e.g. Nameplate, Reliability).
  • Follow the AAS 3.0 structure so DataEngine can map them consistently.

Shell Descriptor Creation Modes

DataEngine supports two ways of creating and keeping Shell Descriptors up to date:

  • On Request

    • When a client calls GET /shell-descriptors or GET /shell-descriptors/{aasIdentifier}, DataEngine asks the Plugin for shell metadata (/shells-metadata), fills a Shell Descriptor template from the template repository with that metadata, and returns the computed descriptor(s) directly to the caller.
  • Precomputed

    • A background scheduler in DataEngine runs on a configured cron schedule.
    • It calls the Plugin (GET /shells-metadata), transforms the metadata into Shell Descriptors using the same template, and then synchronizes them with the AAS Registry via POST /shell-descriptors, PUT /shell-descriptors/{aasIdentifier} and DELETE /shell-descriptors/{aasIdentifier}.
    • This keeps the external AAS Registry in sync with the Plugin data without user interaction.

Template Registry Endpoints Used

  • GET /shell-descriptors – to list shell templates.
  • GET /shell-descriptors/{aasIdentifier} – to get a specific shell template descriptor.

These are configurable via AasEnvironment options.


Clone this wiki locally