X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c634fdaf04b09ccd64d418c37dddc1eb7ff1c490..3429718113f11e999dd745e94ff981a4f3b01c57:/sdk/go/arvados/vocabulary.go?ds=sidebyside diff --git a/sdk/go/arvados/vocabulary.go b/sdk/go/arvados/vocabulary.go index bf60a77026..1df43b5fb8 100644 --- a/sdk/go/arvados/vocabulary.go +++ b/sdk/go/arvados/vocabulary.go @@ -26,19 +26,28 @@ type VocabularyTag struct { 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{ - "type": true, - "template_uuid": true, - "groups": true, - "username": true, - "image_timestamp": true, + // Collection keys - set by arvados-cwl-runner + "container_request": true, + "container_uuid": true, + "type": true, + // Collection keys - set by arv-keepdocker (on the way out) "docker-image-repo-tag": true, - "filters": true, - "container_request": true, - "cwl_input": true, - "cwl_output": true, + // Container request keys - set by arvados-cwl-runner + "cwl_input": true, + "cwl_output": true, + "template_uuid": true, + // Group keys + "filters": true, + // Link keys + "groups": true, + "image_timestamp": true, + "username": true, } } @@ -261,7 +270,7 @@ func (v *Vocabulary) Check(data map[string]interface{}) error { } 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