Resources Types
The API allows you to know more about the schema of a given resource and it’s associated secret.
In passbolt, passwords are split into two different entities: Resources (the metada in clear) and Secrets (the encrypted data). The resource types define what is included in the resource and what is included in the secret. This definition, that is part of the resource type, takes the form of JSON schemas.
Since passbolt is end-to-end encrypted the server cannot validate the content of the secrets. Therefore, it is the responsibility of the clients to check if the secret is deserializable according to the resource type schema associated with the resource and to choose how to handle that case.
The Resource Type object
Attribute | Type | Description | Format |
---|---|---|---|
id | String | Unique ID of the resource type in UUID format. | UUID |
slug | String | A machine and human readable identifier for the resource type. | Example: "password-string" |
description | String | A human readable description of the purpose of the resource type. | Example: "The original passbolt resource type, where the secret is a non empty string" |
definition | String | A description of the schema, e.g. properties and rules. | JSON schemas |
created | String | Datetime when the resource type was created |
ISO
8601Datetime format 2014-02-01T09:28:56.321-10:00 |
modified | String | Datetime when the resource type was last modified |
ISO
8601 Datetime format 2014-02-01T09:28:56.321-10:00 |
For example this is the “legacy” default resource type definition, compatible with Passbolt since v1 up to v3:
{
"resource":{
"type":"object",
"required":["name"],
"properties":{
"name":{
"type":"string",
"maxLength":64
},
"username":{
"anyOf":[
{"type":"string","maxLength":64},
{"type":"null"}]
},
"uri":{
"anyOf":[
{"type":"string","maxLength":1024},
{"type":"null"}]
},
"description":{
"anyOf":[
{"type":"string","maxLength":10000},
{"type":"null"}
]
}
}
},
"secret":{
"type":"string",
"maxLength":4064
}
}
Last updated
This article was last updated on May 26th, 2021.You can also find the latest OpenAPI 2.0 specifications directly on the dedicated repository.
OpenAPI Specs repository