-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transporting CV graphs with CVs shared with separately transported graphs causes problems #469
Comments
Basically, we urgently have to rework the creation of component versions. First: The only way to attack this problem is to provide the necessary resource digests as early as possible: during the CV creation. This means:
Second: During transport the signatures must be merged. Even if the CV describes the same content, the signatures in the Problem: how to handle resigning with the same signature identity? |
The next problem arises with labels, which are not signature relevant. One useful scenario here could be the implementation of a routing slip which gathers information about executed processing steps on the CV. Here, we also have a merging problem during the transport of shard components versions (the existence of a label as well as different values). But in contrast to the ones described in the initial problem description, the labels are formal fields, but fields maintained by external tools. They are not formally known by the core model. Nevertheless, we cannot just always throw an error for non-matching label content or just ignore it. One solution would be (similar to identity matchers) introduce formal label mergers. A label may additionally declare the matcher to use. There will be a set of standard mergers (default is just add a non-existing label). and we have to introduce a registration mechanism similar to the one for access methods. Later on, the existing plugin concept could be used to extend the API to also support such mergers, Then they could automatically be downloaded on-the-fly, when required by a transport step. (The download and update mechanisms for executables and plugins are already supported by the OCM library). |
The following scenario must be handled correctly, also:
Here, also the early digesting and the proposed merge operation could help to support this scenario. |
What happened:
If there are two aggregated component versions sharing a common CV, transportation is hardly possible for signed components.
The check (basically a tweaked deep equal) for valid existing components fails, because the access methods might be touched.
So far, it is not possible to detect whether a component is really the same without reading and comparing the blobs of both variants.
The only solution so far is the option -f, which overwrites the existing CVs in the target
What you expected to happen:
It must be possible to transport partly shared CV graphs, which are independently signed in a safe way, guaranteeing that all possible
transportation sequences finally provide the same result.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know:
Environment:
The text was updated successfully, but these errors were encountered: