Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@ node_modules
# oauth test stuff
pkg/oauth/test/didroom_microservices/
!/pkg/oauth/test/start_microservices.sh
!/pkg/oauth/test/authz_server.keys.json
!/pkg/oauth/test/credential_issuer.keys.json
!/pkg/oauth/test/relying_party.keys.json

# mise stuff
!/mise.toml
11 changes: 8 additions & 3 deletions REUSE.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2024 Dyne.org foundation
# SPDX-FileCopyrightText: 2024-2025 Dyne.org foundation
#
# SPDX-License-Identifier: AGPL-3.0-or-later

Expand All @@ -10,12 +10,17 @@ SPDX-PackageDownloadLocation = "https://github.com/ForkbombEu/slangroom"
[[annotations]]
path = ["examples/**/*"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2024 Dyne.org foundation"
SPDX-FileCopyrightText = "2024-2025 Dyne.org foundation"
SPDX-License-Identifier = "AGPL-3.0-or-later"

[[annotations]]
path = ["pkg/pocketbase/test/pb_migrations/*"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2024 Dyne.org foundation"
SPDX-FileCopyrightText = "2024-2025 Dyne.org foundation"
SPDX-License-Identifier = "AGPL-3.0-or-later"

[[annotations]]
path = ["pkg/oauth/test/*.keys.json"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2025 Dyne.org foundation"
SPDX-License-Identifier = "AGPL-3.0-or-later"
13 changes: 9 additions & 4 deletions pkg/core/src/slangroom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ type GenericError = {
start?: number,
end?: number
}

const RUI = 'Rule unknown ignore\n';
/**
* The entrypoint to the Slangroom software.
*
Expand Down Expand Up @@ -89,10 +91,13 @@ export class Slangroom {
// substitute all tabs with 4 spaces in contract for better error reporting
contract = contract.replaceAll('\t', ' ');
const paramsGiven = requirifyZenParams(optParams);
const { ignoredLines, invalidLines } = await getIgnoredStatements(contract);
if (typeof invalidLines[0] !== "undefined") {thorwErrors(invalidLines, contract)}
const { ignoredLines, invalidLines } = await getIgnoredStatements(`${RUI}${contract}`);
if (typeof invalidLines[0] !== "undefined") {thorwErrors(invalidLines.map((x: {message: Error, lineNo: number}) => {
x.lineNo = x.lineNo - 1;
return x;
}), contract)}
// lex
const lexedResult = ignoredLines.map((ignored) => lex(...ignored));
const lexedResult = ignoredLines.map((ignored) => lex(ignored[0], ignored[1] - 1));
const lexedErrors = lexedResult.flatMap((x) => {if (!x.ok) return x.error; return [];});
if (typeof lexedErrors[0] !== "undefined") thorwErrors(lexedErrors, contract);
const lexedLines = lexedResult.flatMap((x) => {if(x.ok) return [x.value]; return [];});
Expand All @@ -112,7 +117,7 @@ export class Slangroom {
else if (ast.intoSecret) paramsGiven.keys[ast.intoSecret] = res.value;
}

const zout = await zencodeExec(contract, paramsGiven);
const zout = await zencodeExec(`${RUI}${contract}`, paramsGiven);
const paramsThen: ZenParams = { data: zout.result, keys: paramsGiven.keys };

const cstThens = parsedLines.filter((x) => x.givenThen === 'then');
Expand Down
17 changes: 17 additions & 0 deletions pkg/core/test/slangroom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,20 @@ test("save secret variables", async (t) => {
);
t.deepEqual(res.result, { 'no more secret': 'secret stuff', 'not_a_secret': 'not a secret' }, res.logs);
});

test("multiple rule unknown ignore", async (t) => {
const p0 = new Plugin();
p0.new('do some stuff', (ctx) => ctx.pass('stuff done'));
const slangroom = new Slangroom(p0);
const res = await slangroom.execute(`Rule unknown ignore
Rule unknown ignore
Rule unknown ignore
Rule unknown ignore
Given I do some stuff and output into 'done'

Given I have a 'string' named 'done'
Then print 'done'
`,
);
t.deepEqual(res.result, { 'done': 'stuff done' }, res.logs);
});
20 changes: 20 additions & 0 deletions pkg/oauth/test/authz_server.keys.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"authorization_server": {
"keyring": {
"bbs": "bpEqRPzBx9XE+EfJPw/40kbULnIr1bvBkJ8ibcERkL0=",
"bitcoin": "L3GWwqW45TFFf3Z1kSjxDiDSrhvZrMwoiABg4fyHrA3aHEkFcTZW",
"dilithium": "onIpZ1qUUuUX87sFcXtBTSlJ+B7lBPotUALld77aqg/YhjsSivmiveAsFaSxs4nwOuVgD02TUuwY0qwATUJigLeYAZafl4kwK9NpRgj1yPIx+siftJXK2eGx+YSbUvKTCkFNFIZAhJiACplgUURNIheKADIIG6NwXAINCSKJCyhIwMCQGiNOIaMgAgUx4kIlwLAAkxBCmThg2bAkDJkpwDiQTJKBA0ZtghaRA7OQiQIK4zgmVKCF4ySABDAoEZlxghYKiiACg8aBYAJKkqKNyhSBCQENmASEHEYu0KABRJIgwYgkUAZCExMxQhhSjCKOYCKGUqhoRAhKU0KAiYINTAYKUghqJBUGoUZgCJCIiBiRijAuYkhN5IQIEiBmkaiBSZRFQRAFIQhuTDhlABaEEMVQJMMoUkhwlLRRTLBs0QYAUiJoJAVhCDIFHEdCJLCQiBBh3MiIVAgRDKSEC7FEwxAlIQRS2sZxYYREGihoUARoCzeFoBiRGyZllICFDIZghLCJWRRQJAGJRJYNkSRkoxAywIRBGwaJZKAFksJkgjBkASMJHKhhC6OQYkIxEoiJWMZJ0jCQozggi4ZNBAUmBKIR0yRGG4mNgEBOAhQFjDgpWRYMAQIJg0SGSrKNIIMFUaCFEEMRCDYxATiQmDYSksJMkbIBEwEECDcoiMaAVBRmQwQxoxJECZRpmSgKTEIC2aQxAwVl4zJswiRuJEARU0QCGEmRASOREwNGUQJN0kgBCqiNATcoGyKOJEhKCpeR0SYN2zJKI7gxEiZNVCISAgJJgiSNoYKEYjaMgoZowQBFUURuFCRJkMBl2wCRGrQRIEQEiQhFmrRtIDAqwiYGQ8Bw4QhAwCCGgiIhykhumiJo08JgijByWABliciEkSBmogZimqYkgxZiixaSmyZqARlMxKaEA4CNQyhMIjBh4aJN4qBwIAAu4ASOgqCMGJmBkxZh2xQpnLQxXERhEUON47hFkZiAADVqGKctkgRIAbhAGEdl0LQMIAFwE0IGiCSA47BJIhENBJNhgSYCE8QNySYGCYVJmLYpo7AB5BiFi6iQG7ZMiRYRgJgxxJBhwARgo0KCYpIg2iIEJJVNUiBoYZgQggaJRBAFGcUNCzcxwQAg4pJh2xBgUgARGKmFIwUorFEdM81uEqs96FEtxSWEXqi7B0mxJPois8oha4q8cP6rRGs66tOG1s6fvDBuxrYimb9H06r6lJVfe46LVHz0KvV2LR9dvRCu5jwmPEImYLGFYiE38d4IDeJBdu2f+qIW66ZsQ52TjIiZHkJGulw2WWcUMzyGpoFqd6GvDeCXdyhACNaZlvwdT1cBOk2w2mld2QchUx8JNlsCROT9doUUd5eHkLyOGWeVQ29kuR6MyxlSOUPZ6zZ7tCTv7loxNc7cwhC5CL76BOKIK8KeHwGc2RkJGRvURbwkkyO311Kc8CsbXenN/R46b8p8y+3EED7hX/2/CItjGlgzlKfCsyVgAAHK0PzXbDPL21DAwK6hAD/82z4YCEmHGeAdjKD4b+KhwVUck4vcMW3LVGeDnwL4Mo0Wt+8EsgvvBZQXUSEHcrKW63ZE7xRkwrf20YtJAsEGRLW3hM7tj2KT7ykL3dGiYBkGuryofDkGnAPXAizx2a2DlCgSSkCnn8NPxqrnxxzMnQsukSp7Z0m/iJov5yI0TdpXq3D7/79orPxHTfKnX4WMQsZd52rpvvjXgB/R75kMOLfKO7dUC2ElGbzV9mHeVI04ljIhQnPt94baamB8sVSupWv2hBt57q+5+1qmMy9+9FkQSPciC9/OgOBcbzla2KZH3hAohO08lyPgaH0+CZarCUHhd4F+6Zr5bf5oXtA1LpN0qK2E7U/0ltX9+QP6+PAsX3ALXmcSWKUK6LkX0jxkq8K1Qhp5XG8jDTZQKw3X6/pxO/EOV1VbP4Oulp6rJVKM/kXgI2bsr7WnekDMLeNFN0tiDjZz8Zq/F8HXlMXSXgpaKEdosqEBVbdoGMcxFJY9b5eB75dadQ++CCMiZVJ8ZssdKiBZwcyj7l7RODdZ+MeuhsiUzEJCsJtDISzxLFFrAtOI8dyk2fqBXpzT0109eWYh6Qym9r7xxf8kR7WSCUwptixL0qoWZt9W+JYr1PjoD2fwk2yZQX/zaM1zcK6dfGxxU0mUSE85if3oNP8RVqNC7ugd7StuT0gofovYFHLb8wCo8+PEi6VTmMXwfPO47VAfIMjX4Fh0WSSmtZQq+hL81/UB1pexocZjS6/ILB7DaApl4MolgiitVpWk8uHGKU3lH86X8GviTX1atreJQsukXLZReXMzDoWvD6WtJyzhSL8nOynNaFBqPLI6bD0/Fi6S8gnO2ekaiqrxEc8GrabIFFEnHQulyyU99oGRxZ8UCHPFR+s0cL9jYyDoVwILLbP/JUBVfXZ6AYklSo2OmyVlAQAxDh6oLe0iL84cP2wLpVtkM6jeJaYxmIyQG6UqYE2tJ4sVNmvT/eTel83KvOqzTKXLp+rW3WGxlV815AfpbHtoBgnVCzdJcBy5ohCHW+vezqlDT/dxlfUNYw6cgAblxg/h142EeuwuFs9MIA9S6i/ocfsBn8LklNfSkx3Dj3uBSaMtj9zq+kG/RAJkS06WN6cN1OA/fFQ1yjzDArR2m1zWZ2mMH2mWM5lfvkOidUVLTVfFacw1tojzY4E/Yk4hOabeBhmC+yvvQBQo48W7xfzhzmhZAhLl5YH1OnJi6/fTAjLDUHP6F12vJL0mzyBvaWa+vVf/vqPnY4BD2w0x5NSWRGnd1rCrU7XuDsXqYwrGn50FwqOn1m2N7bGOMt3qvRlI6Hd4tDuUrz8m8fmIZDDAF0hBsmVRWGBv8ez4xvMMnKiNg2KtB+q15JtNG/0Qdmd4tBWiUCpTr7QXllHTU6KE2G2avH6E9nb8VoHNyfTvE9dSDA27P/+B/JLEK9WtDuPuBFDEZs1xkJ51XN7ZK2Q/YwzjYKCY5jjLtQb8//s8gISx6as0XvW1M3RNFJIURLzuMhl5XkSw7TXx5p8PEMc8ObVEeFhrne+HQp+AVm8eChrPGlNVVAYovx5YpEj9mG8mAiiqoyewZJWuMudvV0GCjyvZ1UZzmM1ud/4MGcXfcSbBVwpbm6fapTpHB4LRqYn3lq4CRIp09Dxigjkzw68ZxP5BUGyy3la34UAgWvY1V0hmyWYj8VAE2iz9kCAFQQ0zRXOTl/YPkwYd0axwXT3Zsq8xwmJJPnV+eYTylcsijQM4W/7rK5GvaQHjUc6u6w79nrFymO6/Zb6roMz8Zsx2Glz0V1aLxOxEDYxFQ6bCBLOdlwWnvwDZNbSprUN4M2LwyWZutEm7Ndcs+3q1Gzt/nVXOj5Jka82PL44=",
"ecdh": "2RM+u27PTci+VaxyM/mBBMFz6Q4YwwnuYUj66HqJRc4=",
"eddsa": "7joCi7GmPQq93h78fv2QGRyrQAD1oWiLzJsPMkCUDvku",
"es256": "3l9yyLZcfLyxp51+OfEOPrv3lWvOuc/KaHjLtsDkc38=",
"ethereum": "d32306d6f2d90b59f2b697521348151bcafb74b0a9ab28d6cf96bee0a87d3f5e",
"issuer": {
"x": "bulC0sqCu2E2+ZnhwOjoMxrKfJ4vcoB4IU+ASxG8srk=",
"y": "bi2CT/JO0/j4JUf+GBbQTs4/kD7Y1X6jXoxt6q6IYjE="
},
"reflow": "KISOySU/01loSx6bsawlR8yTAd0k4POaeqYLOTdMlkU="
}
},
"controller": "authorization_server",
"kid": "did:dyne:sandbox.genericissuer:AueWh8vFf7Fmw1LKf5rqWHDDLw5SK1Lsm7NfUmerCurK#es256_public_key"
}
20 changes: 20 additions & 0 deletions pkg/oauth/test/credential_issuer.keys.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"controller": "credential_issuer",
"credential_issuer": {
"keyring": {
"bbs": "XBTUVqldLN0ol7u0EJQjnOdGPuT0Eodo3Y8P6EkIQkA=",
"bitcoin": "KyVPaESgJtZLUq4B1ZTArFWYdmtEg6gbBQsvRHQPuo1reePvZwie",
"dilithium": "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",
"ecdh": "37n1scO2/Cm1J/UJ+geT7pCBMKvCboptHYraFbKJ+oY=",
"eddsa": "4nEoisbLhkKM8svaXcUTjm5zmyiC4o7ddBjuLYxzXVcs",
"es256": "k3Vw6C1uhaMdK+4N4Fy6tSiPBtVxKZuEr0oI0umHk+E=",
"ethereum": "ec3f83a95c64bbc1768015e5c8a7dda22d4bffdf84e4c2a4c077e34eb05d68f7",
"issuer": {
"x": "T6duBHJimgrHFeobFSkTagc7Yx6Ex1susZFAYly1u0E=",
"y": "KuoDOr68QTNW1beuU+bOIsN0yRfrcEsAGF640CoG8Ns="
},
"reflow": "WU2ZVxd+0pQ6zjq3Mok7XotLcuwxOZncSgfsyPXgJ/4="
}
},
"kid": "did:dyne:sandbox.genericissuer:8jwiVEYfdkQ9xKxMpM4Z1xbtEkvG1kH9PXPCAKYA6BUG#es256_public_key"
}
1 change: 1 addition & 0 deletions pkg/oauth/test/relying_party.keys.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"controller":"relying_party","relying_party":{"keyring":{"bbs":"ApJLuHmed70DDOz3Vs53dU/j6tiMWiCJvPzaJb8Sbxc=","bitcoin":"KxBT4FAa8e7emvPGy4FumzR62YzwJbh77mS42vo2RBxrxT3CY6aR","dilithium":"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","ecdh":"59PFHLO95M8BCwkLydPvVhGGpQuFbROxnE7UGDVq3cA=","eddsa":"6P81BzPjshmPyNyk6SQBsa54MXgrhZwRz3drAhKhadYr","es256":"IPsWLzQMVmH1LFs2/nuOqhNnAn7A73rfB5HMPh0+rZE=","ethereum":"96a04eb61593b660ee42328e8505faa4df0cfcc24eb6531071be77b418ee20a0","issuer":{"x":"ONlgq+DhDg7DTtRFywnDlsF+DgcScjs2Fb7Mu9ISEHo=","y":"Kaui/OwuDp45a8zsS1bzvYcaGa/1UTnr7YY1kvvSPjw="},"reflow":"Do0AAe71dazF7O0aTdL1wSaiPjlbRWoRw0V/4uy5gbg="}},"kid":"did:dyne:sandbox.genericissuer:9pSqYhma9FqbdStXiXDsn3LQ3L9N1Fjw5w6UnsJPXDo1#es256_public_key"}
36 changes: 22 additions & 14 deletions pkg/oauth/test/start_microservices.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,39 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later

temp_dir="pkg/oauth/test/didroom_microservices"
oauth_test_dir="pkg/oauth/test/"
ms_test_dir="${oauth_test_dir}didroom_microservices"

setup() {
if [ ! -d ${temp_dir} ]; then
git clone https://github.com/ForkbombEu/DIDroom_microservices.git ${temp_dir} --quiet
if [ ! -d ${ms_test_dir} ]; then
git clone https://github.com/ForkbombEu/DIDroom_microservices.git ${ms_test_dir} --quiet
fi

if [ ! -x ${temp_dir}/ncr ]; then
wget -q --show-progress https://github.com/ForkbombEu/ncr/releases/download/v1.40.0/ncr -O ${temp_dir}/ncr
chmod +x ${temp_dir}/ncr
if [ ! -x ${ms_test_dir}/ncr ]; then
wget -q --show-progress https://github.com/ForkbombEu/ncr/releases/download/v1.40.0/ncr -O ${ms_test_dir}/ncr
chmod +x ${ms_test_dir}/ncr
fi

make -C ${temp_dir} test_custom_code --no-print-directory
make -C ${temp_dir} authorize AUTHZ_FILE=public/authz_server/authorize --no-print-directory
make -C ${ms_test_dir} test_custom_code --no-print-directory
make -C ${ms_test_dir} authorize AUTHZ_FILE=public/authz_server/authorize --no-print-directory

cd ${temp_dir} && ./scripts/wk.sh setup && cd -
cd ${ms_test_dir} && ./scripts/wk.sh setup && cd -

make -C ${temp_dir} up --no-print-directory
cp ${oauth_test_dir}/authz_server.keys.json ${ms_test_dir}/authz_server/secrets.keys
sed -i "s|{{ as_did }}|did:dyne:sandbox.genericissuer:AueWh8vFf7Fmw1LKf5rqWHDDLw5SK1Lsm7NfUmerCurK|" ${ms_test_dir}/public/authz_server/.well-known/oauth-authorization-server
cp ${oauth_test_dir}/credential_issuer.keys.json ${ms_test_dir}/credential_issuer/secrets.keys
sed -i "s|{{ ci_did }}|did:dyne:sandbox.genericissuer:8jwiVEYfdkQ9xKxMpM4Z1xbtEkvG1kH9PXPCAKYA6BUG|" ${ms_test_dir}/public/credential_issuer/.well-known/openid-credential-issuer
cp ${oauth_test_dir}/relying_party.keys.json ${ms_test_dir}/relying_party/secrets.keys
sed -i "s|{{ rp_did }}|did:dyne:sandbox.genericissuer:9pSqYhma9FqbdStXiXDsn3LQ3L9N1Fjw5w6UnsJPXDo1|" ${ms_test_dir}/public/relying_party/.well-known/openid-relying-party

make -C ${ms_test_dir} up --no-print-directory
}

cleanup() {
kill `cat ${temp_dir}/.credential_issuer.pid` && rm ${temp_dir}/.credential_issuer.pid
kill `cat ${temp_dir}/.authz_server.pid` && rm ${temp_dir}/.authz_server.pid
kill `cat ${temp_dir}/.relying_party.pid` && rm ${temp_dir}/.relying_party.pid
rm -rf ${temp_dir}
kill `cat ${ms_test_dir}/.credential_issuer.pid` && rm ${ms_test_dir}/.credential_issuer.pid
kill `cat ${ms_test_dir}/.authz_server.pid` && rm ${ms_test_dir}/.authz_server.pid
kill `cat ${ms_test_dir}/.relying_party.pid` && rm ${ms_test_dir}/.relying_party.pid
rm -rf ${ms_test_dir}
}

"$@"
Loading