Slangroom examples ​
db plugin examples ​
read a record from a table ​
gherkin
Rule unknown ignore
Given I connect to 'database' and send record 'id' and send table 'table' and read the record of the table and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"id": 1,
"table": "table"
}json
{
"database": "sqlite://user:password@url/to/your/db"
}save a variable in a database table ​
gherkin
Rule unknown ignore
Given I have a 'string' named 'database'
Given I have a 'string' named 'table'
When I set 'variable' to 'value to be stored' as 'string'
When I set 'name' to 'key under which save the variable' as 'string'
Then print the 'database'
Then print the 'variable'
Then print the 'name'
Then print the 'table'
Then I connect to 'database' and send variable 'variable' and send name 'name' and send table 'table' and save the variable in the database tablejson
{
"table": "table"
}json
{
"database": "sqlite://user:password@url/to/your/db"
}execute generic sql statements ​
gherkin
Rule unknown ignore
Given I connect to 'database' and send statement 'statement' and execute sql statement and output into 'result'
Given I have a 'string array' named 'result'
Then print all datajson
{
"statement": "SELECT * FROM table"
}json
{
"database": "sqlite://user:password@url/to/your/db"
}execute generic sql statements with parameters ​
gherkin
Rule unknown ignore
Given I connect to 'database' and send statement 'statement' and send parameters 'parameters' and execute parametrized sql statement and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"statement": "INSERT INTO table (name) VALUES (?)",
"params": ["John Doe"]
}json
{
"database": "sqlite://user:password@url/to/your/db"
}dcql plugin examples ​
validate vp_token against a dcql_query ​
gherkin
Prepare: validate the vp_token against dcql_query where vp_token is 'vp_token', dcql_query is 'dcql_query'
Given I have a 'string' named 'vp_token'
When I set 'result' to 'OK' as 'string'
Then print the 'result'json
{
"vp_token": "{\"my_dcsdjwt_credential\":[\"eyJhbGciOiAiRVMyNTYiLCAidHlwIjogImRjK3NkLWp3dCJ9.eyJfc2QiOiBbIk5UWGptakduN09rRTBqZ3N1aVc0YWgzcllQVVVEYlJvcHg0T1BUbkRrLUUiXSwgIl9zZF9hbGciOiAic2hhLTI1NiIsICJjbmYiOiB7Imp3ayI6IHsiY3J2IjogIlAtMjU2IiwgImt0eSI6ICJFQyIsICJ4IjogInpKLTR1d0VWVlYxQW9GcW1yZVlzUlh1SjhGbzVHRVVUeTZ0aklBdjdUcFkiLCAieSI6ICJWb1h2YTNUSkdzSjluOVlXNXcwamUwenpTaGZic3dBZ3pIcjVMRkJIM2xnIn19LCAiZXhwIjogMTc5MjgzMTU2MywgImlhdCI6IDE3NjEyOTU1NjMsICJpc3MiOiAiaHR0cHM6Ly9pc3N1ZXIxLnplbnN3YXJtLmZvcmtib21iLmV1L2NyZWRlbnRpYWxfaXNzdWVyIiwgIm5iZiI6IDE3NjEyOTU1NjMsICJzdWIiOiAiZGlkOmR5bmU6c2FuZGJveC5zaWducm9vbTo0S0V5bVdnTERVZjFMTmNrZXhZOTZkZkt6NXZINzlkaURla2dMTVI5RldwSCIsICJ0eXBlIjogImRpc2NvdW50X2Zyb21fdm91Y2hlciJ9.4-SvoLq0DnQ399X8LkR7U_TBv7okJQmc0y7ShWBgYWryVs50YbkKH5cM4sar_QmPFTNqdOXgERzJMjqzcQVBUQ~WyJUX2doS3EyVlpwUFNGU19meVV3UTJRIiwgImhhc19kaXNjb3VudF9mcm9tX3ZvdWNoZXIiLCAyMF0~eyJhbGciOiJFUzI1NiIsInR5cCI6ImtiK2p3dCJ9.eyJhdWQiOiJkZWNlbnRyYWxpemVkX2lkZW50aWZpZXI6ZGlkOmR5bmU6c2FuZGJveC5nZW5lcmljaXNzdWVyOjRYeDVyQVdBRzJpREVnVlFSY0VKUFN1bmFpbXU2blczZGgzUlZKOHFydVo2I2VzMjU2X3B1YmxpY19rZXkiLCJpYXQiOjE3NjEzMTA5NDAsIm5vbmNlIjoiYjk1NGQ3ZjM3YmFmYWRlNTcyNmMwMDc4ZmUzNzU4MmE2NzUwZjY5YWRjMmJjMDZiYzE5MmI0ZTgyNjYwZWU1OSIsInNkX2hhc2giOiJXbFVBSDhuY3ZNU0VZNE9tbWN3SjRhUV9zdEZoVWNua3AxeVEtR0taMno0In0.z8e_ls0hIocjkNP9zlM6higpks3FfhIubkTaCmx26Lcic9gHAHtiOrZ_zmol3nGyf3Dy51mlBvvhojHrftm2ww\"]}"
}json
{
"dcql_query":{
"credentials":[
{
"id":"my_dcsdjwt_credential",
"format":"dc+sd-jwt",
"meta":{
"vct_values":[
"discount_from_voucher"
]
},
"claims":[
{
"path":[
"has_discount_from_voucher"
],
"values":[
20,
30
]
}
]
}
]
}
}did plugin examples ​
resolve a did ​
gherkin
Prepare 'did_document': resolve the did where did is 'did'
Given I have a 'string dictionary' named 'did_document'
Then print the datajson
{
"did": "did:dyne:admin:DMMYfDo7VpvKRHoJmiXvEpXrfbW3sCfhUBE4tBeXmNrJ"
}json
{}ethereum plugin examples ​
complex example ​
gherkin
Rule unknown ignore
Scenario 'ethereum': Store an object on eth
Given I connect to 'ethereum' and send address 'address' and read the ethereum nonce and output into 'ethereum_nonce'
Given I connect to 'ethereum' and read the suggested gas price and output into 'gas_price'
# from slangroom
Given I have a 'ethereum nonce'
Given I have a 'gas price'
# from keys
Given I have the 'keyring'
# from data
Given I have a 'ethereum address' named 'storage contract'
Given I have a 'string' named 'to be stored'
Given I have a 'gas limit'
# create the signed transaction to store the data
When I create the ethereum transaction to 'storage contract'
When I use the ethereum transaction to store 'to be stored'
When I create the signed ethereum transaction for chain 'fabt'
Then print the 'signed ethereum transaction'
Then I connect to 'ethereum' and send transaction 'signed_ethereum_transaction' and read the ethereum transaction id after broadcast and output into 'transaction_id'json
{
"gas_limit": "100000",
"storage_contract": "0x662c4017C01bA23c94257289Dab8C2757b472B81",
"to_be_srtored": "Some data",
}json
{
"ethereum": "http://78.47.38.223:9485",
"keyring": {
"ethereum": "078ad84d6c7a50c6dcd983d644da65e30d8cea063d8ea49aeb7ee7f0aaf6a4f7"
}
}read the ethereum balance ​
gherkin
Rule unknown ignore
Given I connect to 'ethereum' and send address 'address' and read the ethereum balance and output into 'balance'
Given I connect to 'ethereum' and send addresses 'addresses' and read the ethereum balance and output into 'balances'
Given I have a 'string' named 'balance'
Given I have a 'string array' named 'balances'
Then print the datajson
{
"address": "0x2D010920b43aFb54f8d5fB51c9354FbC674b28Fc",
"addresses": [
"0xc32510251F77382bb9214144D2c488408Ec2047C",
"0xFf02577F140557190693cFf549025e66119FEA52",
"0x4743879F5e9dc3fcE41E30380365441E8D14CCEc"
]
}json
{
"ethereum": "http://78.47.38.223:9485"
}read the ethereum transaction body ​
gherkin
Rule unknown ignore
Scenario 'ethereum': read transaction
Given I connect to 'ethereum' and send transaction_id 'tag' and read the ethereum bytes and output into 'hex_result'
Given I have a 'hex' named 'hex_result'
When I create the string from the ethereum bytes named 'hex_result'
When I rename the 'string' to 'string_result'
Then print datajson
{
"tag": "0467636a2557a1ccdaf10ce17ee74340096c510acfa9181c85756d43a8bed522"
}json
{
"ethereum": "http://78.47.38.223:9485"
}read the ethereum suggested gas price ​
gherkin
Rule unknown ignore
Scenario 'ethereum': read gas price
Given I connect to 'ethereum' and read the ethereum suggested gas price and output into 'gas_price'
Given I have a 'gas price'
Then print the datajson
{}json
{
"ethereum": "http://78.47.38.223:9485"
}read the ethereum nonce ​
gherkin
Rule unknown ignore
Scenario 'ethereum': read nonce
Given I connect to 'ethereum' and send address 'address' and read the ethereum nonce and output into 'ethereum_nonce'
Given I have a 'ethereum nonce'
Then print the 'ethereum_nonce'json
{
"address": "0x7d6df85bDBCe99151c813fd1DDE6BC007c523C27"
}json
{
"ethereum": "http://78.47.38.223:9485"
}read the ethereum transaction id after broadcast ​
gherkin
Rule unknown ignore
Given I connect to 'ethereum' and send transaction 'signed_transaction' and read the ethereum transaction id after broadcast and output into 'transaction_id'
Given I have a 'string' named 'transaction_id'
Then print the datajson
{
"signed_transaction": "f8ee8085174876e800830493e094e54c7b475644fbd918cfedc57b1c9179939921e680b884b374012b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003354686973206973206d7920666972737420646174612073746f726564206f6e20657468657265756d20626c6f636b636861696e0000000000000000000000000084ccc2c50ca0776b58c34145c9553b5235fe211a6237c48b90b4784bc6d86660b0236af3bab2a07b57259d71f12666d962eb7a06b2b8332323a614071d0b39c35181b2aee04b8e"
}json
{
"ethereum": "http://78.47.38.223:9485"
}fs plugin examples ​
verify file exists or does not exist ​
gherkin
Rule unknown ignore
Given I send path 'file_path_1' and verify file exists
Given I send path 'file_path_2' and verify file does not exist
Given I have a 'string' named 'file_path_1'
Then print the 'file_path_1'json
{
"file_path_1": "path/to/file/that/should/exists/from/FILES_DIR",
"file_path_2": "path/to/file/that/should/not/exists/from/FILES_DIR"
}json
{}list a directory content ​
gherkin
Rule unknown ignore
Given I send path 'directory_path' and list directory content and output into 'directory_content'
Given I have a 'string array' named 'directory_content'
Then print the 'directory_content'json
{
"directory_path": "path/to/directory/from/FILES_DIR"
}json
{}read json file ​
gherkin
Rule unknown ignore
Given I send path 'file_path' and read file content and output into 'file_content'
Given I have a 'string dictionay' named 'file_content'
Then print the 'file_content'json
{
"file_path": "path/to/file/from/FILES_DIR"
}json
{}read string file ​
gherkin
Rule unknown ignore
Given I send path 'file_path' and read verbatim file content and output into 'file_content'
Given I have a 'string' named 'file_content'
Then print the 'file_content'json
{
"file_path": "path/to/file/from/FILES_DIR"
}json
{}store in file ​
gherkin
Rule unknown ignore
Given I have a 'string' named 'file_path'
When I create the random object of '128' bits
Then print the 'random_object'
Then print the 'file_path'
Then I send path 'file_path' and send content 'random_object' and store in filejson
{
"file_path": "path/to/file/from/FILES_DIR"
}json
{}git plugin examples ​
clone repository ​
gherkin
Rule unknown ignore
Given I connect to 'url' and send path 'path' and clone repository
Given I have a 'string' named 'cloned_repository'
Then print the datajson
{
"cloned_repository": "true"
}json
{
"url": "https://github.com/dyne/slangroom",
"path": "slangroom"
}create new git commit ​
gherkin
Rule unknown ignore
Given I open 'path' and send commit 'commit' and create new git commit and output into 'commit_hash'
Given I have a 'string' named 'commit hash'
Then print the datajson
{
"commit": {
"author": "Jhon Doe",
"message": "docs: update readme",
"email": "jhon.doe@example.com",
"files": [ "README.md" ]
},
}json
{
"path": "slangroom"
}verify git repository ​
gherkin
Rule unknown ignore
Given I open 'path' and verify git repository
Given I have a 'string' named 'verified_git_repo'
Then print datajson
{
"verified_git_repo": "true"
}json
{
"path": "path/to/repository"
}helpers plugin examples ​
manipulate and compact ​
gherkin
Rule unknown ignore
Given I send array 'array' and manipulate and compact and output into 'result'
Given I have a 'string array' named 'result'
Then print the datajson
{
"the_array": [
0,
"c",
false,
"d",
""
]
}json
{}manipulate and concat ​
gherkin
Rule unknown ignore
Given I send array 'array' and send values 'values' and manipulate and concat and output into 'result'
Given I have a 'string array' named 'result'
Then print the datajson
{
"array": [
"first",
"second"
]
}json
{
"values": [
"third",
"foruth",
"fifth"
]
}manipulate and get ​
gherkin
Rule unknown ignore
Given I send object 'object' and send path 'path' and manipulate and get and output into 'result'
Given I have a 'string' named 'result'
Then print the datajson
{
"object": {
"root": {
"element": "value"
}
}
}json
{
"the_path": "root.element"
}manipulate and merge ​
gherkin
Rule unknown ignore
Given I send object 'object' and send sources 'sources' and manipulate and merge and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the datajson
{
"object": {
"names": {
"first": "Bella",
"third": "Owen"
},
"surnames": {
"first": "Allen",
"second": "Briggs"
}
}
}json
{
"sources": [
{
"names": {
"second": "Jhon"
}
},
{
"surnames": {
"third": "Doe"
}
}
]
}manipulate and omit ​
gherkin
Rule unknown ignore
Given I send object 'object' and send paths 'paths' and manipulate and omit and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the datajson
{
"object": {
"names": {
"first": "Bella",
"third": "Owen"
},
"surnames": {
"first": "Allen",
"second": "Briggs"
}
}
}json
{
"path": [
"names.third",
"surnames.second"
]
}manipulate and pick ​
gherkin
Rule unknown ignore
Given I send object 'object' and send properties 'properties' and manipulate and pick and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the datajson
{
"object": {
"name": "Jhon",
"personal_information": {
"email": {
"first": "example@example.org",
"second": "email@example.org"
},
"phone": "3338957823"
}
}
}json
{
"properties": [
"name",
"personal_information.email.first"
]
}manipulate and set ​
gherkin
Rule unknown ignore
Given I send object 'object' and send path 'path' and send value 'value' and manipulate and set
Given I have a 'string dictionary' named 'object'
Then print 'mimmo'json
{
"value": { "name": "Jhon" },
"object": {
"surname": "Doe"
}
}json
{
"path": "root.element"
}http plugin examples ​
http get ​
gherkin
Rule unknown ignore
Given I connect to 'address' and do get and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"address": "https://dyne.org/slangroom"
}json
{
"secret": "foo"
}http get with headers ​
gherkin
Rule unknown ignore
Given I connect to 'address' and send headers 'headers' and do get and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"headers": {
"Content-Type": "application/json"
}
}json
{
"address": "https://dyne.org/slangroom"
}http post ​
gherkin
Rule unknown ignore
Given I connect to 'address' and send object 'body' and do post and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"body": {
"hello": "world"
}
}json
{
"address": "https://dyne.org/slangroom"
}http post with header ​
gherkin
Rule unknown ignore
Given I connect to 'address' and send object 'body' and send headers 'headers' and do post and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"body": {
"hello": "world"
},
"headers": {
"Content-Type": "application/json"
}
}json
{
"address": "https://dyne.org/slangroom"
}json-schema plugin examples ​
validate json ​
gherkin
Rule unknown ignore
Given I send json_data 'json_data' and send json_schema 'json_schema' and validate json and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"json_data": {
"first_name": "Jhon",
"last_name": "Doe"
}
}json
{
"json_schema": {
"type": "object",
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
}
},
"required": [
"first_name",
"last_name"
]
}
}location plugin examples ​
assign the current location ​
gherkin
Rule unknown ignore
Given I send url 'url' and assign the current location
Given nothing
Then print datajson
{
"url": "https://example.com"
}json
{}go back in history ​
gherkin
Rule unknown ignore
Given I go back in history
Given nothing
Then print datajson
{}json
{}go forward in history ​
gherkin
Rule unknown ignore
Given I go forward in history
Given nothing
Then print datajson
{}json
{}go to a specific page in history ​
gherkin
Rule unknown ignore
Given send index 'index' and I go to a specific page in history
Given nothing
Then print datajson
{
"index": -1
}json
{}get the history length ​
gherkin
Rule unknown ignore
Given I get the history length and output into 'history_length'
Given I have a 'number' named 'history_length'
Then print datajson
{}json
{}get the current location ​
gherkin
Rule unknown ignore
# this reutrn the window.location object
# singular element of location can be obtained by adding
# the reuqest element, i.e. href, protocol, host, hostname, port,
# pathname, search params, hash, after 'location' like
# Given I get the current location href and output into 'result'
Given I get the current location and output into 'location'
Given I have a 'string dictionary' named 'location'
Then print datajson
{}json
{}open the url in a new window ​
gherkin
Rule unknown ignore
Given I send url 'url' and open the url in a new window
Given nothing
Then print datajson
{
"url": "https://example.com"
}json
{}redirect to the url ​
gherkin
Rule unknown ignore
Given I send url 'url' and redirect to the url
Given nothing
Then print datajson
{
"url": "https://example.com"
}json
{}reload the page ​
gherkin
Rule unknown ignore
Given I reload the current page
Given nothing
Then print datajson
{}json
{}replace the current location ​
gherkin
Rule unknown ignore
Given I send url 'url' and replace the current location
Given nothing
Then print datajson
{
"url": "https://example.com"
}json
{}oauth plugin examples ​
add data to authorization details ​
gherkin
Rule unknown ignore
Given I send request_uri 'request_uri' and send data 'data' and send server_data 'server' and add data to authorization details and output into 'result'
Given I have a 'string array' named 'result'
Then print the 'result'json
{
"request_uri": "urn:ietf:params:oauth:request_uri:1719239545ed9f269e652d207b90dec394b87225c92346023b",
"data": {
"email": "email@example.com"
}
}json
{
"server_data": {
"jwk": {
"kty": "EC",
"crv": "P-256",
"alg": "ES256",
"x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74",
"y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI",
"d": "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk"
},
"url": "https://valid.issuer.url",
"authentication_url": "https://did.dyne.org/dids/"
}
}generate access token ​
gherkin
Rule unknown ignore
Scenario 'http': url encode
Given I have a 'string dictionary' named 'json_body'
Given I have a 'string dictionary' named 'request'
When I create the http get parameters from 'json_body' using percent encoding
When I move 'json_body' to 'body' in 'request'
Then print the 'request'
Then I send request 'request' and send server_data 'server_data' and generate access token and output into 'result'json
{
"json_body": {
"grant_type": "authorization_code",
"client_id": "did:dyne:sandbox.genericissuer:6Cp8mPUvJmQaMxQPSnNyhb74f9Ga4WqfXCkBneFgikm5",
"code_verifier": "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk",
"redirect_uri": "https://Wallet.example.org/cb",
"code": "eyJhbGciOiJFUzI1NiIsImp3ayI6eyJrdHkiOiJFQyIsIngiOiJ0R3hhcWJYR3JsNm92VC11NXNWMU1vUFRESG5ZTEtZbkNpZzM0NW5zSmc4IiwieSI6IlFOT3RBRzd4Sm52cHlGS2lGdmJJdFBxaVBiN2VZSVMtQlRvU0YwaHM3NTgiLCJjcnYiOiJQLTI1NiJ9fQ.eyJzdWIiOiI1NDJiYWNjODAyMDUxZTdhYjBjMWZhNDAxZjAwYzhjNWJjN2Y0NzVhIiwiaWF0IjoxNzE5MjQxMTYzLCJpc3MiOiJodHRwczovL2Rldi5hdXRoei1zZXJ2ZXIxLmZvcmtib21iLmV1L2F1dGh6X3NlcnZlciIsImF1ZCI6ImRpZDpkeW5lOnNhbmRib3guc2lnbnJvb206NEtFeW1XZ0xEVWYxTE5ja2V4WTk2ZGZLejV2SDc5ZGlEZWtnTE1SOUZXcEgiLCJleHAiOjE3MTkyNDQ3NjJ9.1OhQ5FKXuh_QWxm4XMufNqFS2Zkql7bmBzfMuT8GzVEil3HzYM7dAwUo5Zl9shu-w7bEGlKkOIhXssVrMeMlXg"
},
"request": {
"headers": {
"content-length": 42,
"Content-Type": "application/x-www-form-urlencoded",
"DPoP": "eyJhbGciOiJFUzI1NiIsImp3ayI6eyJjcnYiOiJQLTI1NiIsImt0eSI6IkVDIiwieCI6InpKLTR1d0VWVlYxQW9GcW1yZVlzUlh1SjhGbzVHRVVUeTZ0aklBdjdUcFkiLCJ5IjoiVm9YdmEzVEpHc0o5bjlZVzV3MGplMHp6U2hmYnN3QWd6SHI1TEZCSDNsZyJ9LCJ0eXAiOiJkcG9wK2p3dCJ9.eyJodG0iOiJQT1NUIiwiaHR1IjoiaHR0cHM6Ly9kZXYuYXV0aHotc2VydmVyMS5mb3JrYm9tYi5ldS9hdXRoel9zZXJ2ZXIvdG9rZW4iLCJpYXQiOjE3MTkyNDEzMjYsImp0aSI6IkFad0VwZ2tOTlhrbllWT1JZbjNYNW9HVW1iTVp3V3d1UF9xSDNnOFRjbHcifQ.X2sO6h3GUcTu0h_qNyOsXEB2Z3qzPUd1azOJIeMmfH4zIk-Hd8sHm1RG2RaxZ3n22qSDbKjBap2G9U3Kjw5gLA"
}
}
}json
{
"server_data": {
"jwk": {
"kty": "EC",
"crv": "P-256",
"alg": "ES256",
"x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74",
"y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI",
"d": "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk"
},
"url": "https://valid.issuer.url",
"authentication_url": "https://did.dyne.org/dids/"
}
}generate authorization code ​
gherkin
Rule unknown ignore
Given I send request 'request' and send server_data 'server' and generate authorization code and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"request": {
"body": "client_id=did%3Adyne%3Asandbox%2Egenericissuer%3A6Cp8mPUvJmQaMxQPSnNyhb74f9Ga4WqfXCkBneFgikm5&request_uri=urn%3Aietf%3Aparams%3Aoauth%3Arequest_uri%3A1719239545ed9f269e652d207b90dec394b87225c92346023b",
"headers": {
"Authorization": ""
}
}
}json
{
"server_data": {
"jwk": {
"kty": "EC",
"crv": "P-256",
"alg": "ES256",
"x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74",
"y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI",
"d": "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk"
},
"url": "https://valid.issuer.url",
"authentication_url": "https://did.dyne.org/dids/"
}
}generate request uri ​
gherkin
Rule unknown ignore
Given I send request 'request' and send client 'client' and send server_data 'server_data' and send expires_in 'expires_in' and generate request uri and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"client": {
"id": "did:dyne:sandbox.genericissuer:6Cp8mPUvJmQaMxQPSnNyhb74f9Ga4WqfXCkBneFgikm5",
"clientSecret": "eyJhbGciOiJFUzI1NiJ9.eyJzdWIiOiJwaXBwbyJ9.hiVPL2JTdmcZY7Vcso95KUBEzcTGvmvQ7wlwkCo0G74Unpzny2drvLsu-HzHWyckKbRjwWox-V5gqqKeka8kEQ",
"grants": ["authorization_code"],
"redirectUris": ["https://Wallet.example.org/cb"],
"scope": ["Auth1"],
"resource": "http://issuer1.zenswarm.forkbomb.eu/credential_issuer"
}
}json
{
"server_data": {
"jwk": {
"kty": "EC",
"crv": "P-256",
"alg": "ES256",
"x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74",
"y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI",
"d": "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk"
},
"url": "https://valid.issuer.url",
"authentication_url": "https://did.dyne.org/dids/"
},
"expires_in": 500,
"request": {
"body": "response_type=code&client_id=did:dyne:sandbox.genericissuer:6Cp8mPUvJmQaMxQPSnNyhb74f9Ga4WqfXCkBneFgikm5&state=xyz&code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&code_challenge_method=S256&redirect_uri=https%3A%2F%2FWallet.example.org%2Fcb&authorization_details=%5B%7B%22type%22%3A%20%22openid_credential%22%2C%20%22credential_configuration_id%22%3A%20%22Auth1%22%2C%22locations%22%3A%20%5B%22http%3A%2F%2Fissuer1.zenswarm.forkbomb.eu%3A3100%2Fcredential_issuer%2F%22%5D%7D%5D",
"headers": {
"Authorization": ""
}
}
}get authorization details ​
gherkin
Rule unknown ignore
Given I send token 'token' and send server_data 'server' and get authorization details from token and output into 'result'
Given I have a 'string array' named 'result'
Then print datajson
{
"token": "eyJhbGciOiJFUzI1NiIsImp3ayI6eyJrdHkiOiJFQyIsIngiOiJ0R3hhcWJYR3JsNm92VC11NXNWMU1vUFRESG5ZTEtZbkNpZzM0NW5zSmc4IiwieSI6IlFOT3RBRzd4Sm52cHlGS2lGdmJJdFBxaVBiN2VZSVMtQlRvU0YwaHM3NTgiLCJjcnYiOiJQLTI1NiJ9fQ.eyJzdWIiOiJjYzA3N2Y4MTcwMWU3NDIxNTQ5ZmU0MjBiNDFiNTUxMjVlZDljNmZlIiwiaWF0IjoxNzE5MjQxMzI3LCJpc3MiOiJodHRwczovL2Rldi5hdXRoei1zZXJ2ZXIxLmZvcmtib21iLmV1L2F1dGh6X3NlcnZlciIsImF1ZCI6ImRpZDpkeW5lOnNhbmRib3guc2lnbnJvb206NEtFeW1XZ0xEVWYxTE5ja2V4WTk2ZGZLejV2SDc5ZGlEZWtnTE1SOUZXcEgiLCJleHAiOjE3MTkyNDQ5Mjd9.xLWyO9DkLnSU-9w_4kzmI-znQAwlYJnBbZXpKqmHNpwnFwJUdK26hmVgIQSy2HcHujKyaXX6unjmFe1P5HyK9A"
}json
{
"server": {
"url": "https://valid.issuer.url"
}
}verify request parameters ​
gherkin
Rule unknown ignore
Given I have a 'string' named 'client_id'
Given I have a 'string' named 'request_uri'
Given I have a 'string dictionary' named 'request'
When I set 'body' to 'client_id=' as 'string'
When I append the 'client_id' to 'body'
When I append the string '&request_uri=' to 'body'
When I append the 'request_uri' to 'body'
When I move 'body' in 'request'
Then print the 'request'
Then I send request 'request' and send server_data 'server_data' and verify request parametersjson
{
"client_id": "did:dyne:sandbox.genericissuer:6Cp8mPUvJmQaMxQPSnNyhb74f9Ga4WqfXCkBneFgikm5",
"request_uri": "urn:ietf:params:oauth:request_uri:1719239545ed9f269e652d207b90dec394b87225c92346023b",
"request": {
"headers": {
"Authorization": ""
}
}
}json
{
"server_data": {
"jwk": {
"kty": "EC",
"crv": "P-256",
"alg": "ES256",
"x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74",
"y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI",
"d": "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk"
},
"url": "https://valid.issuer.url",
"authentication_url": "https://did.dyne.org/dids/"
}
}pocketbase plugin examples ​
create a record ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start pb client
Given I send my_credentials 'my_credentials' and login
Given I send create_parameters 'create_parameters' and send record_parameters 'record_parameters' and create record and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"create_parameters": {
"collection": "organizations",
"record": {
"name": "Jhon org"
}
},
"record_parameters": {
"requestKey": "testCreate"
}
}json
{
"pb_address": "http://127.0.0.1:8090",
"my_credentials": {
"email": "test@test.eu",
"password": "testtest"
}
}delete a record ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start pb client
Given I send my_credentials 'my_credentials' and login
Given I send delete_parameters 'delete_parameters' and delete record and output into 'result'
Given I have a 'string' named 'result'
Then print the 'result'json
{
"delete_parameters": {
"collection": "organizations",
"id": "q3vijjsacrn32tk"
}
}json
{
"pb_address": "http://127.0.0.1:8090",
"my_credentials": {
"email": "test@test.eu",
"password": "testtest"
}
}get one record ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start pb client
Given I send show_parameters 'show_parameters' and get one record and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"show_parameters": {
"collection": "organizations",
"id": "p7viyzsihrn52uj",
"fields": "name"
}
}json
{
"pb_address": "http://127.0.0.1:8090"
}get some records ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start pb client
Given I send list_parameters 'list_parameters' and get some records and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"list_parameters": {
"type": "list",
"pagination": {
"page": 2,
"perPage": 20
},
"collection": "organizations"
}
}json
{
"pb_address": "http://127.0.0.1:8090"
}login ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start pb client
Given I send my_credentials 'my_credentials' and login and output into 'result'
Given I have a 'string' named 'result'
Then print the 'result'json
{
"my_credentials": {
"email": "test@test.eu",
"password": "testtest"
}
}json
{
"pb_address": "http://127.0.0.1:8090"
}password reset ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start pb client
Given I send my_credentials 'my_credentials' and login
Given I send email 'email' and ask password reset and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"email": "test@test.eu"
}json
{
"pb_address": "http://127.0.0.1:8090",
"my_credentials": {
"email": "test@test.eu",
"password": "testtest"
}
}refresh token ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start capacitor pb client and output into 'result'
Given I refresh token and output into 'refresh_output'
Given I have a 'string dictionary' named 'refresh_output'
Then print datajson
{}json
{
"pb_address": "http://127.0.0.1:8090"
}send request ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start pb client
Given I send url 'url' and send send_parameters 'send_parameters' and send request and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"url": "/api/hello/user",
"send_parameters": {}
}json
{
"pb_address": "http://127.0.0.1:8090"
}start pb client ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start pb client and output into 'result'
# for mobile contracts use instead
# Given I connect to 'pb_address' and start capacitor pb client and output into 'result'
Given I have a 'string' named 'result'
Then print the 'result'json
{}json
{
"pb_address": "http://127.0.0.1:8090"
}update a record ​
gherkin
Rule unknown ignore
Given I connect to 'pb_address' and start pb client
Given I send my_credentials 'my_credentials' and login
Given I send update_parameters 'update_parameters' and send record_parameters 'record_parameters' and update record and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"update_parameters": {
"id": "q3vijjsacrn32tk",
"collection": "organizations",
"record": {
"name": "new value for name"
}
},
"record_parameters": {
"fields": "id, name"
}
}json
{
"pb_address": "http://127.0.0.1:8090",
"my_credentials": {
"email": "test@test.eu",
"password": "testtest"
}
}qrcode plugin examples ​
create qr code ​
gherkin
Rule unknown ignore
Given I send text 'text' and create qr code and output into 'result'
Given I have a 'string' named 'result'
Then print the 'result'json
{
"text": "Hello World!"
}json
{}rdf plugin examples ​
create concatenated hash of serialized rdf of each pair of document and proof_config in the input array ​
gherkin
Prepare 'res': generate concatenated hash of serialized canonical rdf with array 'dataset'
Given I have a 'base64' named 'res'
Then print the datajson
{}json
{
"data": {
"dataset": [
{
"document": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
},
"proof_config": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://w3id.org/security/data-integrity/v2"
],
"challenge": "32c0afbea6c11920b4de569966887b94d1112b0582e5dc1d9eb9d5ee50ff4e15",
"created": "2025-11-28T00:58:38Z",
"cryptosuite": "ecdsa-rdfc-2019",
"domain": "did:dyne:sandbox.genericissuer:DyptDVGbNeNsT5ooKrrHCAY2zvCxbecn6yum4WRZfphL",
"proofPurpose": "authentication",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:sandbox.signroom:PTDvvQn1iWQiVxkfsDnUid8FbieKbHq46Qs8c9CZx67#es256_public_key"
}
}
]
}
}create rdf serialization of a jsonld ​
gherkin
Prepare 'result': generate serialized canonical rdf with dictionary 'dataset'
Given I have a 'string' named 'result'
Then print the 'result'json
{
"dataset": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
}json
{}redis plugin examples ​
delete key from redis ​
gherkin
Rule unknown ignore
Given I connect to 'redis' and send key 'key' and delete key from redis and output into 'result'
Given I have a 'number' named 'result'
Then print the 'result'json
{
"key": "some key"
}json
{
"redis": "redis://localhost:6379"
}read key from redis ​
gherkin
Rule unknown ignore
Given I connect to 'redis' and send key 'key' and read key from redis and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"key": "some key"
}json
{
"redis": "redis://localhost:6379"
}write object into key in redis ​
gherkin
Rule unknown ignore
Given I connect to 'redis' and send key 'key' and send object 'object' and write object into key in redis and outpuit into 'result'
Given I have a 'string' named 'result'
Then print the 'result'json
{
"key": "some key",
"object": {
"foo": "bar",
"baz": "qux"
}
}json
{
"redis": "redis://localhost:6379"
}shell plugin examples ​
execute in shell ​
gherkin
Rule unknown ignore
Given I send command 'command' and execute in shell and output into 'result'
Given I have a 'string' named 'result'
Then print the 'result'json
{
"command": "ls -a"
}json
{}timestamp plugin examples ​
fetch the local timestamp ​
gherkin
Rule unknown ignore
Given I fetch the local timestamp in seconds and output into 'result_in_seconds'
Given I fetch the local timestamp in milliseconds and output into 'result_in_milliseconds'
Given I have a 'string' named 'result_in_seconds'
Given I have a 'string' named 'result_in_milliseconds'
Then print the 'result_in_seconds'
Then print the 'result_in_milliseconds'json
{}json
{}zencode plugin examples ​
execute zencode ​
gherkin
Rule unknown ignore
Given I send keys 'keys' and send data 'data' and send script 'script' and execute zencode and output into 'result'
Given I have a 'string dictionary' named 'result'
Then print the 'result'json
{
"keys": {
"keyring": {
"ecdh": "FJ5Esc1koLSH+9pKSdI65tcyH2HowzXMe0UdsqktmZU="
}
}
}json
{
"zencode": "Scenario 'ecdh': Create the public key\nGiven I have the 'keyring'\nWhen I create the ecdh public key\nThen print the 'ecdh public key'\n",
"data": {}
}