Skip to main content

Python SDK for Phase secrets manager

Project description

Python SDK for Phase

SDK to integrate Phase in server-side applications running Python. This SDK allows you to manage secrets securely using the Phase platform.

Install

pip install phase-dev

Import

from phase import Phase, CreateSecretsOptions, GetAllSecretsOptions, GetSecretOptions, UpdateSecretOptions, DeleteSecretOptions

Initialize

Initialize the SDK with your host and token:

phase = Phase(
    init=False,
    host='https://your-phase-host.com',
    pss=PHASE_SERVICE_TOKEN

)

Usage

Create Secrets

Create one or more secrets in a specified application and environment:

create_options = CreateSecretsOptions(
    env_name="Development",
    app_name="Your App Name",
    key_value_pairs=[
        {"API_KEY": "your-api-key"},
        {"DB_PASSWORD": "your-db-password"}
    ],
    secret_path="/api"
)
result = phase.create_secrets(create_options)
print(f"Create secrets result: {result}")

Get Secrets

Fetch one or more secrets from a specified application and environment:

get_options = GetAllSecretsOptions(
    env_name="Development",
    app_name="Your App Name",
    tag="api",  # Optional: filter by tag
    secret_path="/api"  # Optional: specify path
)
secrets = phase.get_all_secrets(get_options)
for secret in secrets:
    print(f"Key: {secret.key}, Value: {secret.value}")

To get a specific secret:

get_options = GetSecretOptions(
    env_name="Development",
    app_name="Your App Name",
    key_to_find="API_KEY",
    secret_path="/api"
)
secret = phase.get_secret(get_options)
if secret:
    print(f"Key: {secret.key}, Value: {secret.value}")

Update Secrets

Update an existing secret in a specified application and environment:

update_options = UpdateSecretOptions(
    env_name="Development",
    app_name="Your App Name",
    key="API_KEY",
    value="new-api-key-value",
    secret_path="/api",
    destination_path="/new-api",  # Optional: move secret to a new path
    override=False,  # Optional: create a personal override
    toggle_override=False  # Optional: toggle personal override
)
result = phase.update_secret(update_options)
print(f"Update result: {result}")

Delete Secrets

Delete a secret from a specified application and environment:

delete_options = DeleteSecretOptions(
    env_name="Development",
    app_name="Your App Name",
    key_to_delete="API_KEY",
    secret_path="/api"
)
result = phase.delete_secret(delete_options)
print(f"Delete result: {result}")

Resolve Secret References

Resolve references in secret values:

get_options = GetAllSecretsOptions(
    env_name="Development",
    app_name="Your App Name"
)
secrets = phase.get_all_secrets(get_options)
resolved_secrets = phase.resolve_references(secrets, "Development", "Your App Name")
for secret in resolved_secrets:
    print(f"Key: {secret.key}, Resolved Value: {secret.value}")

Error Handling

The SDK methods may raise exceptions for various error conditions. It's recommended to wrap SDK calls in try-except blocks to handle potential errors:

try:
    get_options = GetAllSecretsOptions(env_name="Development", app_name="Your App Name")
    secrets = phase.get_all_secrets(get_options)
except ValueError as e:
    print(f"An error occurred: {e}")

Note on Security

Never hard-code sensitive information like tokens or secrets directly in your code. Always use environment variables or secure configuration management to provide these values to your application.

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

phase_dev-2.0.1.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

phase_dev-2.0.1-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file phase_dev-2.0.1.tar.gz.

File metadata

  • Download URL: phase_dev-2.0.1.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for phase_dev-2.0.1.tar.gz
Algorithm Hash digest
SHA256 d5a8a5be849e2d46700a20bb9bb9c9f87f58dcf9ce55e1a7dbf829150934a3d6
MD5 9880fbc448e22cb29dc93a3e1f8d2ea1
BLAKE2b-256 6efc9dfa1dbdea917065bca4739d6f458091db3edcc233a4cab5475425767362

See more details on using hashes here.

File details

Details for the file phase_dev-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: phase_dev-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for phase_dev-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14ed3c44fcd063d65e6bfd998c79505f61cc2d6b0472321e7190b8b71eb4e09c
MD5 3aa0568d5b0d9ce1bd37c152ca009a00
BLAKE2b-256 eb19a3b40d8dd374424613a6863f8c8bca30eaa562fc552a9e0d54ced5d124f7

See more details on using hashes here.

Supported by

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