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.
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 catalog source 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 catalog source import \
"Community Catalog" \
"https://github.com/example/fuzzball-catalog" \
mainExample - Private Repository:
$ fuzzball workflow catalog source import \
"Private Catalog" \
"https://github.com/example/private-catalog" \
main \
--access-token "xxxxxxxxxxxx"To view all configured catalog repositories:
$ fuzzball workflow catalog source 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 catalog source get <SOURCE>Example:
$ fuzzball workflow catalog source get -o 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 catalog source reload <SOURCE>Example:
$ fuzzball workflow catalog source 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 catalog source remove <SOURCE>Example:
$ fuzzball workflow catalog source remove 1d9c69b7-d394-4286-9c19-05dac07919b4Removing a catalog source removes its templates from the Fuzzball workflow catalog. The underlying git repository at its origin is never modified, so the source can be restored by re-importing it.
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 catalog source 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 catalog source add \
"Development Catalog" \
"https://github.com/example/dev-catalog" \
"develop"
$ fuzzball workflow catalog source reload <SOURCE>