Deepfreeze Core
Core library for Elasticsearch cloud storage archival operations.
Overview
This package provides the shared functionality for deepfreeze operations, used by:
- deepfreeze-cli: Standalone CLI tool
- deepfreeze-server: Persistent daemon with REST API and Web UI
Supported Cloud Providers
| Provider | Storage Type | Archive Tier | Package |
|---|---|---|---|
| AWS | S3 | Glacier, Deep Archive | boto3 (included) |
| Azure | Blob Storage | Archive tier | azure-storage-blob (optional) |
| GCP | Cloud Storage | Archive class | google-cloud-storage (optional) |
Installation
# Base installation (AWS support only)
pip install deepfreeze-core
# With Azure support
pip install deepfreeze-core[azure]
# With GCP support
pip install deepfreeze-core[gcp]
# With all providers
pip install deepfreeze-core[azure,gcp]
Usage
This package is typically used as a dependency by other packages. For direct usage:
from deepfreeze_core import (
Setup, Status, Rotate, Thaw, Refreeze, Cleanup, RepairMetadata,
s3_client_factory, create_es_client, get_storage_credentials
)
# Create ES client
client = create_es_client(
hosts=["https://localhost:9200"],
username="elastic",
password="changeme"
)
# Create storage client (AWS)
s3 = s3_client_factory("aws", region="us-east-1")
# Create storage client (Azure)
s3 = s3_client_factory("azure", connection_string="...")
# Create storage client (GCP)
s3 = s3_client_factory("gcp", project="my-project")
# Or load credentials from config file
creds = get_storage_credentials("/path/to/config.yaml", "azure")
s3 = s3_client_factory("azure", **creds)
# Create and run an action
status = Status(client=client)
status.do_action()
Components
Actions
Setup- Initialize deepfreeze environmentStatus- Display status of repositories and thaw requestsRotate- Create new repository, archive old onesThaw- Restore data from archive storageRefreeze- Return thawed data to archive storageCleanup- Remove expired repositories and requestsRepairMetadata- Fix metadata discrepancies
Storage Clients
s3_client_factory(provider, **kwargs)- Create storage client for any providerAwsS3Client- AWS S3 implementationAzureBlobClient- Azure Blob Storage implementationGcpStorageClient- Google Cloud Storage implementation
Utilities
create_es_client- Create Elasticsearch clientget_storage_credentials- Load storage credentials from config fileload_storage_config- Load all storage configuration from config file- Repository and Settings management functions
Configuration
Storage credentials can be provided via:
- Constructor arguments (highest priority)
- Config file (storage section)
- Environment variables (fallback)
Config File Format
storage:
aws:
region: us-east-1
profile: my-profile # or access_key_id + secret_access_key
azure:
connection_string: "DefaultEndpointsProtocol=https;..."
# or account_name + account_key
gcp:
project: my-project
credentials_file: /path/to/service-account.json
Environment Variables
AWS: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, AWS_PROFILE
Azure: AZURE_STORAGE_CONNECTION_STRING or AZURE_STORAGE_ACCOUNT + AZURE_STORAGE_KEY
GCP: GOOGLE_APPLICATION_CREDENTIALS, GOOGLE_CLOUD_PROJECT
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black deepfreeze_core/
ruff check deepfreeze_core/
Metadata
Release files for deepfreeze-core 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| deepfreeze_core-2.1.0.tar.gz | 95.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| deepfreeze_core-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 206.5 kB
Release files / deepfreeze_core-2.1.0.tar.gz
| Download URL | deepfreeze_core-2.1.0.tar.gz |
|---|---|
| Size | 95.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0ea06ad972d96e9a703c89e04bc5098ef544fe1fd6d4e869265d7b08de0c0c76
|
|
BLAKE2b-256 checksum How to use checksums |
050c559d3667b6f5e2224a9160d68b768082eb5a7c37633ca8da78190d1c1572
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 13, 2026.
Transparency logRelease files / deepfreeze_core-2.1.0-py3-none-any.whl
| Download URL | deepfreeze_core-2.1.0-py3-none-any.whl |
|---|---|
| Size | 111.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
271dcd1602db9686d221c90195e4683cae29b54be3ce04e0846a126152f42ae5
|
|
BLAKE2b-256 checksum How to use checksums |
5525e0d88349d2495be4f5247a33776bca669eb501ee15a644f77480b353e50b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 13, 2026.
Transparency log