https://github.com/paihari/cloud-control-orchestrator-graphql
Multicloud Control Orchestrator with GraphQL capabilities
https://github.com/paihari/cloud-control-orchestrator-graphql
aws cloudcontr graphql graphql-compose graphql-json graphql-yoga hasura hasura-graphql oci oracle-cloud typescript
Last synced: 2 months ago
JSON representation
Multicloud Control Orchestrator with GraphQL capabilities
- Host: GitHub
- URL: https://github.com/paihari/cloud-control-orchestrator-graphql
- Owner: paihari
- Created: 2022-11-17T11:35:51.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-28T13:57:17.000Z (over 3 years ago)
- Last Synced: 2025-01-23T08:17:30.639Z (over 1 year ago)
- Topics: aws, cloudcontr, graphql, graphql-compose, graphql-json, graphql-yoga, hasura, hasura-graphql, oci, oracle-cloud, typescript
- Language: TypeScript
- Homepage:
- Size: 4.88 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🌐 Multicloud Control Orchestrator with GraphQL
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.
---
## 📦 Components
- **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
---
## 🐳 Dockerized Setup
### 🛠 Prerequisites
- [Docker](https://www.docker.com/)
- [Docker Compose](https://docs.docker.com/compose/)
### 🚀 Running the Project
```bash
docker compose up
```
### 🔍 Accessing Services
- **Hasura Console:** [http://localhost:8080](http://localhost:8080)
- **AWS GraphQL Endpoint:** [http://awsresourcecompose:6001/graphql](http://awsresourcecompose:6001/graphql)
- **OCI GraphQL Endpoint:** [http://ociresourcecompose:7001/graphql](http://ociresourcecompose:7001/graphql)
> You can configure Hasura to use these remote schemas via its console.
---
## 📁 Folder Structure
```
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
```
---
## 🔧 How It Works
1. **Hasura** connects to PostgreSQL and loads metadata.
2. **Remote schemas** (AWS and OCI GraphQL services) are added to Hasura via the console.
3. **GraphQL queries** to Hasura can delegate to AWS/OCI services depending on the fields requested.
4. Supports schema federation or remote joins if needed.
---
## 📚 Technologies Used
- GraphQL
- TypeScript
- Node.js
- Hasura
- Docker / Docker Compose
- PostgreSQL
---
## ✍️ Author
Created by Simplificare
---
## 📝 License
This project is licensed under the MIT License.