winget install --id=kairoaraujo.tufie -e
TUFie an Open Source generic TUF client
TUFie is an open-source command-line tool designed to interact with TUF (The Update Framework) repositories. Built in Go, it simplifies the process of working with TUF without requiring users to build a custom client from scratch.
Key Features:
Audience & Benefit: Ideal for developers, DevOps engineers, and security teams working with software update systems. TUFie enhances workflow efficiency by providing a straightforward way to interact with TUF repositories while ensuring secure artifact retrieval and verification.
TUFie is available via winget on Windows and can be installed through various package managers or directly from its GitHub repository.
TUFie is a TUF (The Update Framework) command-line client. The TUFie simplifies the client's high-level usage without building a client from scratch.
This client allows simple use cases such as downloading an artifact from an existent TUF Repository or scripting and CI/CD.
$ tufie download v1.0.3/demo_package-1.0.3.tar.gz
Artifact v1.0.3/demo_package-1.0.3.tar.gz donwload completed.
brew install kairoaraujo/tap/tufie
winget install tufie
Download the Binary
Download from the releases page or use the install script to download the latest release.
bash <(curl -s https://raw.githubusercontent.com/kairoaraujo/tufie/main/install.sh)
TUFie has a simple interface
$ tufie download v1.0.3/demo_package-1.0.3.tar.gz
Artifact v1.0.3/demo_package-1.0.3.tar.gz donwload completed.
TUFie supports multiple repositories
$ tufie repository -h
Manage TUF repository configurations
Usage:
tufie repository [REPOSITORY NAME] [flags]
tufie repository [command]
Available Commands:
add Add a new repository
list List all repositories
remove Remove a repository
set Set the default repository
Usage:
tufie repository add [flags]
Flags:
--artifact-hash add hash prefix to artifact [default: false]
-a, --artifact-url string content artifact base URL
-d, --default set repository as default
-h, --help help for add
-m, --metadata-url string metadata URL
-n, --name string repository name
-r, --root string trusted Root metadata
$ tufie repository add --default --artifact-url https://rubygems.org --metadata-url https://metadata.rubygems.org --root rubygems-root.json --name rubygems
Config file used for tuf: /Users/kairoaraujo/.tufie/config.yml
Repository 'rubygems' added.
$ tufie repository list
Config file used for tuf: /Users/kairoaraujo/.tufie/config.yml
Default repository: rubygems.org
Repository: rstuf
Artifact Base URL: https://github.com/kairoaraujo/demo-package/releases/download/
Metadata Base URL: http://metadata.dev.rstuf.org
Repository: rubygems
Artifact Base URL: https://rubygems.org
Metadata Base URL: https://metadata.rubygems.org
$ tufie repository set rstuf
Config file used for tuf: /Users/kairoaraujo/.tufie/config.yml
Updated default repository to 'rstuf'.
git clone git@github.com:YOUR-USERNAME/tufie.git
git remote add upstream https://github.com/kairoaraujo/tufie
git checkout main
git fetch upstream
git merge upstream/main
Install Go
go mod tidy
make test
Install golangci-lint
make lint