Skip to content
Start here

Update catalog maintenance configuration

client.r2DataCatalog.maintenanceConfigs.update(stringbucketName, MaintenanceConfigUpdateParams { account_id, compaction, snapshot_expiration } params, RequestOptionsoptions?): MaintenanceConfigUpdateResponse { compaction, snapshot_expiration }
POST/accounts/{account_id}/r2-catalog/{bucket_name}/maintenance-configs

Update the maintenance configuration for a catalog. This allows you to enable or disable compaction and adjust target file sizes for optimization.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Workers R2 Data Catalog Write
ParametersExpand Collapse
bucketName: string

Specifies the R2 bucket name.

maxLength63
minLength3
params: MaintenanceConfigUpdateParams { account_id, compaction, snapshot_expiration }
account_id: string

Path param: Use this to identify the account.

compaction?: Compaction

Body param: Updates compaction configuration (all fields optional).

state?: "enabled" | "disabled"

Updates the state optionally.

One of the following:
"enabled"
"disabled"
target_size_mb?: "64" | "128" | "256" | "512"

Updates the target file size optionally.

One of the following:
"64"
"128"
"256"
"512"
snapshot_expiration?: SnapshotExpiration

Body param: Updates snapshot expiration configuration (all fields optional).

max_snapshot_age?: string

Updates the maximum age for snapshots optionally.

min_snapshots_to_keep?: number

Updates the minimum number of snapshots to retain optionally.

formatint64
minimum1
state?: "enabled" | "disabled"

Updates the state optionally.

One of the following:
"enabled"
"disabled"
ReturnsExpand Collapse
MaintenanceConfigUpdateResponse { compaction, snapshot_expiration }

Configures maintenance for the catalog.

compaction?: Compaction { state, target_size_mb }

Configures compaction for catalog maintenance.

state: "enabled" | "disabled"

Specifies the state of maintenance operations.

One of the following:
"enabled"
"disabled"
target_size_mb: "64" | "128" | "256" | "512"

Sets the target file size for compaction in megabytes. Defaults to "128".

One of the following:
"64"
"128"
"256"
"512"
snapshot_expiration?: SnapshotExpiration { max_snapshot_age, min_snapshots_to_keep, state }

Configures snapshot expiration settings.

max_snapshot_age: string

Specifies the maximum age for snapshots. The system deletes snapshots older than this age. Format: where unit is d (days), h (hours), m (minutes), or s (seconds). Examples: "7d" (7 days), "48h" (48 hours), "2880m" (2,880 minutes). Defaults to "7d".

min_snapshots_to_keep: number

Specifies the minimum number of snapshots to retain. Defaults to 100.

formatint64
minimum1
state: "enabled" | "disabled"

Specifies the state of maintenance operations.

One of the following:
"enabled"
"disabled"

Update catalog maintenance configuration

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const maintenanceConfig = await client.r2DataCatalog.maintenanceConfigs.update('my-data-bucket', {
  account_id: '0123456789abcdef0123456789abcdef',
  compaction: { state: 'enabled', target_size_mb: '256' },
  snapshot_expiration: {
    max_snapshot_age: '14d',
    min_snapshots_to_keep: 5,
    state: 'enabled',
  },
});

console.log(maintenanceConfig.compaction);
{
  "errors": [],
  "messages": [],
  "result": {
    "compaction": {
      "state": "enabled",
      "target_size_mb": "256"
    },
    "snapshot_expiration": {
      "max_snapshot_age": "14d",
      "min_snapshots_to_keep": 5,
      "state": "enabled"
    }
  },
  "success": true
}
Returns Examples
{
  "errors": [],
  "messages": [],
  "result": {
    "compaction": {
      "state": "enabled",
      "target_size_mb": "256"
    },
    "snapshot_expiration": {
      "max_snapshot_age": "14d",
      "min_snapshots_to_keep": 5,
      "state": "enabled"
    }
  },
  "success": true
}