A FastAPI-based service that provides version-controlled configuration management using GitHub as a backend storage.
- Store and manage configuration files in JSON, YAML, TOML, and XML formats
- Version control with automatic versioning
- Project-based organization
- Full history tracking
- Version recovery
- RESTful API interface
- Python 3.8+
- GitHub account and personal access token
- Git repository for storing configurations
- Clone the repository:
git clone https://github.com/banziyeoh/config-store.git
cd config-store
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables in
.env
:
GITHUB_REPO=https://github.com/username/repo
GITHUB_TOKEN=your_github_token
- Start the server:
uvicorn app.main:app --reload
- Access the API documentation at
http://localhost:8000/docs
GET /
- Health checkPOST /configs/{project}/{config_name}
- Create new configGET /configs/{project}/{config_name}
- Read configPUT /configs/{project}/{config_name}
- Update configDELETE /configs/{project}/{config_name}
- Delete configGET /configs/{project}
- List all configs in projectGET /configs/{project}/{config_name}/versions
- List config versionsPOST /configs/{project}/{config_name}/recover/{version}
- Recover specific version
pytest
MIT