19792: Split collection recipes into separate cookbook sections
[arvados.git] / doc / api / properties.html.textile.liquid
1 ---
2 layout: default
3 navsection: api
4 title: "Metadata properties"
5 ...
6 {% comment %}
7 Copyright (C) The Arvados Authors. All rights reserved.
8
9 SPDX-License-Identifier: CC-BY-SA-3.0
10 {% endcomment %}
11
12 Arvados allows you to attach arbitrary properties to "collection":methods/collections.html, "container_request":methods/container_requests.html, "link":methods/links.html and "group":methods/groups.html records that have a @properties@ field.  These are key-value pairs, where the value is a valid JSON type (string, number, null, boolean, array, object).
13
14 Searching for records using properties is described in "Filtering on subproperties":methods.html#subpropertyfilters .
15
16 h2. Reserved properties
17
18 The following properties are set by Arvados components.
19
20 table(table table-bordered table-condensed).
21 |_. Property name|_. Appears on|_. Value type|_.Description|
22 |type|collection|string|Appears on collections to indicates the contents or usage. See "Collection type values":#collectiontype below for details.|
23 |container_request|collection|string|The UUID of the container request that produced an output or log collection.|
24 |docker-image-repo-tag|collection|string|For collections containing a Docker image, the repo/name:tag identifier|
25 |container_uuid|collection|string|The UUID of the container that produced a collection (set on collections with type=log)|
26 |cwl_input|container_request|object|On an intermediate container request, the CWL workflow-level input parameters used to generate the container request|
27 |cwl_output|container_request|object|On an intermediate container request, the CWL workflow-level output parameters collected from the container request|
28 |template_uuid|container_request|string|For a workflow runner container request, the workflow record that was used to launch it.|
29 |username|link|string|For a "can_login":permission-model.html#links permission link, the unix username on the VM that the user will have.|
30 |groups|link|array of string|For a "can_login":permission-model.html#links permission link, the unix groups on the VM that the user will be added to.|
31 |image_timestamp|link|string|When resolving a Docker image name and multiple links are found with @link_class=docker_image_repo+tag@ and same @link_name@, the @image_timestamp@ is used to determine precedence (most recent wins).|
32 |filters|group|array of array of string|Used to define "filter groups":projects.html#filtergroup|
33
34 h3(#collectiontype). Collection "type" values
35
36 Meaningful values of the @type@ property.  These are recognized by Workbench when filtering on types of collections from the project content listing.
37
38 table(table table-bordered table-condensed).
39 |_. Type|_.Description|
40 |log|The collection contains log files from a container run.|
41 |output|The collection contains the output of a top-level container run (this is a container request where @requesting_container_uuid@  is null).|
42 |intermediate|The collection contains the output of a child container run (this is a container request where @requesting_container_uuid@ is non-empty).|
43
44 h2. Controlling user-supplied properties
45
46 Arvados can be configured with a vocabulary file that lists valid properties and the range of valid values for those properties.  This is described in "Metadata vocabulary":{{site.baseurl}}/admin/metadata-vocabulary.html .
47
48 Arvados offers options to set properties automatically and/or prevent certain properties, once set, from being changed by non-admin users.  This is described in "Configuring collection's managed properties":{{site.baseurl}}/admin/collection-managed-properties.html .
49
50 The admin can require that certain properties must be non-empty before "freezing a project":methods/groups.html#frozen .