Skip to content

add new aas repo identifiable profile#545

Open
sebbader-sap wants to merge 3 commits intoIDTA-01002-3-2_workingfrom
SeBa/496-aas-repo-identifiable-profile
Open

add new aas repo identifiable profile#545
sebbader-sap wants to merge 3 commits intoIDTA-01002-3-2_workingfrom
SeBa/496-aas-repo-identifiable-profile

Conversation

@sebbader-sap
Copy link
Copy Markdown
Contributor

Close #496

@mjacoby
Copy link
Copy Markdown
Collaborator

mjacoby commented Mar 2, 2026

There are some API calls that have been added/removed according to the proposal at #496 (comment)

✅ get /shells
✅ post /shells
✅ get /shells/{aasIdentifier}
✅ put /shells/{aasIdentifier}
✅ delete /shells/{aasIdentifier}
❌ get /shells/{aasIdentifier}/asset-information
❌ put /shells/{aasIdentifier}/asset-information
✅ get /shells/{aasIdentifier}/asset-information/thumbnail
✅ put /shells/{aasIdentifier}/asset-information/thumbnail
✅ delete /shells/{aasIdentifier}/asset-information/thumbnail
❌ get /shells/{aasIdentifier}/submodel-refs
❌ post /shells/{aasIdentifier}/submodel-refs
❌ delete /shells/{aasIdentifier}/submodel-refs/{submodelIdentifier}
✅ get /shells/{aasIdentifier}/submodels/{submodelIdentifier}
✅ put /shells/{aasIdentifier}/submodels/{submodelIdentifier}
✅ delete /shells/{aasIdentifier}/submodels/{submodelIdentifier}
🆕 get /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment
🆕 put /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment
🆕 delete /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment

What is the motivation for these deviations?
At first glance, I do not see any reason to not include the calls to /shells/{aasIdentifier}/asset-information and /shells/{aasIdentifier}/submodel-refs.

Regarding the calls to /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment I think I understand the intention, as without them no access to the files is possible at all. However, this feels like breaking the intention of the profile that no submodel element-level access should be supported. An alternative would be to add the serialization interface (which could be limited to AASX format) which then would enable access to files.

h|Profile Identifier: |`\https://admin-shell.io/aas/API/3/2/AssetAdministrationShellRepositoryServiceSpecification/SSP-004`
h|Feature h|Appearance
|API and API Operations a|
_AAS Repository API:_ +
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

inconsistency

in the .yaml there are also contained but not listed here in text:

GetAllAssetAdministrationShells

Not contained in .yaml:
PostSubmodel

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

in the .yaml there are also contained but not listed here in text:
GetAllAssetAdministrationShells
Indeed, have removed it from the OpenAPI file as well. The use cases needing this profile have a lot (millions of Shells and Submodels) of data objects, the GetAll... operations are not feasible at all.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Not contained in .yaml:
PostSubmodel
This is on purpose: The AAS Repository does not have the PostSubmodel operation.

|xref:specification/interfaces-operation-parameters.adoc#SerializationModifier[SerializationModifier] a|
Level: Deep

Content: Normal
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

why only Content "Normal", "Value" also and also the other formats, no?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

No, this is also on purpose: A client in a basic AAS interaction is not aware of the Descriptor or any other metadata source, therefore, always the "Normal" serialisation with the full content is needed.

@sebbader-sap
Copy link
Copy Markdown
Contributor Author

There are some API calls that have been added/removed according to the proposal at #496 (comment)

✅ get /shells ✅ post /shells ✅ get /shells/{aasIdentifier} ✅ put /shells/{aasIdentifier} ✅ delete /shells/{aasIdentifier} ❌ get /shells/{aasIdentifier}/asset-information ❌ put /shells/{aasIdentifier}/asset-information ✅ get /shells/{aasIdentifier}/asset-information/thumbnail ✅ put /shells/{aasIdentifier}/asset-information/thumbnail ✅ delete /shells/{aasIdentifier}/asset-information/thumbnail ❌ get /shells/{aasIdentifier}/submodel-refs ❌ post /shells/{aasIdentifier}/submodel-refs ❌ delete /shells/{aasIdentifier}/submodel-refs/{submodelIdentifier} ✅ get /shells/{aasIdentifier}/submodels/{submodelIdentifier} ✅ put /shells/{aasIdentifier}/submodels/{submodelIdentifier} ✅ delete /shells/{aasIdentifier}/submodels/{submodelIdentifier} 🆕 get /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment 🆕 put /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment 🆕 delete /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment

What is the motivation for these deviations? At first glance, I do not see any reason to not include the calls to /shells/{aasIdentifier}/asset-information and /shells/{aasIdentifier}/submodel-refs.

/shells/{aasIdentifier}/asset-information and /shells/{aasIdentifier}/submodel-refs are included in the listed operations: asset-information are part of the AAS object, same for submodels (API path /submodel-refs). A client can get this information therefore, no need for fine-grained (but only rarely used) endpoints.

Regarding the calls to /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment I think I understand the intention, as without them no access to the files is possible at all.

Indeed, the access to files, in particular HandoverDocumentation files, is absolutely needed. The vast majority of AAS interactions required this submodel, and there is simply no other way if the approach via AASX file exchange is nor possible.

@sebbader-sap sebbader-sap requested a review from BirgitBoss March 29, 2026 16:11
|<<asset-administration-shell-repository-service-specification-ssp-002,AssetAdministrationShellRepositoryServiceSpecification/SSP-002>> |Only read operations; is included in the profile AssetAdministrationShellRepositoryServiceSpecification/SSP-001
|<<asset-administration-shell-repository-service-specification-ssp-003,AssetAdministrationShellRepositoryServiceSpecification/SSP-003>> |Query operations
|<<asset-administration-shell-repository-service-specification-ssp-004,AssetAdministrationShellRepositoryServiceSpecification/SSP-004>> |Signature operations
|<<asset-administration-shell-repository-service-specification-ssp-005,AssetAdministrationShellRepositoryServiceSpecification/SSP-005>> |Operations on Identifiables only; is included in the profile AssetAdministrationShellRepositoryServiceSpecification/SSP-001

Check warning

Code scanning / QDJVMC

Typo Warning documentation

Typo: In word 'Identifiables'
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.

3 participants