Skip to content

Commit e210ab9

Browse files
Merge pull request #31 from admin-shell-io/IDTA-01004-3-0-1_working
Bugfix 3.0.1
2 parents 237fcf4 + a192cba commit e210ab9

File tree

8 files changed

+68
-40
lines changed

8 files changed

+68
-40
lines changed

README.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,19 @@ The following release contains the latest version of the AAS schemas
2828
(see also the [releases](https://github.com/admin-shell-io/aas-specs-security/releases)
2929
section of this repository):
3030

31-
* [3.0.0](https://github.com/admin-shell-io/aas-specs-security/releases/tag/v3.0.0)
32-
is the latest release for the `V3.0.0` version of the AAS Security,
31+
* [3.0.1](https://github.com/admin-shell-io/aas-specs-security/releases/tag/v3.0.1)
32+
is the latest bugfix release for the `V3.0.1` version of the AAS Security,
3333
containing the normative sources for the published document
34-
"Specification of the Asset Administration Shell: Part 4 - **Version 3.0.0**".
34+
"Specification of the Asset Administration Shell: Part 4 - **Version 3.0.1**".
3535
*Use this release if you want to work with the latest specified AAS version.*
3636

37+
Previous releases:
38+
39+
* [3.0.0](https://github.com/admin-shell-io/aas-specs-security/releases/tag/v3.0.0)
40+
is the first release for the `V3.0` version of the AAS Security,
41+
containing the normative sources for the published document
42+
"Specification of the Asset Administration Shell: Part 4 - Version 3.0.0".
43+
3744
## Contributing
3845

3946
Feature requests, reports about inconsistencies, mistakes *etc.* are highly
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: IDTA-01004
22
title: 'Part 4: Security'
3-
version: 'v3.0'
3+
version: 'v3.0.1'
44
start_page: ROOT:index.adoc
55
nav:
66
- modules/ROOT/nav.adoc

documentation/IDTA-01004/modules/ROOT/pages/access-rule-model.adoc

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -223,13 +223,10 @@ The list element is written with [] to express, that $match shall check if a cer
223223

224224
References are used in ReferenceAttributes, IdentifiableObjects, ReferableObjects, FragmentObjects and DescriptorObjects for the corresponding ReferenceLiterals, IdentifiableLiterals, ReferableLiterals, FragmentLiterals and DescriptorLiterals.
225225

226-
Such references use the link:https://industrialdigitaltwin.io/aas-specifications/IDTA-01001/v3.1/mappings/mappings.html#reference-serialization[Part 1 Mapping in Section "Text Serialization of Values of Type Reference"] for specific instances of elements, e.g. an AAS, a Submodel, a ConceptDescription or a specific SubmodelElement.
226+
====
227+
Note: V3.1 will include a more detailed grammar for defining <ReferenceAttribute>, <IdentifiableObject>, <ReferableObject>, <FragmentObject> and <DescriptorObject>.
228+
====
227229

228-
Access Rules may also be defined for all Identifiables of the Keytypes AssetAdministrationShell, Submodel or ConceptDescription.
229-
In this case an IdentifiableLiteral uses the format "(AssetAdministrationShell)\*", "(Submodel)*" and "(ConceptDescription)*".
230-
231-
Access Rules extend the Keytypes of Part 1 by "(aasDesc)" for AAS Descriptors and "(smdesc)" for submodel descriptors.
232-
To define all descriptors "(aasDesc)\*" or "(smdesc)*" may be used in DescriptorLiterals accordingly.
233230

234231
[[json-serialization]]
235232
== JSON Serialization of Access Rule Model

documentation/IDTA-01004/modules/ROOT/pages/annex/text-access-rule-examples.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ include::partial$examples/bpn.bnf[]
6161
include::partial$examples/allow-read-all-users-of-company-for-submodel.bnf[]
6262
----
6363

64+
[[allow-read-submodels-id-pattern]]
6465
== Allow READ to all Submodels with ID pattern for all authenticated users of a company for submodels with Nameplate and TechnicalData from 9:00-17:00
6566

6667
[source,bnf,linenums]

documentation/IDTA-01004/modules/ROOT/pages/changelog.adoc

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,24 @@ SPDX-License-Identifier: CC-BY-4.0
88

99
////
1010

11+
[[change-notes]]
1112
= Change Notes
1213

13-
This is the first Release.
14+
== Changes w.r.t. V3.0.1 vs. V3.0
15+
16+
Bugfixes:
17+
18+
* changed: Removed incorrect but required whitespaces from grammar and examples [#477 of API](https://github.com/admin-shell-io/aas-specs-api/issues/477)
19+
* changed: fixed idShortPath definition in the BNF Grammar for the Query Language [#34](https://github.com/admin-shell-io/aas-specs-security/issues/34)
20+
* changed: xref:access-rule-model.adoc#text-serialization-of-values-of-type-reference[text serialization of Reference] does not follow text serialization of Part 1 of References, the updated grammar will be added in the V3.1 [#33](https://github.com/admin-shell-io/aas-specs-security/issues/33)
21+
22+
23+
Minor Changes:
24+
25+
* changed: correct xref:annex/text-access-rule-examples.adoc#allow-read-submodels-id-pattern[example] in Annex
26+
* removed: remove <FieldIdentifierString> in grammar and use <FieldIdentifier> directly
27+
28+
29+
== Changes V3.0
30+
31+
This is the first release

documentation/IDTA-01004/modules/ROOT/pages/index.adoc

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,37 @@ This specification is part of the https://industrialdigitaltwin.org/en/content-h
1818

1919
== Version
2020

21-
This is version 3.0 of the specification IDTA-01004.
21+
This is version 3.0.1 of the specification IDTA-01004.
22+
23+
Previous version: 3.0.
2224

2325
[#metamodel-versions]
2426
== Metamodel Versions
2527

26-
This document (version 3.0) uses the following parts of the “Specification of the Asset Administration Shell” series:
28+
This document uses the following parts and versions of the “Specification of the Asset Administration Shell” series:
2729

2830
* IDTA-01001 Part 1: Metamodel in version 3.1 xref:bibliography.adoc#bib1[[1\]]
2931
* IDTA-01002 Part 2: Application Programming Interfaces in version 3.1 xref:bibliography.adoc#bib2[[2\]]
3032
* IDTA-01003-a Part 3a: Data Specification – IEC 61360 in version 3.1 xref:bibliography.adoc#bib3[[3\]]
3133

34+
If there are bugfixes of the parts, these shall be used.
35+
3236
== Notice
3337

3438
Copyright: Industrial Digital Twin Association e.V. (IDTA)
3539

36-
DOI: https://doi.org/10.62628/IDTA.01004-3-0
40+
DOI: https://doi.org/10.62628/IDTA.01004-3-0-1
41+
42+
IDTA Number: IDTA-01004
3743

38-
IDTA Document Number: IDTA-01004-3-0
44+
Version: 3.0.1
3945

4046
This work is licensed under a
4147
https://creativecommons.org/licenses/by/4.0/[Creative Commons Attribution 4.0 International License].
4248

4349
SPDX-License-Identifier: CC-BY-4.0
4450

45-
May 2025
51+
July 2025
4652

4753
== How to Get in Contact
4854

documentation/IDTA-01004/modules/ROOT/partials/bnf/access-rules.bnf

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,13 @@
103103
<stringComparison> ::=
104104
( ( "$starts-with" | "$ends-with" | "$contains" | "$regex") <ws> "(" <ws> <stringOperand> <ws> "," <ws> <stringOperand> <ws> ")" <ws> ) |
105105
( <stringOperand> <ws> <allComparisons> <ws> <stringOperand> <ws> ) |
106-
( <stringOperand> <ws> <allComparisons> <ws> <FieldIdentifierString> <ws> ) |
107-
( <FieldIdentifierString> <ws> <allComparisons> <ws> <stringOperand> <ws> )
106+
( <stringOperand> <ws> <allComparisons> <ws> <FieldIdentifier> <ws> ) |
107+
( <FieldIdentifier> <ws> <allComparisons> <ws> <stringOperand> <ws> )
108108

109109
<numericalComparison> ::=
110110
( <numericalOperand> <ws> <allComparisons> <ws> <numericalOperand> <ws> ) |
111-
( <numericalOperand> <ws> <allComparisons> <ws> <FieldIdentifierString> <ws> ) |
112-
( <FieldIdentifierString> <ws> <allComparisons> <ws> <numericalOperand> <ws> )
111+
( <numericalOperand> <ws> <allComparisons> <ws> <FieldIdentifier> <ws> ) |
112+
( <FieldIdentifier> <ws> <allComparisons> <ws> <numericalOperand> <ws> )
113113

114114
<hexComparison> ::=
115115
<hexOperand> <ws> <allComparisons> <ws> <hexOperand> <ws>
@@ -129,7 +129,7 @@
129129
<operand> ::= <stringOperand> | <numericalOperand> | <hexOperand> | <boolOperand> | <dateTimeOperand> | <timeOperand>
130130

131131
<stringOperand> ::=
132-
<FieldIdentifierString> | <StringLiteral> | <castToString> | <SingleAttribute>
132+
<FieldIdentifier> | <StringLiteral> | <castToString> | <SingleAttribute>
133133

134134
<numericalOperand> ::=
135135
<NumericalLiteral> | <castToNumerical> | <dateTimeToNum>
@@ -164,22 +164,21 @@
164164
<castToTime> ::=
165165
"time" <ws> "(" <ws> ( <stringOperand> | <dateTimeOperand> ) <ws> ")" <ws>
166166

167-
168167
<DateTimeLiteral> ::= <datetime> <ws>
169168
<TimeLiteral> ::= <time> <ws>
170-
<datetime> ::= <date> <ws> ( "T" | " " ) <ws> <time> <ws> ( <timezone> <ws> )?
171-
<date> ::= <year> <ws> "-" <ws> <month> <ws> "-" <ws> <day> <ws>
172-
<year> ::= <digit> <ws> <digit> <ws> <digit> <ws> <digit> <ws>
173-
<month> ::= <digit> <ws> <digit> <ws>
174-
<day> ::= <digit> <ws> <digit> <ws>
175-
<time> ::= <hour> <ws> ":" <ws> <minute> <ws> ( ":" <ws> <second> <ws> )? ( "." <ws> <fraction> <ws> )?
176-
<timezone> ::= ( "Z" | ( "+" | "-" ) <ws> <hour> <ws> ":" <ws> <minute> <ws> )
177-
<hour> ::= <digit> <ws> <digit> <ws>
178-
<minute> ::= <digit> <ws> <digit> <ws>
179-
<second> ::= <digit> <ws> <digit> <ws>
180-
<fraction> ::= <digit>+ <ws>
181-
182-
<digit> ::= [0-9] <ws>
169+
<datetime> ::= <date> ( "T" | "" ) <time> ( <timezone> )?
170+
<date> ::= <year> "-" <month> "-" <day>
171+
<year> ::= <digit> <digit> <digit> <digit>
172+
<month> ::= <digit> <digit>
173+
<day> ::= <digit> <digit>
174+
<time> ::= <hour> ":" <minute> ( ":" <second> )? ( "." <fraction> )?
175+
<timezone> ::= ( "Z" | ( "+" | "-" ) <hour> ":" <minute> )
176+
<hour> ::= <digit> <digit>
177+
<minute> ::= <digit> <digit>
178+
<second> ::= <digit> <digit>
179+
<fraction> ::= <digit>+
180+
181+
<digit> ::= [0-9]
183182
<StringLiteral> ::= "\"" ( [A-Z] | [a-z] | [0-9] | "/" | "*" | "[" | "]" | "(" | ")" | " " | "_" | "@" | "#" | "\\" | "+" | "-" | "." | "," | ":" | "$" | "^" )+ "\""
184183
<ClaimLiteral> ::= <StringLiteral>
185184
<ReferenceLiteral> ::= <StringLiteral>
@@ -191,8 +190,8 @@
191190
<NumericalLiteral> ::= ( "+" | "-" )? ( [0-9]+ ( "." [0-9]* )? | "." [0-9]+ ) ( ( "e" | "E" )? [0-9]+ )
192191
<HexLiteral> ::= "16#" ( [0-9] | [A-F] )+
193192
<BoolLiteral> ::= "true" | "false"
194-
<FieldIdentifier> ::= <FieldIdentifierString>
195-
<FieldIdentifierString> ::= <FieldIdentifierAAS> | <FieldIdentifierSM> | <FieldIdentifierSME> | <FieldIdentifierCD> | <FieldIdentifierAasDescriptor> | <FieldIdentifierSmDescriptor>
193+
194+
<FieldIdentifier> ::= <FieldIdentifierAAS> | <FieldIdentifierSM> | <FieldIdentifierSME> | <FieldIdentifierCD> | <FieldIdentifierAasDescriptor> | <FieldIdentifierSmDescriptor>
196195
<FieldIdentifierAAS> ::= "$aas#" ( "idShort" | "id" | "assetInformation.assetKind" | "assetInformation.assetType" | "assetInformation.globalAssetId" | "assetInformation." <SpecificAssetIdsClause> | "submodels." <ReferenceClause> )
197196
<FieldIdentifierSM> ::= "$sm#" ( <SemanticIdClause> | "idShort" | "id" )
198197
<FieldIdentifierSME> ::= "$sme" ( "." <idShortPath> )? "#" ( <SemanticIdClause> | "idShort" | "value" | "valueType" | "language" )
@@ -205,7 +204,7 @@
205204
<ReferenceClause> ::= ( "type" | "keys" ( "[" ( [0-9]* ) "]" ) ( ".type" | ".value" ) )
206205
<SemanticIdClause> ::= ( "semanticId" | "semanticId." <ReferenceClause> )
207206
<SpecificAssetIdsClause> ::= ( "specificAssetIds" ( "[" ( [0-9]* ) "]" ) ( ".name" | ".value" | ".externalSubjectId" | ".externalSubjectId." <ReferenceClause> ) )
208-
<idShortPath> ::= ( <idShort> ("[" ( [0-9]* ) "]" ) ( "." <idShortPath> )* )
207+
<idShortPath> ::= ( <idShort> ("[" ( [0-9]* ) "]" )* ( "." <idShortPath> )* )
209208
<idShort> ::= ( ( [a-z] | [A-Z] ) ( [a-z] | [A-Z] | [0-9] | "_" )* )
210209

211-
<ws> ::= ( " " | "\t" | "\r" | "\n" )+
210+
<ws> ::= ( " " | "\t" | "\r" | "\n" )*

documentation/IDTA-01004/modules/ROOT/partials/examples/allow-read-submodels-id-pattern.bnf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ACCESSRULE:
1212
$sm#semanticId $eq "SemanticID-TechnicalData"
1313
),
1414
CLAIM("companyName") $eq "company1-name",
15-
$regex(REFERENCE("(Submodel)*#Id"), "^https://company1.com/.*$"),
15+
$regex($sm#id, "^https://company1.com/.*$"),
1616
GLOBAL(UTCNOW) $ge "09:00",
1717
GLOBAL(UTCNOW) $le "17:00"
1818
)

0 commit comments

Comments
 (0)