Skip to main content

Atlas Init - A CLI for developing integrations with MongoDB Atlas

License Coverage

Currently, used with

Quickstart

Recommended as a tool with uvx

uvx atlas-init # help info
uvx atlas-init tf # help for tf specific commands
uvx atlas-init cfn # help for cfn specific commands

Profile Configuration

  1. Create an organization
  2. Go to access_manager and click Create Api Key: https://cloud-dev.mongodb.com/v2#/org/{ORG_ID_IN_URL_FROM_1}/access/apiKeys
    • Tick all permissions
  3. create directories and store a file in profiles/default/.env-manual (ATLAS_INIT_PROFILES_PATH/{profile_name}/.env-manual)
AWS_PROFILE=REPLACE_ME # your AWS profile used to create resources or other env-vars supported by AWS TF provider
MONGODB_ATLAS_ORG_ID=REPLACE_ME # ORG_ID_IN_URL_FROM_1
MONGODB_ATLAS_PUBLIC_KEY=REPLACE_ME # with 2
MONGODB_ATLAS_PRIVATE_KEY=REPLACE_ME # with 2
ATLAS_INIT_PROJECT_NAME=YOUR_NAME # the name of the project
MONGODB_ATLAS_BASE_URL=https://cloud-dev.mongodb.com/ # replace with https://cloud.mongodb.com/ if you are not a MongoDB Employe

# optional
TF_VAR_federated_settings_id=REPLACE_ME # will need to add organization: <https://cloud-dev.mongodb.com/v2#/federation/{FEDERATION_SETTINGS_ID}/organizations> (see internal testing wiki)

# if you want to use your locally built MongoDB atlas provider
# see appendix for details on the content
TF_CLI_CONFIG_FILE=REPLACE_ME/dev.tfrc

# if you plan developing with cloudformation
ATLAS_INIT_CFN_PROFILE=YOUR_NAME
ATLAS_INIT_CFN_REGION=eu-south-2 # find a region with few other profiles

Local development

git clone https://github.com/EspenAlbert/atlas-init
cd atlas-init
brew install pre-commit uv hatch
# https://github.com/astral-sh/uv <-- python packaging lightning fast
# https://hatch.pypa.io/latest/ <-- uv compatible build system for python

pre-commit install

# check that everything works
pre-commit run --all-files

# configure your virtualenv and validate the tests are working
cd py
hatch test
export VENV_DIR=$(hatch env find hatch-test | grep py3.12) # hatch venv path for env=hatch-test
export VENV_PYTHON=$VENV_DIR/bin/python
$VENV_PYTHON # ensure you are in shell with python3.12 (cmd+d to exit)
cd .. # back to repo root

# open in your IDE with virtualenv enabled
code .
# select venv path from $VENV_PYTHON output as python interpreter
# in vs code: use cmd+p and `Python: select interpreter` command

# to make it easy to invoke from any terminal (replace .zprofile with your terminal)
export pypath=$(git rev-parse --show-toplevel)/py
echo "alias atlas_init='export PYTHONPATH=$pypath && \"$VENV_PYTHON\" -m atlas_init'" >> ~/.zprofile

# test that it works
atlas_init # should show how to use the cli

CI Installation Tests (pip install local wheel)

  • uv sync
    • creates a local .venv builds the wheel from this repo and installs it
  • use export ATLAS_INIT_PROFILES_PATH=/somewhere/to/store/your/env-vars/and/tf/state

Appendix

Configuring vscode to use your env vars

  • add to your settings.json
{
    "go.testEnvFile": "/{SOME_PREFIX}/atlas-init/profiles/default/.env-vscode",
}

Content of dev.tfrc

usually, it will look something like this:

provider_installation {
 
  dev_overrides {
 
    "mongodb/mongodbatlas" = "REPO_PATH_TF_PROVIDER/bin"
 
  }
 
  direct {}
 
}

Re-generating the lock files

terraform providers lock \
    -platform=darwin_amd64 \
    -platform=linux_amd64 \
    -platform=darwin_arm64 \
    -platform=linux_arm64
    # -platform=windows_amd64 \

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atlas_init-0.10.1.tar.gz (184.4 kB view details)

Uploaded Source

Built Distribution

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

atlas_init-0.10.1-py3-none-any.whl (249.2 kB view details)

Uploaded Python 3

File details

Details for the file atlas_init-0.10.1.tar.gz.

File metadata

  • Download URL: atlas_init-0.10.1.tar.gz
  • Upload date:
  • Size: 184.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for atlas_init-0.10.1.tar.gz
Algorithm Hash digest
SHA256 a511242dfbe8b595f66835002d2b62ff932d516ef40b4c4fa915141e63ff2eed
MD5 f45e2d676b41a4dc6bc7c6979b85674d
BLAKE2b-256 fd88bb46d6196c6a26a75f927191f89d9701a602db630c6f5a7b129134c37ee7

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlas_init-0.10.1.tar.gz:

Publisher: release.yml on EspenAlbert/atlas-init

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

File details

Details for the file atlas_init-0.10.1-py3-none-any.whl.

File metadata

  • Download URL: atlas_init-0.10.1-py3-none-any.whl
  • Upload date:
  • Size: 249.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for atlas_init-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a0a351c8a7e0f934613140adfda806ba1ebf3ffe8ab2f6370ec8bdcad8db910f
MD5 1918d8fa18d2cfb1c8bca9d95bfd63d3
BLAKE2b-256 2f93fefe864b577a952a158b5e068ebd10c71d5e2acdd9aa7f644fdffd1064c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlas_init-0.10.1-py3-none-any.whl:

Publisher: release.yml on EspenAlbert/atlas-init

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

Release history Release notifications | RSS feed

This release

0.10.1 This release

2 files

0.10.0

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

1 file

0.4.1

1 file

0.4.0

1 file

0.3.7

1 file

0.3.6

1 file

0.3.5

1 file

0.3.4

1 file

0.3.3

1 file

0.3.2

1 file

0.3.1

1 file

0.3.0

1 file

0.2.0

1 file

0.1.8

1 file

0.1.4

1 file

0.1.1

1 file

0.1.0

1 file

Supported by

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