Skip to content

add example access rules for expressing "Append" #37

@BirgitBoss

Description

@BirgitBoss

In some applications users are not allowed to change anything but only to add data. this is especially true for SubmodelElementLists or optional fields.

This is for example true for DPP applications.

Proposed Solution:

https://industrialdigitaltwin.io/aas-specifications/IDTA-01004/v3.0.1/access-rule-model.html#bnf-grammar

<Right> ::=
    "CREATE" | "READ" | "UPDATE" | "DELETE" | "EXECUTE" | "VIEW" | "ALL" | "TREE"

Mit

<Right> ::=
    "CREATE" | "READ" | "UPDATE" | “AMEND” | "DELETE" | "EXECUTE" | "VIEW" | "ALL" | "TREE"

instead of "AMEND" also "APPEND" migth be useful.

Semantics:

  • for SubmodelElementList: only adding new elements is allowed, no removal, no replacing
  • for other SubmodelElements: only adding if not yet existing, no removal, no replacing (only possible for optional fields)

Add Example to Annex https://industrialdigitaltwin.io/aas-specifications/IDTA-01004/v3.0.1/annex/text-access-rule-examples.html

Example:

ACCESSRULE:
  ATTRIBUTES:
    CLAIM("Role")
  RIGHTS: READ APPEND
  ACCESS: ALLOW
  OBJECTS:
    REFERABLE "(SubmodelElementList)https://submodel1.company1.com/CertificateSet"
  FORMULA:
    CLAIM("Role") $eq "person with legitimate interest"

Similar for optional attribute that can be added


ACCESSRULE:
  ATTRIBUTES:
    CLAIM("Role")
  RIGHTS: READ APPEND
  ACCESS: ALLOW
  OBJECTS:
    REFERABLE "(AssetAdministrationShell)[https://submodel1.company1.com/Shell"
  FORMULA:
    CLAIM("Role") $eq "person with legitimate interest"

Background:

The JSON Patch Operation allows both: replacing and adding new elements
The RFC 6902 "add" operation also allows to replace existing elements

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions