Skip to content

devtron-labs/central-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Devtron Central API

A centralized REST API service for Devtron metadata, release information, and auxiliary services.

πŸ“š Table of Contents

🎯 Overview

Devtron Central API is a Go-based REST API that provides:

  • πŸ“¦ Release notes and version information
  • πŸ”§ Module metadata and configurations
  • πŸ—οΈ CI/CD build templates and metadata
  • πŸ’± Currency exchange rates
  • πŸ”” GitHub webhook handling

Port: 8080 Language: Go 1.19+ Framework: Gorilla Mux

For detailed information, see PROJECT_OVERVIEW.md

πŸš€ Services

1. Release Notes Service

Manages Devtron releases from GitHub with caching and blob storage.

Endpoints:

  • GET /release/notes - Get releases with pagination
  • POST /release/webhook - GitHub webhook handler

2. Module Management

Provides Devtron module information and metadata.

Endpoints:

  • GET /modules - List all modules
  • GET /v2/modules - Enhanced module list
  • GET /module?name={name} - Get module by name

3. CI/CD Metadata

Serves build templates and buildpack information.

Endpoints:

  • GET /dockerfileTemplate - Dockerfile templates
  • GET /buildpackMetadata - Buildpack metadata

4. Currency Exchange

Real-time currency conversion rates.

Endpoints:

  • GET /currency/rates?base={currency} - Exchange rates

5. Health Check

Service health monitoring.

Endpoints:

  • GET /health - Health status

πŸ€– MCP Documentation Server

NEW: A Model Context Protocol (MCP) server for semantic search over Devtron documentation.

Features

  • πŸ” Semantic search using AWS Bedrock Titan embeddings
  • πŸ“¦ ChromaDB vector storage
  • πŸ”„ Auto-sync with GitHub documentation
  • πŸ’° Free tier (AWS Bedrock)
  • ⚑ Fast (<500ms search)

Quick Start

cd mcp-docs-server
./setup.sh
python server.py

Documentation

πŸƒ Quick Start

Central API (Go)

# Build
make build

# Run
./central-api

With Docker

docker build -t central-api:latest .
docker run -p 8080:8080 central-api:latest

πŸ“‘ API Endpoints

Health Check

curl http://localhost:8080/health

Get Releases

curl http://localhost:8080/release/notes?offset=0&size=10

Get Modules

curl http://localhost:8080/modules

Get Currency Rates

curl http://localhost:8080/currency/rates?base=USD

For complete API documentation, see PROJECT_OVERVIEW.md

πŸ“– Documentation

Central API

MCP Documentation Server

Implementation

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Central API (Go)                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”             β”‚
β”‚  β”‚ Release  β”‚  β”‚ Modules  β”‚  β”‚ Currency β”‚             β”‚
β”‚  β”‚  Notes   β”‚  β”‚ Metadata β”‚  β”‚ Exchange β”‚             β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           MCP Documentation Server (Python)              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”             β”‚
β”‚  β”‚  GitHub  β”‚  β”‚ ChromaDB β”‚  β”‚ Bedrock  β”‚             β”‚
β”‚  β”‚   Sync   β”‚  β”‚  Vector  β”‚  β”‚  Titan   β”‚             β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Development

Prerequisites

  • Go 1.19+
  • Make
  • Wire (for dependency injection)

Build

make build

Run Tests

go test ./...

Generate Wire

make wire

🐳 Docker

Build Image

docker build -t central-api:latest .

Run Container

docker run -p 8080:8080 \
  -e BLOB_STORAGE_PROVIDER=S3 \
  -e AWS_ACCESS_KEY_ID=xxx \
  central-api:latest

πŸ“ License

Apache License 2.0 - Copyright (c) 2024 Devtron Inc.

🀝 Contributing

Contributions are welcome! Please read the contributing guidelines before submitting PRs.

πŸ“ž Support


Maintained by: Devtron Labs Repository: https://github.com/devtron-labs/central-api

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 13