Capability Library · Pack detail

mongodb v1.0.0

MongoDB Atlas Administration API v2: read projects, clusters, database users and access lists, create clusters and database users, pause or terminate clusters, and modify the project IP access list.

Review state: draft· Not in the distributable release manifest

Release identity

SHA-256 of the pack file bytes: d00ae7f6f5f19e1b71685c306254fa64202025431b7ac359944068987ed6e3f8

Not in the distributable release manifest. The binary carries a digest-bound manifest of the distributable library; a pack whose bytes differ from its manifest entry — endpoint, tier, allowlist, or credential edited, with provider, version, and review block preserved — fails the digest check, loses distributability, and renders MODIFIED rather than as the shipped reviewed artifact. Review state and artifact status are different facts: the first is a documentation-review declaration, the second is the identity of the exact bytes.

Capabilities (9)

mongodb.atlas.projects.read v1.0.0R0

Action
read
Endpoint
GET https://mongodb-atlas.invalid/api/atlas/v2/groups
Connector
http
Custody
customer_vault
Credential ref
secret-ref-mongodb-atlas-api-key
Data class
internal

List the Atlas projects (groups) the credential can see: names and ids, which reveal org structure. The registered path covers the collection read only — single-project reads and organization-level listings are not registered. The host is a reserved placeholder: substitute the real Atlas Administration API host before enabling.

mongodb.atlas.clusters.read v1.0.0R0

Action
read
Endpoint
GET https://mongodb-atlas.invalid/api/atlas/v2/groups/GROUP_ID/clusters
Connector
http
Custody
customer_vault
Credential ref
secret-ref-mongodb-atlas-api-key
Data class
internal

List the clusters in one Atlas project: names, tiers, regions and states. The registered path covers the collection read only — single-cluster reads (GET .../clusters/{clusterName}) are not registered. GROUP_ID is a placeholder the deployment binds before enabling.

mongodb.atlas.database_users.read v1.0.0R0

Action
read
Endpoint
GET https://mongodb-atlas.invalid/api/atlas/v2/groups/GROUP_ID/databaseUsers
Connector
http
Custody
customer_vault
Credential ref
secret-ref-mongodb-atlas-api-key
Data class
pii

List the database users in one Atlas project: usernames, authentication databases and roles. Usernames commonly identify people or services, so the read registers at the pii class. Passwords are never returned by the API. The registered path covers the collection read only. GROUP_ID is a placeholder the deployment binds before enabling.

mongodb.atlas.access_list.read v1.0.0R0

Action
read
Endpoint
GET https://mongodb-atlas.invalid/api/atlas/v2/groups/GROUP_ID/accessList
Connector
http
Custody
customer_vault
Credential ref
secret-ref-mongodb-atlas-api-key
Data class
internal

List the project IP access list entries: the CIDR blocks and addresses permitted to reach the clusters. This is the network-boundary configuration, read only — modifying it is registered separately at R3. GROUP_ID is a placeholder the deployment binds before enabling.

mongodb.atlas.cluster.create v1.0.0R3

Actions
create, deploy
Endpoint
POST https://mongodb-atlas.invalid/api/atlas/v2/groups/GROUP_ID/clusters
Connector
http
Custody
customer_vault
Credential ref
secret-ref-mongodb-atlas-api-key
Data class
internal

Create one cluster in the project. The request body is an unrestricted cluster definition: provider, region, tier, replication and backup settings are all settable, so the registered capability carries the full create effect — the body also decides ongoing billed spend, and cost review belongs to the deployment's budget controls, not to this file. Creating a cluster provisions live, billable cloud infrastructure: the moment the call succeeds a real cluster exists and accrues cost until terminated, so the capability declares create and deploy at the R3 floor — deploy is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer) — and an installer's intention to request only a small cluster is not a restriction the registration can enforce.

mongodb.atlas.cluster.pause v1.0.0R3

Actions
update, delete, deploy
Endpoint
PATCH https://mongodb-atlas.invalid/api/atlas/v2/groups/GROUP_ID/clusters/CLUSTER_NAME
Connector
http
Custody
customer_vault
Credential ref
secret-ref-mongodb-atlas-api-key
Data class
internal

Pause a cluster by patching its configuration. Effect-level honesty: this endpoint is the general cluster-update endpoint and the request body is unrestricted — the same call that sets 'paused: true' can also change tier, regions and backup settings, so the capability is registered for the full update effect, not for an installer's intention to send only the pause flag, and because the unrestricted body can reprovision live billable infrastructure (tier, region and storage changes deploy new capacity) the deploy verb is declared alongside update. It is registered as update+delete+deploy at the R3 floor because pausing is a high-blast-radius, terminate-class action: Atlas documents that a paused cluster serves no reads or writes, stops all backups (existing snapshots remain only until they expire), and deletes all data from any separately deployed Search Nodes, with indexes rebuilt only after resume — documented irreversible data destruction is declared with the delete verb rather than hidden under an update tier. GROUP_ID and CLUSTER_NAME are placeholders the deployment binds before enabling.

mongodb.atlas.cluster.delete v1.0.0R3

Action
delete
Endpoint
DELETE https://mongodb-atlas.invalid/api/atlas/v2/groups/GROUP_ID/clusters/CLUSTER_NAME
Connector
http
Custody
customer_vault
Credential ref
secret-ref-mongodb-atlas-api-key
Data class
internal

Terminate a cluster. Atlas documents that terminating a cluster also deletes its backup snapshots unless the deployment explicitly opted to keep them, and that deletion of clusters and their data is permanent — MongoDB provides no recovery of deleted data. Delete is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer) and registers at the R3 floor; an irreversible action cannot be taken without a person. Atlas itself gates termination behind Project Owner or Organization Owner and offers Termination Protection, which must be disabled first. GROUP_ID and CLUSTER_NAME are placeholders the deployment binds before enabling.

mongodb.atlas.database_user.create v1.0.0R3

Actions
create, share
Endpoint
POST https://mongodb-atlas.invalid/api/atlas/v2/groups/GROUP_ID/databaseUsers
Connector
http
Custody
customer_vault
Credential ref
secret-ref-mongodb-atlas-api-key
Data class
pii

Create one database user. The request body carries the new user's password — secret material in the request, which the executor must keep out of logs exactly like the Atlas credential itself — and the roles the body assigns grant access to cluster data. Granting data access is access-sharing: share is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer), so the capability registers create and share at the R3 floor rather than as an ordinary create. The body is unrestricted (any roles the caller's Atlas roles permit), which an installer's intention does not narrow. GROUP_ID is a placeholder the deployment binds before enabling.

mongodb.atlas.access_list.update v1.0.0R3

Actions
create, share
Endpoint
POST https://mongodb-atlas.invalid/api/atlas/v2/groups/GROUP_ID/accessList
Connector
http
Custody
customer_vault
Credential ref
secret-ref-mongodb-atlas-api-key
Data class
internal

Add entries to the project IP access list, which decides which networks may reach every cluster in the project. The request body is an unrestricted list of CIDR blocks or addresses: an entry of 0.0.0.0/0 shares the database endpoints with the entire internet, and any entry grants network-level access to whatever it names — access-sharing, which is why the capability registers create and share at the R3 floor even though an added entry can later be removed. Removing entries (DELETE .../accessList/{entryValue}) is deliberately not registered by this pack; see the pack notes. GROUP_ID is a placeholder the deployment binds before enabling.

Credential reference

The pack names a reference, never a secret. Installing a pack registers capabilities and makes them governable; registration is not connectivity. The credential is created at the provider and held in the client's own secret manager under the reference the pack names, and deployment testing is still required to show the credential path works and cannot be bypassed.

Reference
secret-ref-mongodb-atlas-api-key
Custody
customer_vault
Injection
header (Authorization)

An OAuth 2.0 service-account access token for the customer's own Atlas organization or project, held in the client's own secret manager. This registration defines ONE exact stored value: the complete Authorization header value 'Bearer ' followed by the access token, minted by an external deployment process that exchanges the service-account client id and client secret at the Atlas token endpoint (POST /api/oauth/token); the injector places the stored value verbatim into the Authorization header. Atlas also accepts legacy HTTP Digest API keys, but a Digest public-key:private-key pair drives a challenge-response flow that cannot be represented as one injected header value, so Digest material must never be stored under this secret_ref_id — a deployment that needs Digest requires a separately declared, reviewed Digest-capable connector (see the pack notes). Service-account access tokens are valid for one hour, so the external custody job must refresh the stored value before expiry; an expired value fails closed. Important revocation asymmetry: revoking a service-account client secret stops NEW tokens being issued but does NOT invalidate already-issued access tokens, which remain usable until their one-hour expiry. Least privilege: grant the credential only the roles these capabilities need (read-only project roles for the reads, project cluster manager for cluster lifecycle) — to terminate a cluster Atlas itself requires Project Owner or Organization Owner, which is far more than the rest of this pack needs, so a deployment not ready for that role should remove the delete capability. IP access list: if the organization requires an Atlas Administration API IP access list, tokens can be created from any address but API calls must originate from a listed address — the deployment's egress must satisfy it. Executor hygiene: the resolved material must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must not appear in crash dumps; a deployment that cannot meet that bar must not enable the pack.

Resources

  • mongodb-atlas-project (api, pii): https://mongodb-atlas.invalid/api/atlas/v2/groups/GROUP_ID

Pack notes and exclusions

The endpoint host 'mongodb-atlas.invalid' is a reserved non-production placeholder (an RFC 2606 reserved TLD): substitute the Atlas Administration API host the deployment actually uses (the documented base URL is https://cloud.mongodb.com/api/atlas/v2) before enabling, in every endpoint, in the resource locator and in every egress allowlist entry — the allowlist matches exactly, so all three must be substituted together, and substitution is a required deployment step. GROUP_ID and CLUSTER_NAME in the endpoint paths are placeholders the deployment binds to concrete values before enabling; groups and projects are synonymous in Atlas. Credential honesty: this HTTP registration defines ONE exact stored value — an externally minted OAuth 2.0 service-account access token stored as the complete 'Bearer <token>' Authorization header value (see the credential note). The Atlas Administration API also accepts legacy HTTP Digest API keys, whose public-key:private-key challenge flow cannot be represented as a single injected header value; Digest is deliberately outside this pack unless a separately declared, reviewed Digest-capable connector represents that behavior. Documented exclusions — this pack does not register: project or organization deletion (DELETE /api/atlas/v2/groups/{groupId} and organization-level endpoints), backup restore jobs (a restore overwrites current cluster data) and snapshot export or download, database user update and deletion (PATCH/DELETE .../databaseUsers/{databaseName}/{username} — the path carries the authentication database as well as the username) and password changes, access list entry deletion (DELETE .../accessList/{entryValue} — removing an entry is a network-boundary change that can lock out legitimate clients and deserves its own review), programmatic API key management endpoints (creating or deleting Atlas API keys themselves), invoice and billing endpoints, federation and identity-provider configuration, private endpoint and network peering management, live migration, and anything on the data plane — the Atlas Administration API does not read or write data stored in clusters, so no database-content capability exists here to register. The Atlas API explorer pages are large client-side documents; the routes registered here follow the documented v2 shapes (groups, clusters, databaseUsers, accessList) verified against the fetched pages, and each registration should be re-checked against the live Atlas reference before enabling — one reason this pack stays in draft state. Verified this session: the operation-specific roles (pause/resume requires Project Cluster Manager or higher; termination requires Project Owner or Organization Owner) and the pause effects (backups stopped, all data deleted from separately deployed Search Nodes and rebuilt on resume) come from the fetched pause-terminate page, and the OAuth service-account flow and the negotiated media version (Accept: application/vnd.atlas.<date>+json) come from the fetched v2 API reference page — how the HTTP connector pins that Accept header is a deployment binding decision, not something this registration encodes.

Review record

Draft review record dated 2026-09-21 · Reviewer: aaes-eng (an opaque id that resolves internally to the responsible reviewer)

A pack review is not a vendor or examiner attestation. A retrieval date says when a source page was read; it does not by itself establish what the page said then. No pack is vendor-endorsed, and none has been connectivity-tested against a live vendor tenant.