{"id":26892,"library":"decorative-secrets","title":"decorative-secrets","description":"A library providing decorators for multi-source secret retrieval, allowing secrets to be fetched from environment variables, files, AWS Secrets Manager, and other backends. Current version is 0.12.14. Release cadence is irregular with frequent minor version bumps.","status":"active","version":"0.12.14","language":"python","source_language":"en","source_url":"https://github.com/enorganic/decorative-secrets","tags":["decorators","secrets","configuration","environment-variables"],"install":[{"cmd":"pip install decorative-secrets","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required for AWS Secrets Manager backend","package":"boto3","optional":true}],"imports":[{"wrong":"from decorative_secrets import secret","symbol":"secret","correct":"from decorative_secrets import secret"}],"quickstart":{"code":"import os\nos.environ['MY_SECRET_KEY'] = 'my-secret-value'\n\nfrom decorative_secrets import secret\n\n@secret('MY_SECRET_KEY')\ndef get_secret(val):\n    return val\n\nprint(get_secret())","lang":"python","description":"Retrieve a secret from an environment variable using the @secret decorator."},"warnings":[{"fix":"Define your function with a parameter to accept the secret, e.g., `def func(secret_value):`.","message":"The 'secret' decorator returns the secret value as the first argument to the decorated function. If you don't expect an argument, your function will receive an extra argument.","severity":"gotcha","affected_versions":">=0.10.0"},{"fix":"Remove the `from_env=True` argument; just pass the environment variable name directly.","message":"The 'from_env' backend (used with `@secret('KEY', from_env=True)`) is deprecated in favor of the default behavior where environment variable keys are automatically detected.","severity":"deprecated","affected_versions":">=0.12.0"},{"fix":"Use underscores or other characters instead of periods, or wrap the key in quotes and use explicit backend configuration.","message":"Using a period (.) in the key name may be misinterpreted as nesting. For example, 'my.secret' might be parsed as a path instead of a literal key.","severity":"gotcha","affected_versions":">=0.10.0"}],"env_vars":null,"search_vec":"'0.12.14':32 'allow':14 'aw':23 'backend':28 'bump':41 'cadenc':34 'configur':44 'current':29 'decor':2,7,42 'decorative-secret':1 'environ':20,46 'environment-vari':45 'fetch':18 'file':22 'frequent':38 'irregular':36 'librari':5 'manag':25 'minor':39 'multi':10 'multi-sourc':9 'provid':6 'releas':33 'retriev':13 'secret':3,12,15,24,43 'sourc':11 'variabl':21,47 'version':30,40","created_at":"2026-05-01T17:43:25.468153+00:00","updated_at":"2026-05-01T17:43:25.468153+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nImportError: cannot import name 'secret' from 'decorative_secrets' (/tmp/tmpn0m4qiqh/venv/lib/python3.12/site-packages/decorative_secrets/__init__.py)"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/enorganic/decorative-secrets","docs":"https://decorative-secrets.enorganic.org","changelog":null,"pypi":"https://pypi.org/project/decorative-secrets/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["auth-security","devops","aws"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}