Backend Variables Library

List of variables for configuring the RAIRnode

Variables below are organized by the primary service which consumes them. The exception being "Multi-Service" which lists variables that are utilized in multiple deployments.

Use the bar on the right for quick navigation. To find a specific variable, use your browsers ctrl+f function.


Blockchain-Networks 🏘

Variables used exclusively by the Blockchain-Networks service.

For a full integration guide to each blockchain see.

Blockchain Explorer Gateways

*_gateway = {URL}

Type - String

URL to blockchain explorer gateway.


Media-Service πŸ–

Variables used exclusively by the Media-Service.

Port

media_service_port= {Port}

Type - Int

The port number assigned to Media-Service.


Rairnode URL

base_rairnode_url = {URL}

Type - String

Used to locate the Rairnode service from Media-Service.

http://{container_name}:{ports}


Minting-Network 🏭

Variables used exclusively by the Minting-Network service.

Sentry (Error Reporting)

sentry_enabled = {T/F}

Type - Boolean

Enable Sentry for Error Reporting

sentry_endpoint = {URL}

Type - String

sentry_trace_rate = {Rate}

Type - Float

sentry_release = {Build}

Type - String


Rairnode πŸ›

Variables used exclusively by the Rairnode service.

Admin NFT

admin_contract = {0xAddress}

Type - String

Allows users, verified by a smart contract, administrative capabilities inside the application.

admin_nft_chain = {blockchain}

Blockchain the admin contract is deployed on.


Blockchain-Network URL

base_bcn_url= {URL}

Type - String

Used to locate the Blockchain-Networks service from Rairnode.

http://{container_name}:{ports}


Docker Hostname

hostname = {Name}

Type - String

The hostname to be used inside the containers.


Multi-Service 🏟

Variables used by multiple services.

Alchemy

alchemy_api_key = {Key}

Type - String

The Alchemy free tier should provide the necessary functionality to get started.


Google Cloud

Authentication

gcp_project_id = {ID}

Type - String

Unique identifier for a GCP project.

gcp_credentials = {Key}

Type - String

Private key for authenticating with GCP.

Storage

gcp_image_bucket_name= {Name}

Type - String

Unique name for a GCP image bucket.

gcp_video_bucket_name = {Name}

Type - String

Unique name for a GCP video bucket.

gcp_gateway = {URL}

Type - String

Gateway to the GCP storage API.

http://storage.googleapis.com/


Hashicorp Vault

Vault URL

VAULT_URL = {URL}

Type - String

For connecting to a remote Vault cluster.

Rairnode Config

*_generate_mongo_uri_with_vault_credential_util = {T/F}

Type - Boolean

Select whether to generate the Mongo URI for the *service database using vault credentials.

VAULT_*_APP_ROLE_ID = {ID}

Type - String

RoleID is an identifier that selects the AppRole against which the other credentials are evaluated.

VAULT_*_APP_ROLE_SECRET_ID = {ID}

Type - String

SecretID is a credential that is required by default for any login.

VAULT_*_use_x509_cert_auth = {T/F}

Type - Boolean

Select whether to use x509 auth certificates for passwordless authentication.

Mongo Config

mongo_db_name= {Name}

Type - String

For Vault management of Mongo Instances

*_mongo_db_hostname = {Hostname}

Type - String

Hostname for Vault managed Mongo instances

Super Admin Vault Key

SUPER_ADMIN_VAULT_STORE = {Key}

Type - String

Vault key for a list of users with Super Admin access to the marketplace.


Pinning

ipfs_service= {pinata or ipfs}

Type - String

RAIR uses IPFS for pinning of token images and metadata. An alternative service such as Pinata can be used if you arent running your own IPFS nodes.

ipfs_gateway = {URL}

Type - String

ipfs_api = {URL}

Type - String


Long-term Sync

sync_contract_repeat_every = {Minutes}

Type - Int

Sets time intervals for the syncing of smart contracts. Only for data that changes onchain. Time between end of sync task and next time it starts.

sync_contract_task_interval = {Minutes}

Type - Int

Sets time intervals for the syncing of smart contracts. Only for data that changes onchain. Time between start of one sync and the next. Waits between blockchains


MongoDB

Local

localdbuser= {Username}

Type - String

Local Mongo Username

localdbpass= {Password}

Type - String

Local Mongo Password

localdbhost= {Hostname}

Type - String

Local Mongo Hostname

Remote

dbuser = {Username}

Type - String

Remote Mongo Username

dbpass = {Password}

Type - String

Remote Mongo Password

dbhost = {Hostname}

Type - String

Remote Mongo Hostname

Logging

mongo_log_collection=Log

Type - String

log_level = {0-6}

Type - Int

MongoDB offers different log levels to control the verbosity of the logs. These log levels include:

  • 0 (off): Disables logging.

  • 1 (fatal): Logs only fatal errors that lead to a shutdown.

  • 2 (error): Logs errors that do not require a shutdown.

  • 3 (warning): Logs warnings and errors.

  • 4 (info): Logs informational messages, warnings, and errors.

  • 5 (verbose): Logs output, including informational, warning, and error messages.

  • 6 (debug): Logs debugging information.


Product Cover

default_product_cover = {URL}

Type - String

Default image for NFTs that have no metadata.


RPC Endpoints

*_rpc = {URL}

Type - String

Rublic RPC (Remote Procedure Call) endpoints to connect to remote blockchains for lookup and synchronization.


Redis (Session Management)

redisthhost = {Name}

Type - String

Hostname

redisport = {Port}

Type - Int

Port Number

session_ttl = {Lifespan in Seconds}

Type - Int

The session ttl (time to live) is the length of time a session can be idle before being dropped from the database.


Session Secret

session_secret = {Secret}

Type - String

Secret used by Rairnode to sign user sessions to prevent tampering.


Smart Contracts

For a list of RAIR-deployed smart contracts see RAIRsolidity.

*_diamond_factory_address = {0xAddress}

*_diamond_marketplace_address = {0xAddress}

*_factory_address = {0xAddress}

*_minter_address = {0xAddress}

*_resale_address = {0xAddress}

*_credit_address = {0xAddress}


Depreciated 🏚

Variables no longer used for deployment, but are still available.

Infura

Infura provides access to Ethereum and IPFS networks. It allows developers to interact with these networks without needing to run their own nodes.

infura_project_id = {id}

Required to authenticate and authorize requests to Infura’s API endpoints.


Pinata

pinata_key = {Key}

Type - String

pinata_secret = {Secret}

pinata_gateway = {URL}


Zoom Meeting Functionality

We were once testing integration for token-gated Zoom meetings. These are the leftovers.

zoom_api_key = {Key}

zoom_api_secret= {Secret}

meeting_id=

Last updated