From ea16188d742fc82c423a383fb1132a3db43a3467 Mon Sep 17 00:00:00 2001 From: Michael Ferris Date: Tue, 3 Dec 2024 12:14:33 -0800 Subject: [PATCH 1/4] Remove reference to beta for object lock and versioning --- app/(docs)/dcs/api/s3/object-lock/page.md | 47 +++++-------------- .../dcs/api/s3/object-versioning/page.md | 19 +------- .../dcs/api/s3/s3-compatibility/page.md | 18 +++---- app/(docs)/dcs/buckets/object-lock/page.md | 2 +- .../dcs/third-party-tools/veeam/page.md | 2 +- 5 files changed, 23 insertions(+), 65 deletions(-) diff --git a/app/(docs)/dcs/api/s3/object-lock/page.md b/app/(docs)/dcs/api/s3/object-lock/page.md index 683345cc3..c59dd7a78 100644 --- a/app/(docs)/dcs/api/s3/object-lock/page.md +++ b/app/(docs)/dcs/api/s3/object-lock/page.md @@ -1,46 +1,21 @@ --- -title: Object Lock (Beta) +title: Object Lock docId: gjrGzPNnhpYrAGTTAUaj metadata: - description: Detailed guide on the Beta of object lock - title: 'Object Lock (Beta)' + description: S3 Guide to Object Lock + title: 'Object Lock' --- -{% callout type="info" %} -**Beta Service Release** +Object Lock allows you to protect objects from being deleted or overwritten for a specified period or indefinitely. Object Lock operates in three modes: -S3-Compatible Object Lock is currently available as pre-production beta and may not be suitable for all production environments. +- **Governance Mode**: Protects objects against accidental deletion but allows authorized users to bypass the lock. +- **Compliance Mode**: Provides immutable protection; no user can delete or modify the object until the retention period expires. +- **Legal Hold**: Prevents an object from being deleted until the legal hold is explicitly removed, regardless of retention settings. -Please refer to our [Terms of Service](https://www.storj.io/legal/terms-of-service) for more information on release definitions. -{% /callout %} +{% partial file="override-governance-mode-callout.md" /%} -## Summary - -### Overview -Storj is currently developing [](docId:oogh5vaiGei6atohm5thi). As part of that development, we have released an early Beta Service Release, which includes **S3-Compatible Object Lock**, that can be used to evaluate the functionality. - -## Beta Opt-In Instructions -To gain access to S3-compatible Object Lock, you'll need to opt into the **Object Versioning Beta** following the steps below: -{% partial file="versioning-opt-in.md" /%} - -## Enabling Object Lock on a Bucket -{% callout type="info" %} -Object Lock is not backwards compatible with existing buckets—a new bucket must be created to enable Object Lock. -{% /callout %} - -{% partial file="create-bucket.md" /%} - -### FAQ -- **When will Object Lock be fully released?** - - Object lock will be released soon - the target is December 2024 or January 2025 -- **Why would I test this Beta?** - - If you plan to conduct a proof of concept or want to test a a pre-production instance of an integration that utilizes object lock. -- **How do I test the Beta?** - - See instructions above -- **How do I give feedback or request features related to Object Lock?** - - Our roadmap is public. Here are the relevant roadmap items: - - [S3 Object Lock: Compliance Mode](https://github.com/storj/roadmap/issues/47) - - [S3 Object Lock: Add Governance Mode and Legal Hold](https://github.com/storj/roadmap/issues/98) - - You may also submit a support request here: [https://support.storj.io/hc/en-us/requests/new](https://support.storj.io/hc/en-us/requests/new) +## Using Object Lock +- For enabling object lock, and setting bucket level defaults please see [](docId:e94a86fc-3deb-42f0-b7fe-1f80c675930a) +- For object lock related object operations please see [](docId:uyuWpwchZx29f28UGAILP) ## Technical Details ### New S3 Actions Supported: diff --git a/app/(docs)/dcs/api/s3/object-versioning/page.md b/app/(docs)/dcs/api/s3/object-versioning/page.md index acaf9edc6..cec2ee141 100644 --- a/app/(docs)/dcs/api/s3/object-versioning/page.md +++ b/app/(docs)/dcs/api/s3/object-versioning/page.md @@ -1,5 +1,5 @@ --- -title: Object Versioning (Beta) +title: Object Versioning docId: oogh5vaiGei6atohm5thi metadata: description: Detailed guide on enabling object versioning for buckets @@ -8,23 +8,6 @@ redirects: - /dcs/buckets/object-versioning --- -{% callout type="info" %} -**Beta Service Release** - -S3-Compatible Object Versioning is currently available as pre-production beta and may not be suitable for all production environments. - -Please refer to our [Terms of Service](https://www.storj.io/legal/terms-of-service) for more information on release definitions. -{% /callout %} - - -## How do I opt in to the object versioning beta? - -To opt in to the object versioning beta, you can follow these steps: - -{% partial file="versioning-opt-in.md" /%} - -## How does object versioning work? - Object versioning enables you to preserve, retrieve, and restore every version of every object stored in a bucket. This feature adds an extra layer of data protection and recovery options, allowing you to safeguard against accidental deletions and overwrites. ### Key Features of Object Versioning diff --git a/app/(docs)/dcs/api/s3/s3-compatibility/page.md b/app/(docs)/dcs/api/s3/s3-compatibility/page.md index 3feaa1b29..cae6cb322 100644 --- a/app/(docs)/dcs/api/s3/s3-compatibility/page.md +++ b/app/(docs)/dcs/api/s3/s3-compatibility/page.md @@ -55,13 +55,13 @@ The Storj S3-compatible Gateway supports a RESTful API that is compatible with t | GetBucketReplication | No | | | GetBucketRequestPayment | No | Planned support status needs verification | | GetBucketTagging | No | | -| GetBucketVersioning | Yes (Beta) | | +| GetBucketVersioning | Yes | [](docId:oogh5vaiGei6atohm5thi) | | GetBucketWebsite | No | | | GetObject | Partial | We need to add support for the partNumber parameter | | GetObjectAcl | No | | -| GetObjectLegalHold | No | Currently in active development. See [](docId:gjrGzPNnhpYrAGTTAUaj) | -| GetObjectLockConfiguration | No | Currently in active development. See [](docId:gjrGzPNnhpYrAGTTAUaj) | -| GetObjectRetention | Yes (Beta) | [](docId:gjrGzPNnhpYrAGTTAUaj) | +| GetObjectLegalHold | Yes | [](docId:gjrGzPNnhpYrAGTTAUaj) | +| GetObjectLockConfiguration | Yes | [](docId:gjrGzPNnhpYrAGTTAUaj) | +| GetObjectRetention | Yes | [](docId:gjrGzPNnhpYrAGTTAUaj) | | GetObjectTagging | Full | Tags can be modified outside of tagging endpoints | | GetObjectTorrent | No | | | GetPublicAccessBlock | No | | @@ -73,7 +73,7 @@ The Storj S3-compatible Gateway supports a RESTful API that is compatible with t | ListBucketMetricsConfigurations | No | | | ListBuckets | Full | | | ListMultipartUploads | Partial | See ListMultipartUploads section | -| ListObjectVersions | Yes (Beta) | [](docId:gjrGzPNnhpYrAGTTAUaj) | +| ListObjectVersions | Yes | [](docId:oogh5vaiGei6atohm5thi) | | ListObjects | Partial | See ListObjects section | | ListObjectsV2 | Partial | See ListObjects section | | ListParts | Full | | @@ -95,13 +95,13 @@ The Storj S3-compatible Gateway supports a RESTful API that is compatible with t | PutBucketReplication | No | | | PutBucketRequestPayment | No | Planned support status needs verification | | PutBucketTagging | No | | -| PutBucketVersioning | Yes (Beta) | [](docId:gjrGzPNnhpYrAGTTAUaj) | +| PutBucketVersioning | Yes | [](docId:oogh5vaiGei6atohm5thi) | | PutBucketWebsite | No | | | PutObject | Full | | | PutObjectAcl | No | | -| PutObjectLegalHold | No | | -| PutObjectLockConfiguration | No | Currently in active development. See [](docId:gjrGzPNnhpYrAGTTAUaj) | -| PutObjectRetention | Yes (Beta) | [](docId:gjrGzPNnhpYrAGTTAUaj) | +| PutObjectLegalHold | Yes | [](docId:gjrGzPNnhpYrAGTTAUaj) | +| PutObjectLockConfiguration | Yes | [](docId:gjrGzPNnhpYrAGTTAUaj) | +| PutObjectRetention | Yes | [](docId:gjrGzPNnhpYrAGTTAUaj) | | PutObjectTagging | Full | Tags can be modified outside of tagging endpoints | | PutPublicAccessBlock | No | | | RestoreObject | No | | diff --git a/app/(docs)/dcs/buckets/object-lock/page.md b/app/(docs)/dcs/buckets/object-lock/page.md index 23ab1a32e..f5d21d78d 100644 --- a/app/(docs)/dcs/buckets/object-lock/page.md +++ b/app/(docs)/dcs/buckets/object-lock/page.md @@ -1,5 +1,5 @@ --- -title: Object Lock (Beta) +title: Object Lock docId: e94a86fc-3deb-42f0-b7fe-1f80c675930a weight: 1 metadata: diff --git a/app/(docs)/dcs/third-party-tools/veeam/page.md b/app/(docs)/dcs/third-party-tools/veeam/page.md index c8a1cbbf2..b75c2a1c4 100644 --- a/app/(docs)/dcs/third-party-tools/veeam/page.md +++ b/app/(docs)/dcs/third-party-tools/veeam/page.md @@ -125,7 +125,7 @@ Setting a value higher than 64 can increase throughput backing up (offloading) t {% callout type="info" %} **Immutability Requirements** - Veeam's immutability setting uses S3-Compatible Object Lock, which is currently in Beta. For more information and instructions on setting up your bucket with Object Lock, please refer to our documentation here: [](docId:gjrGzPNnhpYrAGTTAUaj). + Veeam's immutability setting uses S3-Compatible Object Lock. For more information and instructions on setting up your bucket with Object Lock, please refer to our documentation here: [](docId:e94a86fc-3deb-42f0-b7fe-1f80c675930a). {% /callout %} ![](https://link.storjshare.io/raw/jua7rls6hkx5556qfcmhrqed2tfa/docs/images/YOE-le-vX4D0wfn7tnrey_archiverepositorys3cbucket.png) From 84df4e87c5dcaeffa109c3118c6d5a35ac22ec6e Mon Sep 17 00:00:00 2001 From: "Alexey A. Leonov" Date: Wed, 4 Dec 2024 10:39:06 +0700 Subject: [PATCH 2/4] fixed headers levels --- app/(docs)/dcs/api/s3/object-versioning/page.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/(docs)/dcs/api/s3/object-versioning/page.md b/app/(docs)/dcs/api/s3/object-versioning/page.md index cec2ee141..feff73bb6 100644 --- a/app/(docs)/dcs/api/s3/object-versioning/page.md +++ b/app/(docs)/dcs/api/s3/object-versioning/page.md @@ -10,7 +10,7 @@ redirects: Object versioning enables you to preserve, retrieve, and restore every version of every object stored in a bucket. This feature adds an extra layer of data protection and recovery options, allowing you to safeguard against accidental deletions and overwrites. -### Key Features of Object Versioning +## Key Features of Object Versioning - **S3 Compatibility:** Storj's object versioning is designed to be compatible with the S3 API. This means you can use existing S3 SDKs and tools to manage versioned objects, making it easy to integrate into your current workflows. @@ -24,23 +24,23 @@ Object versioning enables you to preserve, retrieve, and restore every version o Note that enabling object versioning can increase storage costs since each version of an object is stored separately. {% /callout %} -### Supported S3 API Methods for Object Versioning +## Supported S3 API Methods for Object Versioning Storj's S3-Compatible Object Versioning supports a range of S3 API methods, allowing you to manage and interact with versioned objects. Below are the key S3 API methods supported by Storj's object versioning, along with a brief description of their use: -#### Bucket Operations +### Bucket Operations - **PUT Bucket versioning**: Enables or suspends versioning for a bucket. - **GET Bucket versioning**: Retrieves the versioning state of a bucket. -#### Object Operations +### Object Operations - **PUT Object**: Adds an object to a bucket. If versioning is enabled, a unique version ID is assigned to the object. - **GET Object**: Retrieves the current version of an object or a specific version if the version ID is specified. - **DELETE Object**: Permanently deletes a version of an object if the version ID is provided, or marks the current version as deleted by adding a delete marker. - **LIST Versions**: Lists all the versions of all objects in a bucket, including delete markers. -### Bucket Versioning Status +## Bucket Versioning Status The following are the possible versioning statuses a bucket can be in: From 8ceb699c409334bcdb0f43b89a4570d0f39817cf Mon Sep 17 00:00:00 2001 From: "Alexey A. Leonov" Date: Wed, 4 Dec 2024 11:16:24 +0700 Subject: [PATCH 3/4] added bypassing of the Governance Mode --- app/(docs)/dcs/objects/page.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/app/(docs)/dcs/objects/page.md b/app/(docs)/dcs/objects/page.md index 607f6006c..cc83df137 100644 --- a/app/(docs)/dcs/objects/page.md +++ b/app/(docs)/dcs/objects/page.md @@ -175,7 +175,7 @@ aws s3api put-object-retention \ ### Extending Retention Period -Retention periods can only be extended, not reduced or removed. +Retention periods can only be extended, not reduced. Storj Console currently doesn't allow to remove it. {% tabs %} @@ -211,3 +211,27 @@ aws s3api put-object-retention \ {% /tab %} {% /tabs %} + +### Bypassing Governance Mode +The Storj User with enough permissions may also remove the retention period for the Governance Mode Object Lock using AWS SDK or AWS CLI. +The Storj Console currently doesn't support this feature. + +{% partial file="override-governance-mode-callout.md" /%} + +{% tabs %} + +{% tab label="aws cli" %} + +```shell {% title="aws cli" %} +aws s3api put-object-retention \ + --bucket my-object-lock-bucket \ + --key my-file.txt \ + --version-id \ + --retention "{}" \ + --bypass-governance-retention \ + --endpoint-url https://gateway.storjshare.io +``` + +{% /tab %} + +{% /tabs %} \ No newline at end of file From 26188128ef191caa560020b9d4a8e434607b2e87 Mon Sep 17 00:00:00 2001 From: "Alexey A. Leonov" Date: Wed, 4 Dec 2024 11:21:58 +0700 Subject: [PATCH 4/4] fixed typo --- app/(docs)/dcs/objects/page.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/(docs)/dcs/objects/page.md b/app/(docs)/dcs/objects/page.md index cc83df137..ae15bbef5 100644 --- a/app/(docs)/dcs/objects/page.md +++ b/app/(docs)/dcs/objects/page.md @@ -175,7 +175,7 @@ aws s3api put-object-retention \ ### Extending Retention Period -Retention periods can only be extended, not reduced. Storj Console currently doesn't allow to remove it. +Retention periods can only be extended, not reduced. The Storj Console currently doesn't allow to remove it. {% tabs %} @@ -234,4 +234,4 @@ aws s3api put-object-retention \ {% /tab %} -{% /tabs %} \ No newline at end of file +{% /tabs %}