quilt

Configuration

Show and hide features in the Quilt catalog

You can use the configuration file to show or hide certain tabs and buttons in the Quilt catalog. This gives you fine-grained control over how users interact with the Quilt catalog. There is one catalog config file per-bucket. The config file’s path is s3://BUCKET/.quilt/catalog/config.yaml.

If there is no config.yaml, or your config.yaml file does not override the ui key, then the following defaults are used:

ui:
  nav:
    files: True
    workflows: True
    packages: True
    queries: True
  actions:
    copyPackage: True
    createPackage: True
    deleteObject: False
    deleteRevision: False
    downloadObject: True
    downloadPackage: True
    openInDesktop: True
    restore: True
    revisePackage: True
    writeFile: True
  blocks:
    analytics: True
    browser: True
    code: True
    qurator: True
    gallery:
      files: True
      packages: True
      overview: True
      summarize: True
    meta:
      user_meta:
        expanded: False
      workflows:
        expanded: False
  package_description:
    .*:
      message: True
  package_description_multiline: False

Properties

Alongside text editor users can use visual form to modify the config

ui.sourceBuckets example

ui:
  sourceBuckets:
    s3://bucket-a: {}
    bucket-b: {}  # "s3://" prefix is optional
    s3://bucket-c: {}
  defaultSourceBucket: s3://bucket-b

By default, users can add files from the current bucket when creating or revising packages. The current bucket is automatically available in the file picker without requiring configuration. To restrict this functionality and disable adding files from any bucket (including the current one), set ui.sourceBuckets to an empty dictionary {} in your configuration file.

ui.package_description example

ui:
  package_description:
    # match all packages
    .*:
      # show the message
      message: True
      # show the .labels field
      user_meta:
        - $.labels
    # for any package with a handle prefix of foo
    ^foo/.*:
      # JSONPath expressions to the fields to display
      user_meta:
        - $.key1.key2
        - $.key3
        - $.key4[0]

Example of package_description use

ui.athena example

ui:
  athena:
    defaultWorkgroup: primary

ui.blocks.meta

User could set it to boolean or object with additional properties. Object is a truthy value, so any object acts like True.

# default value, show Metadata block
ui:
  blocks:
    meta: True
# Hide Metadata block
ui:
  blocks:
    meta: False
# Show Metadata block and expand `user_meta` object
# consider large `user_meta` objects, they can affect UI responsiveness
ui:
  blocks:
    meta:
      user_meta:
        expanded: True