Skip to content

Latest commit

 

History

History
237 lines (172 loc) · 7.56 KB

design.rst

File metadata and controls

237 lines (172 loc) · 7.56 KB

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 :ref:`guide/general/introduction:RSTUF Components`.

Note

Other services can be added as optional or required

RSTUF also requires some third-party services described in :ref:`guide/deployment/planning/deployment:Required Infrastructure Services`.

/_static/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

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