> ## Documentation Index
> Fetch the complete documentation index at: https://artie.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# DocumentDB

> Learn how to use Artie to replicate data from DocumentDB via change streams.

<Note>
  To run Artie with DocumentDB, you **must** have [SSH tunnels](/connection-options/ssh-tunnel) enabled or use BYOC with VPC peering as DocumentDB only allows access within your VPC.
</Note>

## Required settings

* Cluster endpoint
* Port (default is `27017`)
* Service account
* Database name (ensure the database has change stream enabled)

<Accordion title="Need help finding the cluster endpoint?">
  You can find the cluster endpoint by going to the AWS console, selecting the DocumentDB cluster and go to the "Configuration" tab.

  <img src="https://mintcdn.com/artie/cR74rDu7gj_LCvTI/assets/documentdb.png?fit=max&auto=format&n=cR74rDu7gj_LCvTI&q=85&s=ceec29b84e9938f9388eafb871dd04c2" alt="DocumentDB cluster endpoint" width="371" height="452" data-path="assets/documentdb.png" />
</Accordion>

## Setting up change streams and a service account

```javascript setup.js theme={null}
// Creating a service account for Artie to subscribe to change stream
db.createUser({user: "artie", pwd: "changeme", roles: ["read"]});
// Grants access to DocumentDB change streams
use admin;
db.grantRolesToUser("artie", [
  { role: "readAnyDatabase", db: "admin" }
]);

// Depending on the permission granularity you want, 
// you can use the following commands to grant permissions to the service account.
// Enable change streams for all collections in database "changeme"
db.adminCommand({
    modifyChangeStreams: 1,
    database: "changeme",
    collection: "",
    enable: true
});

// Enable change streams for all collections in all databases
db.adminCommand({
    modifyChangeStreams: 1,
    database: "",
    collection: "",
    enable: true
});

// Optional - Enable change streams for the collection "foo" in database "changeme"
db.adminCommand({
    modifyChangeStreams: 1,
    database: "changeme",
    collection: "foo",
    enable: true
});
```
