API reference

Databases

Browse and edit DynamoDB tables: items, indexes, metrics and settings.
GET/v1/orgs/:orgId/databases

The org's databases with live status, item count and size from DynamoDB.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Errors

  • 404Table not found
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/databases' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  databases: {
    table: {
      status: string
      itemCount: number
      sizeBytes: number
      partitionKey: {
        name: string
        type: "S" | "N" | "B"
      }
      sortKey?: {
        name: string
        type: "S" | "N" | "B"
      }
      indexCount: number
      deletionProtection: boolean
    }
    region: string
    type: "repository" | "database" | "bucket"
    name: string
    status?: "error" | "active" | "deleting" | "creating"
    createdAt?: number
    updatedAt?: number
    orgId: string
    resourceId: string
    createdBy: string
    projectId?: string
    location: string
    arn?: string
    physicalName: string
    restoredFrom?: string
    pendingSetup?: boolean
  } | {
    table: null
    error: "unavailable" | "missing"
    region: string
    type: "repository" | "database" | "bucket"
    name: string
    status?: "error" | "active" | "deleting" | "creating"
    createdAt?: number
    updatedAt?: number
    orgId: string
    resourceId: string
    createdBy: string
    projectId?: string
    location: string
    arn?: string
    physicalName: string
    restoredFrom?: string
    pendingSetup?: boolean
  }[]
}
GET/v1/orgs/:orgId/databases/:resourceId

A database record and its live table description (keys, indexes, status). table is null when the table was deleted outside the platform.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Errors

  • 404Database not found
  • 404Table not found

Errors from AWS map as in AWS errors.

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  database: {
    region: string
    type: "repository" | "database" | "bucket"
    name: string
    status?: "error" | "active" | "deleting" | "creating"
    createdAt?: number
    updatedAt?: number
    orgId: string
    resourceId: string
    createdBy: string
    projectId?: string
    location: string
    arn?: string
    physicalName: string
    restoredFrom?: string
    pendingSetup?: boolean
  }
  table: {
    partitionKey: {
      name: string
      type: "S" | "N" | "B"
    }
    sortKey?: {
      name: string
      type: "S" | "N" | "B"
    }
    name: string
    status: string
    indexes: {
      partitionKey: {
        name: string
        type: "S" | "N" | "B"
      }
      sortKey?: {
        name: string
        type: "S" | "N" | "B"
      }
      name: string
      kind: "local" | "global"
      projection: {
        type: "ALL" | "KEYS_ONLY" | "INCLUDE"
        attributes?: string[]
      }
      status?: string
      backfilling?: boolean
      itemCount?: number
      sizeBytes?: number
    }[]
    itemCount: number
    sizeBytes: number
    billingMode: string
    tableClass: string
    deletionProtection: boolean
    createdAt?: number
  }
}
| {
  database: {
    region: string
    type: "repository" | "database" | "bucket"
    name: string
    status?: "error" | "active" | "deleting" | "creating"
    createdAt?: number
    updatedAt?: number
    orgId: string
    resourceId: string
    createdBy: string
    projectId?: string
    location: string
    arn?: string
    physicalName: string
    restoredFrom?: string
    pendingSetup?: boolean
  }
  table: null
}
POST/v1/orgs/:orgId/databases/:resourceId/scan

One page of a scan. Pass cursor from the previous page to continue.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • indexstring

    Up to 255 characters.

  • limitinteger

    Default 25. 1–100.

  • cursorstring

    Up to 8,000 characters.

  • filtersobject[]

    Default []. Up to 10 items.

  • filters[].attributestringrequired

    Matches ^[^\u0000-\u001f]{1,255}$.

  • filters[].op"=" | "<>" | "<" | "<=" | ">" | ">=" | "begins_with" | "contains" | "between" | "exists" | "not_exists"required
  • filters[].valueobject | object | object | object | object
  • filters[].value2object | object | object | object | object
  • match"all" | "any"

    Default "all".

  • projectionstring[]

    Up to 50 items. Each matches ^[^\u0000-\u001f]{1,255}$.

Errors

  • 400No index named ….
  • 400A condition is missing its value.
  • 400Invalid page cursor. Run the request again.
  • 404Database not found
  • 404Table not found

Errors from AWS map as in AWS errors.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/scan' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "index": "example",
    "limit": 25,
    "cursor": "example"
  }'
Send it from this page with your session or a key.

Response 200

{
  items: {
    [key: string]: {
      S?: string
      N?: string
      B?: string
      BOOL?: boolean
      NULL?: true
      M?: {
        [key: string]: {
          S?: string
          N?: string
          B?: string
          BOOL?: boolean
          NULL?: true
          M?: object
          L?: {
            S?: string
            N?: string
            B?: string
            BOOL?: boolean
            NULL?: true
            M?: object
            L?: object
            SS?: object
            NS?: object
            BS?: object
          }[]
          SS?: string[]
          NS?: string[]
          BS?: string[]
        }
      }
      L?: {
        S?: string
        N?: string
        B?: string
        BOOL?: boolean
        NULL?: true
        M?: {
          [key: string]: {
            S?: string
            N?: string
            B?: string
            BOOL?: boolean
            NULL?: true
            M?: object
            L?: object
            SS?: object
            NS?: object
            BS?: object
          }
        }
        L?: object
        SS?: string[]
        NS?: string[]
        BS?: string[]
      }[]
      SS?: string[]
      NS?: string[]
      BS?: string[]
    }
  }[]
  count: number
  scanned: number
  cursor?: string
  consumed?: number
}
POST/v1/orgs/:orgId/databases/:resourceId/query

One page of a query on the table or an index.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • indexstring

    Up to 255 characters.

  • limitinteger

    Default 25. 1–100.

  • cursorstring

    Up to 8,000 characters.

  • filtersobject[]

    Default []. Up to 10 items.

  • filters[].attributestringrequired

    Matches ^[^\u0000-\u001f]{1,255}$.

  • filters[].op"=" | "<>" | "<" | "<=" | ">" | ">=" | "begins_with" | "contains" | "between" | "exists" | "not_exists"required
  • filters[].valueobject | object | object | object | object
  • filters[].value2object | object | object | object | object
  • match"all" | "any"

    Default "all".

  • projectionstring[]

    Up to 50 items. Each matches ^[^\u0000-\u001f]{1,255}$.

  • partitionobject | object | object | object | objectrequired
  • sortobject
  • sort.op"=" | "<" | "<=" | ">" | ">=" | "begins_with" | "between"required
  • sort.valueobject | object | object | object | objectrequired
  • sort.value2object | object | object | object | object
  • forwardboolean

    Default true.

Errors

  • 400No index named ….
  • 400A condition is missing its value.
  • 400This table or index has no sort key.
  • 400The sort key condition is missing a value.
  • 400begins_with works on string and binary sort keys only.
  • 400Invalid page cursor. Run the request again.
  • 404Database not found
  • 404Table not found

Errors from AWS map as in AWS errors.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/query' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "partition": {}
  }'
Send it from this page with your session or a key.

Response 200

{
  items: {
    [key: string]: {
      S?: string
      N?: string
      B?: string
      BOOL?: boolean
      NULL?: true
      M?: {
        [key: string]: {
          S?: string
          N?: string
          B?: string
          BOOL?: boolean
          NULL?: true
          M?: object
          L?: {
            S?: string
            N?: string
            B?: string
            BOOL?: boolean
            NULL?: true
            M?: object
            L?: object
            SS?: object
            NS?: object
            BS?: object
          }[]
          SS?: string[]
          NS?: string[]
          BS?: string[]
        }
      }
      L?: {
        S?: string
        N?: string
        B?: string
        BOOL?: boolean
        NULL?: true
        M?: {
          [key: string]: {
            S?: string
            N?: string
            B?: string
            BOOL?: boolean
            NULL?: true
            M?: object
            L?: object
            SS?: object
            NS?: object
            BS?: object
          }
        }
        L?: object
        SS?: string[]
        NS?: string[]
        BS?: string[]
      }[]
      SS?: string[]
      NS?: string[]
      BS?: string[]
    }
  }[]
  count: number
  scanned: number
  cursor?: string
  consumed?: number
}
POST/v1/orgs/:orgId/databases/:resourceId/items/get

Strongly consistent read of one item by key.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • keyobjectrequired

    Values: any JSON.

Errors

  • 400A key has only ….
  • 404Database not found
  • 404Table not found
  • 404Item not found

Errors from AWS map as in AWS errors.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/items/get' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "key": {}
  }'
Send it from this page with your session or a key.

Response 200

{
  item: {
    [key: string]: {
      S?: string
      N?: string
      B?: string
      BOOL?: boolean
      NULL?: true
      M?: {
        [key: string]: {
          S?: string
          N?: string
          B?: string
          BOOL?: boolean
          NULL?: true
          M?: object
          L?: {
            S?: string
            N?: string
            B?: string
            BOOL?: boolean
            NULL?: true
            M?: object
            L?: object
            SS?: object
            NS?: object
            BS?: object
          }[]
          SS?: string[]
          NS?: string[]
          BS?: string[]
        }
      }
      L?: {
        S?: string
        N?: string
        B?: string
        BOOL?: boolean
        NULL?: true
        M?: {
          [key: string]: {
            S?: string
            N?: string
            B?: string
            BOOL?: boolean
            NULL?: true
            M?: object
            L?: object
            SS?: object
            NS?: object
            BS?: object
          }
        }
        L?: object
        SS?: string[]
        NS?: string[]
        BS?: string[]
      }[]
      SS?: string[]
      NS?: string[]
      BS?: string[]
    }
  }
}
PUT/v1/orgs/:orgId/databases/:resourceId/items

Writes an item. With originalKey, replaces that item (a key change moves it); with expected, the write fails with 409 if the item changed since it was read.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body (up to 800 KB)

  • itemobjectrequired

    Values: any JSON.

  • originalobject

    Values: any JSON.

Errors

  • 400A key has only ….
  • 404Database not found
  • 404Table not found
  • 409An item with this key already exists.
  • 409This item was deleted. Create it again instead.
  • 413The item is larger than DynamoDB's 400 KB limit.

Errors from AWS map as in AWS errors.

curl -X PUT 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/items' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "item": {}
  }'
Send it from this page with your session or a key.
POST/v1/orgs/:orgId/databases/:resourceId/items/delete

Deletes items by key.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • keyobjectrequired

    Values: any JSON.

Errors

  • 400A key has only ….
  • 404Database not found
  • 404Table not found

Errors from AWS map as in AWS errors.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/items/delete' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "key": {}
  }'
Send it from this page with your session or a key.

Response 204 with no body

POST/v1/orgs/:orgId/databases/:resourceId/items/batch-delete

Deletes up to 100 items by key (batched). failed counts deletes DynamoDB kept throttling.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • keysobject[]required

    1–100 items. Each values: any JSON.

Errors

  • 400A key has only ….
  • 404Database not found
  • 404Table not found

Errors from AWS map as in AWS errors.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/items/batch-delete' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "keys": [
      {}
    ]
  }'
Send it from this page with your session or a key.

Response 200

{
  deleted: number
  failed: number
}
POST/v1/orgs/:orgId/databases/:resourceId/items/import

Imports up to 100 items (typed DynamoDB JSON). overwrite replaces items with the same key; skip keeps existing ones. Nothing is written if any item is invalid.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body (up to 6,144 KB)

  • itemsobject[]required

    1–100 items. Each values: any JSON.

  • mode"overwrite" | "skip"

    Default "skip".

Errors

  • 404Database not found
  • 404Table not found
  • 413Send at most 6 MB of items per request.

Errors from AWS map as in AWS errors.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/items/import' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "items": [
      {}
    ]
  }'
Send it from this page with your session or a key.

Response 200

{
  written: number
  skipped: number
  failed: number
}
POST/v1/orgs/:orgId/databases/:resourceId/restore

Restores the table as it was at time (epoch ms; default the latest restorable time) into a new database named name. Needs point-in-time recovery; the new table takes minutes or longer to appear.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • namestringrequired

    Matches ^[a-z0-9][a-z0-9-]{1,38}[a-z0-9]$.

  • timeinteger

    > 0.

Errors

  • 404Database not found

Errors from AWS map as in AWS errors.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/restore' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Example"
  }'
Send it from this page with your session or a key.

Response 202

{
  resource: {
    region: string
    type: "repository" | "database" | "bucket"
    name: string
    status?: "error" | "active" | "deleting" | "creating"
    createdAt?: number
    updatedAt?: number
    orgId: string
    resourceId: string
    createdBy: string
    projectId?: string
    location: string
    arn?: string
    physicalName: string
    restoredFrom?: string
    pendingSetup?: boolean
  }
}
GET/v1/orgs/:orgId/databases/:resourceId/exports

The table's recent full exports to S3.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Errors

  • 404Database not found
  • 404Table not found

Errors from AWS map as in AWS errors.

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/exports' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  exports: {
    exportArn: string
    status: string
    startedAt?: number
    endedAt?: number
    bucket?: string
    prefix?: string
    itemCount?: number
    sizeBytes?: number
    failure?: string
    manifest?: string
  }[]
}
POST/v1/orgs/:orgId/databases/:resourceId/exports

Exports the whole table (DynamoDB JSON, gzipped) into one of the organization's buckets under prefix. Needs point-in-time recovery; large tables take a while.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • bucketIdstringrequired

    At least 1 character.

  • prefixstring

    Up to 512 characters.

Errors

  • 404Database not found
  • 404Bucket not found
  • 404Table not found
  • 409Turn on point-in-time recovery in Settings to export the whole table.

Errors from AWS map as in AWS errors.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/exports' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "bucketId": "<bucketId>"
  }'
Send it from this page with your session or a key.

Response 202

{
  export: {
    exportArn: string
    status: string
    startedAt?: number
    endedAt?: number
    bucket?: string
    prefix?: string
    itemCount?: number
    sizeBytes?: number
    failure?: string
    manifest?: string
  }
}
POST/v1/orgs/:orgId/databases/:resourceId/indexes

Adds a global secondary index. The table answers with status UPDATING while DynamoDB backfills the index.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • namestringrequired

    Matches ^[A-Za-z0-9_.-]{3,255}$.

  • partitionKeyobjectrequired
  • partitionKey.namestringrequired

    Matches ^[A-Za-z_][A-Za-z0-9_.-]{0,254}$.

  • partitionKey.type"S" | "N" | "B"required
  • sortKeyobject
  • sortKey.namestringrequired

    Matches ^[A-Za-z_][A-Za-z0-9_.-]{0,254}$.

  • sortKey.type"S" | "N" | "B"required
  • projectionobjectrequired
  • projection.type"ALL" | "KEYS_ONLY" | "INCLUDE"required
  • projection.attributesstring[]

    1–20 items. Each matches ^[^\u0000-\u001f]{1,255}$.

Errors

  • 400List the attributes to include.
  • 400The sort key must differ from the partition key.
  • 400… is already a … key attribute; use that type.
  • 404Database not found
  • 404Table not found
  • 409Indexes can only be added to on-demand tables here.
  • 409An index named … already exists.

Errors from AWS map as in AWS errors.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/indexes' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Example",
    "partitionKey": {
      "name": "Example",
      "type": "S"
    },
    "projection": {
      "type": "ALL"
    }
  }'
Send it from this page with your session or a key.

Response 202

{
  table: {
    partitionKey: {
      name: string
      type: "S" | "N" | "B"
    }
    sortKey?: {
      name: string
      type: "S" | "N" | "B"
    }
    name: string
    status: string
    indexes: {
      partitionKey: {
        name: string
        type: "S" | "N" | "B"
      }
      sortKey?: {
        name: string
        type: "S" | "N" | "B"
      }
      name: string
      kind: "local" | "global"
      projection: {
        type: "ALL" | "KEYS_ONLY" | "INCLUDE"
        attributes?: string[]
      }
      status?: string
      backfilling?: boolean
      itemCount?: number
      sizeBytes?: number
    }[]
    itemCount: number
    sizeBytes: number
    billingMode: string
    tableClass: string
    deletionProtection: boolean
    createdAt?: number
  }
}
DELETE/v1/orgs/:orgId/databases/:resourceId/indexes/:indexName

Removes a global secondary index.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

  • indexName

    Global secondary index name.

Errors

  • 404Database not found
  • 404Table not found
  • 404Index not found
  • 409Local indexes can't be removed from a table.

Errors from AWS map as in AWS errors.

curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/indexes/{indexName}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 202

{
  table: {
    partitionKey: {
      name: string
      type: "S" | "N" | "B"
    }
    sortKey?: {
      name: string
      type: "S" | "N" | "B"
    }
    name: string
    status: string
    indexes: {
      partitionKey: {
        name: string
        type: "S" | "N" | "B"
      }
      sortKey?: {
        name: string
        type: "S" | "N" | "B"
      }
      name: string
      kind: "local" | "global"
      projection: {
        type: "ALL" | "KEYS_ONLY" | "INCLUDE"
        attributes?: string[]
      }
      status?: string
      backfilling?: boolean
      itemCount?: number
      sizeBytes?: number
    }[]
    itemCount: number
    sizeBytes: number
    billingMode: string
    tableClass: string
    deletionProtection: boolean
    createdAt?: number
  }
}
GET/v1/orgs/:orgId/databases/:resourceId/metrics

Consumed capacity, throttles and latency from CloudWatch.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Query parameters

  • rangeany

    Default "1h".

Errors

  • 404Database not found

Errors from AWS map as in AWS errors.

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/metrics' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  range: "24h" | "7d" | "1h"
  period: 300 | 3600 | 60
  from: number
  to: number
  series: {
    t: number
    read: number
    write: number
    readThrottles: number
    writeThrottles: number
  }[]
  latency: {
    operations: string[]
    points: {
      [key: string]: null | number
      t: number
    }[]
  }
}
GET/v1/orgs/:orgId/databases/:resourceId/settings

Time to live, point-in-time recovery, deletion protection, table class and tags.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Errors

  • 404Database not found
  • 404Table not found

Errors from AWS map as in AWS errors.

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/settings' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  deletionProtection: boolean
  tableClass: string
  ttl: {
    status: "DISABLED" | "ENABLED" | "DISABLING" | "ENABLING"
    attribute?: string
  }
  pitr: {
    status: "DISABLED" | "ENABLED"
    recoveryPeriodDays?: number
    earliest?: number
    latest?: number
  }
  tags: {
    key: string
    value: string
  }[]
}
PATCH/v1/orgs/:orgId/databases/:resourceId/settings

Time to live, point-in-time recovery, deletion protection and table class.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • ttlobject
  • ttl.enabledbooleanrequired
  • ttl.attributestring

    Matches ^[^\u0000-\u001f]{1,255}$.

  • pitrboolean
  • deletionProtectionboolean
  • tableClass"STANDARD" | "STANDARD_INFREQUENT_ACCESS"

Also checked: Nothing to change.

Errors

  • 400Name the attribute that holds the expiry time.
  • 404Database not found
  • 404Table not found
  • 409Time to live isn't enabled.

Errors from AWS map as in AWS errors.

curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/settings' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "ttl": {
      "enabled": true
    },
    "pitr": true,
    "deletionProtection": true
  }'
Send it from this page with your session or a key.

Response 200

{
  deletionProtection: boolean
  tableClass: string
  ttl: {
    status: "DISABLED" | "ENABLED" | "DISABLING" | "ENABLING"
    attribute?: string
  }
  pitr: {
    status: "DISABLED" | "ENABLED"
    recoveryPeriodDays?: number
    earliest?: number
    latest?: number
  }
  tags: {
    key: string
    value: string
  }[]
}
PATCH/v1/orgs/:orgId/databases/:resourceId/tags

Adds, changes or removes the table's own tags. si: tags are the platform's and can't be changed.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Request body

  • setobject

    Default {}. Keys 1–128 characters, match ^[\p{L}\p{Z}\p{N}_.:/=+\-@]*$. Values: string (up to 256 characters, matches ^[\p{L}\p{Z}\p{N}_.:/=+\-@]*$).

  • removestring[]

    Default []. Up to 50 items. Each 1–128 characters, matches ^[\p{L}\p{Z}\p{N}_.:/=+\-@]*$.

Also checked: Nothing to change.

Errors

  • 404Database not found
  • 404Table not found

Errors from AWS map as in AWS errors.

curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}/tags' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "set": {},
    "remove": []
  }'
Send it from this page with your session or a key.

Response 200

{
  tags: {
    key: string
    value: string
  }[]
}
DELETE/v1/orgs/:orgId/databases/:resourceId

Deletes the table and its record. Refused while deletion protection is on.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • resourceId

    Resource id (res_…); for a group's access, the Serverless App Service id (prj_…) or the repository's resource id.

Errors

  • 404Database not found
  • 404Table not found
  • 409Turn off deletion protection first.
  • 409Wait for index … to finish …, then try again.

Errors from AWS map as in AWS errors.

curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/databases/{resourceId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 204 with no body