Glossary
This section define the terms used in the Ash Console.
User
A User
who interacts with the Ash Console, either through the Console Website, the Ash CLI, or the Console REST API.
Every Console entity is owned by a single User
.
User
properties
id: UUID4
username: str
firstname: str
lastname: str
email: str
Organization
Not implemented in alpha
A group of User
s that collaborate on the same Project
s.
The owner of the Organization
can add other User
s and give them Role
s.
Role
Not implemented in alpha
A set of permissions granted to User
s that have this role.
Operation
Any User
query made on the Console triggers an Operation
that is logged.
Examples of operation types: ProjectAPI.create_project
, SecretAPI.get_all_secrets
An Operation
can result in success
or failure
.
Operation
properties
id: UUID4
owner_id: UUID4 # The user who performed the operation
logged: datetime
target_type: str
target_id: UUID4 | None # Can be None if the operation is not related to a specific item
target_value: str | None
operation_type: str
args: List[str]
kwargs: Dict[str, str]
result: OperationResult
error_msg: str | None
Secret
A Secret
is an encrypted piece of information which can be used in:
Resource
s configuration keysCloudRegion
s creation- A
Secret
can be one of:generic
: contains any arbitrary valuewallet
: contains a wallet's private key, used to sign transactionsnodeId
: contains a NodeID with its related TLS certificate and key, used to spin up an Avalanche nodeawsCredentials
: contains AWS credentials, used to manage resources in an AWS cloud regionazureCredentials
: contains Azure credentials, used to manage resources in an Azure cloud regiongoogleCredentials
: contains GCP credentials, used to manage resources in a Google cloud regionlxdCredentials
(Not implemented in alpha)
A Secret
can be used across Project
s by multiple Resource
s, and CloudRegion
s.
Secret
properties
id: UUID4
owner_id: UUID4
name: str
secret_type: SecretType
created: datetime
used_by: Dict[UUID4, str] # (UUID => EntityType)
... # extra properties based on type
Project
A Project
managed by a User
(later an Organization
). It is a logical set of Resource
s that are deployed in CloudRegion
s.
A User
can have access to multiple projects.
A Project
is linked to a (blockchain) Network
: local
, testnet
, or mainnet
. All the Resource
s created in the project will automatically be configured to belong to this Network
.
Project
properties
id: UUID4
owner_id: UUID4
name: str
network: Network
created: datetime
cloud_regions_ids: Dict[str, UUID4]
resources_ids: Dict[str, UUID4]
...
Cloud Region
A CloudRegion
is managed by a User
(later an Organization
) inside a Project
.
A CloudRegion
is created from a AwsCredentials
, AzureCredentials
orGcpCredentials
A CloudRegion
's format is always cloudprovider/region
.
A region
can be one of:
azure/*
azure/australiacentral
azure/australiacentral2
azure/australiaeast
azure/australiasoutheast
azure/brazilsouth
azure/canadacentral
azure/canadaeast
azure/centralindia
azure/centralus
azure/eastasia
azure/eastus
azure/eastus2
azure/francecentral
azure/francesouth
azure/germanynorth
azure/germanywestcentral
azure/japaneast
azure/japanwest
azure/koreacentral
azure/koreasouth
azure/northcentralus
azure/northeurope
azure/norwayeast
azure/norwaywest
azure/southafricanorth
azure/southafricawest
azure/southcentralus
azure/southeastasia
azure/southindia
azure/swedencentral
azure/switzerlandnorth
azure/switzerlandwest
azure/uaecentral
azure/uaenorth
azure/uksouth
azure/ukwest
azure/westcentralus
azure/westeurope
azure/westindia
azure/westus
aws/*
aws/af-south-1
aws/ap-east-1
aws/ap-northeast-1
aws/ap-northeast-2
aws/ap-northeast-3
aws/ap-south-1
aws/ap-south-2
aws/ap-southeast-1
aws/ap-southeast-2
aws/ap-southeast-3
aws/ap-southeast-4
aws/ca-central-1
aws/eu-central-1
aws/eu-central-2
aws/eu-north-1
aws/eu-south-1
aws/eu-south-2
aws/eu-west-1
aws/eu-west-2
aws/eu-west-3
aws/me-central-1
aws/me-south-1
aws/sa-east-1
aws/us-east-1
aws/us-east-2
aws/us-west-1
aws/us-west-2
google/*
google/asia-east1
google/asia-east2
google/asia-northeast1
google/asia-northeast2
google/asia-northeast3
google/asia-south1
google/asia-southeast1
google/asia-southeast2
google/australia-southeast1
google/europe-central2
google/europe-north1
google/europe-west1
google/europe-west2
google/europe-west3
google/europe-west4
google/europe-west6
google/northamerica-northeast1
google/southamerica-east1
google/us-central1
google/us-east1
google/us-east4
google/us-west1
google/us-west2
google/us-west3
google/us-west4
A CloudRegion
belongs to only one project
.
CloudRegion
properties
id: UUID4
owner_id: UUID4
project_id: UUID4
created: datetime
cloud_provider: CloudProvider
region: Region
cloud_credentials_secret_id: UUID4
status: CloudRegionStatus
Resource
A Resource
is managed by a User
(later an Organization
) inside a Project
and in a CloudRegion
.
A Resource
can be:
- An
avalancheNode
- An
avalancheSubnet
- An
avalancheFaucet
(Not implemented in alpha) - A
blockscout
- A
monitoringStack
(Not implemented in alpha)
A Resource
belongs to only one Project
and one CloudRegion
.
Resource
properties
id: UUID4
owner_id: UUID4
project_id: UUID4
created: datetime
resource_type: ResourceType
cloud_region_id: UUID4
... # extra properties based on type