CouchDB OpenAPI scheme generator
Project description
๐ CouchDB OpenAPI Scheme Generator
OpenAPI specification generator for CouchDB - Perfect for developing and debugging applications using CouchDB as a backend
๐ Table of Contents
- ๐ CouchDB OpenAPI Scheme Generator
โจ Features
| Feature | Description | Status |
|---|---|---|
| ๐ณ Docker Support | Quick CouchDB deployment with Docker Compose | โ Ready |
| ๐ OpenAPI 3.0 | Modern OpenAPI specification generator | โ Ready |
| ๐ง CLI Tool | Easy-to-use command-line interface | โ Ready |
| ๐ JSON/YAML | Support for both JSON and YAML output formats | โ Ready |
| ๐ Authentication | Built-in support for CouchDB authentication | โ Ready |
| โก Fast Setup | Get started in minutes | โ Ready |
| ๐ Comprehensive API Coverage | Full coverage of CouchDB API endpoints according to official documentation | โ Ready |
| ๐ฏ Server Endpoints | Complete server management endpoints (tasks, cluster, nodes, etc.) | โ Ready |
| ๐๏ธ Database Operations | Full database management (shards, security, compaction, etc.) | โ Ready |
| ๐ Design Documents | Complete design document endpoints (views, search, show, list, update) | โ Ready |
| ๐ Partitioned Databases | Support for partitioned database operations | โ Ready |
| ๐ Local Documents | Support for local (non-replicating) documents | โ Ready |
๐ฏ Description
This project has been updated for more convenient work with CouchDB and includes:
- ๐ณ Updated Docker Compose configuration for quick CouchDB deployment
- ๐ Modern OpenAPI specification generator for CouchDB API
- ๐ ๏ธ Utilities and tools for interacting with the CouchDB server
- ๐ Production-ready setup with best practices
- ๐ Comprehensive API coverage - The OpenAPI specification includes all major CouchDB API endpoints according to the official CouchDB documentation
๐ Supported API Endpoints
The generated OpenAPI specification includes comprehensive coverage of CouchDB API:
- Server Endpoints (18+ endpoints): Server information, active tasks, cluster setup, database updates, membership, scheduler, node management, statistics, Prometheus metrics, UUID generation, resharding, and more
- Database Endpoints (20+ endpoints): Database operations, design documents, bulk operations, indexes, shards, compaction, security, purging, revision management, and more
- Document Endpoints: Full CRUD operations for documents and attachments
- Design Document Endpoints (12+ endpoints): Views, search indexes, nouveau indexes, show/list/update functions, URL rewriting, and more
- Partitioned Database Endpoints (5 endpoints): Partition information, queries, and views
- Local Documents Endpoints (3 endpoints): Local document operations (non-replicating)
- User Endpoints: User management in the
_usersdatabase
๐ฆ Requirements
- ๐ Python 3.11 or higher
- ๐ฆ Package manager (optional):
pip,uv,pipx, oruvx
๐ Quick Start
Option 1: Using uvx (Recommended - No Installation Required)
# Generate OpenAPI specification directly without installation
uvx couchdb-openapi-scheme-generator
That's it! ๐ Your OpenAPI specification will be generated in couchdb-openapi.json
Option 2: Install from PyPI
# Install using pip
pip install couchdb-openapi-scheme-generator
# Or using uv
uv pip install couchdb-openapi-scheme-generator
# Or using pipx (for isolated installation)
pipx install couchdb-openapi-scheme-generator
# Then run
couchdb-openapi-scheme-generator
Option 3: Development Setup
# 1. Clone the repository
git clone https://github.com/SasukeSagara/CouchDB-OpenAPI-scheme-generator.git
cd couchdb-openapi-scheme-generator
# 2. Install dependencies
uv sync
# 3. Run the generator
uv run openapi_generator.py
๐ป Installation
๐ฆ Install from PyPI
The package is available on PyPI. You can install it using any Python package manager:
Using pip
pip install couchdb-openapi-scheme-generator
Using uv
uv pip install couchdb-openapi-scheme-generator
Using pipx (Isolated Installation)
pipx install couchdb-openapi-scheme-generator
๐ Using uvx (No Installation Required)
You can use the package directly without installation using uvx:
uvx couchdb-openapi-scheme-generator
This will automatically download and run the latest version from PyPI.
๐ง Development Installation
If you want to contribute or modify the code:
# 1. Clone the repository
git clone https://github.com/SasukeSagara/CouchDB-OpenAPI-scheme-generator.git
cd couchdb-openapi-scheme-generator
# 2. Install dependencies using uv
uv sync
# For development dependencies
uv sync --dev
๐ Usage
๐ณ Starting CouchDB
Start CouchDB using Docker Compose:
docker-compose up -d
CouchDB will be available at http://localhost:5984
โ ๏ธ Important: Change the password in
.envbefore using in production!
๐ Generating OpenAPI Specification
Generate the OpenAPI specification for CouchDB API using one of the following methods:
Method 1: Using uvx (Recommended)
# Basic usage (local server)
uvx couchdb-openapi-scheme-generator
# With URL and credentials specified
uvx couchdb-openapi-scheme-generator \
--url http://localhost:5984 \
--username admin \
--password your_password
# With custom output file
uvx couchdb-openapi-scheme-generator --output couchdb-api.json
# Generate in YAML format
uvx couchdb-openapi-scheme-generator \
--format yaml \
--output couchdb-api.yaml
Method 2: Using Installed Package
If you installed the package using pip, uv, or pipx:
# Basic usage
couchdb-openapi-scheme-generator
# With all options
couchdb-openapi-scheme-generator \
--url http://localhost:5984 \
--username admin \
--password your_password \
--format json \
--output my-couchdb-api.json
Method 3: Development Mode
If you cloned the repository and installed dependencies:
# Using uv run
uv run openapi_generator.py
# Or directly with Python
python openapi_generator.py
๐ Parameters
| Parameter | Short | Description | Default |
|---|---|---|---|
--url |
-u |
CouchDB server URL | http://localhost:5984 |
--username |
- | Username for authentication | - |
--password |
- | Password for authentication | - |
--output |
-o |
Output file name | couchdb-openapi.json |
--format |
-f |
Output format (json or yaml) |
json |
๐ Generated Specification
The generated OpenAPI specification includes:
- โ 60+ API endpoints covering all major CouchDB operations
- โ Complete request/response schemas for all endpoints
- โ Query parameters and path parameters properly documented
- โ Authentication support via Basic Auth
- โ Error responses with appropriate HTTP status codes
- โ Compatible with Swagger UI, Postman, Insomnia, and other OpenAPI tools
The specification is based on the official CouchDB API documentation and includes endpoints for:
- Server management and monitoring
- Database operations and administration
- Document CRUD operations
- Design documents and views
- Search and indexing
- Partitioned databases
- Local documents
- User management
๐ฎ Running the Application
After installation, you can run the generator using:
# If installed via pip/pipx/uv
couchdb-openapi-scheme-generator
# Or using uvx (no installation needed)
uvx couchdb-openapi-scheme-generator
# Or in development mode
uv run openapi_generator.py
๐๏ธ Project Structure
CouchDB-OpenAPI-scheme-generator/
โโโ ๐ couchdb-data/ # CouchDB data (Docker volume)
โโโ ๐ couchdb-etc/ # CouchDB configuration
โโโ ๐ docker-compose.yml # Docker Compose configuration
โโโ ๐ main.py # Main application file
โโโ ๐ openapi_generator.py # OpenAPI specification generator
โโโ ๐ pyproject.toml # Python project configuration
โโโ ๐ uv.lock # Dependency lock file
โโโ ๐ .env # Environment variables (create this)
โโโ ๐ .gitignore # Git ignore rules
โโโ ๐ LICENSE # MIT License
โโโ ๐ README.md # This file
๐ ๏ธ Development
Setting Up Development Environment
-
Clone the repository:
git clone https://github.com/SasukeSagara/CouchDB-OpenAPI-scheme-generator.git cd couchdb-openapi-scheme-generator
-
Install development dependencies:
uv sync --dev
-
Create
.envfile:cp .env.example .env # If you have an example file # Or create manually with: # COUCHDB_USER=admin # COUCHDB_PASSWORD=your_secure_password
-
Start CouchDB:
docker-compose up -d
-
Run tests (if available):
uv run pytest
Code Style
This project follows PEP 8 style guidelines. Consider using:
blackfor code formattingflake8orrufffor lintingmypyfor type checking
๐ค Contributing
Contributions are welcome! ๐
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Contribution Guidelines
- ๐ Follow the existing code style
- โ Add tests for new features
- ๐ Update documentation as needed
- ๐ Report bugs using GitHub Issues
- ๐ก Suggest enhancements using GitHub Discussions
๐ License
This project is distributed under the MIT License. See the LICENSE file for details.
โญ Show Your Support
If you find this project helpful, please consider:
- โญ Starring this repository
- ๐ด Forking this repository
- ๐ Reporting bugs
- ๐ก Suggesting new features
- ๐ Improving documentation
- ๐ค Contributing code
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file couchdb_openapi_scheme_generator-1.1.0.tar.gz.
File metadata
- Download URL: couchdb_openapi_scheme_generator-1.1.0.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48e01476525289177690d5a0b4b8c2245718b0dbe1d36ef577f14ab11e037afe
|
|
| MD5 |
d221fcc3b5d4ca79ecd8002a006dc21a
|
|
| BLAKE2b-256 |
f1d7cf85966a78bf35c8f6af66ea76d1c2a230e31e4448642798df3502bd36bb
|
File details
Details for the file couchdb_openapi_scheme_generator-1.1.0-py3-none-any.whl.
File metadata
- Download URL: couchdb_openapi_scheme_generator-1.1.0-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0463dd81ebfb1e2c1282755c1d3be5b508eabb6e5ee3a85af85db1f5bd9c9e0
|
|
| MD5 |
8246eccc340ba41b77883f2e85f5cd56
|
|
| BLAKE2b-256 |
158d0f8e557109f5bae4e0937a27f937cb03ac7204706466e9434d01bbba7ff9
|