Skip to content

Bugfix: v3.1.3#622

Open
sebbader-sap wants to merge 15 commits into
mainfrom
IDTA-01001-3-1-3_working
Open

Bugfix: v3.1.3#622
sebbader-sap wants to merge 15 commits into
mainfrom
IDTA-01001-3-1-3_working

Conversation

@sebbader-sap

Copy link
Copy Markdown
Contributor

No description provided.

aaronzi and others added 3 commits June 5, 2026 15:36
Remove status codes 404 and 409 for POST /lookup/shells/{aasIdentifier} to align with create-or-replace and replace/update semantics.

Co-authored-by: sebbader-sap <107036549+sebbader-sap@users.noreply.github.com>
* Removes wrong 404 status code for getAllSubmodelDescriptors

* Readds incorrectly removed Status Code in entire api collection

---------

Co-authored-by: sebbader-sap <107036549+sebbader-sap@users.noreply.github.com>
@sebbader-sap sebbader-sap added this to the 3.1.3 milestone Jun 5, 2026
@sebbader-sap sebbader-sap self-assigned this Jun 5, 2026
sebbader-sap and others added 4 commits June 5, 2026 17:05
…e and named groups (#612)

* fix(schema): use anyOf where BNF allows mixed inline and named groups

The BNF distinguishes concatenation (mix allowed) from alternation
(XOR) for the pairs inline-group / named-group. Three pairs in the
JSON schemas were marked oneOf (XOR) even though the grammar is CAT.

Grammar references (access-rules.bnf / grammar.bnf):

  <AttributeGroup> ::=
      ( <SingleAttribute> <ws> )*
      ( <UseAttributeGroup> <ws> )*     -- CAT

  <AccessPermissionRule> ::=
      "ACCESSRULE:" ...
      ( <ACL> | <UseACL> ) <ws>          -- XOR
      "OBJECTS:" <ws>
      ( <SingleObject> <ws> )*
      ( <UseObjectGroup> <ws> )*         -- CAT (inline, not <ObjectGroup>)
      ( "FORMULA:" ... | <UseFormula> )  -- XOR

Changes:

  - ACL.{ATTRIBUTES, USEATTRIBUTES}              oneOf -> anyOf
  - AccessPermissionRule.{OBJECTS, USEOBJECTS}   oneOf -> anyOf
  - DEFATTRIBUTES item.{attributes, USEATTRIBUTES} oneOf -> anyOf
    (only in aas-specs-security; API schema doesn't have USEATTRIBUTES
     at DEFATTRIBUTES level.)

Kept as oneOf (XOR):

  - AccessPermissionRule.{ACL, USEACL}
  - AccessPermissionRule.{FORMULA, USEFORMULA}
  - DEFOBJECTS item.{objects, USEOBJECTS}
  - SecurityQueryFilter.{CONDITION, USEFORMULA}

Refs: Review Finding T-13
Made-with: Cursor

* docs: add changelog entry for anyOf schema alignment

---------

Co-authored-by: aorzelskiGH <andreas@orzelski.de>
…raint AASd-002 (#611)

* fix(bnf,schema): align idShort with Metamodel Constraint AASd-002

IDTA-01001 Constraint AASd-002 normatively defines idShort as:

  ^[a-zA-Z][a-zA-Z0-9_-]*[a-zA-Z0-9_]+$

i.e. at least two characters, starting with a letter, not ending with
a hyphen. The BNF productions in grammar.bnf/access-rules.bnf and the
idShort-path regex in query-json-schema.json, schema.adoc and
openapi.yaml marked the trailing character group optional, so single-
character idShorts (e.g. "A") and trailing-hyphen idShorts (e.g.
"Ab-") were accepted.

Changes:

BNF (<idShort>):
  before: ( L (( L | D | "_" | "-" )* ( L | D | "_" ) )? )
  after:  ( L  ( L | D | "_" | "-" )* ( L | D | "_" ) )
  (L = letter, D = digit)

JSON-Schema / OpenAPI regex:
  before: [A-Za-z](?:[A-Za-z0-9_-]*[A-Za-z0-9_])?
  after:  [A-Za-z][A-Za-z0-9_-]*[A-Za-z0-9_]

Equivalent to AASd-002 (min 2 chars, cannot end with hyphen).

Refs: Review Finding T-06
Made-with: Cursor

* docs: add changelog entry for idShort constraint alignment

* remove changelog entry as already covered in other PRs

---------

Co-authored-by: aorzelskiGH <andreas@orzelski.de>
…add FILTERLIST (#610)

* fix(bnf,schema): harmonize SecurityQueryFilter and add FILTERLIST

The API and Security specs gave two incompatible definitions for
SecurityQueryFilter, and the API grammar lacked FILTERLIST entirely.

BNF (partials/bnf/grammar.bnf):
- <SecurityQueryFilter> now uses "FRAGMENT:" <FieldIdentifierFragment>
  instead of <FragmentObject>, aligning with aas-specs-security.
- <AccessPermissionRule> now accepts an optional FILTERLIST block.
- Added the <FieldIdentifierFragment> production family (AAS, SM, SME,
  CD, AAS Descriptor, SM Descriptor) together with the supporting
  *Fragment clauses (SpecificAssetIds, SemanticId, Reference, Endpoint,
  SmDescriptor).

JSON Schema (partials/query-json-schema.json and pages/schema.adoc):
- Added FragmentFieldIdentifier definition (regex sibling of
  modelStringPattern, restricted to fragment-legal fields).
- SecurityQueryFilter.FRAGMENT now $refs FragmentFieldIdentifier
  (was: plain string).
- AccessPermissionRule gains FILTERLIST (array of SecurityQueryFilter).

Refs: Review Finding T-02
Made-with: Cursor

* docs: add changelog entry for SecurityQueryFilter harmonization

---------

Co-authored-by: aorzelskiGH <andreas@orzelski.de>
Comment thread documentation/IDTA-01002-3/modules/ROOT/pages/schema.adoc Dismissed
Comment thread documentation/IDTA-01002-3/modules/ROOT/pages/schema.adoc Dismissed
…den timeLiteralPattern (#613)

* fix(schema): correct Value semantics for $dayOfWeek/$dayOfMonth/$month/$year and timeLiteralPattern

The BNF defines these keys as numeric-extraction functions over a
dateTime expression:

  <dateTimeToNum> ::=
      ( "$dayOfWeek" | "$dayOfMonth" | "$month" | "$year" )
      <ws> "(" <ws> <dateTimeOperand> <ws> ")" <ws>

where <dateTimeOperand> is a DateTimeLiteral, a cast to dateTime, or
a GlobalAttribute (e.g. GLOBAL(UTCNOW)). The argument is therefore a
Value expression that evaluates to a dateTime, not a literal
xsd:dateTime string.

The JSON schemas typed these four keys as
$ref: "#/definitions/dateTimeLiteralPattern"
which forced them to be literal ISO date-time strings and made
constructs like `{"$dayOfWeek": {"$attribute": {"GLOBAL": "UTCNOW"}}}`
invalid even though the BNF explicitly allows them.

timeLiteralPattern was also stricter than the grammar: it rejected
fractional seconds. The BNF <time> is:

  <hour> ":" <minute> ( ":" <second> )? ( "." <fraction> )?

Changes:

- $dayOfWeek, $dayOfMonth, $month, $year -> $ref Value
- timeLiteralPattern pattern
    before: ^[0-9][0-9]:[0-9][0-9](:[0-9][0-9])?$
    after : ^[0-9]{2}:[0-9]{2}(:[0-9]{2})?(\.[0-9]+)?$

Files:
- aas-specs-api: partials/query-json-schema.json, pages/schema.adoc
- aas-specs-security: partials/json/aas-queries-and-access-rules-schema.json, partials/json/formulas-and-logical-expressions.json

Refs: Review Finding T-14
Made-with: Cursor

* docs: add changelog entry for date/time schema alignment

* use the more explicit integer and attributeitems for dayofweek, dayofmonth, month, year

* fixing input parameter for time cast functions from integer to dateTimeLiteralPattern

---------

Co-authored-by: aorzelskiGH <andreas@orzelski.de>
Comment thread documentation/IDTA-01002-3/modules/ROOT/pages/changelog.adoc Outdated
sebbader-sap and others added 2 commits June 25, 2026 18:09
Co-authored-by: Aaron Zielstorff <aaron.zielstorff@iese.fraunhofer.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants