Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
4e6cad9
Merge pull request #520 from admin-shell-io/IDTA-01002-3-2_working
BirgitBoss Dec 12, 2025
3da2f09
Change to $filter
aorzelskiGH Dec 10, 2025
67c9424
Add FILTER to query
aorzelskiGH Dec 10, 2025
5be900e
added fragment fieldidentifier to bnf
Martin187187 Jan 13, 2026
6be4034
removed not allowed fragment fieldidentifier paths
Martin187187 Jan 13, 2026
8dc108b
added query filter description & root can be filtered now
Martin187187 Jan 13, 2026
ab6cf92
added example & updated bnf & moved filters to own section
Martin187187 Jan 20, 2026
00c3547
Clarify filtering of Submodel elements in Query Language
Martin187187 Jan 20, 2026
5604c1e
moved example
Martin187187 Jan 23, 2026
273161e
Merge branch 'filter' of https://github.com/Martin187187/aas-specs-ap…
Martin187187 Jan 23, 2026
221ebd2
removed duplicated section
Martin187187 Jan 23, 2026
c24ba07
added comment
Martin187187 Jan 23, 2026
93ace6b
Update description for Nameplate submodels query
Martin187187 Jan 23, 2026
834e17a
Enhance query-language.adoc with filtering details
Martin187187 Jan 23, 2026
7ad8efb
added bnf
Martin187187 Jan 23, 2026
137b904
update bnf
Martin187187 Jan 23, 2026
3168f19
update bnf
Martin187187 Jan 23, 2026
b5e1955
Fix typo in query language documentation
Martin187187 Jan 23, 2026
183b1b1
updated api
Martin187187 Feb 10, 2026
dacffa4
updated names
Martin187187 Feb 11, 2026
d19e6d8
adjusted schema.adoc
Martin187187 Feb 11, 2026
cb9c79d
fix naming inconsistency
Martin187187 Feb 26, 2026
62dd07a
added needed fragments
Martin187187 Feb 26, 2026
3ddd0c0
fragment keys[] clarification
Martin187187 Feb 26, 2026
2705175
Enhance specification clarity and ensure consistency
Martin187187 Mar 2, 2026
5dfeea4
FIX useconditions
Martin187187 Mar 2, 2026
cfa4f04
made bnf and json schema more consistent
Martin187187 Mar 2, 2026
4b5cf9c
make bnf and json schema more consistent
Martin187187 Mar 2, 2026
24baf8e
Merge remote-tracking branch 'upstream/IDTA-01002-3-2_working' into f…
Martin187187 Mar 2, 2026
94035e9
add Query Wrapper to example
Martin187187 Mar 2, 2026
0fb6daa
align json grammar txt
Martin187187 Mar 2, 2026
7c6a0f5
removed Access Rule entry in json schema
Martin187187 Mar 2, 2026
e229c27
added shared schema for queries & access rules
Martin187187 Mar 2, 2026
f42da51
remove TREE
Martin187187 Mar 2, 2026
3b3ce8f
removed unused spec in the query json schema
Martin187187 Mar 2, 2026
9c50be0
resolve ordering inconsistency
Martin187187 Mar 2, 2026
16355b9
update bnf and json schema to be consistent with security spec
Martin187187 Mar 2, 2026
a6cc6c7
make FILTER optional
Martin187187 Mar 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions Part2-API-Schemas/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,10 @@ components:
type: string
pattern: >-
^((?:\$aas#(?:idShort|id|assetInformation\.assetKind|assetInformation\.assetType|assetInformation\.globalAssetId|assetInformation\.(?:specificAssetIds(\[[0-9]*\])(?:\.(?:name|value|externalSubjectId(?:\.type|\.keys\[\d*\](?:\.(?:type|value))?)?)?)|submodels\.(?:type|keys\[\d*\](?:\.(?:type|value))?))|submodels\.(type|keys\[\d*\](?:\.(type|value))?)))|(?:\$sm#(?:semanticId(?:\.type|\.keys\[\d*\](?:\.(type|value))?)?|idShort|id))|(?:\$sme(?:\.[a-zA-Z][a-zA-Z0-9_]*(\[[0-9]*\])?(?:\.[a-zA-Z][a-zA-Z0-9_]*(\[[0-9]*\])?)*)?#(?:semanticId(?:\.type|\.keys\[\d*\](?:\.(type|value))?)?|idShort|value|valueType|language))|(?:\$cd#(?:idShort|id))|(?:\$aasdesc#(?:idShort|id|assetKind|assetType|globalAssetId|specificAssetIds(\[[0-9]*\])?(?:\.(name|value|externalSubjectId(?:\.type|\.keys\[\d*\](?:\.(type|value))?)?)?)|endpoints(\[[0-9]*\])\.(interface|protocolinformation\.href)|submodelDescriptors(\[[0-9]*\])\.(semanticId(?:\.type|\.keys\[\d*\](?:\.(type|value))?)?|idShort|id|endpoints(\[[0-9]*\])\.(interface|protocolinformation\.href))))|(?:\$smdesc#(?:semanticId(?:\.type|\.keys\[\d*\](?:\.(type|value))?)?|idShort|id|endpoints(\[[0-9]*\])\.(interface|protocolinformation\.href))))$
fragmentStringPattern:
type: string
pattern: >-
^(?:\$aas#(?:idShort|assetInformation\.assetType|assetInformation\.globalAssetId|assetInformation\.specificAssetIds\[\d*\](?:\.externalSubjectId(?:\.keys\[\d*\])?)?|submodels|submodels\.keys\[\d*\])|(?:\$sm#(?:semanticId(?:\.keys\[\d*\])?|idShort|id))|(?:\$sme(?:\.(?:[a-zA-Z](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?(?:\[\d*\])*)*)?(?:#(?:semanticId(?:\.keys\[\d*\])?|idShort|value|valueType|language))?)|(?:\$cd#idShort)|(?:\$aasdesc#(?:idShort|assetKind|assetType|globalAssetId|specificAssetIds\[\d*\](?:\.externalSubjectId(?:\.keys\[\d*\])?)?|endpoints\[\d*\]|submodelDescriptors\[\d*\]|submodelDescriptors\[\d*\]\.(?:semanticId(?:\.keys\[\d*\])?|idShort|endpoints\[\d*\])))|(?:\$smdesc#(?:semanticId(?:\.keys\[\d*\])?|idShort|endpoints\[\d*\])))$
MultiLanguagePropertyMetadata:
allOf:
- $ref: "#/components/schemas/SubmodelElementAttributes"
Expand Down Expand Up @@ -776,6 +780,19 @@ components:
required:
- href
type: object
QueryFilter:
type: object
properties:
$fragment:
description: Field identifier fragment the filter applies to (FieldIdentifierFragment in the BNF).
$ref: '#/components/schemas/fragmentStringPattern'
$condition:
description: Logical expression to be applied for this field identifier fragment.
$ref: '#/components/schemas/logicalExpression'
required:
- $fragment
- $condition
additionalProperties: false
Query:
type: object
properties:
Expand All @@ -784,6 +801,13 @@ components:
pattern: ^id$
$condition:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Highlighting the naming inconsistency as explained in the above comment.

$ref: '#/components/schemas/logicalExpression'
$filters:
description: >-
Additional filters scoped to specific field identifier fragments, corresponding to
repeated "$filter <FieldIdentifierFragment> <logicalExpression>" clauses in the BNF.
type: array
items:
$ref: '#/components/schemas/QueryFilter'
required:
- $condition

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Highlighting the naming inconsistency as explained in the above comment.

additionalProperties: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Note: Changes in Metamodel (IDTA-01001) will not be listed here, although they h

Major Changes:

* ...
* new: Enhanced the FieldIdentifier Fragment Definition from just plain string to a BNF specification. Extended the query language and security with field-based filters (`$filters` & `FILTERS` clauses) using field identifier fragments, and aligned the OpenAPI schemas and JSON Schema for queries and security rules accordingly. Addition does not introduce breaking changes because it only adds new optional field (https://github.com/admin-shell-io/aas-specs-api/issues/517[#517])


Minor Changes:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,15 @@
{
"$schema": "../../query-json-schema.json",
"select": "id",
"filter": {
"$and":[
{
"$eq": [
{
"strModel": "$sm.semanticId.keys.value"
},
{
"strVal": "https://example.org/value"
}
]
},
{}
]
},
"option": {
"sort": {
"id": "asc"
},
"limit": 10,
"offset": 0
"Query": {
"$select": "id",
"$condition": {
"$eq": [
{
"$field": "$sm#semanticId.keys[].value"
},
{
"$strVal": "https://example.org/value"
}
]
}
}
}
Loading
Loading