Skip to main content

Universal secret manager for Python applications with multi-cloud support

Project description

AnySecret.io - Universal Secret & Configuration Management

PyPI version Python Support License: AGPL-3.0 Commercial License Documentation

One CLI. One SDK. All your cloud providers.

Stop writing boilerplate code for every cloud provider. AnySecret.io provides a universal interface for secret and configuration management across AWS, GCP, Azure, Kubernetes, and more.

๐ŸŽฏ Why AnySecret.io?

The Problem

  • ๐Ÿ”„ Different APIs for each cloud provider - AWS Secrets Manager vs GCP Secret Manager vs Azure Key Vault
  • ๐Ÿ“ Boilerplate code everywhere - Same logic repeated for each provider
  • ๐Ÿšจ Migration nightmares - Vendor lock-in when switching clouds
  • ๐Ÿ”€ Mixed configurations - Secrets and parameters scattered across services
  • ๐Ÿ—๏ธ Months of development - Building your own abstraction layer

Our Solution

import anysecret

# Works everywhere - AWS, GCP, Azure, K8s, local dev
db_password = await anysecret.get("db_password")
api_timeout = await anysecret.get("api_timeout") 

# That's it. No provider-specific code needed.

โœจ Key Features

๐Ÿš€ Universal Interface - Single API for all cloud providers
๐Ÿ”„ Auto-Detection - Automatically detects your cloud environment
๐Ÿ›ก๏ธ Smart Classification - Auto-routes secrets to secure storage, configs to parameter stores
๐Ÿ“ฆ Zero Configuration - Works out of the box in most environments
๐Ÿ” Migration Ready - Switch clouds without changing application code
โšก Async First - Built for modern Python with FastAPI/asyncio
๐ŸŽฏ DevOps Friendly - CLI tools for CI/CD pipelines
๐Ÿฅ HIPAA Compliant - Encrypted file support for healthcare

๐Ÿš€ Quick Start

Installation

# Basic installation
pip install anysecret-io

# With specific providers
pip install anysecret-io[aws]     # AWS support
pip install anysecret-io[gcp]     # Google Cloud support  
pip install anysecret-io[azure]   # Azure support
pip install anysecret-io[k8s]     # Kubernetes support

# All providers
pip install anysecret-io[all]

Basic Usage

import asyncio
from anysecret import get_config_manager

async def main():
    # Auto-detects environment and configures itself
    config = await get_config_manager()
    
    # Get secrets (auto-routed to secure storage)
    db_password = await config.get_secret("DATABASE_PASSWORD")
    api_key = await config.get_secret("STRIPE_SECRET_KEY")
    
    # Get parameters (auto-routed to config storage)
    api_timeout = await config.get_parameter("API_TIMEOUT", default=30)
    feature_flag = await config.get_parameter("FEATURE_X_ENABLED", default=False)

asyncio.run(main())

CLI Usage

# For Terraform/CloudFormation
anysecret get database/password --format json

# For CI/CD pipelines
export DB_PASS=$(anysecret get database/password)

# For Kubernetes
anysecret get-all --format yaml | kubectl apply -f -

# For Docker
docker run -e DB_PASS=$(anysecret get db/password) myapp

๐Ÿ”ง DevOps & CI/CD Integration

Jenkins Pipeline

pipeline {
    stage('Deploy') {
        steps {
            script {
                env.DB_PASSWORD = sh(script: 'anysecret get db/password', returnStdout: true)
                env.API_KEY = sh(script: 'anysecret get api/key', returnStdout: true)
            }
        }
    }
}

GitHub Actions

- name: Get secrets
  run: |
    echo "DB_PASSWORD=$(anysecret get db/password)" >> $GITHUB_ENV
    echo "API_KEY=$(anysecret get api/key)" >> $GITHUB_ENV

Terraform

data "external" "secrets" {
  program = ["anysecret", "get-all", "--format", "json"]
}

resource "aws_instance" "app" {
  user_data = <<-EOF
    DB_PASSWORD=${data.external.secrets.result.db_password}
    API_KEY=${data.external.secrets.result.api_key}
  EOF
}

Kubernetes Integration

# Automatically sync to K8s secrets
anysecret sync-k8s --namespace production

# Or use in manifests
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: app
    env:
    - name: DB_PASSWORD
      value: $(anysecret get db/password)

๐ŸŒ Supported Providers

Provider Secrets Storage Config Storage Auto-Detection
AWS Secrets Manager Parameter Store โœ…
Google Cloud Secret Manager Config Connector โœ…
Azure Key Vault App Configuration โœ…
Kubernetes Secrets ConfigMaps โœ…
HashiCorp Vault KV Store KV Store โœ…
Encrypted Files AES-256 JSON/YAML โœ…
Environment .env files .env files โœ…

๐Ÿ” Intelligent Secret vs Parameter Classification

AnySecret.io automatically determines if a value should be stored securely (secret) or as configuration (parameter):

# Automatically classified as SECRETS (secure storage):
DATABASE_PASSWORD โ†’ Secret Manager/Key Vault
API_KEY โ†’ Secret Manager/Key Vault  
JWT_SECRET โ†’ Secret Manager/Key Vault

# Automatically classified as PARAMETERS (config storage):
DATABASE_HOST โ†’ Parameter Store/Config Maps
API_TIMEOUT โ†’ Parameter Store/Config Maps
LOG_LEVEL โ†’ Parameter Store/Config Maps

๐Ÿš„ Migration Example

Migrating from AWS to GCP? No code changes needed:

# Your application code stays the same
db_password = await config.get_secret("DATABASE_PASSWORD")

# Just change the environment:
# AWS โ†’ export SECRET_MANAGER_TYPE=aws
# GCP โ†’ export SECRET_MANAGER_TYPE=gcp
# Azure โ†’ export SECRET_MANAGER_TYPE=azure

๐Ÿ“– Documentation

๐Ÿค Contributing

We love contributions! Please see our Contributing Guide for details.

# Clone the repository
git clone https://github.com/anysecret-io/anysecret-lib.git
cd anysecret-lib

# Install development dependencies
pip install -e ".[dev,all]"

# Run tests
pytest

# Format code
black anysecret tests
isort anysecret tests

Development Setup

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“Š Benchmarks

Operation Direct SDK AnySecret.io Overhead
Get Secret (AWS) 45ms 47ms +4.4%
Get Secret (GCP) 38ms 40ms +5.2%
Get Secret (Azure) 52ms 54ms +3.8%
Batch Get (10 items) 125ms 85ms -32% (cached)

๐Ÿ›ก๏ธ Security

  • SOC2 Compliant - Enterprise-grade security practices
  • HIPAA Ready - Healthcare compliance with encrypted storage
  • Zero Trust - Never logs or caches sensitive values
  • Audit Trail - Complete access logging for compliance

Found a security issue? Please email security@anysecret.io (do not open a public issue).

๐Ÿ“„ License

AnySecret.io uses dual licensing to support both open source and commercial use:

Open Source (AGPL-3.0)

  • โœ… Free forever for all users and companies
  • โœ… Commercial use allowed - Build and sell products
  • โœ… Modification allowed - Customize for your needs
  • โš ๏ธ Service providers - Must open-source modifications if offering as a service

Commercial License

  • ๐Ÿข For SaaS platforms - Include in your service without AGPL requirements
  • ๐Ÿ”’ Private modifications - Keep your changes proprietary
  • ๐Ÿ“ž Priority support - Direct access to our team
  • ๐Ÿ’ผ Custom features - We'll build what you need

Need a commercial license? Visit anysecret.io/license

๐ŸŒŸ Community & Support

๐ŸŽฏ Roadmap

Current Release (v1.0)

  • โœ… Universal secret/config interface
  • โœ… AWS, GCP, Azure, K8s support
  • โœ… Auto-environment detection
  • โœ… Smart classification
  • โœ… CLI tools for DevOps

Coming Soon (v1.1)

  • ๐Ÿšง Secret rotation automation
  • ๐Ÿšง Web UI dashboard
  • ๐Ÿšง Terraform provider
  • ๐Ÿšง Ansible module
  • ๐Ÿšง GitHub Action

Future (v2.0)

  • ๐Ÿ“‹ Multi-region replication
  • ๐Ÿ“‹ Disaster recovery
  • ๐Ÿ“‹ Advanced RBAC
  • ๐Ÿ“‹ Compliance reporting
  • ๐Ÿ“‹ Cost optimization

๐Ÿ’ช Powered By

Built by Adaptive Digital Ventures - We're hiring! Check our careers page.

๐Ÿ† Users

AnySecret.io is used in production by:

  • ๐Ÿฅ Healthcare - HIPAA-compliant secret management
  • ๐Ÿ’ฐ FinTech - SOC2 compliant configuration
  • ๐Ÿ›๏ธ E-commerce - Multi-region secret distribution
  • ๐ŸŽฎ Gaming - Low-latency config updates
  • ๐Ÿš€ Startups - Simple, cost-effective secret management

Stop building secret management. Start shipping features.
anysecret.io โ€ข Docs โ€ข Discord โ€ข Twitter

# Test sync trigger

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

anysecret_io-0.1.0.tar.gz (46.9 kB view details)

Uploaded Source

Built Distribution

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

anysecret_io-0.1.0-py3-none-any.whl (56.0 kB view details)

Uploaded Python 3

File details

Details for the file anysecret_io-0.1.0.tar.gz.

File metadata

  • Download URL: anysecret_io-0.1.0.tar.gz
  • Upload date:
  • Size: 46.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for anysecret_io-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6af31b4cac7e6a15be5305f10380d673a7bfcadb692554346c2311b67a9334a3
MD5 8da57ed31ae402318672d0cc0a6f33c8
BLAKE2b-256 758d79b0cd70302f3f5a98f89014582467e917d8381473011ca9744e6b48f904

See more details on using hashes here.

File details

Details for the file anysecret_io-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: anysecret_io-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 56.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for anysecret_io-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4244661799f80973a174e48914e90a8774237bdfc163757c557615c0a578efbd
MD5 dd425bb4790547416eeae630bfa69f12
BLAKE2b-256 7e2a1bea9c62a925fabbabd9073a7844bdde8ab54927533b0c663054b51dd380

See more details on using hashes here.

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