Predictika · Cloud storage setup orders

An AI sales agent's Backblaze B2 bucket setup order, checked before it goes out

An AI sales agent prepares a setup order for Backblaze B2 Cloud Storage: the bucket and its name, Object Lock, replication to another bucket, a lifecycle rule, how the largest files are uploaded, and the monthly egress. Before it goes out, the agent sends it to Predictika, which checks it against a declarative model of Backblaze's published B2 documentation and returns a verdict and every reason.

Scope: Backblaze B2 Cloud Storage bucket setup: bucket names, Object Lock, Cloud Replication, lifecycle rules, file upload limits and egress allowance. See everything this validator covers

This validator models bucket setup orders for Backblaze B2 Cloud Storage using the rules in the Backblaze documentation, not just the scenarios shown below.

  • Bucket names and limits — the B2 Native API and S3-Compatible API naming rules (length, characters, periods, IP-address form, the reserved b2- prefix) and the 100 buckets per account limit.
  • Object Lock and Cloud Replication — Object Lock on shared buckets, default retention (1 to 3,000 days), at most two replication rules per bucket, no replication chaining, no master key, no SSE-C, the destination bucket needing Object Lock when the source has it, one account per region, and the email and payment prerequisites.
  • Lifecycle rules, uploads and egress — up to 100 lifecycle rules, day counts that must be positive, a 5 GB single-upload limit, large files of 5 MB to 10 TB in parts of 5 MB to 5 GB with at least two parts, and the free egress allowance of 3 times the data stored.
  • Sent to a person — where the documentation recommends or warns rather than forbids (periods in names used with S3, a lifecycle rule on every file, replication above 50 TB, egress above the free allowance), the order goes to a person to confirm.

Any bucket setup order for B2 Cloud Storage that touches these rules is in scope — not only the scenarios pictured here. Not covered: storage prices (the public rate is shown per TB with a 10 GB free tier, so this validator produces no price build-up or itemized list), Computer Backup and Backblaze B2 Overdrive or Reserve, event notifications, CORS, application key permissions, and Veeam or other integrations.

The AI sales agentBuilds the bucket setup order from the conversation and says it is ready.
Predictika validatorChecks every rule at once and returns the verdict, each finding, and the computed figures.

7 scenarios in 3 groups · each group runs from the agent’s first attempt to the outcome · click one to switch

What the agent proposes

The AI sales agent says

Illustrative agent statement. The validator receives the structured request below.

Proposing agent: AI sales agent (scripted)

Before sending, the agent must call Recorded run

Predictika validator


      
Waiting for the call.

Where rules-based CPQ gets it wrong

Click to expand

Our assessment of what a typical rules-based CPQ (product rules, price rules and validation rules, as in Salesforce CPQ) does with the same cases. It is a judgment about effort and reliability, not a claim that nothing can be built.

What the validator caughtTypical rules-based CPQPredictika
Bucket names that follow different rules per APIOnly with care
The length and character rules differ between the B2 Native API and the S3-Compatible API, so each combination needs its own validation rule and name check, kept in step with the documentation.
The API in use and the name properties are in one request and every naming rule is checked on every call.
Settings that depend on each other across buckets and accountsOnly with workarounds
A replication destination needing Object Lock when the source has it, or an account being tied to one region, spans two buckets or two accounts, which a single order record does not hold.
Both sides of the replication are part of one request and are checked together.
Requirements versus recommendationsOnly with workarounds
Errors and warnings are usually one level; sending the recommended items to a person while blocking the required ones takes extra rule types and approval wiring.
Blocks and items for a person come back together, each with its reason.
Every problem returned in one answerOnly with workarounds
Rules tend to fire as the order is saved or a step is completed, so a rep often fixes one error and meets the next.
All findings come back together, whatever order the choices arrived in.

What this validator catches: findings from its test cases

Click to expand

Every rule is checked on every call, in any order the choices arrive; one problem never hides another. Blocking findings stop the order; approval findings need a person to sign off; everything else is computed.

1The bucket name is 5 characters long; Backblaze requires 6 to 63 characters for the B2 Native API and 3 to 63 characters for the S3-Compatible API.
2The bucket name is 64 characters long; Backblaze requires 6 to 63 characters for the B2 Native API and 3 to 63 characters for the S3-Compatible API.
3The bucket name is 2 characters long; Backblaze requires 6 to 63 characters for the B2 Native API and 3 to 63 characters for the S3-Compatible API.
4The bucket name is 3 characters long; Backblaze requires 6 to 63 characters for the B2 Native API and 3 to 63 characters for the S3-Compatible API.
5The bucket name contains an underscore; Backblaze says the underscore is not valid in a bucket name.
6The bucket name begins or ends with a period; Backblaze says it must not.
7The bucket name contains two adjacent periods; Backblaze says it must not.
8The bucket name is formatted as an IP address; Backblaze says it must not be.
9The bucket name starts with b2-; Backblaze reserves that prefix for its own use.
10The bucket name has upper-case letters but the bucket is used through the S3-Compatible API, which allows only lowercase letters, numbers, periods and hyphens.
11The bucket name begins or ends with a hyphen but the bucket is used through the S3-Compatible API, which requires names to begin and end with a letter or number.
12The bucket name contains periods; Backblaze recommends avoiding them because such buckets cannot use virtual-hosted-style addressing over HTTPS with the S3-Compatible API; a person should confirm.
13The account already has 100 buckets; the limit is 100 buckets per account.
14Object Lock is requested on a shared bucket; Backblaze says Object Lock cannot be enabled on a restricted bucket such as a shared bucket or snapshot.
15Default bucket retention is requested but Object Lock is not enabled; Backblaze says Object Lock must be enabled when the bucket is created to set default retention.
16The default retention period is 3001 days; Object Lock supports 1 to 3,000 days.
17The default retention period is 0 days; Object Lock supports 1 to 3,000 days.
18The source bucket would have 3 replication rules; Backblaze allows only two rules per bucket.
19The destination bucket is in another region but in the same account; a Backblaze account is tied to one region, so replicating to another region needs a separate account.
20The source bucket is itself a replication destination; Backblaze says replication chaining is not possible because replica files cannot be replicated again.
21The replication rule uses the master application key; Backblaze says a master key cannot be used for Cloud Replication.
22The bucket uses customer-managed SSE-C encryption; Backblaze says SSE-C is not supported with Cloud Replication.
23Object Lock is on for the source bucket but not for the destination bucket; Backblaze says the destination must also have Object Lock or replication fails.
24The first replication rule needs a verified email address and a payment history on file; one of them is missing.
25The data to replicate to another region is 60 TB; Backblaze says to contact Sales for assistance above 50 TB; a person should confirm.
26The bucket would have 101 lifecycle rules; Backblaze allows up to 100 per bucket.
27A lifecycle rule day count is zero; Backblaze says the day counts cannot be zero and must be positive when set.
28The lifecycle rule sets no day counts; Backblaze says the optional values cannot all be null because the rule would do nothing.
29The lifecycle rule has an empty file name prefix, so it applies to every file in the bucket; Backblaze warns that such a rule can delete all of the files; a person should confirm.
30The largest file is 6 GB but it is uploaded as a single file; Backblaze limits a single upload to 5 GB, and larger files must be uploaded as large files.
31The largest file is 12000 GB; Backblaze large files can be up to 10 TB.
32The large file part size is 4 MB; Backblaze allows parts from 5 MB to 5 GB.
33The large file part size is 6000 MB; Backblaze allows parts from 5 MB to 5 GB.
34The large file has 1 part; Backblaze says each large file must consist of at least two parts.
35The order states a free egress allowance of 10 TB a month; Backblaze gives free egress up to 3 times the average monthly data stored, which is 30 TB.
36The planned egress is 45 TB a month, above the free allowance of 30 TB; Backblaze bills egress above 3 times the average monthly storage at 0.01 dollars per GB unless it goes through a partner CDN; a person should confirm.
37The bucket name is 4 characters long; Backblaze requires 6 to 63 characters for the B2 Native API and 3 to 63 characters for the S3-Compatible API.
38The largest file is 9 GB but it is uploaded as a single file; Backblaze limits a single upload to 5 GB, and larger files must be uploaded as large files.

Scenarios and results

Click to expand

The recorded result of the validator for each scenario on this page: the request the AI agent sent, the verdict, and every finding, in the order they appear above.

1. Bucket name: A new S3-Compatible bucket for a backup application

The agent's request. Please set up a new Backblaze B2 bucket, used through the S3-Compatible API, whose name is 9 characters long with upper-case letters and an underscore, periods inside. The account already has 42 buckets. The largest file is 1 GB, uploaded through the web console. The account stores 20 TB and downloads 40 TB a month directly. The order states a free egress allowance of 60 TB a month. It is ready to send.

Verdict: Blocked.

  • Underscore in the bucket name. The bucket name contains an underscore; Backblaze says the underscore is not valid in a bucket name.
  • Upper-case letters with the S3-Compatible API. The bucket name has upper-case letters but the bucket is used through the S3-Compatible API, which allows only lowercase letters, numbers, periods and hyphens.
  • Periods in a bucket name used with the S3-Compatible API. The bucket name contains periods; Backblaze recommends avoiding them because such buckets cannot use virtual-hosted-style addressing over HTTPS with the S3-Compatible API; a person should confirm.

2. Bucket name: The agent resubmits after fixing the errors

The agent's request. Please set up a new Backblaze B2 bucket, used through the S3-Compatible API, whose name is 9 characters long in lowercase. The account already has 42 buckets. The largest file is 1 GB, uploaded through the web console. The account stores 20 TB and downloads 40 TB a month directly. The order states a free egress allowance of 60 TB a month. It is ready to send.

Verdict: Allowed.

  • Order summary. 20 TB stored; free egress allowance 60 TB a month; largest file 1 GB.

3. Replication: An Object Lock bucket replicated to another region

The agent's request. Please set up a new Backblaze B2 bucket, used through the B2 Native API, whose name is 18 characters long in lowercase. The account already has 12 buckets. Object Lock is turned on with a default retention of 365 days. The bucket is the source of 1 replication rule to a bucket in another region, in the same account, using the master key; Object Lock is off on the destination bucket. The largest file is 1 GB, uploaded through the web console. The account stores 35 TB and downloads 50 TB a month directly. The order states a free egress allowance of 105 TB a month. It is ready to send.

Verdict: Blocked.

  • Cross-region replication into the same account. The destination bucket is in another region but in the same account; a Backblaze account is tied to one region, so replicating to another region needs a separate account.
  • Master key used for replication. The replication rule uses the master application key; Backblaze says a master key cannot be used for Cloud Replication.
  • Object Lock on the source but not the destination. Object Lock is on for the source bucket but not for the destination bucket; Backblaze says the destination must also have Object Lock or replication fails.

4. Replication: The agent resubmits after fixing the errors

The agent's request. Please set up a new Backblaze B2 bucket, used through the B2 Native API, whose name is 18 characters long in lowercase. The account already has 12 buckets. Object Lock is turned on with a default retention of 365 days. The bucket is the source of 1 replication rule to a bucket in another region, in a different account, using an application key; Object Lock is off on the destination bucket. The largest file is 1 GB, uploaded through the web console. The account stores 35 TB and downloads 50 TB a month directly. The order states a free egress allowance of 105 TB a month. It is ready to send.

Verdict: Blocked.

  • Object Lock on the source but not the destination. Object Lock is on for the source bucket but not for the destination bucket; Backblaze says the destination must also have Object Lock or replication fails.

5. Replication: The agent resubmits after fixing the errors

The agent's request. Please set up a new Backblaze B2 bucket, used through the B2 Native API, whose name is 18 characters long in lowercase. The account already has 12 buckets. Object Lock is turned on with a default retention of 365 days. The bucket is the source of 1 replication rule to a bucket in another region, in a different account, using an application key; Object Lock is on on the destination bucket. The largest file is 1 GB, uploaded through the web console. The account stores 35 TB and downloads 50 TB a month directly. The order states a free egress allowance of 105 TB a month. It is ready to send.

Verdict: Allowed.

  • Order summary. 35 TB stored; free egress allowance 105 TB a month; largest file 1 GB.

6. Uploads and lifecycle: A 40 GB archive upload with a lifecycle rule

The agent's request. Please set up a new Backblaze B2 bucket, used through the B2 Native API, whose name is 14 characters long in lowercase. The account already has 30 buckets. A lifecycle rule on every file in the bucket will hide files after 0 days and delete hidden files after 30 days. The largest file is 40 GB, uploaded as a single file. The account stores 8 TB and downloads 10 TB a month directly. The order states a free egress allowance of 24 TB a month. It is ready to send.

Verdict: Blocked.

  • Lifecycle day count of zero. A lifecycle rule day count is zero; Backblaze says the day counts cannot be zero and must be positive when set.
  • File over 5 GB uploaded as a single file. The largest file is 40 GB but it is uploaded as a single file; Backblaze limits a single upload to 5 GB, and larger files must be uploaded as large files.
  • Lifecycle rule on every file in the bucket. The lifecycle rule has an empty file name prefix, so it applies to every file in the bucket; Backblaze warns that such a rule can delete all of the files; a person should confirm.

7. Uploads and lifecycle: The agent resubmits after fixing the errors

The agent's request. Please set up a new Backblaze B2 bucket, used through the B2 Native API, whose name is 14 characters long in lowercase. The account already has 30 buckets. A lifecycle rule on the backup/ prefix will delete hidden files after 30 days. The largest file is 40 GB, uploaded as a large file of 80 parts of 512 MB. The account stores 8 TB and downloads 10 TB a month directly. The order states a free egress allowance of 24 TB a month. It is ready to send.

Verdict: Allowed.

  • Order summary. 8 TB stored; free egress allowance 24 TB a month; largest file 40 GB.

Narration transcript

Click to expand

The text of the narrated walkthrough, step by step.

  1. Welcome to a demo of Predictika's Validator. An AI sales agent prepares a setup order for Backblaze B2 Cloud Storage: the bucket and its name, Object Lock, replication to another bucket, and more. Before it goes out, the agent sends it to Predictika, which checks it against a declarative model of Backblaze's published B2 documentation and returns a verdict and every reason.
  2. I will start with the first request by the agent.
  3. The agent says. Please set up a new Backblaze B2 bucket, used through the S3-Compatible API, whose name is 9 characters long with upper-case letters and an underscore, periods inside. The account already has 42 buckets. The rest of the request is on screen. The order states a free egress allowance of 60 TB a month.
  4. Before it goes out, the agent calls the validator.
  5. Blocked, with two findings and one approval, all in one answer. The bucket name contains an underscore; Backblaze says the underscore is not valid in a bucket name. The bucket name has upper-case letters but the bucket is used through the S3-Compatible API, which allows only lowercase letters, numbers, periods and hyphens.
  6. The validator returned two blocking findings and one approval in one answer. A check that reads one field at a time would pass most of this; it shows only when the choices in the order are checked against each other.
  7. What this shows: for bucket names that follow different rules per API, a rules-based CPQ is error-prone for this.
  8. Now the agent resubmits.
  9. The corrected request. It changes the name case to lowercase only, the underscore in name to no and the periods in name to none.
  10. It calls the validator again.
  11. This time the validator clears it.
  12. All three earlier findings are cleared, and the validator's figure matches the order.
  13. Three problems caught in one call, fixed in one pass, and a clean order. That is the value of Predictika's validator: catching mistakes before they reach the customer. Now you can try the other scenarios yourself.