writeOnly : Boolean

writeOnly

Boolean

This keyword indicates that the value is never present when the instance is retrieved from the owning authority.

Value This keyword must be set to a boolean value Hint: Use the jsonschema metaschema and jsonschema lint commands to catch keywords set to invalid values
Kind Annotation
Applies To Any
Base Dialect 2020-12
Changed In None
Introduced In Draft 7
Vocabulary Meta Data
Specification https://json-schema.org/draft/2020-12/json-schema-validation.html#section-9.4
Metaschema https://json-schema.org/draft/2020-12/meta/meta-data
Official Tests None
Default false
Annotation Boolean The boolean value set by this keyword Hint: Use the jsonschema validate command to collect annotations from the command-line
Affected By None
Affects None
Also See

The writeOnly keyword, when set to true, signifies that an instance value (such as a specific object property) can be modified or removed but not read, whatever that means in the context of the system. For example, form generators may rely on this keyword to mark the corresponding input as as a password field. This keyword does not affect validation, but the evaluator will collect its value as an annotation.

Examples

A schema that statically marks the password optional object property as write only Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "username": { "type": "string" }
    "password": { "type": "string", "writeOnly": true },
  }
}
Valid An object value that defines the write only property is valid but an annotation is emitted Instance
{ "username": "jviotti", "password": "mysupersecretpassword" }
Annotations
{ "keyword": "/properties/password/writeOnly", "instance": "/password", "value": true }
Valid An object value that does not define the write only property is valid and no annotation is emitted Instance
{ "username": "jviotti" }
Invalid An object value that does not match the schema is invalid and no annotations are emitted Instance
{ "password": null }
A schema that dynamically marks the password optional object property as write only based on the presence of the username property Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "username": { "type": "string" }
    "password": { "type": "string" },
  }
  "dependentSchemas": {
    "username": {
      "properties": { "password": { "writeOnly": true } }
    }
  }
}
Valid An object value that defines both properties is valid but an annotation is emitted Instance
{ "username": "jviotti", "password": "mysupersecretpassword" }
Annotations
{ "keyword": "/dependentSchemas/username/properties/password/writeOnly", "instance": "/password", "value": true }
Valid An object value that only defines the username property is valid and no annotation is emitted Instance
{ "username": "jviotti" }
Valid An object value that only defines the password property is valid and no annotation is emitted Instance
{ "password": "mysupersecretpassword" }
Invalid An object value that does not match the schema is invalid and no annotations are emitted Instance
{ "password": null }