Skip to main content

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 .env file automatically
  • Test your connection to verify everything works

Authentication Methods

API Keys (Recommended) ⭐

Best for: Full AtlasUI functionality

API keys provide organization-level access, allowing AtlasUI to:

  • Manage all organizations in your Atlas account
  • Access all projects across organizations
  • Control all clusters across all projects

Quick start:

atlasui-configure
# Choose option 1 (API Keys)
# Follow the wizard instructions

How to get API keys:

  1. Go to https://cloud.mongodb.com/v2#/preferences/organizations
  2. Select your organization from the list
  3. In the sidebar, click Applications
  4. Choose API Key (not Service Account)
  5. Create API Key with Organization Owner permissions
  6. Copy Public Key and Private Key

Service Accounts (Limited) ⚠️

Best for: Single project operations only

⚠️ Important Limitation: Service accounts are project-scoped - each can only access ONE project.

Since AtlasUI needs organization-level access, service accounts have limited utility.

Only use service accounts if:

  • You only need to manage a single specific project
  • You prefer OAuth 2.0 authentication
  • You understand you won't have full AtlasUI functionality

Setup:

atlasui-configure
# Choose option 2 (Service Account)
# Follow the wizard (will warn about limitations)

See Service Account Documentation for details.

Web-Based Configuration

You can also configure AtlasUI through the web interface:

  1. Start the server without configuration:

    atlasui start
    
  2. Open http://localhost:8000 in your browser

  3. The setup wizard will guide you through configuration

  4. Enter your API keys and test the connection

  5. 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
atlasui clusters list <project-id>

# Get cluster details
atlasui clusters get <project-id> <cluster-name>

# Create a new cluster
atlasui clusters create --name my-new-cluster --project-id <project-id>

# List projects
atlasui projects list

# View help
atlasui --help

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:

License

See LICENSE file for details.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for details.

Quick Links


Built with Claude

This project was built with assistance from Claude, Anthropic's AI assistant.

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

atlasui-0.1.6.tar.gz (76.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atlasui-0.1.6-py3-none-any.whl (89.8 kB view details)

Uploaded Python 3

File details

Details for the file atlasui-0.1.6.tar.gz.

File metadata

  • Download URL: atlasui-0.1.6.tar.gz
  • Upload date:
  • Size: 76.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for atlasui-0.1.6.tar.gz
Algorithm Hash digest
SHA256 231510280f14d0e7f95cf8e0408936b5f25d9f3156cd31710e08071d3b86f4cd
MD5 714a164db6776d558c56ebf1521d1e2c
BLAKE2b-256 b4a6ff3a0324146de185b5ac5840b3b3ecf2db5d2f74ecac7cc68b6fbb5be61d

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlasui-0.1.6.tar.gz:

Publisher: publish.yml on jdrumgoole/atlasui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atlasui-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: atlasui-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 89.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for atlasui-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b15f1cbd103bffde184adb34b3f2ce0f4282e2d26a74c460c362b96901dd6eb0
MD5 31ba3386a9f55af8ac019b74e7412d22
BLAKE2b-256 ddf49f6a014f47b9bced31db34899827c025f75799de7a83a2cfa282280eb0b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlasui-0.1.6-py3-none-any.whl:

Publisher: publish.yml on jdrumgoole/atlasui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page