Component/s: Configuration Management
When should/must a configuration management server perform validation of oslc_config:accepts and oslc_config:acceptedBy?
This is related to whether oslc_config:accepts and oslc_config:acceptedBy are lifetime invariant or not. If they are lifetime invariant, then a contribution need only be validated once when it is added. If a configuration management server allows a stream to be made immutable, or have other state-like properties changed, then one could imagine that the validation conditions for a contributed configuration might change over time. Is there a real use case here that we need to consider?
However, if the specification can impose a restriction that oslc_config:accepts and oslc_config:acceptedBy are lifetime invariant, then it will always be the case that once a contribution is validated against the values of those properties, it will always remain valid. Currently, the best a CM server can do is validate on creation or modification, but that doesn't guarantee that the contribution is valid after that point. Such a restriction has a number of benefits:
- Once a contribution is validated, the referenced configuration does not need to be fetched to revalidate it, even if the oslc_config:contributionOrder changes. This will provide a significant performance improvement when a configuration has a large number of contributions and only a small number are added or modified.
- The contributions of a configuration may be modified even if the the configurations referenced by an existing contribution are not available to be fetched, for example, because of network connectivity issues or the CM server for the contributed configuration is not running. This improves the resilience of configuration management across multiple servers and geographies.
The issue relates to 466476: Several actions are unperformable when an "Unavailable configuration" is in the tree and whether GCM MUST perform validation of each contribution when the contributions to a global configuration change.