Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

StackQL Middleware

REST API middleware server that enables SQL-based queries against cloud provider APIs using StackQL.

Features

  • SQL query execution against cloud services
  • Provider/service/resource discovery
  • Query result type generation
  • Response metadata
  • CORS support

Quick Start

# Start dependencies
docker compose up -d runner

# Start server
cd src
deno run --allow-net --allow-env app.ts

API Endpoints

Query Execution

POST /stackql
Content-Type: application/json

{
  "query": "SELECT name, id FROM google.compute.instances",
  "showMetadata": true
}

Provider Discovery

GET /providers
GET /providers/{provider}/services
GET /providers/{provider}/services/{service}/resources 
GET /providers/{provider}/services/{service}/resources/{resource}
GET /providers/{provider}/services/{service}/resources/{resource}/methods

Development

# Install Deno
curl -fsSL https://deno.land/x/install/install.sh | sh

# Development with hot reload
deno run --allow-net --allow-env --watch app.ts

Docker

# Build and start all services
docker compose up --build

Environment Variables

  • HOST - Server host (default: 0.0.0.0)
  • PORT - Server port (default: 8080)
  • DB_HOST - StackQL server host (default: localhost)
  • DB_PORT - StackQL server port (default: 5444)
  • LOGLEVEL - Logging level (default: INFO)

Architecture

  • Oak-based HTTP server (Deno)
  • PostgreSQL wire protocol client for StackQL communication
  • Modular routing and controller structure
  • Centralized error handling
  • TypeScript throughout