repository_service_tuf_api package

Subpackages

Submodules

repository_service_tuf_api.bootstrap module

repository_service_tuf_api.common_models module

class repository_service_tuf_api.common_models.BaseErrorResponse(*, error: str, details: Dict[str, str] | None = None, code: int | None = None)[source]

Bases: BaseModel

code: int | None
details: Dict[str, str] | None
error: str
class repository_service_tuf_api.common_models.Roles(value)[source]

Bases: Enum

An enumeration.

BINS = 'bins'
ROOT = 'root'
SNAPSHOT = 'snapshot'
TARGETS = 'targets'
TIMESTAMP = 'timestamp'
static online_roles_values() List[str][source]
static values() List[str][source]
class repository_service_tuf_api.common_models.TUFKeys(*, keytype: str, scheme: str, keyval: Dict[Literal['public', 'private'], str], name: str | None = None)[source]

Bases: BaseModel

keytype: str
keyval: Dict[Literal['public', 'private'], str]
name: str | None
scheme: str
class repository_service_tuf_api.common_models.TUFMetadata(*, signatures: List[TUFSignatures], signed: TUFSigned)[source]

Bases: BaseModel

signatures: List[TUFSignatures]
signed: TUFSigned
class repository_service_tuf_api.common_models.TUFSignatures(*, keyid: str, sig: str)[source]

Bases: BaseModel

keyid: str
sig: str
class repository_service_tuf_api.common_models.TUFSigned(*, _type: str, version: int, spec_version: str, expires: str, keys: Dict[str, TUFKeys] | None = None, consistent_snapshot: bool | None = None, roles: Dict[Literal['root', 'targets', 'snapshot', 'timestamp', 'bins'], TUFSignedRoles] | None = None, meta: Dict[str, TUFSignedMetaFile] | None = None, targets: Dict[str, str] | None = None, delegations: TUFSignedDelegations | None = None)[source]

Bases: BaseModel

class Config[source]

Bases: object

fields = {'type': '_type'}
consistent_snapshot: bool | None
delegations: TUFSignedDelegations | None
expires: str
keys: Dict[str, TUFKeys] | None
meta: Dict[str, TUFSignedMetaFile] | None
roles: Dict[Literal['root', 'targets', 'snapshot', 'timestamp', 'bins'], TUFSignedRoles] | None
spec_version: str
targets: Dict[str, str] | None
type: str
version: int
class repository_service_tuf_api.common_models.TUFSignedDelegations(*, keys: Dict[str, TUFKeys], roles: List[TUFSignedDelegationsRoles] | None = None, succinct_roles: TUFSignedDelegationsSuccinctRoles | None = None)[source]

Bases: BaseModel

keys: Dict[str, TUFKeys]
roles: List[TUFSignedDelegationsRoles] | None
succinct_roles: TUFSignedDelegationsSuccinctRoles | None
class repository_service_tuf_api.common_models.TUFSignedDelegationsRoles(*, name: str, terminating: bool, keyids: List[str], threshold: int, paths: List[str] | None = None, path_hash_prefixes: List[str] | None = None)[source]

Bases: BaseModel

keyids: List[str]
name: str
path_hash_prefixes: List[str] | None
paths: List[str] | None
terminating: bool
threshold: int
class repository_service_tuf_api.common_models.TUFSignedDelegationsSuccinctRoles(*, bit_length: int, name_prefix: str, keyids: List[str], threshold: int)[source]

Bases: BaseModel

bit_length: int
keyids: List[str]
name_prefix: str
threshold: int
class repository_service_tuf_api.common_models.TUFSignedMetaFile(*, version: int)[source]

Bases: BaseModel

version: int
class repository_service_tuf_api.common_models.TUFSignedRoles(*, keyids: List[str], threshold: int)[source]

Bases: BaseModel

keyids: List[str]
threshold: int

repository_service_tuf_api.config module

repository_service_tuf_api.metadata module

repository_service_tuf_api.targets module

repository_service_tuf_api.tasks module

class repository_service_tuf_api.tasks.GetParameters(*, task_id: str)[source]

Bases: BaseModel

task_id: str
class repository_service_tuf_api.tasks.Response(*, data: TasksData, message: str | None = None)[source]

Bases: BaseModel

class Config[source]

Bases: object

data_example = {'data': {'result': {'details': {'target_roles': ['bins-3'], 'targets': ['file1.tar.gz']}, 'last_update': '2023-11-17T09:54:15.762882', 'message': 'Target(s) Added', 'status': True, 'task': TaskName.ADD_TARGETS}, 'state': TaskState.SUCCESS, 'task_id': '33e66671dcc84cdfa2535a1eb030104c'}, 'message': 'Task state.'}
schema_extra = {'example': {'data': {'result': {'details': {'target_roles': ['bins-3'], 'targets': ['file1.tar.gz']}, 'last_update': '2023-11-17T09:54:15.762882', 'message': 'Target(s) Added', 'status': True, 'task': TaskName.ADD_TARGETS}, 'state': TaskState.SUCCESS, 'task_id': '33e66671dcc84cdfa2535a1eb030104c'}, 'message': 'Task state.'}}
data: TasksData
message: str | None
class repository_service_tuf_api.tasks.TaskDetails(*, message: str, error: str | None = None, details: Dict[str, Any] | None = None)[source]

Bases: BaseModel

details: Dict[str, Any] | None
error: str | None
message: str
class repository_service_tuf_api.tasks.TaskName(value)[source]

Bases: str, Enum

An enumeration.

ADD_TARGETS = 'add_targets'
BOOTSTRAP = 'bootstrap'
DELETE_SIGN_METADATA = 'delete_sign_metadata'
METADATA_UPDATE = 'metadata_update'
PUBLISH_TARGETS = 'publish_targets'
REMOVE_TARGETS = 'remove_targets'
SIGN_METADATA = 'sign_metadata'
UPDATE_SETTINGS = 'update_settings'
class repository_service_tuf_api.tasks.TaskResult(*, status: bool, task: TaskName, last_update: datetime, details: TaskDetails)[source]

Bases: BaseModel

details: TaskDetails
last_update: datetime
status: bool
task: TaskName
class repository_service_tuf_api.tasks.TaskState(value)[source]

Bases: str, Enum

An enumeration.

ERRORED = 'ERRORED'
FAILURE = 'FAILURE'
IGNORED = 'IGNORED'
PENDING = 'PENDING'
RECEIVED = 'RECEIVED'
REJECTED = 'REJECTED'
RETRY = 'RETRY'
REVOKED = 'REVOKED'
RUNNING = 'RUNNING'
STARTED = 'STARTED'
SUCCESS = 'SUCCESS'
class repository_service_tuf_api.tasks.TasksData(*, task_id: str, state: TaskState, result: Any | TaskResult | None = None)[source]

Bases: BaseModel

result: Any | TaskResult | None
state: TaskState
task_id: str
repository_service_tuf_api.tasks.get(task_id: str) Response[source]

Get the task details from Result Backend Server.

Uses the Celery implementation in repository_service_tuf_api.metadata.metadata_repository.AsyncResult to fetch from Result Backend the task state.

Args:

task_id: Task ID

Returns:

Response as BaseModel from pydantic

Module contents

class repository_service_tuf_api.BootstrapState(bootstrap: bool, state: str | None = None, task_id: str | None = None)[source]

Bases: object

bootstrap: bool
state: str | None = None
task_id: str | None = None
repository_service_tuf_api.bootstrap_state() BootstrapState[source]

Bootstrap state

The bootstrap state is registered in Redis. Detailed definitions are available in https://repository-service-tuf.readthedocs.io/en/stable/devel/design.html#tuf-repository-settings # noqa

repository_service_tuf_api.get_task_id()[source]
repository_service_tuf_api.pre_lock_bootstrap(task_id)[source]

Add a pre-lock to the bootstrap repository settings.

Add to the repository settings in Redis the lock as pre-<task_id>.

Args:

task_id: Task id generated by bootstrap

repository_service_tuf_api.release_bootstrap_lock()[source]

Remove the pre-lock from repository settings.

Move the repository settings BOOTSTRAP to None if not finished.