[Skip to main content](/content/docs/changelog/#__docusaurus_skipToContent_fallback/index.html)

May 29, 2026

May 29, 2026

## Bucket and object soft-deletes

Tigris now supports soft-deleting buckets and objects. Enabling the [Soft Delete](/content/docs/buckets/soft-delete/index.html) feature makes every delete recoverable for up to 90 days after a mistake is made.

### Features (2)

Buckets

#### Lifecycle rule filters

CLI

#### Automated bucket migration command

### Fixes (3)

Partner Portal

#### Partner Dashboard invitation flow improvements

Web Console

#### Large file uploads are more reliable in the console

Web Console

#### Better surface errors when free allowances are exceeded

Apr 28, 2026

Apr 28, 2026

## Agent Kit

We've released [Agent Kit](/content/docs/ai/agent-kit/index.html), a TypeScript library that packages storage workflows for AI agents on Tigris. Agent Kit bundles forks, workspaces, checkpoints, and coordination — four primitives that match how agent systems are built — into a single SDK on top of `@tigrisdata/storage` and`@tigrisdata/iam`.

[**Introducing Agent Kit**](/content/blog/agent-kit/index.html)

David Myriel•April 2026

A TypeScript library that packages storage workflows for AI agents — forks, workspaces, checkpoints, and coordination — into four primitives on top of @tigrisdata/storage and @tigrisdata/iam.

[Read the Blog](/content/blog/agent-kit/index.html)

**Installation**

```bash
npm install @tigrisdata/agent-kit
```

**Provision a per-agent workspace with scoped credentials**

```typescript
import { createWorkspace, teardownWorkspace } from "@tigrisdata/agent-kit";

const { data: workspace, error } = await createWorkspace("agent-run-abc", {

ttl: { days: 1 },

enableSnapshots: true,

credentials: { role: "Editor" },

});

if (error) throw error;

console.log(workspace.bucket);

console.log(workspace.credentials?.accessKeyId);

// When the agent run finishes

await teardownWorkspace(workspace);
```

**Fork a dataset N ways for parallel agents**

```typescript
import { createForks, teardownForks } from "@tigrisdata/agent-kit";

const { data: forkSet, error } = await createForks("training-data", 5, {

prefix: "eval-run-42",

credentials: { role: "Editor" },

});

for (const fork of forkSet.forks) {

console.log(fork.bucket); // eval-run-42-0, eval-run-42-1, ...

console.log(fork.credentials?.accessKeyId);

}

await teardownForks(forkSet);
```

Read the [Agent Kit documentation](/content/docs/ai/agent-kit/index.html) for the full API reference covering forks, workspaces, checkpoints, and coordination webhooks.

### Features (4)

SDK

#### Forks

SDK

#### Workspaces

SDK

#### Checkpoints

SDK

#### Coordination

Apr 16, 2026

Apr 16, 2026

## Agent Shell

[Agent Shell](/content/docs/ai/agent-shell/index.html) is a virtual bash environment with a persistent filesystem backed by Tigris object storage. Agents get a familiar shell interface — `cat`,`grep`, `sed`, `jq`, pipes, redirects — where every file operation is backed by a Tigris bucket.

Writes stay in-memory until you explicitly `flush()`, so a failed run never leaks partial state to storage. Built-in commands for`presign`, `snapshot`, and `fork`give agents direct access to Tigris primitives from the shell.

**Programmatic usage**

```bash
npm install @tigrisdata/agent-shell
```

```typescript
import { TigrisShell } from "@tigrisdata/agent-shell";

const shell = new TigrisShell({

accessKeyId: process.env.TIGRIS_STORAGE_ACCESS_KEY_ID,

secretAccessKey: process.env.TIGRIS_STORAGE_SECRET_ACCESS_KEY,

bucket: process.env.TIGRIS_STORAGE_BUCKET,

});

await shell.exec('echo "processing..." > status.txt');

await shell.exec("echo '{\"score\": 0.95}' > results.json");

await shell.exec("cat results.json | jq .score"); // "0.95\n"

// Snapshot before changes, then persist atomically

await shell.exec("snapshot my-bucket --name before-migration");

await shell.flush();
```

**Interactive shell**

```bash
npx @tigrisdata/agent-shell
```

Read the [Agent Shell documentation](/content/docs/ai/agent-shell/index.html) for the full storage model, multi-bucket mounting, and built-in commands.

### Features (3)

SDK

#### Standard bash, persisted to Tigris

SDK

#### Atomic write-back cache

SDK

#### Built-in Tigris commands

Apr 7, 2026

Apr 7, 2026

## Agent Plugins for Claude Code & Cursor

The new [Tigris agent plugins](/content/docs/ai/agent-plugins/index.html) give AI coding agents direct access to Tigris operations — managing buckets, objects, access keys, IAM policies, and migrations — without leaving your editor. The `tigris-storage` plugin is available in the [Claude Community Plugins](https://github.com/anthropics/claude-plugins-community) marketplace.

[**Tigris Agent Plugins for Claude Code & Cursor**](/content/blog/agent-plugins/index.html)

David Myriel•April 2026

AI coding agents get direct access to Tigris operations — managing buckets, objects, access keys, IAM policies, and migrations — without leaving Claude Code or Cursor.

[Read the Blog](/content/blog/agent-plugins/index.html)

**Install in Claude Code**

```bash
claude plugin marketplace add anthropics/claude-plugins-community

claude plugin install tigris-storage@claude-community
```

**Install in Cursor**

Navigate to **Settings > Rules > Add Rule > Remote Rule (GitHub)** and enter `tigrisdata/tigris-agents-plugins`.

See the [Agent Plugins documentation](/content/docs/ai/agent-plugins/index.html) for installation, prerequisites, and the full skill reference.

### Skills (6)

Plugin

#### tigris-authentication

Plugin

#### tigris-buckets

Plugin

#### tigris-objects

Plugin

#### tigris-access-keys

Plugin

#### tigris-iam

Plugin

#### tigris-storage-agent subagent

Mar 24, 2026

Mar 24, 2026

## Multi-region & Dual-region buckets

Buckets now support an explicit **location type** so you can pick the data placement, replication, availability, and consistency model that fits your workload.

[**Multi-Region & Dual-Region Buckets**](/content/blog/multi-region-dual-region-buckets/index.html)

David Myriel•March 2026

Pick the data placement, replication, availability, and consistency model that fits your workload with new Multi-region and Dual-region bucket location types.

[Read the Blog](/content/blog/multi-region-dual-region-buckets/index.html)

Tigris supports four location types:

- **Global** (default) — single copy distributed globally based on access patterns.
- **Multi-region** — highest availability across regions in a chosen geography (USA or EUR), with strong consistency globally. Tigris selects the underlying regions.
- **Dual-region** — explicit pairing of two regions you choose. High availability, eventual consistency across regions.
- **Single-region** — redundancy across availability zones in one region for the strictest data residency.

**Create a multi-region bucket via the CLI**

```bash
# Multi-region in the USA geography

tigris buckets create my-bucket --location-type multi-region --geography USA

# Dual-region pairing two specific regions

tigris buckets create my-bucket --location-type dual-region --regions iad,ord

# Single-region for strict data residency

tigris buckets create my-bucket --location-type single-region --region fra
```

**Create a multi-region bucket via the JS/TS SDK**

```typescript
import { createBucket } from "@tigrisdata/storage";

const { data, error } = await createBucket("my-bucket", {

locationType: "multi-region",

geography: "USA",

});
```

See [Bucket Locations](/content/docs/buckets/locations/index.html) for the decision guide, consistency models, region pairings, and cost considerations across all four location types.

### Features (3)

Buckets

#### Multi-region buckets

Buckets

#### Dual-region buckets

API

#### Location type at bucket creation

Mar 11, 2026

Mar 11, 2026

## Partner Integration API

We've launched the [Partner Integration API](/content/blog/partner-integration-api/index.html), enabling partners to programmatically manage Tigris resources on behalf of their customers. This includes a new Partner Portal UI for managing integrations, along with org lookup and usage views.

[**Partner Integration API**](/content/blog/partner-integration-api/index.html)

March 2026

Programmatically manage Tigris resources on behalf of your customers with the new Partner Integration API and Partner Portal.

[Read the Blog](/content/blog/partner-integration-api/index.html)

### Features (7)

Web Console

#### Bucket prefix search

Web Console

#### Multi-region selection

Web Console

#### Custom timestamp snapshots view

CLI

#### Presigned URL support

CLI

#### IAM policy management

CLI

#### IAM user management

Terraform

#### Terraform provider updates

Feb 10, 2026

Feb 10, 2026

## Tigris CLI

We've released the [Tigris CLI](https://www.npmjs.com/package/@tigrisdata/cli), a new command-line interface for managing your Tigris object storage buckets directly from the terminal. Commands follow UNIX conventions and are designed to be intuitive for both humans and AI assistants.

[**Introducing the Tigris CLI**](/content/blog/tigris-cli/index.html)

Abdullah Ibrahim & Xe Iaso•February 2026

A new command-line interface for Tigris object storage, following UNIX conventions with commands like ls, cp, rm, and mk.

[Read the Blog](/content/blog/tigris-cli/index.html)

**Installation**

```bash
npm install -g @tigrisdata/cli
```

**Getting started**

```bash
# Log in to your Tigris account

tigris login

# List your buckets

tigris ls

# Copy files to and from Tigris

tigris cp ./local-file.txt t3://my-bucket/file.txt

tigris cp t3://my-bucket/file.txt ./local-file.txt

# Recursively copy a directory

tigris cp -r ./local-dir/ t3://my-bucket/my-path/
```

### Features (3)

CLI

#### UNIX-style commands

CLI

#### t3:// URL scheme

CLI

#### Cross-platform support

Feb 3, 2026

Feb 3, 2026

## Go SDK

We've released an official Go SDK for Tigris: [storage-go](https://github.com/tigrisdata/storage-go). It provides a Go-native interface for interacting with Tigris object storage, focusing on developer ergonomics and intent over wire protocol details.

[**Deriving the Tigris Go SDK**](/content/blog/storage-go-announcement/index.html)

Xe Iaso•February 2026

An official Go SDK for Tigris with two packages: a drop-in AWS S3 wrapper with Tigris-specific features, and a higher-level simplestorage interface.

[Read the Blog](/content/blog/storage-go-announcement/index.html)

**Installation**

```bash
go get github.com/tigrisdata/storage-go@latest
```

The SDK includes two packages for different use cases:

**storage package** — An unopinionated wrapper around the AWS S3 client that maintains compatibility with existing code while exposing Tigris-specific features like [snapshots](/content/docs/objects/bucket-snapshots/index.html) and [bucket forking](/content/docs/objects/bucket-forking/index.html):

```go
tigris, err := storage.New(ctx)

if err != nil {

log.Fatal(err)

}

result, err := tigris.ListBucketSnapshots(ctx, "my-bucket")
```

**simplestorage package** — A higher-level, opinionated interface that treats Buckets, Keys, and Objects as first-class concepts:

```go
tigris, err := simplestorage.New(ctx)

if err != nil {

log.Fatal(err)

}

result, err := tigris.Put(ctx, &simplestorage.Object{

Key:         "file.txt",

ContentType: "text/plain",

Size:        st.Size(),

Body:        fin,

})
```

The `simplestorage` package reads the default bucket from the `TIGRIS_STORAGE_BUCKET` environment variable, mirroring the approach used by the JavaScript SDK.

### Features (2)

SDK

#### AWS S3 compatible wrapper

SDK

#### Higher-level simplestorage interface

Jan 13, 2026

Jan 13, 2026

## MCP OIDC Provider & llms.txt Support

We've released the **mcp-oidc-provider** package and added llms.txt support to make Tigris more agent-friendly.

**mcp-oidc-provider Package**

A new [mcp-oidc-provider](https://www.npmjs.com/package/mcp-oidc-provider) package is now available on npm. This package provides OIDC authentication for MCP (Model Context Protocol) servers, making it easier to build secure, OAuth-enabled MCP integrations. Read more in the [announcement blog post](/content/blog/mcp-oidc-provider/index.html).

**llms.txt Support**

Tigris documentation now supports [llms.txt](/content/llms.txt), making it easier for AI agents to find and use our documentation. You can add this to your agent configuration files (like `AGENTS.md` or`CLAUDE.md`):

```markdown
## Helpful Documentation

When asked about various services or tools, use these resources to help you:

- **Tigris** or **Tigris Data**: https://www.tigrisdata.com/docs/llms.txt or https://www.tigrisdata.com/llms.txt
```

### Features (2)

Web Console

#### Console downloads

API

#### Partner API lifecycle rule support

Dec 1, 2025

Dec 1, 2025

## Hosted MCP Server

We've made it easier to integrate Tigris into your AI workflows by removing the most complicated part of getting started with the MCP server: installing it. Our hosted MCP server at [mcp.storage.dev](https://mcp.storage.dev/) lets you integrate Tigris into your ChatGPT, Claude, and agentic coding workflows in a snap.

**Why it matters**

- No installation required — always have access to the most recent version of the MCP server
- OAuth authentication — no need to load API keys into your agent's configuration, reducing the attack surface. [Learn how we implemented OAuth with a man-in-the-middle pattern.](/content/blog/mcp-oauth/index.html)
- Multi-organization support — access buckets across all your organizations from a single connection
- Works everywhere — integrate with ChatGPT web, Claude Desktop, Claude Code, Cursor, OpenAI Codex, and VS Code

Get started at [mcp.storage.dev](https://mcp.storage.dev/) and connect Tigris to your AI agents today.

[**Tigris' MCP Server Goes Global**](/content/blog/hosted-mcp/index.html)

Tigris Engineering•December 2025

We've made it easier to integrate Tigris into your AI workflows by removing the most complicated part of getting started with the MCP server: installing it.

[Read the Blog](/content/blog/hosted-mcp/index.html)

### Features (2)

Security

#### OAuth authentication flow

MCP

#### Multi-organization access

Nov 15, 2025

Nov 15, 2025

## Bucket Snapshots

Tigris now lets you take point-in-time snapshots of your data so that you can undelete critical files, make backups of your backups, and create the base state for bucket forks. Snapshots capture the state of a bucket as it exists at a single point in time so that you can get data back later if you need to.

**Why it matters**

To err is human; to plan for that and give you a way out is Tigris. We want to make it easy for you to undo mistakes, make auditable backups of your backups, and [fork your data](/content/blog/dataset-experimentation/index.html) to enable new and exciting ways to use object storage.

You can also do this from the [Tigris SDK for JavaScript and TypeScript](/content/docs/sdks/tigris/index.html):

```javascript
import { createBucketSnapshot } from "@tigrisdata/storage";

const { data, error } = await createBucketSnapshot();

if (error) {

console.error('Error creating snapshot:', error);

} else {

console.log('Snapshot created:', data);

// output: { snapshotVersion: "1751631910169675092" }

}
```

The cloud's the limit!

### Features (2)

#### New onboarding flow at storage.new

#### New bucket creation flow

Oct 17, 2025

Oct 17, 2025

## Bucket Forking

Tigris now supports snapshots and forks for versioning and isolating your data. Snapshots let you capture the exact state of a bucket at a specific moment in time. Forks let you clone a snapshot instantly using copy-on-write.

**Why it matters**

- Isolated environments for safer experimentation
- Built-in version control and reproducibility
- Reliable A/B testing and multi-model training
- Agent-friendly sandboxing

**Example: Create a Snapshot Enabled Bucket and Fork It**

- Python
- TypeScript

```python
from tigris_boto3_ext import (

create_snapshot_bucket,

create_snapshot,

get_snapshot_version,

create_fork,

)

# Create a bucket

create_snapshot_bucket(s3, "my-bucket")

# Create snapshot

result = create_snapshot(s3_client, "my-bucket", snapshot_name='snappy-1')

snapshot_version = get_snapshot_version(result)

# Create a fork from the snapshot

create_fork(s3_client, "my-forked-bucket", "my-bucket", snapshot_version=snapshot_version)
```

```typescript
import { createBucket, createBucketSnapshot, listBucketSnapshots } from "@tigrisdata/storage";

// Create a bucket

const bucketResult = await createBucket("my-bucket", {

enableSnapshot: true,

});

if (bucketResult.error) {

console.error('Error creating seed bucket:', bucketResult.error);

return;

}

// We'll omit the error handling from now on for brevity, but you should check for errors!

// Create snapshot

const snapshotResult = await createSnapshot("my-bucket", { snapshotName: "snappy-1" });

const snapshotVersion = getSnapshotVersion(snapshotResult);

// Create a fork from the snapshot

const forkResult = await createBucket("my-forked-bucket", {

sourceBucketName: "my-bucket"",

sourceBucketSnapshot: snapshotVersion,

});
```

Learn more: [snapshots and forks documentation](/content/docs/buckets/snapshots-and-forks/index.html).

[**Fork Buckets Like Code**](/content/blog/fork-buckets-like-code/index.html)

Tigris Engineering•October 17, 2025

Learn how to fork buckets like code in the Tigris web console.

[Read the Blog](/content/blog/fork-buckets-like-code/index.html)

Sep 17, 2025

Sep 17, 2025

## Tigris JS/TS SDK

A new JavaScript/TypeScript SDK for managing Tigris buckets and objects.

Manage your Tigris buckets and objects right from your JS/TS apps with the new `@tigrisdata/storage` SDK.

```bash
npm install @tigrisdata/storage
```

**Highlights**

- Full CRUD for objects — put, get, list, and remove made simple.
- Bucket management — create, list, and delete buckets programmatically.
- Browser uploads — upload files with built-in progress tracking.

**Example:**

```typescript
import { put, get } from "@tigrisdata/storage";

await put("object.txt", "Hello, world!");

const file = await get("object.txt", "string");
```

**Frontend upload example:**

```typescript
import { upload } from "@tigrisdata/storage/client";
```

Read more about Tigris JS/TS SDK in the [docs](/content/docs/sdks/tigris/using-sdk/index.html).

[**Announcing the Tigris Storage SDK**](/content/blog/storage-sdk/index.html)

Tigris Engineering•October 2025

Introducing the Tigris Storage SDK for JavaScript and TypeScript, a simplified alternative to AWS S3 SDK for object storage operations.

[Read the Blog](/content/blog/storage-sdk/index.html)

### UI Improvements (3)

Web Console

#### Bucket Settings now organized into tabs

Web Console

#### Billing invoices now available

Web Console

#### Custom Domains interface updated

### Backend Updates (1)

API

#### Custom domain support for t3.storage.dev

Aug 15, 2025

Aug 15, 2025

## Org admins can enforce two-factor auth under organization settings

Administrators can configure organizations to require two-factor authentication. In order to use this, you must be using a native Tigris organization, not one created with fly.io.

### Fixes (1)

IAM

#### IAM policies are now required to have valid S3 actions

Previously you were able to put any S3 or IAM action into policy documents. Tigris now enforces that these be one of the [supported policy actions](/content/docs/iam/policies/index.html).

### Improvements (3)

Web Console

#### Access key flows have been updated

Web Console

#### IAM Policies can now be directly attached to keys

Web Console

#### Each bucket has a breakdown of how much data is stored in each storage tier

Jul 15, 2025

Jul 15, 2025

## Benchmarks

We've been hearing from a lot of teams using Tigris for low-latency workloads consisting of billions of tiny files--think logs, AI feature payloads, or metadata. We published a benchmark comparing Tigris to AWS S3 and Cloudflare R2 using a mixed workload of 10 million 1 KB objects, 80% reads and 20% writes.

The results are compelling:

- Tigris is 86.6x faster than R2 and 5.3x faster than S3 at the 90th percentile for read latency.
- Throughput under mixed workloads is 4x higher than S3 and 20x higher than R2.
- Writes are consistently low-latency, with P90 latencies under 17 ms.

These gains come from architectural choices designed specifically for small-object performance: inline storage for tiny objects, log-structured caching, and coalesced key layouts that reduce IOPS pressure at scale.

[**Tigris Benchmark: 86× Faster Than R2 for Small Objects**](/content/blog/benchmark-small-objects/index.html)

Tigris Engineering•July 2025

Deep dive into how Tigris achieves sub-10ms read latencies and key-value store-like throughput for small object workloads. Includes detailed methodology, results, and instructions to reproduce the benchmarks yourself.

[Read the Benchmarks](/content/blog/benchmark-small-objects/index.html)

### Improvements (4)

IAM

#### IAM Policy Builder

Wanted to build your own IAM policies but didn't know where to start? Use the new IAM policy builder to make your own policies from scratch.

Presigned URLs

#### Presigned Multipart Uploads

Web Console

#### Delete Protection

Web Console

#### User Invites to Tigris Organizations

Jun 15, 2025

Jun 15, 2025

## TigrisFS

We built TigrisFS to simplify AI data handling. If you’re working on training, inference, or pipelines, you shouldn’t have to wrestle with NFS, blobfuse, or layers of complexity just to get your storage working.

TigrisFS gives you familiar file APIs with the scale, performance, and reliability of object storage:

- No complex intermediate layers
- Use the S3 API or the Filesystem interface interchangeably
- Run globally, co-located with compute (CoreWeave, Together, Lambda, etc.)

Just mount your bucket and work with your data like it's stored locally.

[**TigrisFS**](/content/blog/tigrisfs/index.html)

Tigris Engineering•June 2025

We've open-sourced TigrisFS — our native filesystem that makes global data from anywhere in the world instantly accessible– from your local file system.

[Read the Blog](/content/blog/tigrisfs/index.html)

### Improvements (1)

Web Console

#### Object file upload experience

May 15, 2025

May 15, 2025

## Native Sign-up

You can now sign in to Tigris with Google, GitHub, or an email and password. Accounts and billing can be managed directly within Tigris, without relying on an external provider.

- **User invitations:** Added support for inviting users to join organizations through a new invitation flow.
- **Organization management:** Members can now be managed directly under _Settings_.
- **Billing updates:**
  - Stripe _Make a Payment_ option added under the Usage section
  - Invoices view added
  - Native billing management now available under _Settings_
- **Membership management:** Added ability to manage user membership to organizations directly within Tigris.

[**Native Sign-up**](https://console.storage.dev/?pid=019f7241-aeef-75f4-ad0d-7b678635b31b&sid=019f7241-aef3-74a4-947a-21b8c244c882)

Tigris Engineering•May 2025

Sign in to Tigris natively using your email and password, Google, or GitHub.

[Sign-up](https://console.storage.dev/?pid=019f7241-aeef-75f4-ad0d-7b678635b31b&sid=019f7241-aef3-74a4-947a-21b8c244c882)

### Improvements (2)

API

#### Rename objects in place

Presigned URLs

#### Presigned URLs maximum expiration time is 90 days

Apr 15, 2025

Apr 15, 2025

## Object Lifecycle Rules

Configure object lifecycle rules on your bucket settings, and Tigris will automatically move data from the standard tier to an archive or infrequent access tier. Or, set an expiration rule to automatically delete data after a certain period of time.

We also added a new storage tier: Archive with instant retrieval. This is a low-cost storage tier for data that is accessed very infrequently but needs to be available quickly when needed. This is ideal for data that is needed for compliance or archival purposes but rarely accessed.

[**Object Lifecycle Rules**](/content/blog/lifecycle-rules/index.html)

Tigris Engineering•April 2025

Automatically move data between storage tiers.

[Read the Blog](/content/blog/lifecycle-rules/index.html)

Apr 15, 2025

Apr 15, 2025

## Bucket sharing

You can share your buckets with a single button in the admin console. This lets you bypass all of the IAM cruft and just give access with ease. We're surprised that adding a share button is a meaningful developer experience than juggling those IAM policies around, but we're happy to simplify your workflow.

[**Bucket Sharing**](/content/blog/bucket-sharing/index.html)

Tigris Engineering•April 2025

Share your buckets with a single button in the admin console.

[Read the Blog](/content/blog/bucket-sharing/index.html)

### Improvements (4)

Web Console

#### Multiple files can be uploaded at once in the admin console

Web Console

#### Multiple files can be selected and deleted

API

#### Faster API endpoint

If your app is deployed outside of [Fly.io](https://fly.io/), we've launched a new high-performance endpoint just for you:`https://t3.storage.dev`. No access key changes required, it's got the same data you're used to, it's just much faster.

API

#### Any bucket can use any custom domain name

Mar 15, 2025

Mar 15, 2025

## MCP server

We have an MCP server! This lets your editor tap into Tigris so that you can manage your buckets in natural language.

[**The Tigris MCP Server**](/content/blog/mcp-server/index.html)

Tigris Engineering•March 2025

Use your AI editor to manage your buckets in natural language.

[Read the Blog](/content/blog/mcp-server/index.html)

### Improvements (1)

API

#### Buckets can be created in strict consistency mode

Feb 15, 2025

Feb 15, 2025

## Partner Integration API

Our [Partner Integration Program](/content/docs/partner-integrations/index.html) lets you offer Tigris as a storage service to your customers. We've published details about the API in the [Partner Integrations API reference guide](/content/docs/partner-integrations/api/index.html). This lets you handle billing, invoice management, and usage tracking for many tenants.

### Fixes (1)

API

#### Disallow public path access

### Improvements (2)

API

#### Bucket creation validation and error handling

Web Console

#### Object region information is now visible in the admin console
