# s3-lifecycle-delta
A small Python library to **compute and apply deltas** on AWS S3 lifecycle policies—especially focused on safe, declarative **storage class transitions**—with dry-run, validation, and minimal disruption.
## Problem
AWS S3 lifecycle policies are typically applied by overwriting the entire configuration. That makes automated changes brittle, error-prone, and risky when you only want to tweak transitions (e.g., change from `STANDARD` → `GLACIER` after 90 days) without accidentally deleting other rules.
This library:
- Introspects the current lifecycle policy
- Compares it to the desired policy (the "delta")
- Shows what would change (dry-run)
- Validates rules
- Applies only the intended change safely
## Features
- Declarative lifecycle policy definitions (via Python / JSON)
- Diff engine: detects rule adds / updates / deletes
- Safe apply with `dry-run`
- Validation of transition semantics (e.g., non-decreasing days)
- Idempotent behavior
- Pluggable for custom validation or rule logic
## Quickstart
### Install (editable for dev)
```bash
git clone https://github.com/your-org/s3-lifecycle-delta.git
cd s3-lifecycle-delta
pip install -e .
Raw data
{
"_id": null,
"home_page": "https://github.com/yourusername/your-library",
"name": "s3-lifecycle-delta",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "aws, s3, s3_lifecycle",
"author": "Fernando Oliveira Pereira",
"author_email": "Fernando Oliveira Pereira <oliveira-fernando1@hotmail.com>",
"download_url": "https://files.pythonhosted.org/packages/08/23/c36527592b06138c825b32046e68c7edc21a963863fced38a59fb8462f0d/s3_lifecycle_delta-0.1.0.tar.gz",
"platform": null,
"description": "# s3-lifecycle-delta\n\nA small Python library to **compute and apply deltas** on AWS S3 lifecycle policies\u2014especially focused on safe, declarative **storage class transitions**\u2014with dry-run, validation, and minimal disruption.\n\n## Problem\n\nAWS S3 lifecycle policies are typically applied by overwriting the entire configuration. That makes automated changes brittle, error-prone, and risky when you only want to tweak transitions (e.g., change from `STANDARD` \u2192 `GLACIER` after 90 days) without accidentally deleting other rules.\n\nThis library:\n- Introspects the current lifecycle policy\n- Compares it to the desired policy (the \"delta\")\n- Shows what would change (dry-run)\n- Validates rules\n- Applies only the intended change safely\n\n## Features\n\n- Declarative lifecycle policy definitions (via Python / JSON)\n- Diff engine: detects rule adds / updates / deletes\n- Safe apply with `dry-run`\n- Validation of transition semantics (e.g., non-decreasing days)\n- Idempotent behavior\n- Pluggable for custom validation or rule logic\n\n## Quickstart\n\n### Install (editable for dev)\n\n```bash\ngit clone https://github.com/your-org/s3-lifecycle-delta.git\ncd s3-lifecycle-delta\npip install -e .\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python library to manage S3 lifecycle policies and track changes in Delta format.",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/yourusername/your-library"
},
"split_keywords": [
"aws",
" s3",
" s3_lifecycle"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0823c36527592b06138c825b32046e68c7edc21a963863fced38a59fb8462f0d",
"md5": "03648de9a0390952ca9bc60cc9570af7",
"sha256": "9f82c8540f3725d796cf02349a37910caa96dadf1c45ed0432690c8b3443d61e"
},
"downloads": -1,
"filename": "s3_lifecycle_delta-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "03648de9a0390952ca9bc60cc9570af7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 49594,
"upload_time": "2025-08-28T01:20:28",
"upload_time_iso_8601": "2025-08-28T01:20:28.958233Z",
"url": "https://files.pythonhosted.org/packages/08/23/c36527592b06138c825b32046e68c7edc21a963863fced38a59fb8462f0d/s3_lifecycle_delta-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-28 01:20:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yourusername",
"github_project": "your-library",
"github_not_found": true,
"lcname": "s3-lifecycle-delta"
}