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
- Options:
--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.
$ fuzzball workflow-template repository add \
"Development Catalog" \
"https://github.com/example/dev-catalog" \
"develop"
$ fuzzball workflow-template repository reload <REPOSITORY_ID>