Support metadata for backup

Add a new “metadata” property for backup resource.

Problem description

Backup resource lost the ability for getting/setting metadata property.

Use Cases

The metadata here for backup is the descriptive metadata. It’s used for discovery and identification. Users could add key-value pairs for the backups to describe them. And users can also filter backups with specified metadata.

Proposed change

  1. The “metadata” property will be added to backup object.

2. A new DB table “backup_metadata” will be created.

| created_at | updated_at | deleted_at | id | backup_id | key | value |
|            |            |            |    |           |     |       |

The primary key is “id”.

3. The backup create/update API will be updated to support “metadata”.

POST /v3/{project_id}/backups
PUT  /v3/{project_id}/backups/{backup_id}

the request body can contain "metadata".
        "key1": "value1",
        "key2": "value2"

4. A set of new APIs will be created. It’s used for backup metadata’s CRUD.

GET    /v3/{project_id}/backups/{backup_id}/metadata
show a backup's metadata

POST   /v3/{project_id}/backups/{backup_id}/metadata
create or replaces metadata for a backup

PUT    /v3/{project_id}/backups/{backup_id}/metadata
replace all the backup's metadata

GET    /v3/{project_id}/backups/{backup_id}/metadata/{key}
show a backup's metadata for a specific key

DELETE /v3/{project_id}/backups/{backup_id}/metadata/{key}
delete a specified metadata

PUT    /v3/{project_id}/backups/{backup_id}/metadata/{key}
update a specified metadata


Leave as it is.

Data model impact

Backup model will be updated with new property “metadata”.

REST API impact

  • The backup create/update API’s request body will be updated.

  • A set of new APIs related to backup metadata will be created.

Security impact


Notifications impact

The new APIs will send new notifications as well.

Other end user impact


Performance Impact

A new “backup_metadata” table will be created so that the DB conjunction action may let the search performance reduce a little.

Other deployer impact


Developer impact




Primary assignee:


Work Items

  • Add metadata property to backup object and bump its version.

  • Create a new DB table “backup_metadata” and add db upgrade script.

  • Update backup create/update API.

  • Add a tuple of new APIs for backup metadata.




  • Unit tests

Documentation Impact

  • Api-ref need update.