core-lightning/doc/schemas/lightning-showrunes.json
Rusty Russell b327bd30c3 doc: fix all JSON schemas to enforce no additional properties.
Without this, we have hardly any enforcement.  This is why the schema
mistake fixed in the previous patches weren't spotted immediately.

The hard work was done by:

```
$ for f in lightning-*.json; do grep -v '^  "additionalProperties": false,' $f | bagto $f; done
$ for f in lightning-*.json; do sed 's/"properties": {/"additionalProperties": false, "properties": {/' $f | bagto $f; done
$ make fmt-schemas
```

Then checking where 'additionalProperties: true' had been turned to
false (we deliberately use it in some places where there are if
statements in the schema, or occasionally where there can be arbitrary
fields).

[Including doc/rpc-schema-draft.json update by Shahana]
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2024-10-30 15:39:12 +10:30

383 lines
14 KiB
JSON

{
"$schema": "../rpc-schema-draft.json",
"type": "object",
"added": "v23.08",
"rpc": "showrunes",
"title": "Command to list previously generated runes",
"description": [
"The **showrunes** RPC command either lists runes that we stored as we generate them (see lightning-createrune(7)) or decodes the rune given on the command line."
],
"request": {
"required": [],
"additionalProperties": false,
"properties": {
"rune": {
"type": "string",
"description": [
"If specified, only details of that rune will be returned."
]
}
}
},
"response": {
"required": [
"runes"
],
"additionalProperties": false,
"properties": {
"runes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"rune",
"unique_id",
"restrictions",
"restrictions_as_english"
],
"properties": {
"rune": {
"type": "string",
"description": [
"Base64 encoded rune."
]
},
"unique_id": {
"type": "string",
"description": [
"Unique id assigned when the rune was generated; this is always a u64 for commando runes."
]
},
"restrictions": {
"type": "array",
"description": [
"The restrictions on what commands this rune can authorize."
],
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"alternatives",
"english"
],
"properties": {
"alternatives": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fieldname",
"value",
"condition",
"english"
],
"properties": {
"fieldname": {
"type": "string",
"description": [
"The field this restriction applies to; see commando-rune(7)."
]
},
"value": {
"type": "string",
"description": [
"The value accepted for this field."
]
},
"condition": {
"type": "string",
"description": [
"The way to compare fieldname and value."
]
},
"english": {
"type": "string",
"description": [
"English readable description of this alternative."
]
}
}
}
},
"english": {
"type": "string",
"description": [
"English readable summary of alternatives above."
]
}
}
}
},
"restrictions_as_english": {
"type": "string",
"description": [
"English readable description of the restrictions array above."
]
},
"stored": {
"type": "boolean",
"enum": [
false
],
"description": [
"This is false if the rune does not appear in our datastore (only possible when `rune` is specified)."
]
},
"blacklisted": {
"type": "boolean",
"enum": [
true
],
"description": [
"The rune has been blacklisted; see commando-blacklist(7)."
]
},
"last_used": {
"type": "number",
"description": [
"The last time this rune was successfully used."
],
"added": "v23.11"
},
"our_rune": {
"type": "boolean",
"enum": [
false
],
"description": [
"This is not a rune for this node (only possible when `rune` is specified)."
]
}
}
}
}
}
},
"author": [
"Shahana Farooqui <<sfarooqui@blockstream.com>> is mainly responsible."
],
"see_also": [
"lightning-commando-showrunes(7)",
"lightning-blacklistrune(7)"
],
"resources": [
"Main web site: <https://github.com/ElementsProject/lightning>"
],
"examples": [
{
"request": {
"id": "example:showrunes#1",
"method": "showrunes",
"params": {
"rune": "zFMd1fjhrAYxUeFA54TjloZqOt8JrA_i_nYwIgXkag49MA=="
}
},
"response": {
"runes": [
{
"rune": "zFMd1fjhrAYxUeFA54TjloZqOt8JrA_i_nYwIgXkag49MA==",
"last_used": 1722303715.068215,
"unique_id": "0",
"restrictions": [],
"restrictions_as_english": ""
}
]
}
},
{
"request": {
"id": "example:showrunes#2",
"method": "showrunes",
"params": {}
},
"response": {
"runes": [
{
"rune": "zFMd1fjhrAYxUeFA54TjloZqOt8JrA_i_nYwIgXkag49MA==",
"last_used": 1722303715.068215,
"unique_id": "0",
"restrictions": [],
"restrictions_as_english": ""
},
{
"rune": "RXgu0DD_i0wSPEZkIDyZIWL0bSAGdhvJ_GHOQdTg04A9MSZpZF4wMjY2ZTQ1OThkMWQzYzQxNWY1NyZtZXRob2Q9bGlzdHBlZXJz",
"last_used": 1722303714.9302285,
"unique_id": "1",
"restrictions": [
{
"alternatives": [
{
"fieldname": "id",
"value": "0266e4598d1d3c415f57",
"condition": "^",
"english": "id starts with 0266e4598d1d3c415f57"
}
],
"english": "id starts with 0266e4598d1d3c415f57"
},
{
"alternatives": [
{
"fieldname": "method",
"value": "listpeers",
"condition": "=",
"english": "method equal to listpeers"
}
],
"english": "method equal to listpeers"
}
],
"restrictions_as_english": "id starts with 0266e4598d1d3c415f57 AND method equal to listpeers"
},
{
"rune": "QUJEYMLGgiaJvMDv_MhR2hiMKIBTbq-PrL-KxcIlirQ9MiZtZXRob2Q9cGF5JnBuYW1lYW1vdW50bXNhdDwxMDAwMA==",
"last_used": 1722303715.1267006,
"unique_id": "2",
"restrictions": [
{
"alternatives": [
{
"fieldname": "method",
"value": "pay",
"condition": "=",
"english": "method equal to pay"
}
],
"english": "method equal to pay"
},
{
"alternatives": [
{
"fieldname": "pnameamountmsat",
"value": "10000",
"condition": "<",
"english": "pnameamountmsat < 10000"
}
],
"english": "pnameamountmsat < 10000"
}
],
"restrictions_as_english": "method equal to pay AND pnameamountmsat < 10000"
},
{
"rune": "jEx3l0c7NMZPSDYT7xnXXvNA83z5PDNBHRQTIk1BwNw9MyZpZD0wMjY2ZTQ1OThkMWQzYzQxNWY1NzJhODQ4ODgzMGI2MGY3ZTc0NGVkOTIzNWViMGIxYmE5MzI4M2IzMTVjMDM1MTgmbWV0aG9kPWxpc3RwZWVycyZwbnVtPTEmcG5hbWVpZD0wMjY2ZTQ1OThkMWQzYzQxNWY1NzJhODQ4ODgzMGI2MGY3ZTc0NGVkOTIzNWViMGIxYmE5MzI4M2IzMTVjMDM1MTh8cGFycjA9MDI2NmU0NTk4ZDFkM2M0MTVmNTcyYTg0ODg4MzBiNjBmN2U3NDRlZDkyMzVlYjBiMWJhOTMyODNiMzE1YzAzNTE4",
"unique_id": "3",
"restrictions": [
{
"alternatives": [
{
"fieldname": "id",
"value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518",
"condition": "=",
"english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518"
}
],
"english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518"
},
{
"alternatives": [
{
"fieldname": "method",
"value": "listpeers",
"condition": "=",
"english": "method equal to listpeers"
}
],
"english": "method equal to listpeers"
},
{
"alternatives": [
{
"fieldname": "pnum",
"value": "1",
"condition": "=",
"english": "pnum equal to 1"
}
],
"english": "pnum equal to 1"
},
{
"alternatives": [
{
"fieldname": "pnameid",
"value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518",
"condition": "=",
"english": "pnameid equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518"
},
{
"fieldname": "parr0",
"value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518",
"condition": "=",
"english": "parr0 equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518"
}
],
"english": "pnameid equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518 OR parr0 equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518"
}
],
"restrictions_as_english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518 AND method equal to listpeers AND pnum equal to 1 AND pnameid equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518 OR parr0 equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518"
},
{
"rune": "8_CRIJ4arWAz72A4ILOZ46MESSJtQQQ9iQZjU28qulA9NCZpZD0wMjY2ZTQ1OThkMWQzYzQxNWY1NzJhODQ4ODgzMGI2MGY3ZTc0NGVkOTIzNWViMGIxYmE5MzI4M2IzMTVjMDM1MTgmbWV0aG9kPWxpc3RwZWVycyZwbnVtPTEmcG5hbWVpZF4wMjY2ZTQ1OThkMWQzYzQxNWY1N3xwYXJyMF4wMjY2ZTQ1OThkMWQzYzQxNWY1Nw==",
"unique_id": "4",
"restrictions": [
{
"alternatives": [
{
"fieldname": "id",
"value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518",
"condition": "=",
"english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518"
}
],
"english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518"
},
{
"alternatives": [
{
"fieldname": "method",
"value": "listpeers",
"condition": "=",
"english": "method equal to listpeers"
}
],
"english": "method equal to listpeers"
},
{
"alternatives": [
{
"fieldname": "pnum",
"value": "1",
"condition": "=",
"english": "pnum equal to 1"
}
],
"english": "pnum equal to 1"
},
{
"alternatives": [
{
"fieldname": "pnameid",
"value": "0266e4598d1d3c415f57",
"condition": "^",
"english": "pnameid starts with 0266e4598d1d3c415f57"
},
{
"fieldname": "parr0",
"value": "0266e4598d1d3c415f57",
"condition": "^",
"english": "parr0 starts with 0266e4598d1d3c415f57"
}
],
"english": "pnameid starts with 0266e4598d1d3c415f57 OR parr0 starts with 0266e4598d1d3c415f57"
}
],
"restrictions_as_english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518 AND method equal to listpeers AND pnum equal to 1 AND pnameid starts with 0266e4598d1d3c415f57 OR parr0 starts with 0266e4598d1d3c415f57"
}
]
}
}
]
}