Values map[string]VocabularyTagValue `json:"values"`
}
-// Cannot have a constant map in Go, so we have to use a function
+// Cannot have a constant map in Go, so we have to use a function.
+// If you are adding a new system property, it SHOULD start with `arv:`,
+// and Check will allow it. This map is for historical exceptions that
+// predate standardizing on this prefix.
func (v *Vocabulary) systemTagKeys() map[string]bool {
return map[string]bool{
// Collection keys - set by arvados-cwl-runner
}
for key, val := range data {
// Checks for key validity
- if v.reservedTagKeys[key] {
+ if strings.HasPrefix(key, "arv:") || v.reservedTagKeys[key] {
// Allow reserved keys to be used even if they are not defined in
// the vocabulary no matter its strictness.
continue