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, theworkflow-templatesubcommand was calledapplication. Additionally, therepositorysubcommand was calledcatalog, which is now deprecated.
Currently management of catalog repositories is only possible with the CLI.
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" \
mainExample - Private Repository:
$ fuzzball workflow-template repository import \
"Private Catalog" \
"https://github.com/example/private-catalog" \
main \
--access-token "xxxxxxxxxxxx"To view all configured catalog repositories:
$ fuzzball workflow-template repository listExample 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.
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-05dac07919b4Example 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
}
}
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-05dac07919b4This fetches the latest commit from the repository and updates all applications, creating new ones or updating existing ones as needed.
To remove a catalog repository:
$ fuzzball workflow-template repository delete <REPOSITORY_ID>Example:
$ fuzzball workflow-template repository delete 1d9c69b7-d394-4286-9c19-05dac07919b4Deleting 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.
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>