Browse and edit DynamoDB tables without the AWS console

An internal data console where your team searches, opens and edits DynamoDB records, with saved searches and edits locked off until someone switches them on.

App
Amazon DynamoDBEngineeringOperationsData Sync
PromptCreate

Build me an internal data console for Amazon DynamoDB that my team opens instead of the AWS console. It needs to be quick to move around in, safe by default, and readable by people who do not write DynamoDB expressions every day.

The landing view lists every table in the connected account using List Tables, with a search box to filter the list by name. Clicking a table opens it. Keep the table list reachable at all times so switching between two tables never means losing what I was looking at and never means going back a screen.

When a table is open, show a header built from Describe Table: the partition key and sort key names and types, any secondary indexes, the approximate item count, the table size, and the table status. Keep it compact and always visible while I scroll.

Below the header, show a spreadsheet-style grid of items, one row per item and one column per attribute, with column selection and sorting. Fill it two ways. If I supply a partition key value, and optionally a sort key condition, run Query with a KeyConditionExpression. If I am exploring, run Scan with an optional FilterExpression plus ExpressionAttributeNames and ExpressionAttributeValues. Make the filter input a real editor with room to type and syntax help nearby, not a tiny single line box. Show which mode produced the rows currently on screen, and say plainly when a scan is reading the whole table.

Paging is a Load more button at the bottom of the grid. Hold on to the LastEvaluatedKey the previous Query or Scan returned and send it back as ExclusiveStartKey on the next otherwise identical call, appending the new page to the rows already on screen rather than replacing them. When the response comes back without a LastEvaluatedKey, tell me we have reached the end instead of leaving a button that does nothing.

Clicking a row opens a detail drawer that re-reads the record with Get Item using its primary key, so I am always editing the current version. The drawer renders the item as a friendly form: strings as text inputs, numbers as number inputs, booleans as switches, lists and maps as nested collapsible groups, string and number sets as tag inputs, and nulls as an explicit empty state. Never show the tagged attribute-value wire format in the interface. Convert tagged values into plain form values when reading and back into correctly tagged values when writing, remembering that numbers travel as strings.

From the drawer I can save changes with Update Item, using an UpdateExpression built only from the fields I actually touched. I can duplicate the record into a new one, or create a record from scratch, with Put Item. I can delete it with Delete Item behind a confirmation that makes me type the record key before the button turns on. The grid also has row checkboxes and a bulk delete that chunks the selected keys into Batch Write Item calls of at most 25 and reports anything that comes back unprocessed.

Add an Advanced tab where I can write a raw PartiQL statement and run it with Execute Statement (PartiQL), showing the returned rows in the same grid and paging with the NextToken it returns. Treat any statement that is not a SELECT as a write, so it respects the edit lock and gets logged like every other change.

Saved queries are the first thing that makes this worth opening daily. Let me name and save any lookup or exploration setup, including the table, the mode, key values, the filter expression with its attribute names and values, the selected columns and the sort, and pin it to the table it belongs to. Saved queries persist in the app and are visible to the whole team, run with one click, and can be marked as the default that loads automatically when someone opens that table.

The second thing that makes it worth opening is safety. The app starts read only. Every write control is visible but disabled until the user flips an Enable edits switch in the header, and that switch resets to off each time the app is opened. While edits are off, the drawer is a viewer, bulk delete is unavailable, and non-SELECT statements are refused with a clear message rather than an error.

Append every write to an audit table in the same DynamoDB account using Put Item. Each audit record carries a unique id, a timestamp, the signed-in user, the table name and the key of the record that changed, the operation (update, create, duplicate, delete, bulk delete or statement), the value read before the write, and the value after it. Let me choose which table is the audit table in a small settings area, and surface an item's recent history inside its detail drawer. If the audit write itself fails, say so loudly instead of letting the change go unrecorded.

Overall feel: a dense but readable grid, a sticky header, keyboard friendly navigation, and no long blank spinners on tables with many attributes. The goal is that anyone on the team can answer a question about production data in a few seconds without opening AWS, and cannot break anything by accident on the way.

What does this prompt do?

  • Lists every table in your account, then opens one with its keys, record count, size and status in a header you can read at a glance.
  • Shows records in a spreadsheet-style grid: look one up when you know the key, or filter your way through when you are exploring, with a Load more button that fetches the next page.
  • Opens any row in a side panel where text, numbers, switches and nested fields appear as normal form controls, so you can edit, duplicate, create or delete records without touching raw database syntax.
  • Saves the searches your team runs every morning so nobody retypes the same filter twice, and keeps everything read only until someone deliberately switches editing on.
  • Writes a change log entry for every edit, creation and deletion, recording who did it, when, and the values before and after.

What do I need to use this?

  • An AWS account with DynamoDB tables, plus an access key that can read them and write to them if you want editing turned on
  • The region your tables live in, for example us-east-1
  • A table to hold the change log, either an existing one or a new empty table you point the app at

How can I customize it?

  • Leave the app read only for everyone, or decide who is allowed to flip the editing switch
  • Preload the saved searches your team checks every morning and set one as the default view for each table
  • Point the change log at whichever table your team already uses for audit records, and choose how many rows load per page

FAQs

Does this replace the AWS console?
For day to day work, yes. It covers looking records up, filtering, editing, creating and deleting, which is what most teams open the AWS console for. Anything to do with billing, capacity settings or creating new tables still happens in AWS.
Can someone delete production data by accident?
It is deliberately hard to. The app opens in read only mode every single time, so every edit and delete button stays disabled until the person turns editing on. Deleting a single record also asks you to type its key to confirm, and bulk deletion requires selecting rows on purpose.
Do I need to know DynamoDB filter syntax to use it?
Only the person setting up a search does. Once a search is saved, everyone else picks it from a list and runs it with one click, which is the whole reason saved searches are in here.
Will it be slow on a big table?
It loads one page at a time and only fetches more when you press Load more, so opening a large table stays quick. Looking a record up by its key is fast at any size, while broad exploring reads more of the table and is flagged in the interface when it does.
Where is my data stored?
In your own AWS account. The app reads and writes your tables directly, and the change log is written to a DynamoDB table you choose, so nothing is copied into a third party database.
Can I see who changed a record?
Yes. Every save, creation and deletion appends an entry with the person's name, the time, the record they touched, and the before and after values. Recent history for a record shows up in its detail panel.

Related templates

Monthly DynamoDB capacity and cost review dashboard

Open one screen each month to see which DynamoDB tables waste money on capacity nobody uses and which are quietly throttling users, with dollar estimates.

Amazon DynamoDB
Amazon CloudWatch
Slack Bot
App
Look up any customer's account and billing without AWS access

Your support reps type an email and see the customer's plan, seats, entitlements and live billing on one screen, with safe edits and a full audit trail.

Amazon DynamoDB
Stripe
Slack Bot
App
Spot missing fields and type drift in your DynamoDB tables

Sample any table, see which fields actually appear and how often, declare the ones that are required per record type, and get a list of records that break your rules.

Amazon DynamoDB
Slack Bot
App
Provision customer entitlements in DynamoDB when a deal is won

When a HubSpot deal hits Closed Won, the customer's plan, seats and renewal dates land in your DynamoDB accounts table, with a Slack note showing what changed.

HubSpot
Amazon DynamoDB
Slack Bot
Agentic Task
Weekly customer usage brief from your DynamoDB events

Every Monday at 8am, roll up last week's events from DynamoDB, spotlight top movers, at-risk accounts, and silent customers, and email it to you.

Amazon DynamoDB
Gmail
Agentic Task
Weekday DynamoDB health check in Slack

A quiet morning audit that flags missing backups, stale snapshots, and unusual table growth — and only pings you when something actually needs a look.

Amazon DynamoDB
Slack
Agentic Task

Stop making your team fight the AWS console

Give everyone one screen for your DynamoDB data, with the searches they run daily saved and edits locked off by default.