Skip to main content

TUI for managing Posit Connect environment variable secrets

Project description

posit-connect-secrets-manager

A terminal UI for bulk-managing environment variables across Posit Connect content items.

Rust License

What it does

Posit Connect stores environment variables per content item. Managing them one at a time through the web UI is tedious at scale. This tool lets you:

  • Browse all your content items and their environment variables
  • Maintain a local vault of key/value pairs (stored as JSON)
  • Safe-merge sync (Ctrl+U) — pushes vault values into each project's env vars without touching keys the vault doesn't know about and without adding new keys to projects that don't already define them
  • Filter any list with fuzzy search
  • Blacklist projects or individual variables from sync
  • Edit values in $EDITOR for multi-line or sensitive content

Install

uv tool install posit-connect-secrets-manager

Or from source (requires Rust toolchain):

uv tool install git+https://github.com/KalebJS/posit-connect-secrets-manager
# or
cargo install --git https://github.com/KalebJS/posit-connect-secrets-manager

Getting started

Launch the TUI:

posit-secrets

On first launch you'll land on the Projects page. Use j/k in the sidebar to navigate to Settings, then press l or Enter to enter the settings pane and fill in your server URL and API key. Press h or Esc to return to the sidebar, then Ctrl+P to fetch your content items — they'll populate the project list within a few seconds.

Once projects are loaded, navigate to Env Vars in the sidebar to see an aggregated list of every environment variable key across all your projects, alongside the matching value from your vault. Use Vault to manage those vault entries. When your vault is ready, press Ctrl+U from anywhere to sync vault values into every project that already has a matching key.

Pages

Page Description
Projects Browse content items and their env vars; expand to inspect, add, delete, or blacklist individual vars
Env Vars Aggregated view of all env var keys across projects, showing which have vault values
Vault Manage the local key/value store that gets synced to projects
Settings Server URL, API key, vault path, and theme

Configuration

Config is saved to ~/.config/posit-secrets/config.toml.

Field Description
Server URL Your Posit Connect base URL (e.g. https://connect.example.com)
API Key A Posit Connect API key with write access to your content
Vault Path Path to the local JSON vault file (default: ~/.config/posit-secrets/vault.json)
Theme Color theme — cycle with Enter on the theme row

Corporate TLS: set SSL_CERT_FILE (path to a PEM file) or SSL_CERT_DIR (directory of *.pem files) to inject custom CA certificates.

Keybindings

Global

Key Action
Tab Toggle sidebar / content focus
q / Ctrl+C Quit
Ctrl+P Refresh project list from Posit Connect
Ctrl+U Safe-merge sync vault → all projects (shows confirmation)

Navigation

Key Action
j / Move down
k / Move up
h / / Esc Return to sidebar
l / / Enter Enter content pane (from sidebar)
g Jump to top
G Jump to bottom
f / / Open fuzzy filter
F Clear filter

Projects page

Key Action
Enter / Space Expand / collapse project to show its env vars
x On a project row: toggle project in/out of sync whitelist. On a var row: toggle var exclusion for that project
a Add an env var to the selected project (fuzzy-picks from vault keys)
d Delete the selected env var from the project

Env Vars page

Key Action
Enter / Space Open popup showing which projects use the selected var
e / E Open the selected var's vault value in $EDITOR

Vault page

Key Action
n New entry (opens key field for editing)
e / Enter Edit value of selected entry
E Open value in $EDITOR
d / Delete Delete selected entry

Settings page

Key Action
e / Enter Edit selected field (theme field cycles values instead)
Esc Cancel edit

Safe-merge sync

Ctrl+U iterates every non-blacklisted content item and, for each one:

  1. Fetches current env vars from the Connect API
  2. Overlays vault values only for keys that already exist in the project
  3. PATCHes the merged set back

It never adds new environment variables to a project that doesn't already define them, and never deletes existing ones. Safe to run repeatedly.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

posit_connect_secrets_manager-0.5.0.tar.gz (55.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

posit_connect_secrets_manager-0.5.0-py3-none-win_amd64.whl (2.2 MB view details)

Uploaded Python 3Windows x86-64

posit_connect_secrets_manager-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

posit_connect_secrets_manager-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

posit_connect_secrets_manager-0.5.0-py3-none-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

posit_connect_secrets_manager-0.5.0-py3-none-macosx_10_12_x86_64.whl (2.3 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file posit_connect_secrets_manager-0.5.0.tar.gz.

File metadata

File hashes

Hashes for posit_connect_secrets_manager-0.5.0.tar.gz
Algorithm Hash digest
SHA256 4095e4473cccc4d4df8d7992db3de04f028f27b22edfd429f3c8595db9082396
MD5 569c5dd89469ece9ce80cc6191fc9169
BLAKE2b-256 0018d3db34e57a664d53efbd4a7bb4d957419967793ca8e5fa18e7392a2b0c59

See more details on using hashes here.

Provenance

The following attestation bundles were made for posit_connect_secrets_manager-0.5.0.tar.gz:

Publisher: release.yaml on KalebJS/posit-connect-secrets-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file posit_connect_secrets_manager-0.5.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for posit_connect_secrets_manager-0.5.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f2b218361228ba2ec9cd173195750f2453f621ae4294fbbb50c300ac09beb93a
MD5 3a0d9faacf686311cb8904f0d391773e
BLAKE2b-256 d5a6fc5f45099862b7ded2980b7ac8a27166ef25571c454a050e56a64485f72a

See more details on using hashes here.

Provenance

The following attestation bundles were made for posit_connect_secrets_manager-0.5.0-py3-none-win_amd64.whl:

Publisher: release.yaml on KalebJS/posit-connect-secrets-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file posit_connect_secrets_manager-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for posit_connect_secrets_manager-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 603735b29c0dc95bbc600b6aedfb8804289b6f882ac8d8c5c2a3baec8c944196
MD5 d20e9452a56942638841587d89260d4d
BLAKE2b-256 0897b7c2c82ba69036ac6189be385f877f1d4e09ee8b3d211c8774b1d88f51ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for posit_connect_secrets_manager-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yaml on KalebJS/posit-connect-secrets-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file posit_connect_secrets_manager-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for posit_connect_secrets_manager-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dec2555db8003ac49c50c9e6b03303e9ce05fb9fac3ff8f2729fbee05d53afa2
MD5 67307e764a21c56f4b67d48c0ee640a8
BLAKE2b-256 778c4fb5ef92620e738d22d8559e2ee3c117ce65dfc20343a19017a1249cb78e

See more details on using hashes here.

Provenance

The following attestation bundles were made for posit_connect_secrets_manager-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yaml on KalebJS/posit-connect-secrets-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file posit_connect_secrets_manager-0.5.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for posit_connect_secrets_manager-0.5.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 787331c4777d8253e574ca616a9c1a70c052af6a2089aaf2e47055f3f74c18b5
MD5 d15cea1449f6ff3d3259b1a5be795863
BLAKE2b-256 bbe0720fdee925f5835f365e3a5ffb21268c6a6eecbd4cbfa6ee6ed8c980ec99

See more details on using hashes here.

Provenance

The following attestation bundles were made for posit_connect_secrets_manager-0.5.0-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yaml on KalebJS/posit-connect-secrets-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file posit_connect_secrets_manager-0.5.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for posit_connect_secrets_manager-0.5.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3cd1bd0796619c0b9df8e8ab902760e952f240539f8719eaadceb974ba6d0d6b
MD5 15891f30246e5ee851c9a308a38e786b
BLAKE2b-256 6d10e52590e400e0c965cbc8a49ff345c4258c76be58bf39d6a18ea260d10137

See more details on using hashes here.

Provenance

The following attestation bundles were made for posit_connect_secrets_manager-0.5.0-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yaml on KalebJS/posit-connect-secrets-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page