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 Users that collaborate on the same Projects.
The owner of the Organization can add other Users and give them Roles.
Role
Not implemented in alpha
A set of permissions granted to Users 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:
Resources configuration keysCloudRegions creation- A
Secretcan 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 Projects by multiple Resources, and CloudRegions.
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 Resources that are deployed in CloudRegions.
A User can have access to multiple projects.
A Project is linked to a (blockchain) Network: local, testnet, or mainnet. All the Resources 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/australiacentralazure/australiacentral2azure/australiaeastazure/australiasoutheastazure/brazilsouthazure/canadacentralazure/canadaeastazure/centralindiaazure/centralusazure/eastasiaazure/eastusazure/eastus2azure/francecentralazure/francesouthazure/germanynorthazure/germanywestcentralazure/japaneastazure/japanwestazure/koreacentralazure/koreasouthazure/northcentralusazure/northeuropeazure/norwayeastazure/norwaywestazure/southafricanorthazure/southafricawestazure/southcentralusazure/southeastasiaazure/southindiaazure/swedencentralazure/switzerlandnorthazure/switzerlandwestazure/uaecentralazure/uaenorthazure/uksouthazure/ukwestazure/westcentralusazure/westeuropeazure/westindiaazure/westus
aws/*
aws/af-south-1aws/ap-east-1aws/ap-northeast-1aws/ap-northeast-2aws/ap-northeast-3aws/ap-south-1aws/ap-south-2aws/ap-southeast-1aws/ap-southeast-2aws/ap-southeast-3aws/ap-southeast-4aws/ca-central-1aws/eu-central-1aws/eu-central-2aws/eu-north-1aws/eu-south-1aws/eu-south-2aws/eu-west-1aws/eu-west-2aws/eu-west-3aws/me-central-1aws/me-south-1aws/sa-east-1aws/us-east-1aws/us-east-2aws/us-west-1aws/us-west-2
google/*
google/asia-east1google/asia-east2google/asia-northeast1google/asia-northeast2google/asia-northeast3google/asia-south1google/asia-southeast1google/asia-southeast2google/australia-southeast1google/europe-central2google/europe-north1google/europe-west1google/europe-west2google/europe-west3google/europe-west4google/europe-west6google/northamerica-northeast1google/southamerica-east1google/us-central1google/us-east1google/us-east4google/us-west1google/us-west2google/us-west3google/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