Architecture Design

The principles

  • RSTUF uses The Update Framework (TUF).

    • It enables RSTUF to be artifact agnostic.

  • RSTUF is easy to deploy.

  • RSTUF has an API-first design.

    • RSTUF is language agnostic, allowing integration by any programming language

  • RSTUF is process agnostic.

    • Add/Remove artifacts doesn’t interfere with the existing organizational processes for release/publish.

  • RSTUF focuses on scalability and Metadata consistency.

  • RSTUF guides users on TUF processes.

The architecture design principles

The Repository Service for TUF (RSTUF) has two services (repository-service-tuf-api, repository-service-tuf-worker) and one command line tool (repository-service-cli), as described in RSTUF Components.

Note

Other services can be added as optional or required

RSTUF also requires some third-party services described in Required Infrastructure Services.

../_images/2_1_rstuf.png

The below definitions allow RSTUF API and RSTUF Worker scalability.

RSTUF is Asynchronous

RSTUF Repository Settings/Configuration

TUF Repository Settings

TUF Repository Settings are key configurations for the Metadata Repository operations.

RSTUF reserved settings/configuration

Key

Value(s)

Description

BOOTSTRAP

None
<task id>
pre-<task id>
signing-<task id>
RSTUF bootstrap state
None: No bootstrap
<task id>: Finished
pre-<task id>: Initial process
signing-<task id>: Signing process
The <task-id> is the initial bootstrap task

<ROLE NAME>_EXPIRATION

int
Role Metadata expiration policy in days
It uses the role name uppercase
Example: ROOT_EXPIRATION

<ROLE NAME>_NUM_KEYS

int
Role number of keys
It uses the role name uppercase
Example: ROOT_NUM_KEYS

<ROLE NAME>_THRESHOLD

int
Role key threshold
It uses the role name uppercase
Example: ROOT_THRESHOLD

NUMBER_OF_DELEGATED_BINS

int

Number of delegated hash bin roles

<ROLE NAME>_SIGNING

None
<json>
None: No pending signature(s)
json: TUF Metadata pending signature
It uses the role name uppercase
Example ROOT_SIGNING

Target Files and Target Roles

  • The TUF top-level Targets Role is only used for delegation. This role does not register target files (artifacts).

  • PostgreSQL stores the artifacts (TargetFiles) and Targets delegated roles.

  • Repository Service TUF Worker manages the PostgreSQL database.

Key Vault and TUF Metadata Storage

RSTUF Components Design

Repository Service TUF API

  • Integration (add/remove artifacts)

  • TUF metadata process (bootstrap, sign, update, etc)

Note

The service can implement other features without interfering with the RSTUF principles and architecture design principles.

See API component development documentation.

Repository Service TUF Worker

  • Manages the TUF metadata

  • Manages the Key Vault and Storage Services

Note

The service can implement other features without interfering with the RSTUF principles and architecture design principles.

See Worker component development documentation.

Repository Service TUF CLI

  • Command Line Interface for the API

  • Guide users in the processes

Note

The service can implement other features without interfering with the RSTUF principles and architecture design principles.

See component development documentation.

RSTUF Infrastructure Services Design

The Infrastructure Services supports the RSTUF Components operation.

Message Queue

Backend Result

Redis

PostgreSQL