Dyno-viewer
Dyno-viewer is dynamodb table viewer for your terminal build using textual.
This came out from me being frustrated with how clunky and slow the dynamodb viewier is in the aws console and me finding no good free alternative, That works the way i want it to work. Which is basically a spreadsheet with menus to change the table etc just like the aws console version and it being able to be used with just a keyboard
Note:
This is still in early alpha so some things to be expect things to be broken, I will fix them as i have time. Prs are welcome
Features
- Query dynamodb tables via primary key, secondary indexes and scan
- Save queries for later re-use
- Save query history
- Output results in csv or JSON format
- wip support for have multiple sessions open at once
Installing
prerequisites
You need the aws cli fully configured (see here for how to setup up auth)
note about AWS IAM Identity Center(used to be called aws sso) aws profiles:
if you are using sso profiles. Then you need to make sure that you have updated your config to use a sso-session profile otherwise the app won't work see this doc on how to do that. See this issue: https://github.com/boto/botocore/issues/2374 if you want to know why this is the case
right now this can be installed via flatpak and pip:
install
I recommend using pipx:
pipx install dyno-viewer
Configuration
Dyno-viewer supports a simple app configuration file to preset defaults and tweak behavior without passing flags each run. If this doesn't exist then it will create it in the following paths:
- Config file path (MacOS):
~/Library/Application Support/dyno-viewer/config.yaml - Config file path (Linux):
~/.config/dyno-viewer/config.yaml - Config file path (Windows):
%APPDATA%/dyno-viewer/config.yaml
Example config.yaml:
theme: "textual-dark" # what theme to use see: https://textual.textualize.io/guide/design/#changing-the-theme
page_size: 100 # number of rows to fetch per page
For saved queries and session data they are stored in an sqlite database in the same following path i.e:
- MacOS:
~/Library/Application Support/dyno-viewer/db.db - Linux:
~/.local/share/dyno-viewer/db.db - Windows:
%LOCALAPPDATA%/dyno-viewer/db.db
Dev notes
Prerequisites
This repo uses poetry for package management and needs python 3.10+ installed either via pyenv or asdf using the asdf-community/asdf-python addon
e.g:
env PYTHON_CONFIGURE_OPTS="--enable-shared" asdf install python 3.10.11
or if using pyenv:
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.10.11
see how to build cpython with --enable-shared for more info
Local dev setup
To install locally run:
poetry install
# to go into a virtual env shell
poetry shell
# or run app via script
poetry run dyno-viewer
Testing textual notes
Metadata
Release files for dyno-viewer 0.34.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dyno_viewer-0.34.0.tar.gz | 28.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dyno_viewer-0.34.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.1 kB
Release files / dyno_viewer-0.34.0.tar.gz
| Download URL | dyno_viewer-0.34.0.tar.gz |
|---|---|
| Size | 28.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b32edfc2f657966a2363bd7fc227097ad54bb471735387966725310b3647bd8b
|
|
BLAKE2b-256 checksum How to use checksums |
6c485509db3387ca0f4d5c43d94ae6d72c70859376a803e28b4fc581e1a33fcd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.1 CPython/3.12.3 Linux/6.11.0-1018-azure
|
Release files / dyno_viewer-0.34.0-py3-none-any.whl
| Download URL | dyno_viewer-0.34.0-py3-none-any.whl |
|---|---|
| Size | 41.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
185bcdc02708deb7a340de4e6d9bd0e1ae3982f9b111a140607084e8c121dd4f
|
|
BLAKE2b-256 checksum How to use checksums |
32f08f049f9ded0b6f034d69169fd56c6883a8dcdde1fb2f583f3c9a7ebe3e2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.1 CPython/3.12.3 Linux/6.11.0-1018-azure
|