convex 1.37.0 → 1.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/browser.bundle.js +1 -1
- package/dist/browser.bundle.js.map +1 -1
- package/dist/cjs/bundler/debugBundle.js +2 -1
- package/dist/cjs/bundler/debugBundle.js.map +2 -2
- package/dist/cjs/bundler/index.js +6 -3
- package/dist/cjs/bundler/index.js.map +2 -2
- package/dist/cjs/bundler/serverOnly.js +37 -0
- package/dist/cjs/bundler/serverOnly.js.map +7 -0
- package/dist/cjs/cli/configure.js +5 -32
- package/dist/cjs/cli/configure.js.map +2 -2
- package/dist/cjs/cli/deploy.js +1 -1
- package/dist/cjs/cli/deploy.js.map +1 -1
- package/dist/cjs/cli/deploymentCreate.js +21 -9
- package/dist/cjs/cli/deploymentCreate.js.map +2 -2
- package/dist/cjs/cli/deploymentSelect.js +25 -0
- package/dist/cjs/cli/deploymentSelect.js.map +2 -2
- package/dist/cjs/cli/deploymentTokenCreate.js +1 -1
- package/dist/cjs/cli/deploymentTokenCreate.js.map +2 -2
- package/dist/cjs/cli/deploymentTokenDelete.js +1 -1
- package/dist/cjs/cli/deploymentTokenDelete.js.map +2 -2
- package/dist/cjs/cli/index.js +5 -2
- package/dist/cjs/cli/index.js.map +2 -2
- package/dist/cjs/cli/lib/deploymentSelection.js +4 -7
- package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/cjs/cli/lib/env.js +1 -0
- package/dist/cjs/cli/lib/env.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/anonymous.js +4 -4
- package/dist/cjs/cli/lib/localDeployment/anonymous.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/errors.js +1 -1
- package/dist/cjs/cli/lib/localDeployment/errors.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/localDeployment.js +64 -9
- package/dist/cjs/cli/lib/localDeployment/localDeployment.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/utils.js +19 -7
- package/dist/cjs/cli/lib/localDeployment/utils.js.map +3 -3
- package/dist/cjs/cli/lib/utils/globalConfig.js +1 -2
- package/dist/cjs/cli/lib/utils/globalConfig.js.map +2 -2
- package/dist/cjs/cli/lib/utils/utils.js +8 -0
- package/dist/cjs/cli/lib/utils/utils.js.map +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/server/audit_logging.js +3 -1
- package/dist/cjs/server/audit_logging.js.map +2 -2
- package/dist/cjs/server/components/index.js +1 -12
- package/dist/cjs/server/components/index.js.map +2 -2
- package/dist/cjs/server/impl/registration_impl.js +8 -5
- package/dist/cjs/server/impl/registration_impl.js.map +2 -2
- package/dist/cjs/server/index.js.map +2 -2
- package/dist/cjs/server/log.js.map +2 -2
- package/dist/cjs/server/logVars.js.map +2 -2
- package/dist/cjs/server/meta.js.map +1 -1
- package/dist/cjs-types/bundler/debugBundle.d.ts.map +1 -1
- package/dist/cjs-types/bundler/index.d.ts.map +1 -1
- package/dist/cjs-types/bundler/serverOnly.d.ts +3 -0
- package/dist/cjs-types/bundler/serverOnly.d.ts.map +1 -0
- package/dist/cjs-types/cli/configure.d.ts.map +1 -1
- package/dist/cjs-types/cli/deploymentCreate.d.ts +4 -0
- package/dist/cjs-types/cli/deploymentCreate.d.ts.map +1 -1
- package/dist/cjs-types/cli/deploymentSelect.d.ts.map +1 -1
- package/dist/cjs-types/cli/deploymentTokenCreate.d.ts.map +1 -1
- package/dist/cjs-types/cli/deploymentTokenDelete.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deployApi/componentDefinition.d.ts +6 -6
- package/dist/cjs-types/cli/lib/deployApi/modules.d.ts +6 -6
- package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts +8 -8
- package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/env.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/errors.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/localDeployment.d.ts +8 -0
- package/dist/cjs-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts +13 -4
- package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/utils/globalConfig.d.ts +0 -1
- package/dist/cjs-types/cli/lib/utils/globalConfig.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/utils/utils.d.ts +7 -0
- package/dist/cjs-types/cli/lib/utils/utils.d.ts.map +1 -1
- package/dist/cjs-types/index.d.ts +1 -1
- package/dist/cjs-types/server/audit_logging.d.ts +1 -0
- package/dist/cjs-types/server/audit_logging.d.ts.map +1 -1
- package/dist/cjs-types/server/components/index.d.ts.map +1 -1
- package/dist/cjs-types/server/impl/registration_impl.d.ts.map +1 -1
- package/dist/cjs-types/server/index.d.ts +2 -0
- package/dist/cjs-types/server/index.d.ts.map +1 -1
- package/dist/cjs-types/server/log.d.ts +28 -0
- package/dist/cjs-types/server/log.d.ts.map +1 -1
- package/dist/cjs-types/server/logVars.d.ts +1 -0
- package/dist/cjs-types/server/logVars.d.ts.map +1 -1
- package/dist/cjs-types/server/meta.d.ts +2 -0
- package/dist/cjs-types/server/meta.d.ts.map +1 -1
- package/dist/cli.bundle.cjs +1583 -1520
- package/dist/cli.bundle.cjs.map +4 -4
- package/dist/esm/bundler/debugBundle.js +2 -1
- package/dist/esm/bundler/debugBundle.js.map +2 -2
- package/dist/esm/bundler/index.js +6 -3
- package/dist/esm/bundler/index.js.map +2 -2
- package/dist/esm/bundler/serverOnly.js +15 -0
- package/dist/esm/bundler/serverOnly.js.map +7 -0
- package/dist/esm/cli/configure.js +5 -32
- package/dist/esm/cli/configure.js.map +2 -2
- package/dist/esm/cli/deploy.js +1 -1
- package/dist/esm/cli/deploy.js.map +1 -1
- package/dist/esm/cli/deploymentCreate.js +21 -10
- package/dist/esm/cli/deploymentCreate.js.map +2 -2
- package/dist/esm/cli/deploymentSelect.js +25 -0
- package/dist/esm/cli/deploymentSelect.js.map +2 -2
- package/dist/esm/cli/deploymentTokenCreate.js +2 -1
- package/dist/esm/cli/deploymentTokenCreate.js.map +2 -2
- package/dist/esm/cli/deploymentTokenDelete.js +2 -1
- package/dist/esm/cli/deploymentTokenDelete.js.map +2 -2
- package/dist/esm/cli/index.js +5 -2
- package/dist/esm/cli/index.js.map +2 -2
- package/dist/esm/cli/lib/deploymentSelection.js +5 -7
- package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/esm/cli/lib/env.js +2 -0
- package/dist/esm/cli/lib/env.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/anonymous.js +4 -4
- package/dist/esm/cli/lib/localDeployment/anonymous.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/errors.js +1 -1
- package/dist/esm/cli/lib/localDeployment/errors.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/localDeployment.js +70 -11
- package/dist/esm/cli/lib/localDeployment/localDeployment.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/utils.js +19 -7
- package/dist/esm/cli/lib/localDeployment/utils.js.map +3 -3
- package/dist/esm/cli/lib/utils/globalConfig.js +1 -2
- package/dist/esm/cli/lib/utils/globalConfig.js.map +2 -2
- package/dist/esm/cli/lib/utils/utils.js +6 -0
- package/dist/esm/cli/lib/utils/utils.js.map +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server/audit_logging.js +3 -1
- package/dist/esm/server/audit_logging.js.map +2 -2
- package/dist/esm/server/components/index.js +1 -12
- package/dist/esm/server/components/index.js.map +2 -2
- package/dist/esm/server/impl/registration_impl.js +8 -5
- package/dist/esm/server/impl/registration_impl.js.map +2 -2
- package/dist/esm/server/index.js.map +2 -2
- package/dist/esm/server/log.js.map +2 -2
- package/dist/esm/server/logVars.js.map +2 -2
- package/dist/esm-types/bundler/debugBundle.d.ts.map +1 -1
- package/dist/esm-types/bundler/index.d.ts.map +1 -1
- package/dist/esm-types/bundler/serverOnly.d.ts +3 -0
- package/dist/esm-types/bundler/serverOnly.d.ts.map +1 -0
- package/dist/esm-types/cli/configure.d.ts.map +1 -1
- package/dist/esm-types/cli/deploymentCreate.d.ts +4 -0
- package/dist/esm-types/cli/deploymentCreate.d.ts.map +1 -1
- package/dist/esm-types/cli/deploymentSelect.d.ts.map +1 -1
- package/dist/esm-types/cli/deploymentTokenCreate.d.ts.map +1 -1
- package/dist/esm-types/cli/deploymentTokenDelete.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deployApi/componentDefinition.d.ts +6 -6
- package/dist/esm-types/cli/lib/deployApi/modules.d.ts +6 -6
- package/dist/esm-types/cli/lib/deployApi/startPush.d.ts +8 -8
- package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/env.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/errors.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/localDeployment.d.ts +8 -0
- package/dist/esm-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/utils.d.ts +13 -4
- package/dist/esm-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/utils/globalConfig.d.ts +0 -1
- package/dist/esm-types/cli/lib/utils/globalConfig.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/utils/utils.d.ts +7 -0
- package/dist/esm-types/cli/lib/utils/utils.d.ts.map +1 -1
- package/dist/esm-types/index.d.ts +1 -1
- package/dist/esm-types/server/audit_logging.d.ts +1 -0
- package/dist/esm-types/server/audit_logging.d.ts.map +1 -1
- package/dist/esm-types/server/components/index.d.ts.map +1 -1
- package/dist/esm-types/server/impl/registration_impl.d.ts.map +1 -1
- package/dist/esm-types/server/index.d.ts +2 -0
- package/dist/esm-types/server/index.d.ts.map +1 -1
- package/dist/esm-types/server/log.d.ts +28 -0
- package/dist/esm-types/server/log.d.ts.map +1 -1
- package/dist/esm-types/server/logVars.d.ts +1 -0
- package/dist/esm-types/server/logVars.d.ts.map +1 -1
- package/dist/esm-types/server/meta.d.ts +2 -0
- package/dist/esm-types/server/meta.d.ts.map +1 -1
- package/dist/react.bundle.js +1 -1
- package/dist/react.bundle.js.map +1 -1
- package/package.json +1 -1
- package/schemas/convex.schema.json +1 -1
- package/src/bundler/debugBundle.ts +2 -1
- package/src/bundler/index.ts +7 -3
- package/src/bundler/serverOnly.ts +18 -0
- package/src/cli/configure.ts +2 -35
- package/src/cli/deploy.ts +1 -1
- package/src/cli/deploymentCreate.test.ts +4 -0
- package/src/cli/deploymentCreate.ts +23 -9
- package/src/cli/deploymentSelect.test.ts +60 -6
- package/src/cli/deploymentSelect.ts +34 -0
- package/src/cli/deploymentSelection.test.ts +72 -19
- package/src/cli/deploymentTokenCreate.ts +4 -1
- package/src/cli/deploymentTokenDelete.ts +9 -1
- package/src/cli/index.ts +6 -2
- package/src/cli/lib/deploymentSelection.ts +5 -7
- package/src/cli/lib/env.ts +2 -0
- package/src/cli/lib/localDeployment/anonymous.ts +5 -4
- package/src/cli/lib/localDeployment/errors.ts +1 -3
- package/src/cli/lib/localDeployment/localDeployment.ts +85 -10
- package/src/cli/lib/localDeployment/utils.ts +31 -7
- package/src/cli/lib/utils/globalConfig.ts +0 -3
- package/src/cli/lib/utils/utils.ts +15 -0
- package/src/index.ts +1 -1
- package/src/server/audit_logging.ts +2 -3
- package/src/server/components/index.ts +3 -15
- package/src/server/impl/registration_impl.ts +13 -7
- package/src/server/index.ts +0 -6
- package/src/server/log.ts +21 -3
- package/src/server/logVars.ts +0 -3
- package/src/server/meta.ts +0 -7
- package/dist/cjs/cli/disableLocalDev.js +0 -121
- package/dist/cjs/cli/disableLocalDev.js.map +0 -7
- package/dist/cjs-types/cli/disableLocalDev.d.ts +0 -6
- package/dist/cjs-types/cli/disableLocalDev.d.ts.map +0 -1
- package/dist/esm/cli/disableLocalDev.js +0 -105
- package/dist/esm/cli/disableLocalDev.js.map +0 -7
- package/dist/esm-types/cli/disableLocalDev.d.ts +0 -6
- package/dist/esm-types/cli/disableLocalDev.d.ts.map +0 -1
- package/src/cli/disableLocalDev.ts +0 -134
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
ENV_VAR_FILE_PATH,
|
|
35
35
|
bigBrainAPI,
|
|
36
36
|
processDeployKeyValue,
|
|
37
|
+
readDeployKeyFromEnv,
|
|
37
38
|
typedPlatformClient,
|
|
38
39
|
} from "./utils/utils.js";
|
|
39
40
|
import * as dotenv from "dotenv";
|
|
@@ -94,7 +95,7 @@ export async function initializeBigBrainAuth(
|
|
|
94
95
|
});
|
|
95
96
|
}
|
|
96
97
|
const config = dotenv.parse(existingFile);
|
|
97
|
-
const rawDeployKey = config[
|
|
98
|
+
const rawDeployKey = readDeployKeyFromEnv((name) => config[name]);
|
|
98
99
|
const deployKey = await processDeployKeyValue(ctx, rawDeployKey);
|
|
99
100
|
if (deployKey !== undefined) {
|
|
100
101
|
const bigBrainAuth = getBigBrainAuth(ctx, {
|
|
@@ -117,7 +118,7 @@ export async function initializeBigBrainAuth(
|
|
|
117
118
|
}
|
|
118
119
|
dotenv.config({ path: ENV_VAR_FILE_PATH });
|
|
119
120
|
dotenv.config();
|
|
120
|
-
const rawDeployKey = process.env[
|
|
121
|
+
const rawDeployKey = readDeployKeyFromEnv((name) => process.env[name]);
|
|
121
122
|
const deployKey = await processDeployKeyValue(ctx, rawDeployKey);
|
|
122
123
|
if (deployKey !== undefined) {
|
|
123
124
|
const bigBrainAuth = getBigBrainAuth(ctx, {
|
|
@@ -518,11 +519,8 @@ async function getDeploymentSelectionFromEnv(
|
|
|
518
519
|
): Promise<
|
|
519
520
|
{ kind: "success"; metadata: DeploymentSelection } | { kind: "unknown" }
|
|
520
521
|
> {
|
|
521
|
-
const rawDeployKey = getEnv
|
|
522
|
-
const deployKey = await processDeployKeyValue(
|
|
523
|
-
ctx,
|
|
524
|
-
rawDeployKey === null ? undefined : rawDeployKey,
|
|
525
|
-
);
|
|
522
|
+
const rawDeployKey = readDeployKeyFromEnv(getEnv);
|
|
523
|
+
const deployKey = await processDeployKeyValue(ctx, rawDeployKey);
|
|
526
524
|
if (deployKey !== undefined) {
|
|
527
525
|
const deployKeyType = isPreviewDeployKey(deployKey)
|
|
528
526
|
? "preview"
|
package/src/cli/lib/env.ts
CHANGED
|
@@ -19,6 +19,7 @@ import { formatEnvValueForDotfile } from "./formatEnvValueForDotfile.js";
|
|
|
19
19
|
import {
|
|
20
20
|
CONVEX_DEPLOY_KEY_ENV_VAR_NAME,
|
|
21
21
|
CONVEX_DEPLOYMENT_ENV_VAR_NAME,
|
|
22
|
+
CONVEX_DEPLOYMENT_TOKEN_ENV_VAR_NAME,
|
|
22
23
|
CONVEX_SELF_HOSTED_URL_VAR_NAME,
|
|
23
24
|
CONVEX_SELF_HOSTED_ADMIN_KEY_VAR_NAME,
|
|
24
25
|
} from "./utils/utils.js";
|
|
@@ -230,6 +231,7 @@ async function envSetFromContent(
|
|
|
230
231
|
const envVarsToSet: [string, string][] = [];
|
|
231
232
|
const managedVars = new Set<string>([
|
|
232
233
|
CONVEX_DEPLOY_KEY_ENV_VAR_NAME,
|
|
234
|
+
CONVEX_DEPLOYMENT_TOKEN_ENV_VAR_NAME,
|
|
233
235
|
CONVEX_DEPLOYMENT_ENV_VAR_NAME,
|
|
234
236
|
CONVEX_SELF_HOSTED_URL_VAR_NAME,
|
|
235
237
|
CONVEX_SELF_HOSTED_ADMIN_KEY_VAR_NAME,
|
|
@@ -147,10 +147,11 @@ export async function handleAnonymousDeployment(
|
|
|
147
147
|
adminKey = data.adminKey;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
const { cloudPort, sitePort } = await chooseLocalBackendPorts(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
150
|
+
const { cloudPort, sitePort } = await chooseLocalBackendPorts(ctx, {
|
|
151
|
+
requestedPorts: options.ports,
|
|
152
|
+
suggestedPorts:
|
|
153
|
+
deployment.kind === "existing" ? deployment.config.ports : undefined,
|
|
154
|
+
});
|
|
154
155
|
const onActivity = async (isOffline: boolean, _wasOffline: boolean) => {
|
|
155
156
|
await ensureBackendRunning(ctx, {
|
|
156
157
|
cloudPort,
|
|
@@ -7,8 +7,6 @@ export function printLocalDeploymentOnError() {
|
|
|
7
7
|
// ctx.crash.
|
|
8
8
|
logFailure(`Hit an error while running local deployment.`);
|
|
9
9
|
logMessage(
|
|
10
|
-
"Your error has been reported to our team, and we'll be working on it.
|
|
11
|
-
"To opt out, run `npx convex disable-local-deployments`. " +
|
|
12
|
-
"Then re-run your original command.",
|
|
10
|
+
"Your error has been reported to our team, and we'll be working on it.",
|
|
13
11
|
);
|
|
14
12
|
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Context } from "../../../bundler/context.js";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
logFinishedStep,
|
|
4
|
+
logVerbose,
|
|
5
|
+
showSpinner,
|
|
6
|
+
} from "../../../bundler/log.js";
|
|
3
7
|
import {
|
|
4
8
|
bigBrainPause,
|
|
5
9
|
bigBrainRecordActivity,
|
|
@@ -19,6 +23,7 @@ import {
|
|
|
19
23
|
ensureBackendStopped,
|
|
20
24
|
localDeploymentUrl,
|
|
21
25
|
runLocalBackend,
|
|
26
|
+
withRunningBackend,
|
|
22
27
|
} from "./run.js";
|
|
23
28
|
import { handlePotentialUpgrade } from "./upgrade.js";
|
|
24
29
|
import { OnDeploymentActivityFunc } from "../deployment.js";
|
|
@@ -31,6 +36,10 @@ import {
|
|
|
31
36
|
LOCAL_BACKEND_INSTANCE_SECRET,
|
|
32
37
|
} from "./utils.js";
|
|
33
38
|
import { ensureBackendBinaryDownloaded } from "./download.js";
|
|
39
|
+
import { defaultEnvBackend } from "../defaultEnv.js";
|
|
40
|
+
import { deploymentEnvBackend } from "../env.js";
|
|
41
|
+
import { getProjectDetails } from "../deploymentSelection.js";
|
|
42
|
+
|
|
34
43
|
export type DeploymentDetails = {
|
|
35
44
|
deploymentName: string;
|
|
36
45
|
deploymentUrl: string;
|
|
@@ -61,7 +70,8 @@ export async function handleLocalDeployment(
|
|
|
61
70
|
projectSlug: options.projectSlug,
|
|
62
71
|
teamSlug: options.teamSlug,
|
|
63
72
|
});
|
|
64
|
-
|
|
73
|
+
const isFirstTime = existingDeploymentForProject === null;
|
|
74
|
+
if (isFirstTime) {
|
|
65
75
|
printLocalDeploymentWelcomeMessage();
|
|
66
76
|
}
|
|
67
77
|
ctx.registerCleanup(async (_exitCode, err) => {
|
|
@@ -93,10 +103,10 @@ export async function handleLocalDeployment(
|
|
|
93
103
|
}
|
|
94
104
|
: { kind: "version", version: options.backendVersion },
|
|
95
105
|
);
|
|
96
|
-
const { cloudPort, sitePort } = await chooseLocalBackendPorts(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
);
|
|
106
|
+
const { cloudPort, sitePort } = await chooseLocalBackendPorts(ctx, {
|
|
107
|
+
requestedPorts: options.ports,
|
|
108
|
+
suggestedPorts: existingDeploymentForProject?.config.ports,
|
|
109
|
+
});
|
|
100
110
|
const { deploymentName, adminKey } = await bigBrainStart(ctx, {
|
|
101
111
|
port: cloudPort,
|
|
102
112
|
projectSlug: options.projectSlug,
|
|
@@ -129,6 +139,16 @@ export async function handleLocalDeployment(
|
|
|
129
139
|
forceUpgrade: options.forceUpgrade,
|
|
130
140
|
});
|
|
131
141
|
|
|
142
|
+
if (isFirstTime) {
|
|
143
|
+
await importDefaultEnvVars(ctx, {
|
|
144
|
+
teamSlug: options.teamSlug,
|
|
145
|
+
projectSlug: options.projectSlug,
|
|
146
|
+
deploymentName,
|
|
147
|
+
deploymentUrl: localDeploymentUrl(cloudPort),
|
|
148
|
+
adminKey,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
132
152
|
// Periodically report activity to BigBrain every 60 seconds.
|
|
133
153
|
// Uses self-scheduling setTimeout to avoid overlapping requests.
|
|
134
154
|
let activityTimeout: ReturnType<typeof setTimeout> | null = null;
|
|
@@ -206,10 +226,11 @@ async function handleOffline(
|
|
|
206
226
|
kind: "version",
|
|
207
227
|
version: config.backendVersion,
|
|
208
228
|
});
|
|
209
|
-
const { cloudPort, sitePort } = await chooseLocalBackendPorts(
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
229
|
+
const { cloudPort, sitePort } = await chooseLocalBackendPorts(ctx, {
|
|
230
|
+
requestedPorts: options.ports,
|
|
231
|
+
// FIXME: This doesn’t try to reuse the ports already assigned in the config.
|
|
232
|
+
// Please update this if we ever support offline mode (currently this is dead code).
|
|
233
|
+
});
|
|
213
234
|
saveDeploymentConfig(ctx, "local", deploymentName, config);
|
|
214
235
|
await runLocalBackend(ctx, {
|
|
215
236
|
binaryPath,
|
|
@@ -378,3 +399,57 @@ async function chooseFromExistingLocalDeployments(ctx: Context): Promise<{
|
|
|
378
399
|
})),
|
|
379
400
|
});
|
|
380
401
|
}
|
|
402
|
+
|
|
403
|
+
/** Copies the default dev env vars from big brain the first time the local dev backend is started */
|
|
404
|
+
export async function importDefaultEnvVars(
|
|
405
|
+
ctx: Context,
|
|
406
|
+
{
|
|
407
|
+
teamSlug,
|
|
408
|
+
projectSlug,
|
|
409
|
+
deploymentName,
|
|
410
|
+
deploymentUrl,
|
|
411
|
+
adminKey,
|
|
412
|
+
}: {
|
|
413
|
+
teamSlug: string;
|
|
414
|
+
projectSlug: string;
|
|
415
|
+
deploymentName: string;
|
|
416
|
+
deploymentUrl: string;
|
|
417
|
+
adminKey: string;
|
|
418
|
+
},
|
|
419
|
+
) {
|
|
420
|
+
showSpinner("Importing default env vars...");
|
|
421
|
+
|
|
422
|
+
const project = await getProjectDetails(ctx, {
|
|
423
|
+
kind: "teamAndProjectSlugs",
|
|
424
|
+
teamSlug,
|
|
425
|
+
projectSlug,
|
|
426
|
+
});
|
|
427
|
+
const defaults = await defaultEnvBackend(ctx, project.id, "dev").list();
|
|
428
|
+
if (defaults.length === 0) {
|
|
429
|
+
logFinishedStep("No default env vars to import.");
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
const deployment = {
|
|
434
|
+
deploymentUrl,
|
|
435
|
+
deploymentFields: {
|
|
436
|
+
deploymentName,
|
|
437
|
+
deploymentType: "local" as const,
|
|
438
|
+
projectSlug,
|
|
439
|
+
teamSlug,
|
|
440
|
+
},
|
|
441
|
+
};
|
|
442
|
+
|
|
443
|
+
await withRunningBackend({
|
|
444
|
+
ctx,
|
|
445
|
+
deployment,
|
|
446
|
+
action: async () => {
|
|
447
|
+
await deploymentEnvBackend(ctx, { deploymentUrl, adminKey }).update(
|
|
448
|
+
defaults.map((v) => ({ name: v.name, value: v.value })),
|
|
449
|
+
);
|
|
450
|
+
logFinishedStep(
|
|
451
|
+
`Imported ${defaults.length} environment ${defaults.length === 1 ? "variable" : "variables"} from default environment variables: ${defaults.map((v) => v.name).join(", ")}`,
|
|
452
|
+
);
|
|
453
|
+
},
|
|
454
|
+
});
|
|
455
|
+
}
|
|
@@ -9,10 +9,14 @@ export async function choosePorts(
|
|
|
9
9
|
{
|
|
10
10
|
count,
|
|
11
11
|
requestedPorts,
|
|
12
|
+
suggestedPorts,
|
|
12
13
|
startPort,
|
|
13
14
|
}: {
|
|
14
15
|
count: number;
|
|
16
|
+
/** Ports that must mandatorily be used when provided. */
|
|
15
17
|
requestedPorts?: Array<number | null>;
|
|
18
|
+
/** Ports that will be tried preferentially when provided, but are not required. */
|
|
19
|
+
suggestedPorts?: Array<number | null>;
|
|
16
20
|
startPort: number;
|
|
17
21
|
},
|
|
18
22
|
): Promise<Array<number>> {
|
|
@@ -30,6 +34,15 @@ export async function choosePorts(
|
|
|
30
34
|
}
|
|
31
35
|
ports.push(port);
|
|
32
36
|
} else {
|
|
37
|
+
const suggestedPort = suggestedPorts?.[ports.length] ?? null;
|
|
38
|
+
if (suggestedPort !== null) {
|
|
39
|
+
const port = await detect(suggestedPort);
|
|
40
|
+
if (port === suggestedPort) {
|
|
41
|
+
ports.push(suggestedPort);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
33
46
|
const portToTry =
|
|
34
47
|
ports.length > 0 ? ports[ports.length - 1] + 1 : startPort;
|
|
35
48
|
const port = await detect(portToTry);
|
|
@@ -41,12 +54,28 @@ export async function choosePorts(
|
|
|
41
54
|
|
|
42
55
|
export async function chooseLocalBackendPorts(
|
|
43
56
|
ctx: Context,
|
|
44
|
-
|
|
57
|
+
options?: {
|
|
58
|
+
suggestedPorts?:
|
|
59
|
+
| { cloud?: number | null; site?: number | null }
|
|
60
|
+
| undefined;
|
|
61
|
+
requestedPorts?:
|
|
62
|
+
| { cloud?: number | null; site?: number | null }
|
|
63
|
+
| undefined;
|
|
64
|
+
},
|
|
45
65
|
): Promise<{ cloudPort: number; sitePort: number }> {
|
|
66
|
+
const { suggestedPorts, requestedPorts } = options ?? {};
|
|
67
|
+
|
|
46
68
|
const [cloudPort, sitePort] = await choosePorts(ctx, {
|
|
47
69
|
count: 2,
|
|
48
70
|
startPort: 3210,
|
|
49
|
-
requestedPorts: [
|
|
71
|
+
requestedPorts: [
|
|
72
|
+
requestedPorts?.cloud ?? null,
|
|
73
|
+
requestedPorts?.site ?? null,
|
|
74
|
+
],
|
|
75
|
+
suggestedPorts: [
|
|
76
|
+
suggestedPorts?.cloud ?? null,
|
|
77
|
+
suggestedPorts?.site ?? null,
|
|
78
|
+
],
|
|
50
79
|
});
|
|
51
80
|
return { cloudPort, sitePort };
|
|
52
81
|
}
|
|
@@ -65,11 +94,6 @@ export function printLocalDeploymentWelcomeMessage() {
|
|
|
65
94
|
"To learn more, read the docs: https://docs.convex.dev/cli/local-deployments",
|
|
66
95
|
),
|
|
67
96
|
);
|
|
68
|
-
logMessage(
|
|
69
|
-
chalkStderr.cyan(
|
|
70
|
-
"To opt out at any time, run `npx convex disable-local-deployments`",
|
|
71
|
-
),
|
|
72
|
-
);
|
|
73
97
|
}
|
|
74
98
|
|
|
75
99
|
export function generateInstanceSecret(): string {
|
|
@@ -15,13 +15,10 @@ export function globalConfigPath(): string {
|
|
|
15
15
|
// GlobalConfig is deleted on logout. It is primarily used for the accessToken.
|
|
16
16
|
export type GlobalConfig = {
|
|
17
17
|
accessToken: string;
|
|
18
|
-
// Means "Don't use local dev unless CLI version is at least 1.19" (actual version TBD)
|
|
19
|
-
optOutOfLocalDevDeploymentsUntilBetaOver?: boolean | undefined;
|
|
20
18
|
};
|
|
21
19
|
|
|
22
20
|
const schema = z.object({
|
|
23
21
|
accessToken: z.string().min(1),
|
|
24
|
-
optOutOfLocalDevDeploymentsUntilBetaOver: z.boolean().optional(),
|
|
25
22
|
});
|
|
26
23
|
|
|
27
24
|
export function readGlobalConfig(ctx: Context): GlobalConfig | null {
|
|
@@ -38,6 +38,8 @@ export const BIG_BRAIN_URL = `${provisionHost}/api/`;
|
|
|
38
38
|
const PLATFORM_MANAGEMENT_API_URL = `${provisionHost}/v1/`;
|
|
39
39
|
export const ENV_VAR_FILE_PATH = ".env.local";
|
|
40
40
|
export const CONVEX_DEPLOY_KEY_ENV_VAR_NAME = "CONVEX_DEPLOY_KEY";
|
|
41
|
+
// Alias for CONVEX_DEPLOY_KEY. Accepted anywhere CONVEX_DEPLOY_KEY is.
|
|
42
|
+
export const CONVEX_DEPLOYMENT_TOKEN_ENV_VAR_NAME = "CONVEX_DEPLOYMENT_TOKEN";
|
|
41
43
|
export const CONVEX_DEPLOYMENT_ENV_VAR_NAME = "CONVEX_DEPLOYMENT";
|
|
42
44
|
export const CONVEX_SELF_HOSTED_URL_VAR_NAME = "CONVEX_SELF_HOSTED_URL";
|
|
43
45
|
export const CONVEX_SELF_HOSTED_ADMIN_KEY_VAR_NAME =
|
|
@@ -85,6 +87,19 @@ export async function processDeployKeyValue(
|
|
|
85
87
|
return deployKey;
|
|
86
88
|
}
|
|
87
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Reads the deploy key from environment variables, accepting either
|
|
92
|
+
* CONVEX_DEPLOY_KEY or its alias CONVEX_DEPLOYMENT_TOKEN. CONVEX_DEPLOY_KEY
|
|
93
|
+
* takes precedence when both are set.
|
|
94
|
+
*/
|
|
95
|
+
export function readDeployKeyFromEnv(
|
|
96
|
+
getEnv: (name: string) => string | undefined | null,
|
|
97
|
+
): string | undefined {
|
|
98
|
+
const fromDeployKey = getEnv(CONVEX_DEPLOY_KEY_ENV_VAR_NAME);
|
|
99
|
+
const fromToken = getEnv(CONVEX_DEPLOYMENT_TOKEN_ENV_VAR_NAME);
|
|
100
|
+
return fromDeployKey || fromToken || undefined;
|
|
101
|
+
}
|
|
102
|
+
|
|
88
103
|
export function parsePositiveInteger(value: string) {
|
|
89
104
|
const parsedValue = parseInteger(value);
|
|
90
105
|
if (parsedValue <= 0) {
|
package/src/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = "1.
|
|
1
|
+
export const version = "1.38.0";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { version } from "../index.js";
|
|
1
2
|
import { performAsyncSyscall } from "./impl/syscall.js";
|
|
2
3
|
import { LogVar, varNames } from "./logVars.js";
|
|
3
4
|
|
|
@@ -65,11 +66,9 @@ export function cloneWithSentinels(body: AuditLogBody): {
|
|
|
65
66
|
return result;
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
/**
|
|
69
|
-
* @internal
|
|
70
|
-
*/
|
|
71
69
|
export const audit = async (body: AuditLogBody): Promise<void> => {
|
|
72
70
|
await performAsyncSyscall("1.0/auditLog", {
|
|
73
71
|
body: cloneWithSentinels(body),
|
|
72
|
+
version,
|
|
74
73
|
});
|
|
75
74
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { convexToJson } from "../../values/index.js";
|
|
2
2
|
import { version } from "../../index.js";
|
|
3
3
|
import {
|
|
4
4
|
AnyFunctionReference,
|
|
@@ -151,7 +151,6 @@ type CommonDefinitionData = {
|
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
type ComponentDefinitionData = CommonDefinitionData & {
|
|
154
|
-
_args: PropertyValidators;
|
|
155
154
|
_name: string;
|
|
156
155
|
_onInitCallbacks: Record<string, (argsStr: string) => string>;
|
|
157
156
|
};
|
|
@@ -369,19 +368,10 @@ function serializeChildComponents(
|
|
|
369
368
|
function exportComponentForAnalysis(
|
|
370
369
|
this: ComponentDefinition<any> & ComponentDefinitionData,
|
|
371
370
|
): ComponentDefinitionAnalysis {
|
|
372
|
-
const args: [string, { type: "value"; value: string }][] = Object.entries(
|
|
373
|
-
this._args,
|
|
374
|
-
).map(([name, validator]) => [
|
|
375
|
-
name,
|
|
376
|
-
{
|
|
377
|
-
type: "value",
|
|
378
|
-
value: JSON.stringify(validator.json),
|
|
379
|
-
},
|
|
380
|
-
]);
|
|
381
371
|
const definitionType: ComponentDefinitionType = {
|
|
382
372
|
type: "childComponent" as const,
|
|
383
373
|
name: this._name,
|
|
384
|
-
args,
|
|
374
|
+
args: [],
|
|
385
375
|
};
|
|
386
376
|
const childComponents = serializeChildComponents(this._childComponents);
|
|
387
377
|
const httpMounts = buildHttpMounts(this._childComponents);
|
|
@@ -424,7 +414,6 @@ export function defineComponent<Exports extends ComponentExports = any>(
|
|
|
424
414
|
const ret: RuntimeComponentDefinition = {
|
|
425
415
|
_isRoot: false,
|
|
426
416
|
_name: name,
|
|
427
|
-
_args: {},
|
|
428
417
|
_childComponents: [],
|
|
429
418
|
_exportTree: {},
|
|
430
419
|
_onInitCallbacks: {},
|
|
@@ -432,8 +421,7 @@ export function defineComponent<Exports extends ComponentExports = any>(
|
|
|
432
421
|
export: exportComponentForAnalysis,
|
|
433
422
|
use,
|
|
434
423
|
|
|
435
|
-
|
|
436
|
-
...({} as { __args: any; __exports: any }),
|
|
424
|
+
...({} as { __exports: any }),
|
|
437
425
|
};
|
|
438
426
|
return ret as any as ComponentDefinition<Exports>;
|
|
439
427
|
}
|
|
@@ -60,11 +60,12 @@ async function invokeMutation<
|
|
|
60
60
|
scheduler: setupMutationScheduler(),
|
|
61
61
|
meta: setupMutationMeta(visibility),
|
|
62
62
|
|
|
63
|
-
runQuery: (reference: any, args?: any
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
runQuery: (reference: any, args?: any, options?: any) =>
|
|
64
|
+
runUdf("query", reference, args, options?.transactionLimits),
|
|
65
|
+
runSnapshotQuery: (reference: any, args?: any, options?: any) =>
|
|
66
|
+
runUdf("snapshotQuery", reference, args, options?.transactionLimits),
|
|
67
|
+
runMutation: (reference: any, args?: any, options?: any) =>
|
|
68
|
+
runUdf("mutation", reference, args, options?.transactionLimits),
|
|
68
69
|
};
|
|
69
70
|
const result = await invokeFunction(func, mutationCtx, args as any);
|
|
70
71
|
validateReturnValue(result);
|
|
@@ -337,7 +338,8 @@ async function invokeQuery<
|
|
|
337
338
|
auth: setupAuth(requestId),
|
|
338
339
|
storage: setupStorageReader(requestId),
|
|
339
340
|
meta: setupQueryMeta(visibility),
|
|
340
|
-
runQuery: (reference: any, args?: any
|
|
341
|
+
runQuery: (reference: any, args?: any, options?: any) =>
|
|
342
|
+
runUdf("query", reference, args, options?.transactionLimits),
|
|
341
343
|
};
|
|
342
344
|
const result = await invokeFunction(func, queryCtx, args as any);
|
|
343
345
|
validateReturnValue(result);
|
|
@@ -750,13 +752,17 @@ async function runUdf(
|
|
|
750
752
|
udfType: "query" | "mutation" | "snapshotQuery",
|
|
751
753
|
f: any,
|
|
752
754
|
args?: Record<string, Value>,
|
|
755
|
+
transactionLimits?: Record<string, number>,
|
|
753
756
|
): Promise<any> {
|
|
754
757
|
const queryArgs = parseArgs(args);
|
|
755
|
-
const syscallArgs = {
|
|
758
|
+
const syscallArgs: Record<string, any> = {
|
|
756
759
|
udfType,
|
|
757
760
|
args: convexToJson(queryArgs),
|
|
758
761
|
...getFunctionAddress(f),
|
|
759
762
|
};
|
|
763
|
+
if (transactionLimits) {
|
|
764
|
+
syscallArgs.transactionLimits = transactionLimits;
|
|
765
|
+
}
|
|
760
766
|
const result = await performAsyncSyscall("1.0/runUdf", syscallArgs);
|
|
761
767
|
return jsonToConvex(result);
|
|
762
768
|
}
|
package/src/server/index.ts
CHANGED
|
@@ -204,13 +204,7 @@ export type {
|
|
|
204
204
|
*/
|
|
205
205
|
export type { Index, SearchIndex, VectorIndex } from "./schema.js";
|
|
206
206
|
|
|
207
|
-
/**
|
|
208
|
-
* @internal
|
|
209
|
-
*/
|
|
210
207
|
export { log } from "./log.js";
|
|
211
|
-
/**
|
|
212
|
-
* @internal
|
|
213
|
-
*/
|
|
214
208
|
export type { AuditLogBody, AuditLogValue } from "./audit_logging.js";
|
|
215
209
|
|
|
216
210
|
export type {
|
package/src/server/log.ts
CHANGED
|
@@ -3,13 +3,31 @@ import { vars } from "./logVars.js";
|
|
|
3
3
|
|
|
4
4
|
// Type annotations are needed for the `unique symbol` types in `vars` to typecheck correctly
|
|
5
5
|
interface Log {
|
|
6
|
+
/**
|
|
7
|
+
* Emit a durable audit log. This functionality is only available for Convex
|
|
8
|
+
* Enterprise (see https://www.convex.dev/enterprise/pricing).
|
|
9
|
+
*
|
|
10
|
+
* Use dynamic variables from `log.vars` to include deferred values that will
|
|
11
|
+
* be resolved when emitting the log. Cached query hits will replay audit logs
|
|
12
|
+
* with updated values.
|
|
13
|
+
* ```ts
|
|
14
|
+
* await log.audit({
|
|
15
|
+
* action: "document.viewed",
|
|
16
|
+
* actor: { userId },
|
|
17
|
+
* source: {
|
|
18
|
+
* ip: log.vars.ip,
|
|
19
|
+
* userAgent: log.vars.userAgent,
|
|
20
|
+
* },
|
|
21
|
+
* timestamp: log.vars.now,
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* The log body must be JSON-serializable.
|
|
26
|
+
*/
|
|
6
27
|
audit: typeof audit;
|
|
7
28
|
vars: typeof vars;
|
|
8
29
|
}
|
|
9
30
|
|
|
10
|
-
/**
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
31
|
export const log: Log = {
|
|
14
32
|
audit,
|
|
15
33
|
vars,
|
package/src/server/logVars.ts
CHANGED
package/src/server/meta.ts
CHANGED
|
@@ -106,9 +106,6 @@ export interface QueryMeta {
|
|
|
106
106
|
* @public
|
|
107
107
|
*/
|
|
108
108
|
export interface MutationMeta extends QueryMeta {
|
|
109
|
-
/**
|
|
110
|
-
* @internal
|
|
111
|
-
*/
|
|
112
109
|
getRequestMetadata(): Promise<RequestMetadata>;
|
|
113
110
|
}
|
|
114
111
|
|
|
@@ -120,9 +117,5 @@ export interface MutationMeta extends QueryMeta {
|
|
|
120
117
|
export interface ActionMeta {
|
|
121
118
|
getFunctionMetadata(): Promise<FunctionMetadata>;
|
|
122
119
|
getDeploymentMetadata(): Promise<DeploymentMetadata>;
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* @internal
|
|
126
|
-
*/
|
|
127
120
|
getRequestMetadata(): Promise<RequestMetadata>;
|
|
128
121
|
}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var disableLocalDev_exports = {};
|
|
20
|
-
__export(disableLocalDev_exports, {
|
|
21
|
-
disableLocalDeployments: () => disableLocalDeployments
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(disableLocalDev_exports);
|
|
24
|
-
var import_extra_typings = require("@commander-js/extra-typings");
|
|
25
|
-
var import_context = require("../bundler/context.js");
|
|
26
|
-
var import_log = require("../bundler/log.js");
|
|
27
|
-
var import_configure = require("./configure.js");
|
|
28
|
-
var import_globalConfig = require("./lib/utils/globalConfig.js");
|
|
29
|
-
var import_deploymentSelection = require("./lib/deploymentSelection.js");
|
|
30
|
-
const disableLocalDeployments = new import_extra_typings.Command("disable-local-deployments").description(
|
|
31
|
-
"Stop using a local deployment for the current project, or globally disable local depoyments with --global"
|
|
32
|
-
).option(
|
|
33
|
-
"--global",
|
|
34
|
-
"Disable local deployments on this machine until a future release when this feature is more stable."
|
|
35
|
-
).option("--undo-global", "Re-enable local deployments on this machine.").allowExcessArguments(false).action(async (cmdOptions) => {
|
|
36
|
-
const ctx = await (0, import_context.oneoffContext)({
|
|
37
|
-
url: void 0,
|
|
38
|
-
adminKey: void 0,
|
|
39
|
-
envFile: void 0
|
|
40
|
-
});
|
|
41
|
-
if (cmdOptions.undoGlobal) {
|
|
42
|
-
return disableLocalDeploymentsGloballyUntilBetaOver(true);
|
|
43
|
-
}
|
|
44
|
-
if (cmdOptions.global) {
|
|
45
|
-
return disableLocalDeploymentsGloballyUntilBetaOver(
|
|
46
|
-
!!cmdOptions.undoGlobal
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
const deploymentSelection = await (0, import_deploymentSelection.getDeploymentSelection)(ctx, {
|
|
50
|
-
url: void 0,
|
|
51
|
-
adminKey: void 0,
|
|
52
|
-
envFile: void 0
|
|
53
|
-
});
|
|
54
|
-
const configuredDeployment = (0, import_deploymentSelection.deploymentNameAndTypeFromSelection)(deploymentSelection);
|
|
55
|
-
if (configuredDeployment?.type !== null && configuredDeployment?.type !== "local") {
|
|
56
|
-
(0, import_log.logFinishedStep)("Local development is already not being used.");
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
await (0, import_configure.deploymentCredentialsOrConfigure)(ctx, deploymentSelection, "ask", {
|
|
60
|
-
prod: false,
|
|
61
|
-
localOptions: {
|
|
62
|
-
forceUpgrade: false
|
|
63
|
-
},
|
|
64
|
-
cloud: true
|
|
65
|
-
});
|
|
66
|
-
(0, import_log.logFinishedStep)(
|
|
67
|
-
"You are no longer using a local deployment for development."
|
|
68
|
-
);
|
|
69
|
-
});
|
|
70
|
-
async function disableLocalDeploymentsGloballyUntilBetaOver(reenable) {
|
|
71
|
-
const ctx = await (0, import_context.oneoffContext)({
|
|
72
|
-
url: void 0,
|
|
73
|
-
adminKey: void 0,
|
|
74
|
-
envFile: void 0
|
|
75
|
-
});
|
|
76
|
-
if (!process.stdin.isTTY) {
|
|
77
|
-
return ctx.crash({
|
|
78
|
-
exitCode: 1,
|
|
79
|
-
errorType: "fatal",
|
|
80
|
-
printedMessage: "`disable-local-deployments --global` is not for scripting, it is temporary and only for interactive use."
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
const config = (0, import_globalConfig.readGlobalConfig)(ctx);
|
|
84
|
-
if (config === null) {
|
|
85
|
-
return ctx.crash({
|
|
86
|
-
exitCode: 1,
|
|
87
|
-
errorType: "fatal",
|
|
88
|
-
printedMessage: "Log in first with `npx convex login"
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
if (reenable) {
|
|
92
|
-
if (!("optOutOfLocalDevDeploymentsUntilBetaOver" in config) || !config.optOutOfLocalDevDeploymentsUntilBetaOver) {
|
|
93
|
-
(0, import_log.logFinishedStep)(
|
|
94
|
-
"You are already opted into allowing local deployents on this machine."
|
|
95
|
-
);
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
await (0, import_globalConfig.modifyGlobalConfig)(ctx, {
|
|
99
|
-
...config,
|
|
100
|
-
optOutOfLocalDevDeploymentsUntilBetaOver: false
|
|
101
|
-
});
|
|
102
|
-
(0, import_log.logFinishedStep)(
|
|
103
|
-
"You have been opted back into allowing local deployents on this machine."
|
|
104
|
-
);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
if ("optOutOfLocalDevDeploymentsUntilBetaOver" in config && config.optOutOfLocalDevDeploymentsUntilBetaOver) {
|
|
108
|
-
(0, import_log.logFinishedStep)(
|
|
109
|
-
"You are already opted out of local deployents on this machine."
|
|
110
|
-
);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
await (0, import_globalConfig.modifyGlobalConfig)(ctx, {
|
|
114
|
-
...config,
|
|
115
|
-
optOutOfLocalDevDeploymentsUntilBetaOver: true
|
|
116
|
-
});
|
|
117
|
-
(0, import_log.logFinishedStep)(
|
|
118
|
-
"You have been opted out of local deployents on this machine until the beta is over. Run `npx convex disable-local-deployments --undo-global` to opt back in."
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=disableLocalDev.js.map
|