User Interface for MongoDB Atlas - Web UI and CLI tool
Project description
AtlasUI - MongoDB Atlas User Interface
A comprehensive user interface for MongoDB Atlas, providing both a web-based UI and CLI tool for managing MongoDB Atlas resources.
Features
- Web UI: FastAPI-based web interface for MongoDB Atlas management
- CLI Tool: Command-line interface for Atlas operations
- Complete API Coverage: Built from official MongoDB Atlas OpenAPI specifications
- Modern Stack: FastAPI, Typer, Rich, and modern Python tooling
- Secure Authentication: Supports both API keys (recommended for full functionality) and service accounts (project-scoped only)
Atlas API Coverage
This UI provides access to all MongoDB Atlas administration APIs including:
- Clusters: Create, configure, and manage MongoDB clusters
- Projects: Manage Atlas projects and organizations
- Backup & Restore: Configure backups and restore operations
- Alerts: Set up and manage alert configurations
- Access Control: Manage users, roles, and API keys
- Monitoring: View metrics and performance data
- Federation: Configure identity providers and SSO
- Network Access: Manage IP access lists and private endpoints
Installation
# Install from PyPI
pip install atlasui
# Or install from source
pip install -e .
# With development dependencies
pip install -e ".[dev]"
# With documentation dependencies
pip install -e ".[docs]"
Configuration
AtlasUI provides an interactive configuration tool that guides you through the setup process.
Quick Setup (Recommended)
Run the interactive configuration wizard:
atlasui-configure
This wizard will:
- Help you choose between API Keys (recommended) and Service Accounts
- Explain the limitations and benefits of each method
- Guide you through entering your credentials
- Create and configure your
.envfile automatically - Test your connection to verify everything works
Authentication Methods
AtlasUI supports two authentication methods. Both provide the same capabilities - full access to one organization including all projects and clusters. The key difference is the authentication approach:
API Keys (Traditional)
Best for: Simple setup, traditional workflows
API keys provide organization-level access using traditional digest authentication:
- Manage a single organization in your Atlas account
- Access all projects within that organization
- Control all clusters within those projects
- Simpler setup process
- HTTP Basic Auth (Digest)
Quick start:
atlasui-configure
# Choose option 1 (API Keys)
# Follow the wizard instructions
How to get API keys:
- Go to your organization's API Keys page:
- Direct link:
https://cloud.mongodb.com/v2#/org/<Organization ID>/access/apiKeys - Or navigate: https://cloud.mongodb.com/v2#/preferences/organizations → Select organization → Access Manager → API Keys
- Direct link:
- Click Create API Key
- Set permissions: Organization Owner
- Copy the Public Key and Private Key
- Add your IP address to the API Key whitelist
Service Accounts (Modern & More Secure)
Best for: Modern applications, higher security requirements
Service accounts provide the same organization-level access as API Keys using modern OAuth 2.0:
- Access all projects within the organization
- Control all clusters within those projects
- Modern OAuth 2.0 authentication with JWT tokens
- More secure token-based authentication
- Industry-standard authentication approach
Setup:
atlasui-configure
# Choose option 2 (Service Account)
# Follow the wizard instructions
How to get service account credentials:
- Go to your organization's Service Accounts page:
- Direct link:
https://cloud.mongodb.com/v2#/org/<Organization ID>/access/serviceAccounts - Or navigate: https://cloud.mongodb.com/v2#/preferences/organizations → Select organization → Access Manager → Service Accounts
- Direct link:
- Click Create Service Account
- Assign organization-level roles (e.g., Organization Owner) for full access
- Copy the Client ID and Client Secret
Note: Both API Keys and Service Accounts are scoped to a single organization. To work with a different organization, you'll need to configure credentials for that organization.
See Service Account Documentation for details.
Web-Based Configuration
You can also configure AtlasUI through the web interface:
-
Start the server without configuration:
atlasui start -
Open http://localhost:8000 in your browser
-
The setup wizard will guide you through configuration
-
Enter your API keys and test the connection
-
Settings are automatically saved and reloaded
Manual Configuration
If you prefer to configure manually:
For API Keys:
cp .env.example .env
# Edit .env and set:
ATLAS_AUTH_METHOD=api_key
ATLAS_PUBLIC_KEY=your_public_key
ATLAS_PRIVATE_KEY=your_private_key
⚠ Important: Never commit credentials to version control!
Usage
Web UI
Start the web server:
atlasui start
Then open your browser to http://localhost:8000
The server can also be started with custom options:
# Custom port
atlasui start --port 8080
# Or use environment variable
PORT=8080 atlasui start
# Stop the server
atlasui stop
CLI Tool
# List all clusters
atlascli clusters list <project-id>
# Get cluster details
atlascli clusters get <project-id> <cluster-name>
# Create a new cluster
atlascli clusters create --name my-new-cluster --project-id <project-id>
# List projects
atlascli projects list
# View help and version
atlascli --help
atlascli --version
Development
For developers working on AtlasUI, the project uses Invoke for task automation.
Setup
# Install with development dependencies
pip install -e ".[dev]"
# Or use invoke
inv setup
Running Tests
# Run all tests
inv test
# Run tests without coverage
inv test --no-coverage
# Or use pytest directly
pytest
pytest --cov=atlasui --cov-report=html
Code Quality
# Format code
inv format
# Check formatting without changes
inv format --check
# Lint code
inv lint
# Run all checks (format, lint, test)
inv check
# Or use tools directly
black atlasui tests
ruff check atlasui tests
mypy atlasui
Building Documentation
# Build docs with invoke
inv docs
# Build and open in browser
inv docs --open-browser
# Or build directly with Sphinx
cd docs
sphinx-build -b html . _build/html
Other Development Tasks
# Run development server
inv run
# Run with custom host/port
inv run --host=0.0.0.0 --port=8080
# Clean build artifacts
inv clean
# Show version
inv version
Project Structure
atlasui/
├── atlasui/ # Main package
│ ├── api/ # FastAPI routes and endpoints
│ ├── cli/ # CLI commands
│ ├── client/ # Atlas API client (generated from OpenAPI)
│ ├── models/ # Pydantic models
│ ├── services/ # Business logic
│ ├── static/ # Static files for web UI
│ ├── templates/ # HTML templates
│ └── config.py # Configuration management
├── tests/ # Test suite
├── docs/ # Sphinx documentation
├── openapi/ # MongoDB Atlas OpenAPI specs
└── tasks.py # Invoke task definitions
API Access
The web server exposes RESTful APIs at:
- Root: http://localhost:8000/
- Health: http://localhost:8000/health
- Projects: http://localhost:8000/api/projects/
- Clusters: http://localhost:8000/api/clusters/{project_id}
- Alerts: http://localhost:8000/api/alerts/{project_id}
- Backups: http://localhost:8000/api/backups/{project_id}/{cluster_name}/snapshots
- Interactive Docs: http://localhost:8000/docs
License
See LICENSE file for details.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details.
Quick Links
- Quick Start Guide - Get started in 5 minutes
- Contributing Guide - Development guidelines
- MongoDB Atlas API Docs
- MongoDB Atlas OpenAPI Specs
Built with Claude
This project was built with assistance from Claude, Anthropic's AI assistant.
Project details
Release history Release notifications | RSS feed
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 atlasui-0.2.0.tar.gz.
File metadata
- Download URL: atlasui-0.2.0.tar.gz
- Upload date:
- Size: 121.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d48d6b201bb401768895b10a5c6955193f308d7646ce7790f1a2cfa4f5eea2e
|
|
| MD5 |
123bb3dc084b85ea450f68b097e32751
|
|
| BLAKE2b-256 |
38461aeaa10392643749029d1f577f0ce69176170d588c73032ecdc0564bd37e
|
Provenance
The following attestation bundles were made for atlasui-0.2.0.tar.gz:
Publisher:
publish.yml on jdrumgoole/atlasui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atlasui-0.2.0.tar.gz -
Subject digest:
5d48d6b201bb401768895b10a5c6955193f308d7646ce7790f1a2cfa4f5eea2e - Sigstore transparency entry: 723319752
- Sigstore integration time:
-
Permalink:
jdrumgoole/atlasui@3c919382b7efac6003eeebf5e927b938e5cfd959 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/jdrumgoole
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3c919382b7efac6003eeebf5e927b938e5cfd959 -
Trigger Event:
release
-
Statement type:
File details
Details for the file atlasui-0.2.0-py3-none-any.whl.
File metadata
- Download URL: atlasui-0.2.0-py3-none-any.whl
- Upload date:
- Size: 126.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2624aa1c9f8b099228f424351eb43240c1d610870912c2efe64adc029125043b
|
|
| MD5 |
f69fd9ec8a055833b22dabc090ff9409
|
|
| BLAKE2b-256 |
e088ba10f8b262e0bc5e0a7f842bc09aca756c9df3647ad8fda95bf680fa9a8a
|
Provenance
The following attestation bundles were made for atlasui-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on jdrumgoole/atlasui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atlasui-0.2.0-py3-none-any.whl -
Subject digest:
2624aa1c9f8b099228f424351eb43240c1d610870912c2efe64adc029125043b - Sigstore transparency entry: 723319764
- Sigstore integration time:
-
Permalink:
jdrumgoole/atlasui@3c919382b7efac6003eeebf5e927b938e5cfd959 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/jdrumgoole
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3c919382b7efac6003eeebf5e927b938e5cfd959 -
Trigger Event:
release
-
Statement type: