Policy
A Policy is a ledger record that encapsulates a set of access rules applicable to other records. By defining policies, administrators can centralize and simplify the management of permissions across the ledger. Instead of specifying access rules individually for each record, policies allow for reusable sets of rules that can be applied uniformly, enhancing consistency and reducing administrative overhead.
List policies
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Query Parameters
Page query parameters
Base filter parameters
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "http://localhost:3000/v2/policies?limit=20&index=0" \ -H "x-ledger: rtp-ledger"{
"hash": "87e1d8686e1e7fc18a64ffb94155f117070faf10c4f1ac68132cf57332ff0f66",
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"digest": "6be74fbf5ef247e3ac92fc1031051d606b2f3a4519a144cb65db91322d2ffa30",
"result": "D+7PTZ41aRlrMy8wBRYjH5j1By2tjgQeIWruWhneAHt+kdNdRqrDYQI4vr017AYvINnWZrFLUPVCR7QdjXYBBA==",
"custom": {
"moment": "2025-04-02T05:10:33.360Z"
}
}
],
"moment": "2025-04-02T05:10:33.360Z"
},
"data": [
{
"hash": "193e9f8fdfdce6b0ab19203011dede7dc51216235b7f7b3c2920e37eef0075f9",
"data": {
"parent": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b",
"handle": "studio",
"access": [
{
"action": "any",
"signer": {
"$record": "owner"
}
},
{
"action": "read",
"bearer": {
"$signer": {
"$record": "owner"
}
}
}
],
"values": [
{
"action": "any",
"bearer": {
"$signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
"record": {
"$in": [
"schema",
"wallet",
"circle-signer",
"circle"
]
},
"signer": {
"$circle": "admin@bank17.com"
}
},
{
"action": {
"$in": [
"read",
"query"
]
},
"filter": {
"handle": "member"
},
"record": "schema"
},
{
"action": "create",
"record": {
"$in": [
"signer-proof",
"report-proof"
]
},
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
{
"action": "update",
"record": "signer",
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
}
],
"record": "any",
"schema": "access"
},
"luid": "$plc.-08478j6t_PTkU7Xe",
"meta": {
"proofs": [
{
"custom": {
"moment": "2025-04-02T05:10:32.132Z"
},
"digest": "e7308068245555fe23cdea6f3cd713a39fc39d0d9af7c91663c7d09e1be654b3",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "Fi0Ckj+xNwvk3IMd//J1f6w6ejHJ5jEx/H+wPybdUSbwVOU6wFadIeYlixLfxIkhn8jHRgLsQroyzEvz1QmICQ=="
},
{
"custom": {
"luid": "$plc.-08478j6t_PTkU7Xe",
"moment": "2025-04-02T05:10:32.150Z"
},
"digest": "72e9e6ae95506c054a1e8a37c6467447feeb1ee0b55fc1d4ffd63a74aa51b863",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "PquGL90ulNmtvHw1mQdRDCiYB775JPAuqCreep/qVPgf3kFOwFOleJxB+SgyqKZZPu4qAgFNR1h1SOOU0C7yCw=="
},
{
"custom": {
"moment": "2025-04-02T05:10:30.823Z",
"status": "approved",
"operation": "authorization"
},
"digest": "bfae8a961721155583d9c2bb35c88bfe01a59d85eacd0412ad2544eb2165e6e5",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "nOog0n7HTQOTh1VEy5TAHkxkee5LfRcE0Pq992gv6MxO9J+iZDYsMKxQnmB7Sz2wdnJ8c7ihmRQCjNKbzlwUDg=="
}
],
"status": "approved",
"moment": "2025-04-02T05:10:32.148Z",
"owners": [
"gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
]
}
},
{
"hash": "9bda81c4a1331f5649ccfa7b1ed647c8f8ced1db935acf35f6cb8e9c249bf0f9",
"data": {
"handle": "intent:status",
"custom": {
"description": "Defines quorum for changing an intent status"
},
"access": [
{
"action": "read"
},
{
"action": "update",
"signer": {
"$record": "owner"
}
},
{
"action": "update",
"signer": {
"$ledger": "owner"
}
}
],
"values": [
{
"quorum": [
{
"handle": "system"
}
],
"status": {
"$in": [
"created",
"pending",
"prepared",
"committed",
"completed",
"failed",
"aborted",
"rejected",
"expired"
]
}
}
],
"record": "intent",
"schema": "status"
},
"luid": "$plc.-08477rEYUyjcGlwb",
"meta": {
"proofs": [
{
"digest": "e119a970ced9a620bc04f6fa65467a090d7ca068483ee3820430bea459bb31ca",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "XW4jjiMv0knseEziv+rrItzw9+rXRUFgjJEyTwMmqZf36ESFWbdaSHl1PX7z7xg6wR1dJv9yGMU4vc6wIK1NBw=="
},
{
"custom": {
"luid": "$plc.-08477rEYUyjcGlwb",
"moment": "2025-04-02T05:10:30.683Z"
},
"digest": "ecae2bffeccd098b8d1a78d320ff416344e535e8178111afa9a35e766cc1c7a1",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "gEZF6FmfOwB8LdQPsOcm+GI0dhcKFwTTIn2ruDuveEV5x1eB7w3zpGIH5nkFC9RSqCcUyYvzhhbST3+SrCizBg=="
}
],
"moment": "2025-04-02T05:10:30.583Z",
"owners": [
"SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U="
]
}
}
],
"page": {
"index": 0,
"limit": 10
}
}{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "d48c4a6bb91c37c85625280d90a114b4983ea57089a00964e33e68d165fbecd8",
"data": {
"reason": "api.request-timeout",
"detail": "Processing of request on server timed out. Your request may or may not have been processed."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "a/udgZN+Qebmkcw9GJ63MlvPiwwt6RZxzpc6+OyTTdE=",
"digest": "295ec195e7468e1514fe9eecc0b463f9efdb45341eb06af9115c6ad9f0e2f26d",
"result": "BJ7g1gTzJ/KeiwylEaiuzeMK7QXipBAkMaOndm3G0fjubmMCIS9wtl5wOm0X8BdYx3LLbyeh0C7zgQepsrCYBw==",
"custom": {
"moment": "2025-03-25T10:19:07.654Z"
}
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}Create a policy
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Request Body
application/json
Policy body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "http://localhost:3000/v2/policies" \ -H "x-ledger: rtp-ledger" \ -H "Content-Type: application/json" \ -d '{ "hash": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b", "data": { "handle": "studio", "access": [ { "action": "any", "signer": { "$record": "owner" } }, { "action": "read", "bearer": { "$signer": { "$record": "owner" } } } ], "values": [ { "action": { "$in": [ "read", "query" ] }, "bearer": { "$signer": { "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=" } }, "record": { "$in": [ "ledger", "signer", "circle-signer", "circle" ] } }, { "action": { "$in": [ "read", "query" ] }, "filter": { "handle": "member" }, "record": "schema" }, { "action": "create", "record": { "$in": [ "signer-proof", "report-proof" ] }, "signer": { "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=" } }, { "action": "update", "record": "signer", "signer": { "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=" } } ], "record": "any", "schema": "access" }, "meta": { "proofs": [ { "method": "ed25519-v2", "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=", "digest": "d59c1229d9d7b2bafaf12cdcb770990c2c81eb159f6f1eacdef031a1445cf638", "result": "C3zMQqrbS+zkLt6B7gIuM/0Z60LK90L9wAMrijQizkdku7Mteg0mw7eK3Ak7J1TewzRHgnc9iK3s4BWAd71mBw==", "custom": { "moment": "2025-04-02T05:10:31.803Z", "status": "created" } } ] } }'{
"hash": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b",
"data": {
"handle": "studio",
"access": [
{
"action": "any",
"signer": {
"$record": "owner"
}
},
{
"action": "read",
"bearer": {
"$signer": {
"$record": "owner"
}
}
}
],
"values": [
{
"action": {
"$in": [
"read",
"query"
]
},
"bearer": {
"$signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
"record": {
"$in": [
"ledger",
"signer",
"circle-signer",
"circle"
]
}
},
{
"action": {
"$in": [
"read",
"query"
]
},
"filter": {
"handle": "member"
},
"record": "schema"
},
{
"action": "create",
"record": {
"$in": [
"signer-proof",
"report-proof"
]
},
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
{
"action": "update",
"record": "signer",
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
}
],
"record": "any",
"schema": "access"
},
"luid": "$plc.-08478j6t_PTkU7Xe",
"meta": {
"proofs": [
{
"custom": {
"moment": "2025-04-02T05:10:31.803Z",
"status": "created"
},
"digest": "d59c1229d9d7b2bafaf12cdcb770990c2c81eb159f6f1eacdef031a1445cf638",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "C3zMQqrbS+zkLt6B7gIuM/0Z60LK90L9wAMrijQizkdku7Mteg0mw7eK3Ak7J1TewzRHgnc9iK3s4BWAd71mBw=="
},
{
"custom": {
"luid": "$plc.-08478j6t_PTkU7Xe",
"moment": "2025-04-02T05:10:31.820Z",
"status": "created"
},
"digest": "949768b2c8009c21f5c1ac53e497df83b5793929995b1612ade57d54c1cfadf7",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "pVIAnafvlXN4IdEwK/COnWfadXv+IE3lwo9CdcYlObSOdNxB9rIryI98wDFcmelplbX3Cl5XuU/Kjnca+iBOCg=="
}
],
"status": "created",
"moment": "2025-04-02T05:10:31.817Z",
"owners": [
"gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
]
}
}{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "7ZMqyx5Lk3PQwNrJvGIs9eT6ahcUKXZ8SbRj4WyF2dQ=",
"digest": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"result": "VFp8RxnT2h+JK9W5/nJfLZdV1uLKXHBL5RwpnbZ4qDz3J1Ks4eOj7y9QVMhmwlIa5AQlNbdT3GJcvH8xo3WhBA=="
}
]
}
}{
"hash": "9e518d3f4a7c8b67ad43fcf9b6a21e0c5f9b2a5e7d6c3b8a1f4e7d0c9b8a7f5e",
"data": {
"reason": "record.duplicated",
"detail": "Ledger with handle ach already exists."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "QpI4V3K6NzJLbRWCGxdHF7XYT9w2jVkArMpLoFa84s4=",
"digest": "9e518d3f4a7c8b67ad43fcf9b6a21e0c5f9b2a5e7d6c3b8a1f4e7d0c9b8a7f5e",
"result": "jR3PQvN7Dy4GcXshzZIa5qd6me9CyiTUwRlJo8fkHpv2jlYE+Hx/D0FSrT2y6MCcSjFnV3dlUmWxJrb5F+kzDQ=="
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}Read a policy
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Path Parameters
The unique identifier of the record - it is luid or handle (address).
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "http://localhost:3000/v2/policies/admin" \ -H "x-ledger: rtp-ledger"{
"hash": "193e9f8fdfdce6b0ab19203011dede7dc51216235b7f7b3c2920e37eef0075f9",
"data": {
"parent": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b",
"handle": "studio",
"access": [
{
"action": "any",
"signer": {
"$record": "owner"
}
},
{
"action": "read",
"bearer": {
"$signer": {
"$record": "owner"
}
}
}
],
"values": [
{
"action": "any",
"bearer": {
"$signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
"record": {
"$in": [
"schema",
"wallet",
"circle-signer",
"circle"
]
},
"signer": {
"$circle": "admin@bank17.com"
}
},
{
"action": {
"$in": [
"read",
"query"
]
},
"filter": {
"handle": "member"
},
"record": "schema"
},
{
"action": "create",
"record": {
"$in": [
"signer-proof",
"report-proof"
]
},
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
{
"action": "update",
"record": "signer",
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
}
],
"record": "any",
"schema": "access"
},
"luid": "$plc.-08478j6t_PTkU7Xe",
"meta": {
"proofs": [
{
"custom": {
"moment": "2025-04-02T05:10:32.132Z"
},
"digest": "e7308068245555fe23cdea6f3cd713a39fc39d0d9af7c91663c7d09e1be654b3",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "Fi0Ckj+xNwvk3IMd//J1f6w6ejHJ5jEx/H+wPybdUSbwVOU6wFadIeYlixLfxIkhn8jHRgLsQroyzEvz1QmICQ=="
},
{
"custom": {
"luid": "$plc.-08478j6t_PTkU7Xe",
"moment": "2025-04-02T05:10:32.150Z"
},
"digest": "72e9e6ae95506c054a1e8a37c6467447feeb1ee0b55fc1d4ffd63a74aa51b863",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "PquGL90ulNmtvHw1mQdRDCiYB775JPAuqCreep/qVPgf3kFOwFOleJxB+SgyqKZZPu4qAgFNR1h1SOOU0C7yCw=="
},
{
"custom": {
"moment": "2025-04-02T05:10:30.823Z",
"status": "approved",
"operation": "authorization"
},
"digest": "bfae8a961721155583d9c2bb35c88bfe01a59d85eacd0412ad2544eb2165e6e5",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "nOog0n7HTQOTh1VEy5TAHkxkee5LfRcE0Pq992gv6MxO9J+iZDYsMKxQnmB7Sz2wdnJ8c7ihmRQCjNKbzlwUDg=="
}
],
"status": "approved",
"moment": "2025-04-02T05:10:32.148Z",
"owners": [
"gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
]
}
}{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "7ZMqyx5Lk3PQwNrJvGIs9eT6ahcUKXZ8SbRj4WyF2dQ=",
"digest": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"result": "VFp8RxnT2h+JK9W5/nJfLZdV1uLKXHBL5RwpnbZ4qDz3J1Ks4eOj7y9QVMhmwlIa5AQlNbdT3GJcvH8xo3WhBA=="
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}Drop a policy
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Path Parameters
The unique identifier of the record - it is luid or handle (address).
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Request Body
application/json
Policy drop body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
text/plain
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "http://localhost:3000/v2/policies/admin" \ -H "x-ledger: rtp-ledger" \ -H "Content-Type: application/json" \ -d '{ "data": { "parent": "193e9f8fdfdce6b0ab19203011dede7dc51216235b7f7b3c2920e37eef0075f9" }, "hash": "b8f478d31f1a8f161753e0a78128b097bf1876dd24de404193cad4e347d5e17c", "luid": "$plc.-08478j6t_PTkU7Xe", "meta": { "proofs": [ { "method": "ed25519-v2", "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=", "digest": "65af3595159da5ccddce35a989aa83d182bbe361b8d6fd7ce3b12fcff4ad72c7", "result": "HU/pUMm9RGuvVjvH8ybcV3Lj97N/wgP8rN7DLMTrNFmrhLl70QWMpnzikvUs+kH12tvk7v0oCgONiglIb6dEDQ==", "custom": { "moment": "2025-04-02T05:10:33.895Z", "status": "dropped" } } ], "status": "created", "owners": [ "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=" ] } }'""{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "7ZMqyx5Lk3PQwNrJvGIs9eT6ahcUKXZ8SbRj4WyF2dQ=",
"digest": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"result": "VFp8RxnT2h+JK9W5/nJfLZdV1uLKXHBL5RwpnbZ4qDz3J1Ks4eOj7y9QVMhmwlIa5AQlNbdT3GJcvH8xo3WhBA=="
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}Update a policy
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Path Parameters
The unique identifier of the record - it is luid or handle (address).
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Request Body
application/json
Policy body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "http://localhost:3000/v2/policies/admin" \ -H "x-ledger: rtp-ledger" \ -H "Content-Type: application/json" \ -d '{ "hash": "193e9f8fdfdce6b0ab19203011dede7dc51216235b7f7b3c2920e37eef0075f9", "luid": "$plc.-08478j6t_PTkU7Xe", "data": { "handle": "studio", "access": [ { "action": "any", "signer": { "$record": "owner" } }, { "action": "read", "bearer": { "$signer": { "$record": "owner" } } } ], "values": [ { "action": "any", "bearer": { "$signer": { "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=" } }, "record": { "$in": [ "schema", "wallet", "circle-signer", "circle" ] }, "signer": { "$circle": "admin@bank17.com" } }, { "action": { "$in": [ "read", "query" ] }, "filter": { "handle": "member" }, "record": "schema" }, { "action": "create", "record": { "$in": [ "signer-proof", "report-proof" ] }, "signer": { "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=" } }, { "action": "update", "record": "signer", "signer": { "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=" } } ], "record": "any", "schema": "access", "parent": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b" }, "meta": { "proofs": [ { "method": "ed25519-v2", "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=", "digest": "e7308068245555fe23cdea6f3cd713a39fc39d0d9af7c91663c7d09e1be654b3", "result": "Fi0Ckj+xNwvk3IMd//J1f6w6ejHJ5jEx/H+wPybdUSbwVOU6wFadIeYlixLfxIkhn8jHRgLsQroyzEvz1QmICQ==", "custom": { "moment": "2025-04-02T05:10:32.132Z" } } ] } }'{
"hash": "193e9f8fdfdce6b0ab19203011dede7dc51216235b7f7b3c2920e37eef0075f9",
"data": {
"parent": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b",
"handle": "studio",
"access": [
{
"action": "any",
"signer": {
"$record": "owner"
}
},
{
"action": "read",
"bearer": {
"$signer": {
"$record": "owner"
}
}
}
],
"values": [
{
"action": "any",
"bearer": {
"$signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
"record": {
"$in": [
"schema",
"wallet",
"circle-signer",
"circle"
]
},
"signer": {
"$circle": "admin@bank17.com"
}
},
{
"action": {
"$in": [
"read",
"query"
]
},
"filter": {
"handle": "member"
},
"record": "schema"
},
{
"action": "create",
"record": {
"$in": [
"signer-proof",
"report-proof"
]
},
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
{
"action": "update",
"record": "signer",
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
}
],
"record": "any",
"schema": "access"
},
"luid": "$plc.-08478j6t_PTkU7Xe",
"meta": {
"proofs": [
{
"custom": {
"moment": "2025-04-02T05:10:32.132Z"
},
"digest": "e7308068245555fe23cdea6f3cd713a39fc39d0d9af7c91663c7d09e1be654b3",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "Fi0Ckj+xNwvk3IMd//J1f6w6ejHJ5jEx/H+wPybdUSbwVOU6wFadIeYlixLfxIkhn8jHRgLsQroyzEvz1QmICQ=="
},
{
"custom": {
"luid": "$plc.-08478j6t_PTkU7Xe",
"moment": "2025-04-02T05:10:32.150Z"
},
"digest": "72e9e6ae95506c054a1e8a37c6467447feeb1ee0b55fc1d4ffd63a74aa51b863",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "PquGL90ulNmtvHw1mQdRDCiYB775JPAuqCreep/qVPgf3kFOwFOleJxB+SgyqKZZPu4qAgFNR1h1SOOU0C7yCw=="
}
],
"status": "created",
"moment": "2025-04-02T05:10:32.148Z",
"owners": [
"gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
]
}
}{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "7ZMqyx5Lk3PQwNrJvGIs9eT6ahcUKXZ8SbRj4WyF2dQ=",
"digest": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"result": "VFp8RxnT2h+JK9W5/nJfLZdV1uLKXHBL5RwpnbZ4qDz3J1Ks4eOj7y9QVMhmwlIa5AQlNbdT3GJcvH8xo3WhBA=="
}
]
}
}{
"hash": "9e518d3f4a7c8b67ad43fcf9b6a21e0c5f9b2a5e7d6c3b8a1f4e7d0c9b8a7f5e",
"data": {
"reason": "record.duplicated",
"detail": "Ledger with handle ach already exists."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "QpI4V3K6NzJLbRWCGxdHF7XYT9w2jVkArMpLoFa84s4=",
"digest": "9e518d3f4a7c8b67ad43fcf9b6a21e0c5f9b2a5e7d6c3b8a1f4e7d0c9b8a7f5e",
"result": "jR3PQvN7Dy4GcXshzZIa5qd6me9CyiTUwRlJo8fkHpv2jlYE+Hx/D0FSrT2y6MCcSjFnV3dlUmWxJrb5F+kzDQ=="
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}Sign a policy
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Path Parameters
The unique identifier of the record - it is luid or handle (address).
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Request Body
application/json
Proof body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "http://localhost:3000/v2/policies/admin/proofs" \ -H "x-ledger: rtp-ledger" \ -H "Content-Type: application/json" \ -d '{ "method": "ed25519-v2", "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=", "digest": "bfae8a961721155583d9c2bb35c88bfe01a59d85eacd0412ad2544eb2165e6e5", "result": "nOog0n7HTQOTh1VEy5TAHkxkee5LfRcE0Pq992gv6MxO9J+iZDYsMKxQnmB7Sz2wdnJ8c7ihmRQCjNKbzlwUDg==", "custom": { "moment": "2025-04-02T05:10:30.823Z", "status": "approved", "operation": "authorization" } }'{
"hash": "193e9f8fdfdce6b0ab19203011dede7dc51216235b7f7b3c2920e37eef0075f9",
"data": {
"parent": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b",
"handle": "studio",
"access": [
{
"action": "any",
"signer": {
"$record": "owner"
}
},
{
"action": "read",
"bearer": {
"$signer": {
"$record": "owner"
}
}
}
],
"values": [
{
"action": "any",
"bearer": {
"$signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
"record": {
"$in": [
"schema",
"wallet",
"circle-signer",
"circle"
]
},
"signer": {
"$circle": "admin@bank17.com"
}
},
{
"action": {
"$in": [
"read",
"query"
]
},
"filter": {
"handle": "member"
},
"record": "schema"
},
{
"action": "create",
"record": {
"$in": [
"signer-proof",
"report-proof"
]
},
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
{
"action": "update",
"record": "signer",
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
}
],
"record": "any",
"schema": "access"
},
"luid": "$plc.-08478j6t_PTkU7Xe",
"meta": {
"proofs": [
{
"custom": {
"moment": "2025-04-02T05:10:32.132Z"
},
"digest": "e7308068245555fe23cdea6f3cd713a39fc39d0d9af7c91663c7d09e1be654b3",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "Fi0Ckj+xNwvk3IMd//J1f6w6ejHJ5jEx/H+wPybdUSbwVOU6wFadIeYlixLfxIkhn8jHRgLsQroyzEvz1QmICQ=="
},
{
"custom": {
"luid": "$plc.-08478j6t_PTkU7Xe",
"moment": "2025-04-02T05:10:32.150Z"
},
"digest": "72e9e6ae95506c054a1e8a37c6467447feeb1ee0b55fc1d4ffd63a74aa51b863",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "PquGL90ulNmtvHw1mQdRDCiYB775JPAuqCreep/qVPgf3kFOwFOleJxB+SgyqKZZPu4qAgFNR1h1SOOU0C7yCw=="
},
{
"custom": {
"moment": "2025-04-02T05:10:30.823Z",
"status": "approved",
"operation": "authorization"
},
"digest": "bfae8a961721155583d9c2bb35c88bfe01a59d85eacd0412ad2544eb2165e6e5",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "nOog0n7HTQOTh1VEy5TAHkxkee5LfRcE0Pq992gv6MxO9J+iZDYsMKxQnmB7Sz2wdnJ8c7ihmRQCjNKbzlwUDg=="
}
],
"status": "approved",
"moment": "2025-04-02T05:10:32.148Z",
"owners": [
"gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
]
}
}{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "7ZMqyx5Lk3PQwNrJvGIs9eT6ahcUKXZ8SbRj4WyF2dQ=",
"digest": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"result": "VFp8RxnT2h+JK9W5/nJfLZdV1uLKXHBL5RwpnbZ4qDz3J1Ks4eOj7y9QVMhmwlIa5AQlNbdT3GJcvH8xo3WhBA=="
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}Check access in a policy
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Path Parameters
The unique identifier of the record - it is luid or handle (address).
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Request Body
application/json
Access check payload
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "http://localhost:3000/v2/policies/admin/access/\!check" \ -H "x-ledger: rtp-ledger" \ -H "Content-Type: application/json" \ -d '{ "hash": "82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70", "data": { "action": "update" }, "meta": { "proofs": [ { "method": "ed25519-v2", "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=", "digest": "d2f548f6dadd6800db9791a4a5fc3a5eeedf7e2f0848f9890d9b220ef822dae4", "result": "kZ59e0PRDeSOGYaOcDKGxhIoxmS/wWtbrmGEwMEedtPr3lX5tdsQdGhcuytkUVtzSQEKxHqA3hsFstnR3y2DDg==", "custom": { "moment": "2025-04-02T05:10:32.834Z" } } ] } }'{
"hash": "7e2d2b0185f46f4e38d368cb4cdd91f4ac9f4af638a38533368f10e7814377e1",
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"digest": "73532bd31bc79a6045817967b3a95b52475dc24fb5d297090a66b3838c55dde1",
"result": "9oovZMdqipiG5nd5YP7BGJZ2r1GbLARY3T4Pu5+xfX5hOcANQKUzrP+8Wbyc4o+jfgpsPAcITw2mJUOD6ne+Bg==",
"custom": {
"moment": "2025-04-02T05:10:32.846Z"
}
}
],
"moment": "2025-04-02T05:10:32.846Z"
},
"data": [
{
"hash": "025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d",
"data": {
"action": "any",
"record": "any"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"digest": "905f935e634beaf69f39bb8caa6c085fa6fa16995f6818a20c9f5b3291355a5e",
"result": "4MET/hneTnJUdclUdgXf3wsePl+cKkY9s5TUApsadin742OP+0N8Qh+A9xrUrDRxFv19Ie4sppu8z+IwVaTKCw==",
"custom": {
"moment": "2025-04-02T05:10:32.845Z"
}
}
],
"moment": "2025-04-02T05:10:32.845Z"
}
},
{
"hash": "cab43beb96d278283259799511c379b9c1477fb583af2ecd262c0d0f0788d664",
"data": {
"action": "any",
"record": "policy"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"digest": "f88194473abedd52214eea156f23d37d72f2c62d35e5d973a0d43b9b5a05c67b",
"result": "qFC+1IXhQahTa3ZES7LP+7QrMDycYKdmTBnJc59Bk+pPNa/LtCVBAlLHwJh7eB448/Ha7iMlTkSCZ0NBpm/nDA==",
"custom": {
"moment": "2025-04-02T05:10:32.845Z"
}
}
],
"moment": "2025-04-02T05:10:32.845Z"
}
}
]
}{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "7ZMqyx5Lk3PQwNrJvGIs9eT6ahcUKXZ8SbRj4WyF2dQ=",
"digest": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"result": "VFp8RxnT2h+JK9W5/nJfLZdV1uLKXHBL5RwpnbZ4qDz3J1Ks4eOj7y9QVMhmwlIa5AQlNbdT3GJcvH8xo3WhBA=="
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}List a policy changes
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Path Parameters
The unique identifier of the record - it is luid or handle (address).
Query Parameters
Page query parameters
Base filter parameters
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "http://localhost:3000/v2/policies/admin/changes?limit=20&index=0&data.publicKey.%24eq=pjcf%2Fa9F0IRXTWqsgb7rtSTbI3HdeZ8DI5l8AcP%2B25Q%3D" \ -H "x-ledger: rtp-ledger"{
"hash": "d52ae30e4d806224df0b6344135f510059c716c898789a7618d1e00a7c69a91f",
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"digest": "cb5cb1225650ccca9dcce93ed00ff50eff58ee57b2218764abd9ab0a9a926b02",
"result": "YRFvjnLFj9ZDCt5ai7ldWuGgBkJPFYGmjdSikV/MbMC8iz63aNiqeMNwCEHifNhhA3i8i70kkyM6oSpH0SVKAA==",
"custom": {
"moment": "2025-04-02T05:10:33.384Z"
}
}
],
"moment": "2025-04-02T05:10:33.384Z"
},
"data": [
{
"hash": "193e9f8fdfdce6b0ab19203011dede7dc51216235b7f7b3c2920e37eef0075f9",
"luid": "$plc.-08478j6t_PTkU7Xe",
"meta": {
"proofs": [
{
"custom": {
"moment": "2025-04-02T05:10:32.132Z"
},
"digest": "e7308068245555fe23cdea6f3cd713a39fc39d0d9af7c91663c7d09e1be654b3",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "Fi0Ckj+xNwvk3IMd//J1f6w6ejHJ5jEx/H+wPybdUSbwVOU6wFadIeYlixLfxIkhn8jHRgLsQroyzEvz1QmICQ=="
},
{
"custom": {
"luid": "$plc.-08478j6t_PTkU7Xe",
"moment": "2025-04-02T05:10:32.150Z"
},
"digest": "72e9e6ae95506c054a1e8a37c6467447feeb1ee0b55fc1d4ffd63a74aa51b863",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "PquGL90ulNmtvHw1mQdRDCiYB775JPAuqCreep/qVPgf3kFOwFOleJxB+SgyqKZZPu4qAgFNR1h1SOOU0C7yCw=="
},
{
"custom": {
"moment": "2025-04-02T05:10:30.823Z",
"status": "approved",
"operation": "authorization"
},
"digest": "bfae8a961721155583d9c2bb35c88bfe01a59d85eacd0412ad2544eb2165e6e5",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "nOog0n7HTQOTh1VEy5TAHkxkee5LfRcE0Pq992gv6MxO9J+iZDYsMKxQnmB7Sz2wdnJ8c7ihmRQCjNKbzlwUDg=="
}
],
"status": "approved",
"moment": "2025-04-02T05:10:32.529Z",
"change": 3,
"action": "update",
"owners": [
"gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
],
"labels": null
},
"data": {
"parent": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b",
"handle": "studio",
"access": [
{
"action": "any",
"signer": {
"$record": "owner"
}
},
{
"action": "read",
"bearer": {
"$signer": {
"$record": "owner"
}
}
}
],
"values": [
{
"action": "any",
"bearer": {
"$signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
"record": {
"$in": [
"schema",
"wallet",
"circle-signer",
"circle"
]
},
"signer": {
"$circle": "admin@bank17.com"
}
},
{
"action": {
"$in": [
"read",
"query"
]
},
"filter": {
"handle": "member"
},
"record": "schema"
},
{
"action": "create",
"record": {
"$in": [
"signer-proof",
"report-proof"
]
},
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
{
"action": "update",
"record": "signer",
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
}
],
"record": "any",
"schema": "access"
}
},
{
"hash": "193e9f8fdfdce6b0ab19203011dede7dc51216235b7f7b3c2920e37eef0075f9",
"luid": "$plc.-08478j6t_PTkU7Xe",
"meta": {
"proofs": [
{
"custom": {
"moment": "2025-04-02T05:10:32.132Z"
},
"digest": "e7308068245555fe23cdea6f3cd713a39fc39d0d9af7c91663c7d09e1be654b3",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "Fi0Ckj+xNwvk3IMd//J1f6w6ejHJ5jEx/H+wPybdUSbwVOU6wFadIeYlixLfxIkhn8jHRgLsQroyzEvz1QmICQ=="
},
{
"custom": {
"luid": "$plc.-08478j6t_PTkU7Xe",
"moment": "2025-04-02T05:10:32.150Z"
},
"digest": "72e9e6ae95506c054a1e8a37c6467447feeb1ee0b55fc1d4ffd63a74aa51b863",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "PquGL90ulNmtvHw1mQdRDCiYB775JPAuqCreep/qVPgf3kFOwFOleJxB+SgyqKZZPu4qAgFNR1h1SOOU0C7yCw=="
}
],
"status": "created",
"moment": "2025-04-02T05:10:32.148Z",
"change": 2,
"action": "update",
"owners": [
"gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
],
"labels": null
},
"data": {
"parent": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b",
"handle": "studio",
"access": [
{
"action": "any",
"signer": {
"$record": "owner"
}
},
{
"action": "read",
"bearer": {
"$signer": {
"$record": "owner"
}
}
}
],
"values": [
{
"action": "any",
"bearer": {
"$signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
"record": {
"$in": [
"schema",
"wallet",
"circle-signer",
"circle"
]
},
"signer": {
"$circle": "admin@bank17.com"
}
},
{
"action": {
"$in": [
"read",
"query"
]
},
"filter": {
"handle": "member"
},
"record": "schema"
},
{
"action": "create",
"record": {
"$in": [
"signer-proof",
"report-proof"
]
},
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
{
"action": "update",
"record": "signer",
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
}
],
"record": "any",
"schema": "access"
}
},
{
"hash": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b",
"luid": "$plc.-08478j6t_PTkU7Xe",
"meta": {
"proofs": [
{
"custom": {
"moment": "2025-04-02T05:10:31.803Z",
"status": "created"
},
"digest": "d59c1229d9d7b2bafaf12cdcb770990c2c81eb159f6f1eacdef031a1445cf638",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "C3zMQqrbS+zkLt6B7gIuM/0Z60LK90L9wAMrijQizkdku7Mteg0mw7eK3Ak7J1TewzRHgnc9iK3s4BWAd71mBw=="
},
{
"custom": {
"luid": "$plc.-08478j6t_PTkU7Xe",
"moment": "2025-04-02T05:10:31.820Z",
"status": "created"
},
"digest": "949768b2c8009c21f5c1ac53e497df83b5793929995b1612ade57d54c1cfadf7",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "pVIAnafvlXN4IdEwK/COnWfadXv+IE3lwo9CdcYlObSOdNxB9rIryI98wDFcmelplbX3Cl5XuU/Kjnca+iBOCg=="
}
],
"status": "created",
"moment": "2025-04-02T05:10:31.817Z",
"change": 1,
"action": "create",
"owners": [
"gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
],
"labels": null
},
"data": {
"handle": "studio",
"access": [
{
"action": "any",
"signer": {
"$record": "owner"
}
},
{
"action": "read",
"bearer": {
"$signer": {
"$record": "owner"
}
}
}
],
"values": [
{
"action": {
"$in": [
"read",
"query"
]
},
"bearer": {
"$signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
"record": {
"$in": [
"ledger",
"signer",
"circle-signer",
"circle"
]
}
},
{
"action": {
"$in": [
"read",
"query"
]
},
"filter": {
"handle": "member"
},
"record": "schema"
},
{
"action": "create",
"record": {
"$in": [
"signer-proof",
"report-proof"
]
},
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
{
"action": "update",
"record": "signer",
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
}
],
"record": "any",
"schema": "access"
}
}
],
"page": {
"index": 0,
"limit": 10,
"total": 3
}
}{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "7ZMqyx5Lk3PQwNrJvGIs9eT6ahcUKXZ8SbRj4WyF2dQ=",
"digest": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"result": "VFp8RxnT2h+JK9W5/nJfLZdV1uLKXHBL5RwpnbZ4qDz3J1Ks4eOj7y9QVMhmwlIa5AQlNbdT3GJcvH8xo3WhBA=="
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}Read a policy change
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Path Parameters
The unique identifier of the record - it is luid or handle (address).
The change number of the record
1 <= valueHeader Parameters
The unique identifier of ledger in context for multi tenant requests.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "http://localhost:3000/v2/policies/admin/changes/3" \ -H "x-ledger: rtp-ledger"{
"hash": "5492a5f87a77a605bb270b37fbf0b615cb944e13d460735b312385d274afff0b",
"luid": "$plc.-08478j6t_PTkU7Xe",
"meta": {
"proofs": [
{
"custom": {
"moment": "2025-04-02T05:10:31.803Z",
"status": "created"
},
"digest": "d59c1229d9d7b2bafaf12cdcb770990c2c81eb159f6f1eacdef031a1445cf638",
"method": "ed25519-v2",
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=",
"result": "C3zMQqrbS+zkLt6B7gIuM/0Z60LK90L9wAMrijQizkdku7Mteg0mw7eK3Ak7J1TewzRHgnc9iK3s4BWAd71mBw=="
},
{
"custom": {
"luid": "$plc.-08478j6t_PTkU7Xe",
"moment": "2025-04-02T05:10:31.820Z",
"status": "created"
},
"digest": "949768b2c8009c21f5c1ac53e497df83b5793929995b1612ade57d54c1cfadf7",
"method": "ed25519-v2",
"public": "SYqAsweCOCByOQrC9DSjAmIVlyocndNaB/GyjxfQY5U=",
"result": "pVIAnafvlXN4IdEwK/COnWfadXv+IE3lwo9CdcYlObSOdNxB9rIryI98wDFcmelplbX3Cl5XuU/Kjnca+iBOCg=="
}
],
"status": "created",
"moment": "2025-04-02T05:10:31.817Z",
"change": 1,
"action": "create",
"owners": [
"gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
],
"labels": null
},
"data": {
"handle": "studio",
"access": [
{
"action": "any",
"signer": {
"$record": "owner"
}
},
{
"action": "read",
"bearer": {
"$signer": {
"$record": "owner"
}
}
}
],
"values": [
{
"action": {
"$in": [
"read",
"query"
]
},
"bearer": {
"$signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
"record": {
"$in": [
"ledger",
"signer",
"circle-signer",
"circle"
]
}
},
{
"action": {
"$in": [
"read",
"query"
]
},
"filter": {
"handle": "member"
},
"record": "schema"
},
{
"action": "create",
"record": {
"$in": [
"signer-proof",
"report-proof"
]
},
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
},
{
"action": "update",
"record": "signer",
"signer": {
"public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck="
}
}
],
"record": "any",
"schema": "access"
}
}{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "7ZMqyx5Lk3PQwNrJvGIs9eT6ahcUKXZ8SbRj4WyF2dQ=",
"digest": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"result": "VFp8RxnT2h+JK9W5/nJfLZdV1uLKXHBL5RwpnbZ4qDz3J1Ks4eOj7y9QVMhmwlIa5AQlNbdT3GJcvH8xo3WhBA=="
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}Drop a policy
Authorization
BearerAuth JWT signed by private key. The presence of this token is not mandatory. It becomes required through the configuration of authorization access rules that requires a token to grant access. Once sent, the token is validated for its format, signature and expiration, regardless of the presence of access rules.
In: header
Path Parameters
The unique identifier of the record - it is luid or handle (address).
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Request Body
application/json
Policy drop body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
text/plain
application/json
application/json
application/json
application/json
application/json
curl -X POST "http://localhost:3000/v2/policies/admin/drop" \ -H "x-ledger: rtp-ledger" \ -H "Content-Type: application/json" \ -d '{ "data": { "parent": "193e9f8fdfdce6b0ab19203011dede7dc51216235b7f7b3c2920e37eef0075f9" }, "hash": "b8f478d31f1a8f161753e0a78128b097bf1876dd24de404193cad4e347d5e17c", "luid": "$plc.-08478j6t_PTkU7Xe", "meta": { "proofs": [ { "method": "ed25519-v2", "public": "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=", "digest": "65af3595159da5ccddce35a989aa83d182bbe361b8d6fd7ce3b12fcff4ad72c7", "result": "HU/pUMm9RGuvVjvH8ybcV3Lj97N/wgP8rN7DLMTrNFmrhLl70QWMpnzikvUs+kH12tvk7v0oCgONiglIb6dEDQ==", "custom": { "moment": "2025-04-02T05:10:33.895Z", "reason": "Policy no longer needed", "status": "dropped" } } ], "status": "created", "owners": [ "gef6OID0o7ZFGTXutV62mh+zv5kgkFP3QLiR+N7syck=" ] } }'""{
"hash": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "JdK8m5SqXGCiZ1TdXQbCe9ECqwL3Kg1UZxj4r9gT+cA=",
"digest": "7846195d1e2f8bc75aa0ab35a238b70dc28c809b8fde33ea7d29e9f8d6d6841b",
"result": "X2m5A9Yxh4FRPgj6wgJKN0dYrfgXSq3hx8UX1jnmJ7fVHtQCnAp8MepXDZQhNkMsJd7a9HPk96hmvYXTFcHzAw=="
}
]
}
}{
"hash": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=",
"digest": "4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a",
"result": "0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ=="
}
]
}
}{
"hash": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "7ZMqyx5Lk3PQwNrJvGIs9eT6ahcUKXZ8SbRj4WyF2dQ=",
"digest": "b29a7f4e1d5c3b6a8f7e0d9c2b5a8f7e0d3c6b9a8f7e1d4c7b0a3f6e9d2c5b8a",
"result": "VFp8RxnT2h+JK9W5/nJfLZdV1uLKXHBL5RwpnbZ4qDz3J1Ks4eOj7y9QVMhmwlIa5AQlNbdT3GJcvH8xo3WhBA=="
}
]
}
}{
"hash": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"data": {
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\"",
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\\\-+.]+$\""
}
]
}
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "vL8jKxm5PqTnJfEaRs2uOdY7gzX4CS9WbHlN3cAiBV0=",
"digest": "3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4c7b0a3f6e",
"result": "uYxJLd2QGkEfT8rP7mCn1lHVzBvIaSK4jFqpO5ZwW9oADnMbg6yeiUsvN3tcXj0RwYxkrq5aLm9f4y2Ko8WwDw=="
}
]
}
}{
"hash": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "KxiLpB3v8VEdmYsT2RwNq5o1Cz9gHJfU4aAySt7D0X8=",
"digest": "e1d4c7b0a3f6e9d2c5b8a1f4e7d0c3b6a9f2e5d8c1b4a7f0e3d6c9b2a5f8e1d4",
"result": "LzRmNh7x5TQYoqjw30BKDaZnbGcFUsX8v4tpEsr9P6iW1dyJkVC2uALfY8HdpM3eX9w0On12cqYxEtveKoFZDQ=="
}
]
}
}Effect
An Effect is a ledger component that defines automated behaviors triggered by changes in ledger data. When a change occurs, such as a transaction or update to a record, the ledger broadcasts an event identified by a specific signal. Effects can be configured to listen for these signals and, based on defined filters, execute actions like notifying external systems via webhooks or integrating with other services. Effects are crucial for extending the ledger's capabilities and integrating it with external workflows or systems.
Schema
A Schema is a ledger record that specifies the structure and validation constraints for other records. When a record references a schema, it must conform to the schema's rules before it can be stored in the ledger. Schemas enable a flexible and extensible data model, allowing the ledger to adapt to new use cases while maintaining data integrity.