This project provides a lightweight, containerized GraphQL-based control layer for managing cloud resources across AWS and OCI (Oracle Cloud Infrastructure). It uses Hasura as the central GraphQL engine and integrates with provider-specific GraphQL services via schema stitching or remote joins.
- Hasura – Central GraphQL engine
- AWS Resource Composer – GraphQL service for AWS resource orchestration
- OCI Resource Composer – GraphQL service for OCI resource orchestration
- PostgreSQL – Backing store for Hasura metadata
docker compose up
- Hasura Console: http://localhost:8080
- AWS GraphQL Endpoint: http://awsresourcecompose:6001/graphql
- OCI GraphQL Endpoint: http://ociresourcecompose:7001/graphql
You can configure Hasura to use these remote schemas via its console.
cloud-control-orchestrator-graphql/
├── docker-compose.yml
├── awsresourcecompose/
│ ├── Dockerfile
│ ├── src/
│ │ ├── main.ts
│ │ └── schema.ts
├── ociresourcecompose/
│ ├── Dockerfile
│ ├── src/
│ │ ├── instance.ts
│ │ ├── main.ts
│ │ └── schema.ts
├── config/
│ ├── postgresql.conf
│ └── pg_hba.conf
- Hasura connects to PostgreSQL and loads metadata.
- Remote schemas (AWS and OCI GraphQL services) are added to Hasura via the console.
- GraphQL queries to Hasura can delegate to AWS/OCI services depending on the fields requested.
- Supports schema federation or remote joins if needed.
- GraphQL
- TypeScript
- Node.js
- Hasura
- Docker / Docker Compose
- PostgreSQL
Created by Simplificare
This project is licensed under the MIT License.