Skip to content

cub view create

cub view create

Create a new view or bulk create views

Synopsis

Create a new view or bulk create multiple views by cloning existing ones.

SINGLE VIEW CREATION:

Create a new view to define an entity view specification.

Examples:

  # Create a view with a filter and specific columns
  cub view create --space my-space unit-view unit-filter --column Unit.Slug --column Unit.DisplayName --column Space.Slug

  # Create a view with grouping and ordering
  cub view create --space my-space summary-view deployment-filter --column Unit.Labels.Environment --column Unit.Status --group-by Unit.Labels.Environment --order-by Unit.CreatedAt --order-by-direction DESC

  # Create a view with custom columns and sorting
  cub view create --space my-space detailed-view my-filter --column Unit.Slug --column Unit.HeadRevisionNum --column UpstreamUnit.HeadRevisionNum --order-by Unit.UpdatedAt

  # Create a view from JSON
  cub view create --space my-space --json my-view --from-stdin < view.json

BULK VIEW CREATION:

When no positional arguments are provided, bulk create mode is activated. This mode clones existing views based on filters and creates multiple new views with optional modifications.

Bulk Create Examples:

  # Clone all views matching a pattern with name prefixes
  cub view create --where "FilterID IS NOT NULL" --name-prefix backup- --dest-space backup-space

  # Clone specific views to multiple spaces
  cub view create --view my-view --dest-space dev-space,staging-space

  # Clone views using a where expression for destination spaces
  cub view create --where "GroupBy IS NOT NULL" --where-space "Labels.Environment IN ('dev', 'staging')"

  # Clone views with modifications via JSON patch
  echo '{"OrderByDirection": "DESC"}' | cub view create --where "OrderBy IS NOT NULL" --name-prefix sorted- --from-stdin

Column Names:

Columns should be specified in the format used by list commands, such as:

  • Unit.Slug, Unit.DisplayName, Unit.Status
  • Space.Slug, Space.DisplayName
  • Labels.Environment, Labels.Version
  • UpstreamUnit.HeadRevisionNum, UpstreamUnit.Slug
  • Target.Slug, Target.ToolchainType
cub view create [<slug> <filter> [--column <column>...] [--group-by <column>] [--order-by <column>] [--order-by-direction <ASC|DESC>]] [flags]

Options

      --allow-exists                Allow creation of resources that already exist
      --annotation strings          annotations in key=value format; can separate by commas and/or use multiple instances of the flag
      --column strings              column names to display in the view (can be repeated or comma-separated)
      --delete-gate strings         delete gates in key[=true] format; can separate by commas and/or use multiple instances of the flag
      --dest-space strings          destination spaces for bulk create (can be repeated or comma-separated)
      --filename string             Read the ConfigHub entity JSON from file, URL (https://), or stdin (-); mutually exclusive with --from-stdin
      --filter string               Filter entity to apply to the list. Specify as 'space/filter' for cross-space filters or just 'filter' for current space. Supports both slugs and UUIDs. The filter will be combined with any --where clause using AND logic. Examples: "production-filters/security-check", "my-filter-uuid", "validation-rules"
      --filter-space string         filter entity containing WHERE expression to select destination spaces for bulk create (slug or UUID)
      --from-stdin                  Read the ConfigHub entity JSON (e.g., retrieved with cub <entity> get --quiet --json) from stdin; merged with command arguments on create, and merged with command arguments and existing entity on update
      --group-by string             column name to group by
  -h, --help                        help for create
      --jq string                   jq expression, suppressing default output
      --json                        JSON output, suppressing default output
      --label strings               labels in key=value format; can separate by commas and/or use multiple instances of the flag
      --name-pattern string         a pattern string for name generation of clones, prefix 'template:' to use a Go template with .SourceEntitySlug to access the original View and .Labels to access variant labels, example: 'template:{{.SourceEntitySlug}}-{{.Labels.env}}'
      --name-prefix strings         name prefixes for bulk create (can be repeated or comma-separated)
      --order-by string             column name to sort by
      --order-by-direction string   sort direction (ASC or DESC, only valid with --order-by)
      --quiet                       No default output.
      --variant-labels strings      labels for bulk create in the format of key1=value1|value2,key2=value1|value2|value3
      --verbose                     Detailed output, additive with default output
      --view strings                target specific views by slug or UUID for bulk create (can be repeated or comma-separated)
      --where string                Filter expression using SQL-inspired syntax. Supports conjunctions with AND. String operators: =, !=, <, >, <=, >=, LIKE, ILIKE, ~~, !~~, ~, ~*, !~, !~*. Pattern matching with LIKE/ILIKE uses % and _ wildcards. Regex operators (~, ~*, !~, !~*) support POSIX regular expressions. Examples: "Slug LIKE 'app-%'", "DisplayName ILIKE '%backend%'", "Slug ~ '^[a-z]+-[0-9]+$'"
      --where-space string          where expression to select destination spaces for bulk create
      --yaml                        YAML output, suppressing default output
      --yq string                   yq expression, suppressing default output

Options inherited from parent commands

      --context string   The context to use for this command
      --debug            Debug output
      --space string     space ID to perform command on

SEE ALSO