Skip to main content

Metadata and Schema Commands

Manage metadata for assets, files, asset links, and databases through a unified API. Also view metadata schema definitions that control validation rules.


Unified Metadata API

All metadata operations use a consistent format with bulk support and two update modes:

  • update (default): Upsert mode -- creates or updates provided metadata, keeps unlisted keys.
  • replace_all: Replace mode -- deletes unlisted keys, upserts provided metadata (with rollback on failure).

Supported value types

TypeDescriptionExample
stringText values"My Asset"
numberNumeric values42, 3.14
booleanTrue/false"true", "false"
objectJSON objects (stored as string)"\{\"key\": \"value\"\}"
arrayJSON arrays (stored as string)"[\"a\", \"b\"]"

metadata asset list

List all metadata for an asset.

vamscli metadata asset list -d <DB> -a <ASSET> [--asset-version-id <VER>] [--json-output]

metadata asset update

Create or update asset metadata (bulk operation).

vamscli metadata asset update -d <DB> -a <ASSET> --json-input <JSON> [--update-type update|replace_all] [--json-output]

JSON input format

[
{ "metadataKey": "title", "metadataValue": "My 3D Model", "metadataValueType": "string" },
{ "metadataKey": "priority", "metadataValue": "1", "metadataValueType": "number" },
{ "metadataKey": "active", "metadataValue": "true", "metadataValueType": "boolean" }
]
vamscli metadata asset update -d my-db -a my-asset --json-input @metadata.json
vamscli metadata asset update -d my-db -a my-asset --update-type replace_all --json-input @metadata.json

metadata asset delete

Delete specific metadata keys from an asset.

vamscli metadata asset delete -d <DB> -a <ASSET> --json-input '["title", "priority"]'

metadata file list

List metadata or attributes for a specific file.

vamscli metadata file list -d <DB> -a <ASSET> --file-path "models/file.gltf" --type metadata [--asset-version-id <VER>] [--json-output]
OptionTypeRequiredDescription
-d, --database-idTEXTYesDatabase ID
-a, --asset-idTEXTYesAsset ID
--file-pathTEXTYesRelative file path
--typeCHOICEYesmetadata or attribute

metadata file update

Create or update file metadata (bulk operation).

vamscli metadata file update -d <DB> -a <ASSET> -f <FILE_ID> --json-input <JSON> [--update-type update|replace_all]

metadata file delete

Delete metadata keys from a file.

vamscli metadata file delete -d <DB> -a <ASSET> -f <FILE_ID> --json-input '["old_field"]'

List all metadata for an asset link.

vamscli metadata asset-link list --asset-link-id <UUID> [--json-output]

Create or update asset link metadata.

vamscli metadata asset-link update --asset-link-id <UUID> --json-input <JSON> [--update-type update|replace_all]

Delete metadata keys from an asset link.

vamscli metadata asset-link delete --asset-link-id <UUID> --json-input '["old_field"]'

metadata database list

List all metadata for a database.

vamscli metadata database list -d <DB> [--json-output]

metadata database update

Create or update database metadata.

vamscli metadata database update -d <DB> --json-input <JSON> [--update-type update|replace_all]

metadata database delete

Delete metadata keys from a database.

vamscli metadata database delete -d <DB> --json-input '["old_project"]'

metadata-schema list

List metadata schemas with optional filters.

vamscli metadata-schema list [OPTIONS]
OptionTypeRequiredDescription
-d, --database-idTEXTNoFilter by database ID
-e, --entity-typeCHOICENoFilter: databaseMetadata, assetMetadata, fileMetadata, fileAttribute, assetLinkMetadata
--page-sizeINTEGERNoItems per page
--max-itemsINTEGERNoMaximum items (default: 1000)
--starting-tokenTEXTNoPagination token
--json-outputFlagNoOutput raw JSON
vamscli metadata-schema list
vamscli metadata-schema list -d my-database -e assetMetadata

metadata-schema get

Get a specific metadata schema by ID.

vamscli metadata-schema get -d <DB> -s <SCHEMA_ID> [--json-output]

Output includes schema name, entity type, enabled status, field definitions with types, default values, dependencies, and controlled list values.


Workflow Examples

Asset metadata lifecycle

# Create initial metadata
vamscli metadata asset update -d my-db -a my-asset --json-input '[
{"metadataKey": "title", "metadataValue": "3D Building Model", "metadataValueType": "string"},
{"metadataKey": "priority", "metadataValue": "1", "metadataValueType": "number"}
]'

# List metadata
vamscli metadata asset list -d my-db -a my-asset

# Replace all metadata atomically
vamscli metadata asset update -d my-db -a my-asset --update-type replace_all --json-input '[
{"metadataKey": "title", "metadataValue": "New Asset", "metadataValueType": "string"}
]'

# Delete specific keys
vamscli metadata asset delete -d my-db -a my-asset --json-input '["old_field"]'