The BigQuery driver is a middleware item between IOTA and Google BigQuery. The purpose of the driver is to provide
 seamless integration between two systems. The driver is state-less, i.e., it doesn't maintain source connections and any
 data caches. The single BigQuery-Driver service can support multiple connections to different BigQuery projects.
The driver supports the following object types:
| Data Type | Supported? | 
|---|---|
| Tags | 🟢 | 
| Assets | 🟢 | 
| Timeframes | ⚫ | 
Diagram
Technical Specification
| Description | Value | 
|---|---|
| Development Language | GoLang | 
| Processor Architecture | 64-bit | 
| Supported Operating Systems | Windows/Linux/OSX | 
| Deployment Size | 41.5 Mb | 
| Data modes | Read | 
| Request/Response pattern | Asynchronous | 
| Source Communication | OpenAPI | 
| Back-end Communication | NATs message bus | 
| Message bus driver type | bigquery | 
| Near Real-Time Data Updates | Yes | 
| Multiple BigQuery Projects | Yes | 
Dependencies
The BigQuery driver is installed alongside the main IOTA Vue service within a containerized environment such as Kubernetes,
 Docker or Podman.
Security
Source Security
By default, the BigQuery-Driver service uses configured service's organization/token identity for secure connections to BigQuery cloud.
IOTA API (back-end) Security
The BigQuery-Driver uses NATs message bus to communicate with the back-end IOTA API. The two-way data traffic is encrypted
 using Transport Layer Security (TLS) on port 443. In addition, the message bus communication security model uses a
 public-key signature system based on Ed25519 called NKeys. With NKeys, the server can verify identities without ever
 storing or seeing private keys. The authentication system works by requiring a connecting client to provide its public
 key and digitally sign a challenge with its private key. The server generates a random challenge with every connection
 request, making it immune to playback attacks. The generated signature is validated against the provided public key,
 thus proving the client's identity. If the public key is known to the server, authentication succeeds.