-
Notifications
You must be signed in to change notification settings - Fork 8
Discovery
The Discovery feature allows clients to discover Asset Administration Shells by their asset identifiers without knowing the AAS IDs upfront. DataEngine delegates the actual filtering to the Plugin.
The Plugin must declare hasAssetIdSearch: true in its manifest capabilities. If this flag is absent or falsein all plugin, the endpoint returns 501 Not Implemented immediately without contacting the Plugin.
{
"capabilities": {
"hasShellDescriptor": true,
"hasAssetInformation": true,
"hasAssetIdSearch": true
}
}Returns a paginated list of AAS ID strings that match the provided asset links.
-
Method:
POST -
Route:
/lookup/shellsByAssetLink -
Query parameters:
-
limit(int, optional) – Maximum number of results per page. -
cursor(string, optional) – Pagination cursor from a previous response.
-
-
Request body: JSON array of
AssetLinkobjects.
[
{ "name": "serialNumber", "value": "SN-4711" },
{ "name": "batchId", "value": "B-0042" }
]AssetLink field constraints:
| Field | Type | Max Length | Required |
|---|---|---|---|
name |
string | 64 | yes |
value |
string | 2048 | yes |
-
Responses:
-
200 OK– Returns matching AAS IDs with pagination metadata. -
400 Bad Request– If the request body is empty, or anyname/valueviolates length constraints. -
501 Not Implemented– If the plugin does not support asset ID search.
-
{
"paging_metadata": {
"cursor": null
},
"result": [
"https://example.com/ids/aas/1170_1160_3052_6568"
]
}sequenceDiagram
participant Client
participant DataEngine
participant Plugin
Client->>DataEngine: POST /lookup/shellsByAssetLink [AssetLink[]]
DataEngine->>DataEngine: Validate request body & pagination params
DataEngine->>DataEngine: Convert AssetLink[] → SpecificAssetId filters
DataEngine->>DataEngine: Check hasAssetIdSearch capability (Return 501 if false)
DataEngine->>DataEngine: Serialize filters → JSON header
DataEngine->>Plugin: GET /metadata/shells + aastwinengine-assetids header
Plugin-->>DataEngine: Return metadata/shells
DataEngine->>DataEngine: Extract AAS IDs from metadata->shells
DataEngine->>DataEngine: Apply cursor-based pagination
DataEngine-->>Client: Response:{ paging_metadata, result: [aasId1, aasId2] }
DataEngine sends the aastwinengine-assetids request header to GET /metadata/shells. The header value is a JSON array of SpecificAssetId filter objects:
[
{
"name": "serialNumber",
"value": "SN-4711"
},
{
"name": "batchId",
"value": "B-0042"
}
]The Plugin must filter its results so that only shell descriptors matching at least one of the provided filters are returned.
M&M Software
- Architecture
- Submodel Repository
- Submodel Registry
- Aas Registry
- Aas Repository
- Discovery
- Plugin
- Multi-Plugin
- Supported SubmodelElement
- Security
-
Bug Reports: Template Bug Item
-
Feature Requests : Feature Request