Skip to content

Commit cbf18ce

Browse files
authored
feat: integrate execution context service and MongoAbility in CLI han… (#2630)
* feat: integrate execution context service and MongoAbility in CLI handler * feat: add optional wallet mnemonic fields to environment configuration
1 parent 164eeb5 commit cbf18ce

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

apps/api/src/app/console.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { createOtelLogger } from "@akashnetwork/logging/otel";
2+
import { createMongoAbility, type MongoAbility } from "@casl/ability";
23
import { context, trace } from "@opentelemetry/api";
34
import { Command } from "commander";
45
import { once } from "lodash";
@@ -7,6 +8,7 @@ import { container } from "tsyringe";
78
import { z } from "zod";
89

910
import { WalletController } from "@src/billing/controllers/wallet/wallet.controller";
11+
import { ExecutionContextService } from "@src/core/services/execution-context/execution-context.service";
1012
import { chainDb } from "@src/db/dbConnection";
1113
import { TopUpDeploymentsController } from "@src/deployment/controllers/deployment/top-up-deployments.controller";
1214
import { GpuBotController } from "@src/deployment/controllers/gpu-bot/gpu-bot.controller";
@@ -79,7 +81,30 @@ async function executeCliHandler(name: string, handler: () => Promise<unknown>,
7981
try {
8082
await Promise.all([migratePG(), chainDb.authenticate(), ...container.resolveAll(APP_INITIALIZER).map(initializer => initializer[ON_APP_START]())]);
8183

82-
const result = await handler();
84+
const executionContextService = container.resolve(ExecutionContextService);
85+
const result = await executionContextService.runWithContext(async () => {
86+
executionContextService.set("CURRENT_USER", {
87+
id: "cli-user",
88+
bio: null,
89+
email: null,
90+
emailVerified: false,
91+
stripeCustomerId: null,
92+
subscribedToNewsletter: false,
93+
createdAt: new Date(),
94+
lastActiveAt: new Date(),
95+
lastIp: null,
96+
lastUserAgent: null,
97+
lastFingerprint: null,
98+
youtubeUsername: null,
99+
twitterUsername: null,
100+
githubUsername: null,
101+
userId: "system:cli-user",
102+
username: "___cli_user___",
103+
trial: false
104+
});
105+
executionContextService.set("ABILITY", createMongoAbility<MongoAbility>());
106+
return await handler();
107+
});
83108

84109
if (result && result instanceof Err) {
85110
logger.error({ event: "COMMAND_ERROR", name, result: result.val });

apps/api/src/billing/config/env.config.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ import { AUDITOR } from "@src/deployment/config/provider.config";
66
dotenv.config({ path: "env/.env.funding-wallet-index" });
77

88
export const envSchema = z.object({
9+
OLD_MASTER_WALLET_MNEMONIC: z.string().optional(),
10+
FUNDING_WALLET_MNEMONIC: z.string().optional(),
911
FUNDING_WALLET_MNEMONIC_V1: z.string().optional(),
1012
FUNDING_WALLET_MNEMONIC_V2: z.string().optional(),
13+
DERIVATION_WALLET_MNEMONIC: z.string().optional(),
1114
DERIVATION_WALLET_MNEMONIC_V1: z.string().optional(),
1215
DERIVATION_WALLET_MNEMONIC_V2: z.string().optional(),
1316
NETWORK: z.enum(["mainnet", "testnet", "sandbox"]),

0 commit comments

Comments
 (0)