Skip to main content
Skip table of contents

Item locks [VC 21.3.1 GEN]

Items can be locked by users to temporarily prevent access from other users. This can be used to prevent users from working with stale and conflicting data. Locks should not be seen as an alternative to access control, as any user that has write access to an item can remove the locks.

If any user attempts to access an item that is locked by another user, HTTP status code 409 Conflict will be returned. For example:

NONE
HTTP/1.1 409 Operation would lead to conflict
Context: lock
ID: VX-123
Reason: That entity is locked by another user.
Value: the-name-of-the-other-user

Managing locks

All locks are associated with an expiration date and will be removed after they expire.

Create a lock

POST /item/(item-id)/lock

Creates a new lock for the item with an expiration date. The expiration date is the sum of the timestamp and the duration. If no timestamp and no duration is given, the expiration date will be set to 24 hours forward in time.

Query Parameters:
  • timestamp (string) – An ISO 8601 timestamp. Defaults to the current time.

  • duration (string) – An ISO 8601 duration. Default is 0.

Status Codes:
  • 200 OK – The lock was created.

  • 409 Conflict – Some other user already holds a lock on that item.

Role:

_lock_write

Example

Create a lock for a specific timestamp:

NONE
POST /item/VX-123/lock?timestamp=2010-08-20T15:00:00+02:00
NONE
200 OK

Create a lock for 3 hours:

NONE
POST /item/VX-123/lock?duration=PT3H
NONE
200 OK

Retrieve a lock

GET /item/(item-id)/lock

Retrieves information about the expiration date and which user that holds the lock.

Status Codes:
  • 404 Not Found – Either the item or the lock could not be found.

Produces:
Role:

_lock_read

Example

NONE
GET /item/VX-123/lock
HTML/XML
<LockDocument xmlns="http://xml.vidispine.com/schema/vidispine">
   <id>VX-123</id>
   <user>admin</user>
   <expires>2010-08-20T15:00:00.000+02:00</expires>
</LockDocument>

Delete a lock

DELETE /item/(item-id)/lock

Removes the lock for the item.

Status Codes:
  • 200 OK – The lock was removed.

Role:

_lock_write

Example

NONE
DELETE /item/VX-123/lock
NONE
200 OK

Extend the expiration date of a lock

PUT /item/(item-id)/lock

Sets a new expiration date for the lock. The expiration date is the sum of the timestamp and the duration. If no timestamp and no duration is given, the expiration date will be set to 24 hours forward in time.

Query Parameters:
  • timestamp (string) – An ISO 8601 timestamp. Defaults to the current time.

  • duration (string) – An ISO 8601 duration. Default is 0.

Status Codes:
  • 200 OK – The lock was extended.

Role:

_lock_write

Example

NONE
POST /item/VX-123/lock?timestamp=2010-08-20T16:00:00+02:00
NONE
200 OK
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.