Skip to main content

A Simple Secrets Manager for python

Installing:

pip3 install simplesecretsmanager

How to use:

Storing

from simplesecretsmanager import manager

secrets_manager = manager.SecretsManager("password", "file.bin")

secrets["MY_SECRET"] = "the_secret"
...

secrets_manager.update_secrets(secrets)
secrets_manager.update_secret("ANOTHER_SECRET", "the_other_secret")
secrets_manager.save()

There are 2 additional options when creating your SecretsManager, you can pass a non-default algorithm (defautls to Pbkdf2Algorithm):

from simplesecretsmanager import manager, utility

algorithm = utility.Argon2Algorithm()

secrets_manager = manager.SecretsManager("password", "file.bin", algorithm=algorithm)

You can also choose to not have the password saved in memory:

from simplesecretsmanager import manager

secrets_manager = manager.SecretsManager("password", "file.bin", save_password=False)

secrets_manager.update_secret("MY_SECRET", "the_secret")
# Must give password when saving if save_password = False, throws SecretsError otherwise
secrets_manager.save("password")

Note: when giving a password to save(), this will be used to encrypt the file, in place of whatever was orinally stored

Retrieving

from simplesecretsmanager import manager

secrets_manager = manager.SecretsManager("password", "file.bin")

try:
    my_secret = secrets_manager.get_secret("MY_SECRET")
except SecretsError as e:
    print("Issue retrieving 'MY_SECRET': {e}")

By default, it will throw an error SecretsError if the secret does not exist. If you instead pass a default value, you'll be able to get that returned no matter what.

You can also use the secret manager with the 'with' clause so that it auto saves after:

with secrets_manager:
    secrets_manager.update_secret("MY_SECRET", "newvalue")

and then upon exiting, newvalue will be saved into "MY_SECRET"

Note: This won't work and will throw an error if used when save_password is false, since we won't be able to save the value when we get there

Provided under MIT License

Release files for simplesecretsmanager 0.6.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simplesecretsmanager 0.6.2
File Size Uploaded
simplesecretsmanager-0.6.2.tar.gz 4.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simplesecretsmanager 0.6.2
File Interpreter ABI Platform
simplesecretsmanager-0.6.2-py3-none-any.whl Python 3 none any Details

Total release size: 10.9 kB

Release files / simplesecretsmanager-0.6.2.tar.gz

Download URL simplesecretsmanager-0.6.2.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1bcf4208ad6954e73798f8e03076bfa825658f6fdbb09f1950c115643c36f3d2
BLAKE2b-256 checksum
How to use checksums
41854ad5a148fdc3c7077b4b5f08300c66ef06f4a85f861f8613db1884c2f50f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.10.12 Linux/6.2.0-26-generic

Release files / simplesecretsmanager-0.6.2-py3-none-any.whl

Download URL simplesecretsmanager-0.6.2-py3-none-any.whl
Size 6.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
33347ac8fc8c42ef5a667d6c113675c6825df0b494346335864105fdc1f82438
BLAKE2b-256 checksum
How to use checksums
c6d772eec94aedb44ca6f9c69ecb33d8e7a99c7293070290abc033ef019de1a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.10.12 Linux/6.2.0-26-generic

Release history Release notifications | RSS feed

This release

0.6.2 This release

2 release files

0.6.1

2 release files

0.6

2 release files

0.5

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page