Fuzzball Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

User Commands

This page documents the user-facing commands for managing catalog repositories. These commands allow regular users to import, manage, and synchronize their own catalog repositories.

Prior to version 3.1, the workflow-template subcommand was called application. Additionally, the repository subcommand was called catalog, which is now deprecated.

Currently management of catalog repositories is only possible with the CLI.

Importing a Catalog Repository

To add a new catalog repository and automatically synchronize its contents with Fuzzball, use the import command:

$ fuzzball workflow-template repository import <NAME> <URI> <BRANCH> [flags]

Arguments:

  • <NAME>: A descriptive name for the catalog repository
  • <URI>: The Git repository URI (HTTPS or SSH)
  • <BRANCH>: The branch to synchronize

Flags:

  • --owner-kind, -o: The owner type for the catalog repository (default: group)
    • Options: group, organization
  • --access-token, -t: Access token for private git repositories (e.g. GitHub PAT)

Example - Public Repository:

$ fuzzball workflow-template repository import \
    "Community Catalog" \
    "https://github.com/example/fuzzball-catalog" \
    main

Example - Private Repository:

$ fuzzball workflow-template repository import \
    "Private Catalog" \
    "https://github.com/example/private-catalog" \
    main \
    --access-token "xxxxxxxxxxxx"

Listing Catalog Repositories

To view all configured catalog repositories:

$ fuzzball workflow-template repository list

Example Output:

NAME                 | ID                                   | OWNER    | URI                                            | BRANCH | LASTSYNCEDSHA
ciq-fuzzball-catalog | 11111111-1111-1111-1111-111111111111 | PROVIDER | https://github.com/ctrliq/ciq-fuzzball-catalog | v3.0   | fb0483082c954d22afac9df16427a18eee8362fe
Community Catalog    | 1d9c69b7-d394-4286-9c19-05dac07919b4 | GROUP    | https://github.com/example/catalog             | main   | ccb981ae3beaafc269a854615cd8976a0ec09e03

This displays the repository ID, name, owner kind, URI, branch, and last synchronized commit SHA.

Getting Repository Details

To view detailed information about a specific catalog repository:

$ fuzzball workflow-template repository get <REPOSITORY_ID>

Example:

$ fuzzball workflow-template repository get --json 1d9c69b7-d394-4286-9c19-05dac07919b4

Example output:

{
  "id": "1d9c69b7-d394-4286-9c19-05dac07919b4",
  "name": "Community Catalog",
  "uri": "https://github.com/example/catalog",
  "branch": "main",
  "last_synced_sha": "ccb981ae3beaafc269a854615cd8976a0ec09e03",
  "create_time": {
    "seconds": 1768407234,
    "nanos": 357487000
  },
  "update_time": {
    "seconds": 1768407234,
    "nanos": 602545000
  }
}

Reloading a Catalog Repository

To synchronize a catalog repository and update its applications:

$ fuzzball workflow-template repository reload <REPOSITORY_ID>

Example:

$ fuzzball workflow-template repository reload 1d9c69b7-d394-4286-9c19-05dac07919b4

This fetches the latest commit from the repository and updates all applications, creating new ones or updating existing ones as needed.

Deleting a Catalog Repository

To remove a catalog repository:

$ fuzzball workflow-template repository delete <REPOSITORY_ID>

Example:

$ fuzzball workflow-template repository delete 1d9c69b7-d394-4286-9c19-05dac07919b4
Deleting a catalog repository will also delete all applications imported from that repository from the Fuzzball workflow catalog. This operation cannot be undone. The source git repository will never be modified, so applications can be restored by adding the catalog repository back.

Advanced: Adding Without Synchronization

In most cases, you should use the import command which adds and synchronizes in one step. However, you can also add a repository without immediately synchronizing it:

$ fuzzball workflow-template repository add <NAME> <URI> <BRANCH> [flags]

The flags are the same as for the import command. After adding, you’ll need to manually run reload to synchronize the applications.

Example:

# Add the repository
fuzzball workflow-template repository add \
  "Development Catalog" \
  "https://github.com/example/dev-catalog" \
  "develop"

# Later, reload it to sync
fuzzball workflow-template repository reload <REPOSITORY_ID>