Skip to content

Add support for s3: URIs in tough/tuftool for targets and metadata resources #911

@ginglis13

Description

@ginglis13

Description:

Currently, tough and tuftool require http(s) URLs or local file paths for accessing TUF repository targets and metadata. Adding native support for s3:// URIs could extends functionality of the library/tool to support usecases where a TUF repository is only hosted on S3.

Proposal:

Allow s3:// URIs to be used anywhere targets or metadata resources are currently specified, including:

  • Repository base URLs in tough client
  • Target file locations
  • Metadata file locations
  • tuftool commands that reference remote resources

Example Usage:

// tough client
let repository = RepositoryLoader::new(
    "s3://my-bucket/tuf-repo",
    // ...
).load().await?;
# tuftool
tuftool download \
    --metadata-url s3://my-bucket/tuf-repo/targets \
    --target-url s3://my-bucket/tuf-repo/targets \
    out-dir

Alternatives considered

  • Download the entire repo via s3 sync and use tuftool local file transport support.
    • this isn't feasible for the use-case in mind given the size of large TUF repos
  • Use S3 pre-signed URLs
  • Keep the status quo

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions