commit 2b6e5a6532aecedf9c33ded6a44e5f06802cbd31
parent ae3b46492c7865dc4191b6f732db958d67d5c526
Author: Sebastian <sebasjm@gmail.com>
Date: Wed, 6 Aug 2025 10:51:06 +0200
fix provisioning
Diffstat:
1 file changed, 46 insertions(+), 15 deletions(-)
diff --git a/packages/taler-harness/src/index.ts b/packages/taler-harness/src/index.ts
@@ -805,7 +805,7 @@ deploymentCli
.requiredArgument("corebankApiBaseUrl", clk.STRING, {
help: "URL location of the libeufin bank backend",
})
- .requiredOption(
+ .maybeOption(
"merchantToken",
["--merchant-management-token"],
clk.STRING,
@@ -813,6 +813,14 @@ deploymentCli
help: "access token of the default instance in the merchant backend",
},
)
+ .maybeOption(
+ "merchantPassword",
+ ["--merchant-management-password"],
+ clk.STRING,
+ {
+ help: "access token of the default instance in the merchant backend",
+ },
+ )
.maybeOption("bankToken", ["--bank-admin-token"], clk.STRING, {
help: "libeufin bank admin's token if the account creation is restricted",
})
@@ -841,9 +849,11 @@ deploymentCli
help: "if everything worked ok, change the password of the accounts at the end",
})
.action(async (args) => {
- const managementToken = createRFC8959AccessTokenPlain(
+ const merchantAdminTokenArg = args.provisionBankMerchant.merchantToken ? createRFC8959AccessTokenPlain(
args.provisionBankMerchant.merchantToken,
- );
+ ) : undefined;
+ const merchantAdminPassword = args.provisionBankMerchant.merchantPassword;
+
const bankAdminPassword = args.provisionBankMerchant.bankPassword;
const bankAdminTokenArg = args.provisionBankMerchant.bankToken
? createRFC8959AccessTokenPlain(args.provisionBankMerchant.bankToken)
@@ -918,6 +928,27 @@ deploymentCli
bankAdminToken = bankAdminTokenArg;
}
+ let merchantAdminToken: AccessToken | undefined;
+ if (merchantAdminPassword) {
+ const resp = await merchantManager.createAccessToken(
+ "admin",
+ merchantAdminPassword,
+ {
+ scope: LoginTokenScope.All,
+ duration: {
+ d_us: 1000 * 1000 * 10, //10 secs
+ },
+ },
+ );
+ if (resp.type === "fail") {
+ logger.error(`could not get bank admin token from password.`);
+ return;
+ }
+ merchantAdminToken = resp.body.access_token;
+ } else {
+ merchantAdminToken = merchantAdminTokenArg;
+ }
+
/**
* create bank account
*/
@@ -930,9 +961,9 @@ deploymentCli
contact_data:
email || phone
? {
- email: email,
- phone: phone,
- }
+ email: email,
+ phone: phone,
+ }
: undefined,
});
@@ -951,7 +982,7 @@ deploymentCli
* create merchant account
*/
{
- const resp = await merchantManager.createInstance(managementToken, {
+ const resp = await merchantManager.createInstance(merchantAdminToken, {
address: {},
auth: {
method: MerchantAuthMethod.TOKEN,
@@ -982,7 +1013,7 @@ deploymentCli
}
const { access_token } = succeedOrThrow(
- await merchantManager.createAccessToken(id, password, {
+ await merchantInstance.createAccessToken(id, password, {
scope: LoginTokenScope.All,
}),
);
@@ -1119,7 +1150,7 @@ deploymentCli
}
const { access_token } = succeedOrThrow(
- await merchantManager.createAccessToken(id, prevPassword, {
+ await merchantInstance.createAccessToken(id, prevPassword, {
scope: LoginTokenScope.All,
}),
);
@@ -1287,10 +1318,10 @@ deploymentCli
credit_facade_credentials:
bankUser && bankPassword
? {
- type: "basic",
- username: bankUser,
- password: bankPassword,
- }
+ type: "basic",
+ username: bankUser,
+ password: bankPassword,
+ }
: undefined,
});
if (createAccountResp.type != "ok") {
@@ -1795,8 +1826,8 @@ merchantCli
const scope = args.token.scope ?? "all";
const duration = args.token.duration
? Duration.toTalerProtocolDuration(
- Duration.fromPrettyString(args.token.duration),
- )
+ Duration.fromPrettyString(args.token.duration),
+ )
: undefined;
const tokResp = await merchantApi.createAccessToken(instance, password, {
scope: scope as LoginTokenScope,