DynamoOps
Connections

DynamoDB Local and LocalStack

Develop fully offline. Point DynamoOps at DynamoDB Local, LocalStack or any DynamoDB-compatible endpoint, with dummy credentials injected automatically.

Start a local DynamoDB

Run either emulator with Docker. Both expose a DynamoDB-compatible HTTP endpoint on your machine.

docker run -d --name dynamodb-local -p 8000:8000 \
  amazon/dynamodb-local -jar DynamoDBLocal.jar -sharedDb -inMemory

Connect from DynamoOps

  1. Open Quick Connect

    Leave AWS Profile as default and pick any region. Emulators ignore the region, but DynamoOps still uses it to label the connection.

  2. Set the custom endpoint

    Enter http://localhost:8000 for DynamoDB Local or http://localhost:4566 for LocalStack. Tag the connection Local so the header badge makes it obvious.

  3. Connect

    The provider badge reads ⚡ LocalStack for any endpoint containing localhost, 127.0.0.1 or localstack. Everything else in the app works the same as against AWS.

Dummy credentials
When the profile is default (or empty) and the endpoint host is localhost, 127.0.0.1, 0.0.0.0 or host.docker.internal, DynamoOps injects placeholder credentials so you can connect on a machine with no ~/.aws/credentials at all. A named profile is never overridden.
Quick Connect pointed at LocalStack, tagged Local.

What works and what does not

FeatureAgainst a local endpoint
Browse, Scan, Query, PartiQL, item CRUD, import, exportFully supported.
Create, truncate and delete tables, GSIsSupported by both emulators.
Streams panelWorks with LocalStack when the dynamodbstreams service is enabled and the table has a stream. DynamoDB Local also supports streams.
Cost AnalyticsCapacity figures depend on the emulator returning ConsumedCapacity. When it does not, operations are recorded at 0 units.
Table Dashboard CloudWatch chartsUnavailable. The dashboard shows table metadata only and a note that CloudWatch needs a real AWS region.
Assume Role and SSONot applicable; both flows always target real AWS endpoints.

Seed data quickly

The fastest way to populate a local table is the Import flow: export a page of production data as JSON from another tab, then drag the file into ⬆ Import on the local table. Or create the table and insert a few items with PartiQL:

sql
INSERT INTO "users" VALUE {'userId': 'usr_001', 'email': 'alice@example.com', 'status': 'active'}

Related