We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent cca7678 commit 1d86d9fCopy full SHA for 1d86d9f
3 files changed
.env.example
@@ -36,6 +36,14 @@ OAUTH2_PROXY_REDIRECT_URL=https://your-domain/oauth2/callback
36
# GitHub MCP Server configuration
37
GITHUB_PERSONAL_ACCESS_TOKEN=github_access_token
38
39
+# QuickBooks Online (QBO) Configuration
40
+QBO_API_URL=https://sandbox-accounts.platform.intuit.com/v1/openid_connect/userinfo
41
+QBO_CLIENT_ID=your_qbo_client_id
42
+QBO_CLIENT_SECRET=your_qbo_client_secret
43
+QBO_COMPANY_ID=your_qbo_company_id
44
+QBO_REFRESH_TOKEN=your_qbo_refresh_token
45
+QBO_TOKEN_ENDPOINT=https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
46
+
47
# =============================
48
# Production Environment
49
workers/main/.env.test
@@ -13,3 +13,10 @@ SLACK_FIN_REPORT_CHANNEL_ID=C02URP5L3U5
13
14
QBO_API_URL=https://quickbooks.api.intuit.com/v3/company/111111111
15
QBO_BEARER_TOKEN=test-token
16
17
18
19
20
21
22
workers/main/src/configs/qbo.ts
@@ -3,9 +3,20 @@ import { z } from 'zod';
3
export const qboConfig = {
4
apiUrl: process.env.QBO_API_URL,
5
bearerToken: process.env.QBO_BEARER_TOKEN,
6
+ // OAuth2 configuration
7
+ clientId: process.env.QBO_CLIENT_ID,
8
+ clientSecret: process.env.QBO_CLIENT_SECRET,
9
+ companyId: process.env.QBO_COMPANY_ID,
10
+ refreshToken: process.env.QBO_REFRESH_TOKEN,
11
+ tokenEndpoint:
12
+ process.env.QBO_TOKEN_ENDPOINT ||
+ 'https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer',
};
export const qboSchema = z.object({
- QBO_API_URL: z.string().url(),
- QBO_BEARER_TOKEN: z.string(),
+ QBO_API_URL: z.string().url().min(1, 'QBO_API_URL is required'),
+ QBO_CLIENT_ID: z.string().min(1, 'QBO_CLIENT_ID is required'),
+ QBO_CLIENT_SECRET: z.string().min(1, 'QBO_CLIENT_SECRET is required'),
+ QBO_COMPANY_ID: z.string().min(1, 'QBO_COMPANY_ID is required'),
+ QBO_REFRESH_TOKEN: z.string().optional(),
});
0 commit comments