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

# Using uv (recommended)
uv pip install -e .

# With development dependencies
uv pip install -e ".[dev]"

# With documentation dependencies
uv pip install -e ".[docs]"

# Or use invoke for setup
inv setup

Configuration

Option 1: API Key Authentication (Recommended)

For AtlasUI, API keys are the recommended authentication method because they provide organization-level access, which is required for this application to work correctly across all organizations, projects, and clusters.

Setup:

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!

Option 2: Service Account Authentication (Limited Support)

⚠️ Important Limitation: Service accounts in MongoDB Atlas are scoped to individual projects, not organizations. Since AtlasUI is designed to manage all organizations, projects, and clusters in your Atlas account, service accounts have limited utility for this application.

When to use service accounts:

  • You only need to manage resources within a single project
  • You want OAuth 2.0 authentication for project-specific operations

Setup (for project-scoped operations only):

# Interactive setup wizard
inv configure-service-account

# Manual setup
cp .env.example .env
# Edit .env and set:
ATLAS_AUTH_METHOD=service_account
ATLAS_SERVICE_ACCOUNT_CREDENTIALS_FILE=/path/to/service-account.json

See the Service Account Documentation for detailed instructions.

Recommendation: For full AtlasUI functionality across all organizations and projects, use API key authentication (Option 1).

Usage

Web UI

Start the web server:

# Using invoke
inv run

# Or directly
atlasui-server

# Or with uv
uv run python -m atlasui.server

Then open your browser to http://localhost:8000

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

AtlasUI uses Invoke for task automation.

Available Tasks

# See all available tasks
inv --list

# Setup development environment
inv setup

# Install with dev dependencies
inv dev-install

# Run tests
inv test

# Run tests without coverage
inv test --no-coverage

# Format code
inv format

# Check formatting without changes
inv format --check

# Lint code
inv lint

# Run all checks (format, lint, test)
inv check

# Build documentation
inv docs

# Build and open docs in browser
inv docs --open-browser

# Clean build artifacts
inv clean

# Run web server
inv run

# Run with custom host/port
inv run --host=127.0.0.1 --port=8080

# Run with auto-reload
inv run --reload

# Show CLI help
inv cli

# Show version
inv version

# Test Atlas connection
inv info

Common Development Workflows

# Initial setup
inv setup

# Before committing
inv check

# Making a release
inv release

Documentation

Build the documentation:

inv docs

View the documentation at docs/_build/html/index.html

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

Testing

# Run all tests
inv test

# Run specific test file
pytest tests/test_client.py

# Run with verbose output
inv test --verbose

# Generate coverage report
inv test --coverage

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

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.2.tar.gz (55.6 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.2-py3-none-any.whl (69.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: atlasui-0.1.2.tar.gz
  • Upload date:
  • Size: 55.6 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.2.tar.gz
Algorithm Hash digest
SHA256 626096238e98c44d72c563899c7698bb60597f20895827f52130ae4687359449
MD5 64ee409e802411b76e5b91051482002a
BLAKE2b-256 af58596a5989ee98dfe05dacfbb0f1d6af9cd42ff82ff31fc328485c07f15535

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlasui-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: atlasui-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 69.7 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8b3b9446f88f761b15c356d8f454983f1361d1fa41c875f3b6c95d7943bb417d
MD5 d404e87564bea985e74e8451dd257e31
BLAKE2b-256 683f73f4cbfbffa4bbc07c86cfce04f33008870329a7438cf0a18c03547775df

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlasui-0.1.2-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