@microsoft/managed-apps-cli 0.9.1 → 0.10.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/README.md +23 -43
- package/dist/ArgumentProvider.d.ts.map +1 -1
- package/dist/ArgumentProvider.js +3 -0
- package/dist/ArgumentProvider.js.map +1 -1
- package/dist/Authentication/NodeMsalAuthenticationProvider.js +20 -1
- package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +14 -2
- package/dist/Cli.js.map +1 -1
- package/dist/Constants/CommandRegistry.d.ts.map +1 -1
- package/dist/Constants/CommandRegistry.js +5 -24
- package/dist/Constants/CommandRegistry.js.map +1 -1
- package/dist/Constants/HelpStrings.d.ts +8 -7
- package/dist/Constants/HelpStrings.d.ts.map +1 -1
- package/dist/Constants/HelpStrings.js +78 -73
- package/dist/Constants/HelpStrings.js.map +1 -1
- package/dist/Constants.d.ts +1 -1
- package/dist/Constants.d.ts.map +1 -1
- package/dist/Constants.js +4 -9
- package/dist/Constants.js.map +1 -1
- package/dist/Errors/GitHubErrorMap.d.ts +43 -14
- package/dist/Errors/GitHubErrorMap.d.ts.map +1 -1
- package/dist/Errors/GitHubErrorMap.js +188 -147
- package/dist/Errors/GitHubErrorMap.js.map +1 -1
- package/dist/Logger/CliLogger.d.ts +1 -0
- package/dist/Logger/CliLogger.d.ts.map +1 -1
- package/dist/Logger/CliLogger.js +5 -3
- package/dist/Logger/CliLogger.js.map +1 -1
- package/dist/Logger/LoggerSettings.d.ts +2 -3
- package/dist/Logger/LoggerSettings.d.ts.map +1 -1
- package/dist/Logger/LoggerSettings.js +3 -39
- package/dist/Logger/LoggerSettings.js.map +1 -1
- package/dist/Logger/OneDSWriter.d.ts.map +1 -1
- package/dist/Logger/OneDSWriter.js +3 -3
- package/dist/Logger/OneDSWriter.js.map +1 -1
- package/dist/Types/Argument.types.d.ts +1 -0
- package/dist/Types/Argument.types.d.ts.map +1 -1
- package/dist/Utils/BuildPolling.d.ts +27 -2
- package/dist/Utils/BuildPolling.d.ts.map +1 -1
- package/dist/Utils/BuildPolling.js +98 -22
- package/dist/Utils/BuildPolling.js.map +1 -1
- package/dist/Utils/DcfRecovery.d.ts +7 -7
- package/dist/Utils/DcfRecovery.d.ts.map +1 -1
- package/dist/Utils/DcfRecovery.js +17 -37
- package/dist/Utils/DcfRecovery.js.map +1 -1
- package/dist/Utils/DownloadTemplate.d.ts +45 -0
- package/dist/Utils/DownloadTemplate.d.ts.map +1 -0
- package/dist/Utils/DownloadTemplate.js +159 -0
- package/dist/Utils/DownloadTemplate.js.map +1 -0
- package/dist/Utils/EnvVars.d.ts +1 -1
- package/dist/Utils/EnvVars.d.ts.map +1 -1
- package/dist/Utils/GitVersionChecker.d.ts +38 -0
- package/dist/Utils/GitVersionChecker.d.ts.map +1 -0
- package/dist/Utils/GitVersionChecker.js +61 -0
- package/dist/Utils/GitVersionChecker.js.map +1 -0
- package/dist/Utils/MaafAppConfig.d.ts +22 -0
- package/dist/Utils/MaafAppConfig.d.ts.map +1 -0
- package/dist/Utils/MaafAppConfig.js +32 -0
- package/dist/Utils/MaafAppConfig.js.map +1 -0
- package/dist/Utils/NodeVersionChecker.d.ts +10 -0
- package/dist/Utils/NodeVersionChecker.d.ts.map +1 -0
- package/dist/Utils/NodeVersionChecker.js +21 -0
- package/dist/Utils/NodeVersionChecker.js.map +1 -0
- package/dist/Utils/Paging.d.ts +5 -0
- package/dist/Utils/Paging.d.ts.map +1 -1
- package/dist/Utils/Paging.js +29 -0
- package/dist/Utils/Paging.js.map +1 -1
- package/dist/Utils/PinCli.d.ts +28 -0
- package/dist/Utils/PinCli.d.ts.map +1 -0
- package/dist/Utils/PinCli.js +58 -0
- package/dist/Utils/PinCli.js.map +1 -0
- package/dist/Utils/RepoOption.d.ts +35 -0
- package/dist/Utils/RepoOption.d.ts.map +1 -0
- package/dist/Utils/RepoOption.js +36 -0
- package/dist/Utils/RepoOption.js.map +1 -0
- package/dist/Utils/Spinner.d.ts.map +1 -1
- package/dist/Utils/Spinner.js +3 -0
- package/dist/Utils/Spinner.js.map +1 -1
- package/dist/Verbs/AddAction.js +6 -6
- package/dist/Verbs/AddAction.js.map +1 -1
- package/dist/Verbs/AddConnector.d.ts +5 -3
- package/dist/Verbs/AddConnector.d.ts.map +1 -1
- package/dist/Verbs/AddConnector.js +45 -11
- package/dist/Verbs/AddConnector.js.map +1 -1
- package/dist/Verbs/AddConnectorFlows.d.ts +27 -14
- package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -1
- package/dist/Verbs/AddConnectorFlows.js +70 -20
- package/dist/Verbs/AddConnectorFlows.js.map +1 -1
- package/dist/Verbs/AddDataSource.d.ts +3 -4
- package/dist/Verbs/AddDataSource.d.ts.map +1 -1
- package/dist/Verbs/AddDataSource.js +9 -20
- package/dist/Verbs/AddDataSource.js.map +1 -1
- package/dist/Verbs/AddTable.js +6 -6
- package/dist/Verbs/AddTable.js.map +1 -1
- package/dist/Verbs/AuthStatus.d.ts.map +1 -1
- package/dist/Verbs/AuthStatus.js +7 -4
- package/dist/Verbs/AuthStatus.js.map +1 -1
- package/dist/Verbs/BuildMaafApp.js +1 -1
- package/dist/Verbs/BuildMaafApp.js.map +1 -1
- package/dist/Verbs/ConnectorHelpers.d.ts +3 -4
- package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
- package/dist/Verbs/ConnectorHelpers.js +8 -9
- package/dist/Verbs/ConnectorHelpers.js.map +1 -1
- package/dist/Verbs/CreateMaafApp.d.ts +0 -29
- package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
- package/dist/Verbs/CreateMaafApp.js +100 -171
- package/dist/Verbs/CreateMaafApp.js.map +1 -1
- package/dist/Verbs/DeleteDataSource.js +6 -6
- package/dist/Verbs/DeleteDataSource.js.map +1 -1
- package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
- package/dist/Verbs/DeployMaafApp.js +18 -81
- package/dist/Verbs/DeployMaafApp.js.map +1 -1
- package/dist/Verbs/Dev.js +1 -1
- package/dist/Verbs/Dev.js.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.js +56 -40
- package/dist/Verbs/GetMaafBuildStatus.js.map +1 -1
- package/dist/Verbs/GetSettings.js +1 -1
- package/dist/Verbs/GetSettings.js.map +1 -1
- package/dist/Verbs/Init.d.ts.map +1 -1
- package/dist/Verbs/Init.js +166 -58
- package/dist/Verbs/Init.js.map +1 -1
- package/dist/Verbs/ListConnectorActions.js +12 -9
- package/dist/Verbs/ListConnectorActions.js.map +1 -1
- package/dist/Verbs/ListConnectors.js +2 -2
- package/dist/Verbs/ListConnectors.js.map +1 -1
- package/dist/Verbs/ListMaafApps.js +3 -3
- package/dist/Verbs/ListMaafApps.js.map +1 -1
- package/dist/Verbs/MaafAppPermissions.js +2 -2
- package/dist/Verbs/MaafAppPermissions.js.map +1 -1
- package/dist/Verbs/RefreshDataSource.js +1 -1
- package/dist/Verbs/RefreshDataSource.js.map +1 -1
- package/dist/Verbs/RefreshGitAuth.d.ts.map +1 -1
- package/dist/Verbs/RefreshGitAuth.js +3 -15
- package/dist/Verbs/RefreshGitAuth.js.map +1 -1
- package/dist/Verbs/SetSetting.js +2 -2
- package/dist/Verbs/SetSetting.js.map +1 -1
- package/dist/Verbs/ShowMaafApp.js +2 -2
- package/dist/Verbs/ShowMaafApp.js.map +1 -1
- package/dist/Verbs/VerbConstants.d.ts +19 -22
- package/dist/Verbs/VerbConstants.d.ts.map +1 -1
- package/dist/Verbs/VerbConstants.js +19 -22
- package/dist/Verbs/VerbConstants.js.map +1 -1
- package/package.json +11 -9
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Sentinel value for `--repo` that selects the no-source-control flow: just create the
|
|
6
|
+
* server-side app record, write `ms.config.json` with `repoType: 'none'`, and skip every
|
|
7
|
+
* local-setup step (git init/clone, template overlay, GCM config) plus the server-side
|
|
8
|
+
* GRS auto-provisioning. Comparison is case-insensitive — `none`, `None`, `NONE` all
|
|
9
|
+
* select this flow. Any other non-empty `--repo` value is treated as a remote URL.
|
|
10
|
+
*/
|
|
11
|
+
const REPO_NONE_SENTINEL = 'none';
|
|
12
|
+
/**
|
|
13
|
+
* Maps the raw `--repo` flag value to a `(repoType, remoteUrl)` pair.
|
|
14
|
+
* - omitted / empty → `native` (default GRS-backed flow)
|
|
15
|
+
* - `none` (case-insensitive) → `none` (no GRS, no local setup)
|
|
16
|
+
* - any other non-empty value → `github` (external GHE binding, the trimmed value
|
|
17
|
+
* flows through as `remoteUrl` to the action and the eventual git clone)
|
|
18
|
+
*
|
|
19
|
+
* Runtime invariant: `remoteUrl` is set iff `repoType === 'github'`. Consumers
|
|
20
|
+
* branch on `repoType` and assert `remoteUrl!` at github use sites — see
|
|
21
|
+
* `RepoSelection` for why narrowing is not automatic.
|
|
22
|
+
*
|
|
23
|
+
* Lives in `Utils/` (not `Verbs/CreateMaafApp.ts`) so the lightweight `app init`
|
|
24
|
+
* verb can call it without pulling in `giget`/`child_process` from CreateMaafApp.
|
|
25
|
+
*/
|
|
26
|
+
export function parseRepoOption(rawRepoValue) {
|
|
27
|
+
if (rawRepoValue === undefined || rawRepoValue === '') {
|
|
28
|
+
return { repoType: 'native', remoteUrl: undefined };
|
|
29
|
+
}
|
|
30
|
+
const trimmed = rawRepoValue.trim();
|
|
31
|
+
if (trimmed.toLowerCase() === REPO_NONE_SENTINEL) {
|
|
32
|
+
return { repoType: 'none', remoteUrl: undefined };
|
|
33
|
+
}
|
|
34
|
+
return { repoType: 'github', remoteUrl: trimmed };
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=RepoOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepoOption.js","sourceRoot":"","sources":["../../src/Utils/RepoOption.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAkBlC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,YAAgC;IAC9D,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QACtD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,kBAAkB,EAAE,CAAC;QACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAM;IAEpB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,cAAc,CAIpB;IAEF,OAAO,CAAC,wBAAwB,CAK9B;IAEF,OAAO,CAAC,yBAAyB,CAI/B;IAEF,KAAK,CAAC,KAAK,SAAK,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAM;IAEpB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,cAAc,CAIpB;IAEF,OAAO,CAAC,wBAAwB,CAK9B;IAEF,OAAO,CAAC,yBAAyB,CAI/B;IAEF,KAAK,CAAC,KAAK,SAAK,GAAG,IAAI;IAwBvB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B,IAAI,IAAI,IAAI;CAcb"}
|
package/dist/Utils/Spinner.js
CHANGED
|
@@ -58,6 +58,9 @@ export class CliSpinner {
|
|
|
58
58
|
process.once('SIGTERM', this._handleSIGTERM);
|
|
59
59
|
process.once('uncaughtException', this._handleUncaughtException);
|
|
60
60
|
process.once('unhandledRejection', this._handleUnhandledRejection);
|
|
61
|
+
// Paint the first frame immediately so a sync check that blocks the event
|
|
62
|
+
// loop still shows the current status line right away.
|
|
63
|
+
this._render();
|
|
61
64
|
this._timer = setInterval(() => {
|
|
62
65
|
this._render();
|
|
63
66
|
this._frameIndex = (this._frameIndex + 1) % SPINNER_FRAMES.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"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"}
|
package/dist/Verbs/AddAction.js
CHANGED
|
@@ -10,11 +10,11 @@ export async function addActionAsync(argumentProvider) {
|
|
|
10
10
|
createOptionSchema(argumentProvider);
|
|
11
11
|
await argumentProvider.runVerb();
|
|
12
12
|
// Commander converts kebab-case flags to camelCase attribute names — use camelCase here.
|
|
13
|
-
const apiId = await argumentProvider.getOption('
|
|
13
|
+
const apiId = await argumentProvider.getOption('connector');
|
|
14
14
|
const connectionIdFlag = await argumentProvider.getOption('connectionId', true);
|
|
15
15
|
const skipCodegen = !!(await argumentProvider.getOption('skipCodegen', true));
|
|
16
16
|
const useV1Codegen = !!(await argumentProvider.getOption('useV1Codegen', true));
|
|
17
|
-
// ── Preflight: connector +
|
|
17
|
+
// ── Preflight: connector + connector policy (throws on not-found or blocked) ──
|
|
18
18
|
const { connector, policy } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
|
|
19
19
|
await runAddActionFlowAsync({
|
|
20
20
|
argumentProvider,
|
|
@@ -31,10 +31,10 @@ function createOptionSchema(argumentProvider) {
|
|
|
31
31
|
argumentProvider.addExamples(HelpStrings.app.add.action.examples);
|
|
32
32
|
argumentProvider.addOptions([
|
|
33
33
|
createDefaultStringOption({
|
|
34
|
-
flags: { key: SharedArguments.
|
|
35
|
-
env: SharedArguments.
|
|
36
|
-
message: SharedArguments.
|
|
37
|
-
description: HelpStrings.app.add.action.options.
|
|
34
|
+
flags: { key: SharedArguments.Connector.name },
|
|
35
|
+
env: SharedArguments.Connector.envVar,
|
|
36
|
+
message: SharedArguments.Connector.promptMessage,
|
|
37
|
+
description: HelpStrings.app.add.action.options.connector,
|
|
38
38
|
}),
|
|
39
39
|
{
|
|
40
40
|
flags: { key: SharedArguments.ConnectionId.name, alias: SharedArguments.ConnectionId.alias },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddAction.js","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,gBAAkC;IACrE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,yFAAyF;IACzF,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,
|
|
1
|
+
{"version":3,"file":"AddAction.js","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
|
8
8
|
* connector's capabilities.
|
|
9
9
|
*
|
|
10
10
|
* Decision matrix:
|
|
11
|
-
* 1. Run
|
|
11
|
+
* 1. Run connector-policy preflight (single source of truth for policy enforcement).
|
|
12
12
|
* 2. Determine `isTabular` from connector capabilities.
|
|
13
13
|
* 3. Resolve mode:
|
|
14
14
|
* - Non-tabular + `--as table` → UsageError
|
|
@@ -16,8 +16,10 @@ import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
|
16
16
|
* - Tabular + `--as` given → mode = flag value
|
|
17
17
|
* - Tabular + interactive (no `--as`) → promptConfirm yes/no
|
|
18
18
|
* - Tabular + non-interactive + no `--as` → UsageError
|
|
19
|
-
* 4. Reject `--dataset` / `--table` if mode resolved to action
|
|
20
|
-
*
|
|
19
|
+
* 4. Reject `--dataset` / `--table` if mode resolved to action, EXCEPT
|
|
20
|
+
* for the Common Data Service for Apps connector where `--table` is
|
|
21
|
+
* re-interpreted as the Dataverse logical name (paired with
|
|
22
|
+
* `--dataverse-environment-id`).
|
|
21
23
|
* 5. Delegate to the appropriate shared flow helper.
|
|
22
24
|
*/
|
|
23
25
|
export declare function addConnectorAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddConnector.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddConnector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AddConnector.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddConnector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAkB5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGzF"}
|
|
@@ -8,13 +8,15 @@ import { UsageError } from '../Errors/CliError.js';
|
|
|
8
8
|
import { isTabularConnector, runAddActionFlowAsync, runAddTableFlowAsync, } from './AddConnectorFlows.js';
|
|
9
9
|
import { runConnectorDlpPreflightAsync } from './ConnectorHelpers.js';
|
|
10
10
|
import { AddConnectorArguments, SharedArguments } from './VerbConstants.js';
|
|
11
|
+
const COMMON_DATA_SERVICE_FOR_APPS_API_ID = 'shared_commondataserviceforapps';
|
|
12
|
+
const DATAVERSE_PAIR_ERROR = '--dataverse-environment-id and --table must be specified together for the Common Data Service for Apps connector. Provide both or neither.';
|
|
11
13
|
/**
|
|
12
14
|
* `ms app add connector` — a single entry point that adds a connector to
|
|
13
15
|
* the app and picks the right shape (table or action) based on the
|
|
14
16
|
* connector's capabilities.
|
|
15
17
|
*
|
|
16
18
|
* Decision matrix:
|
|
17
|
-
* 1. Run
|
|
19
|
+
* 1. Run connector-policy preflight (single source of truth for policy enforcement).
|
|
18
20
|
* 2. Determine `isTabular` from connector capabilities.
|
|
19
21
|
* 3. Resolve mode:
|
|
20
22
|
* - Non-tabular + `--as table` → UsageError
|
|
@@ -22,18 +24,21 @@ import { AddConnectorArguments, SharedArguments } from './VerbConstants.js';
|
|
|
22
24
|
* - Tabular + `--as` given → mode = flag value
|
|
23
25
|
* - Tabular + interactive (no `--as`) → promptConfirm yes/no
|
|
24
26
|
* - Tabular + non-interactive + no `--as` → UsageError
|
|
25
|
-
* 4. Reject `--dataset` / `--table` if mode resolved to action
|
|
26
|
-
*
|
|
27
|
+
* 4. Reject `--dataset` / `--table` if mode resolved to action, EXCEPT
|
|
28
|
+
* for the Common Data Service for Apps connector where `--table` is
|
|
29
|
+
* re-interpreted as the Dataverse logical name (paired with
|
|
30
|
+
* `--dataverse-environment-id`).
|
|
27
31
|
* 5. Delegate to the appropriate shared flow helper.
|
|
28
32
|
*/
|
|
29
33
|
export async function addConnectorAsync(argumentProvider) {
|
|
30
34
|
createOptionSchema(argumentProvider);
|
|
31
35
|
await argumentProvider.runVerb();
|
|
32
|
-
const apiId = await argumentProvider.getOption('
|
|
36
|
+
const apiId = await argumentProvider.getOption('connector');
|
|
33
37
|
const connectionIdFlag = await argumentProvider.getOption('connectionId', true);
|
|
34
38
|
const datasetFlag = await argumentProvider.getOption('dataset', true);
|
|
35
39
|
const tableFlag = await argumentProvider.getOption('table', true);
|
|
36
40
|
const asFlagRaw = await argumentProvider.getOption('as', true);
|
|
41
|
+
const dataverseEnvironmentIdFlag = await argumentProvider.getOption('dataverseEnvironmentId', true);
|
|
37
42
|
const skipCodegen = !!(await argumentProvider.getOption('skipCodegen', true));
|
|
38
43
|
const useV1Codegen = !!(await argumentProvider.getOption('useV1Codegen', true));
|
|
39
44
|
// ── Validate `--as` value (if provided) ────────────────────────────────────
|
|
@@ -45,7 +50,7 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
45
50
|
}
|
|
46
51
|
asFlag = normalized;
|
|
47
52
|
}
|
|
48
|
-
// ── Preflight: connector +
|
|
53
|
+
// ── Preflight: connector + connector policy (throws on not-found or blocked) ──
|
|
49
54
|
const { connector, policy } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
|
|
50
55
|
const connectorLabel = connector.properties.displayName ?? apiId;
|
|
51
56
|
const isTabular = isTabularConnector(connector);
|
|
@@ -55,8 +60,29 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
55
60
|
asFlag,
|
|
56
61
|
connectorLabel,
|
|
57
62
|
});
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
const isCommonDataServiceForApps = apiId.toLowerCase() === COMMON_DATA_SERVICE_FOR_APPS_API_ID ||
|
|
64
|
+
apiId.toLowerCase().endsWith(`/${COMMON_DATA_SERVICE_FOR_APPS_API_ID}`);
|
|
65
|
+
// ── CDS connector special case: reinterpret --table as Dataverse logical name ─
|
|
66
|
+
// For the Common Data Service for Apps connector, `--table` (existing flag) carries
|
|
67
|
+
// the Dataverse entity logical name and pairs with `--dataverse-environment-id`. The
|
|
68
|
+
// connector is non-tabular, so we land here only in action mode.
|
|
69
|
+
let dataverseEnvironmentId;
|
|
70
|
+
let dataverseTable;
|
|
71
|
+
if (isCommonDataServiceForApps && mode === 'action') {
|
|
72
|
+
if (datasetFlag) {
|
|
73
|
+
throw new UsageError('--dataset is not used with the Common Data Service for Apps connector. Use --table to specify a Dataverse logical name.');
|
|
74
|
+
}
|
|
75
|
+
dataverseEnvironmentId = dataverseEnvironmentIdFlag;
|
|
76
|
+
dataverseTable = tableFlag;
|
|
77
|
+
if (!getSettings().interactive && !!dataverseEnvironmentId !== !!dataverseTable) {
|
|
78
|
+
throw new UsageError(DATAVERSE_PAIR_ERROR);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (!isCommonDataServiceForApps && dataverseEnvironmentIdFlag) {
|
|
82
|
+
throw new UsageError('--dataverse-environment-id can only be used with --connector shared_commondataserviceforapps.');
|
|
83
|
+
}
|
|
84
|
+
// ── Reject contradictory flags when adding actions (CDS already handled above) ─
|
|
85
|
+
if (mode === 'action' && !isCommonDataServiceForApps && (datasetFlag || tableFlag)) {
|
|
60
86
|
throw new UsageError(`--dataset and --table cannot be used with --as action. Re-run with --as table, or omit those flags.`);
|
|
61
87
|
}
|
|
62
88
|
// ── Dispatch ──────────────────────────────────────────────────────────────
|
|
@@ -81,6 +107,8 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
81
107
|
skipCodegen,
|
|
82
108
|
useV1Codegen,
|
|
83
109
|
policy,
|
|
110
|
+
dataverseEnvironmentId,
|
|
111
|
+
dataverseTable,
|
|
84
112
|
});
|
|
85
113
|
}
|
|
86
114
|
}
|
|
@@ -111,10 +139,10 @@ function createOptionSchema(argumentProvider) {
|
|
|
111
139
|
argumentProvider.addExamples(HelpStrings.app.add.connector.examples);
|
|
112
140
|
argumentProvider.addOptions([
|
|
113
141
|
createDefaultStringOption({
|
|
114
|
-
flags: { key: SharedArguments.
|
|
115
|
-
env: SharedArguments.
|
|
116
|
-
message: SharedArguments.
|
|
117
|
-
description: HelpStrings.app.add.connector.options.
|
|
142
|
+
flags: { key: SharedArguments.Connector.name },
|
|
143
|
+
env: SharedArguments.Connector.envVar,
|
|
144
|
+
message: SharedArguments.Connector.promptMessage,
|
|
145
|
+
description: HelpStrings.app.add.connector.options.connector,
|
|
118
146
|
}),
|
|
119
147
|
{
|
|
120
148
|
flags: { key: SharedArguments.ConnectionId.name, alias: SharedArguments.ConnectionId.alias },
|
|
@@ -140,6 +168,12 @@ function createOptionSchema(argumentProvider) {
|
|
|
140
168
|
description: HelpStrings.app.add.connector.options.as,
|
|
141
169
|
optionalInNonInteractive: true,
|
|
142
170
|
},
|
|
171
|
+
{
|
|
172
|
+
flags: { key: AddConnectorArguments.DataverseEnvironmentId.name },
|
|
173
|
+
env: AddConnectorArguments.DataverseEnvironmentId.envVar,
|
|
174
|
+
description: HelpStrings.app.add.connector.options.dataverseEnvironmentId,
|
|
175
|
+
optionalInNonInteractive: true,
|
|
176
|
+
},
|
|
143
177
|
]);
|
|
144
178
|
argumentProvider.addSwitch({
|
|
145
179
|
flags: { key: AddConnectorArguments.SkipCodegen.name },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddConnector.js","sourceRoot":"","sources":["../../src/Verbs/AddConnector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"AddConnector.js","sourceRoot":"","sources":["../../src/Verbs/AddConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,9 +11,10 @@ import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
|
11
11
|
* to run.
|
|
12
12
|
*
|
|
13
13
|
* Design contract:
|
|
14
|
-
* - The caller (verb) must perform
|
|
15
|
-
* `connector`. These helpers never touch
|
|
16
|
-
* enforcement point that runs exactly once per command
|
|
14
|
+
* - The caller (verb) must perform the connector-policy preflight and pass in
|
|
15
|
+
* the resolved `connector`. These helpers never touch policy. This keeps
|
|
16
|
+
* policy enforcement a single point that runs exactly once per command
|
|
17
|
+
* invocation.
|
|
17
18
|
* - The caller is responsible for any capability checks specific to its
|
|
18
19
|
* intent (e.g., `ms app add table` enforces that the connector is
|
|
19
20
|
* tabular; `ms app add connector` already branched on capability).
|
|
@@ -31,11 +32,22 @@ export interface AddFlowBaseArgs {
|
|
|
31
32
|
}
|
|
32
33
|
export interface AddActionFlowArgs extends AddFlowBaseArgs {
|
|
33
34
|
/**
|
|
34
|
-
* Effective
|
|
35
|
-
* action flow uses it to compute the per-connector action policy and
|
|
35
|
+
* Effective connector policy from the verb-level preflight. When provided,
|
|
36
|
+
* the action flow uses it to compute the per-connector action policy and
|
|
36
37
|
* filters blocked operations out of the swagger before generation.
|
|
37
38
|
*/
|
|
38
39
|
policy?: EffectiveConnectorDataPolicy;
|
|
40
|
+
/**
|
|
41
|
+
* For the Common Data Service for Apps connector only: the target Dataverse
|
|
42
|
+
* environment GUID. Pairs with `dataverseTable`.
|
|
43
|
+
*/
|
|
44
|
+
dataverseEnvironmentId?: string;
|
|
45
|
+
/**
|
|
46
|
+
* For the Common Data Service for Apps connector only: the Dataverse entity
|
|
47
|
+
* logical name (carried by the standard `--table` flag at the CLI surface).
|
|
48
|
+
* Pairs with `dataverseEnvironmentId`.
|
|
49
|
+
*/
|
|
50
|
+
dataverseTable?: string;
|
|
39
51
|
}
|
|
40
52
|
export interface AddTableFlowArgs extends AddFlowBaseArgs {
|
|
41
53
|
datasetFlag?: string;
|
|
@@ -43,25 +55,26 @@ export interface AddTableFlowArgs extends AddFlowBaseArgs {
|
|
|
43
55
|
}
|
|
44
56
|
/**
|
|
45
57
|
* Runs the connection → dataset → table → addConnectorTableAsync flow.
|
|
46
|
-
* Caller must have already verified the connector exists, passed
|
|
47
|
-
* supports tabular.
|
|
58
|
+
* Caller must have already verified the connector exists, passed the
|
|
59
|
+
* connector-policy preflight, and supports tabular.
|
|
48
60
|
*/
|
|
49
61
|
export declare function runAddTableFlowAsync(args: AddTableFlowArgs): Promise<void>;
|
|
50
62
|
/**
|
|
51
63
|
* Runs the optional-connection → addConnectorActionAsync flow.
|
|
52
|
-
* Caller must have already verified the connector exists and passed
|
|
64
|
+
* Caller must have already verified the connector exists and passed the
|
|
65
|
+
* connector-policy preflight.
|
|
53
66
|
*
|
|
54
67
|
* A connection is only resolved when the connector requires one (multi-auth
|
|
55
68
|
* connectors, or connectors with `allowSharing` metadata). Pure-action
|
|
56
69
|
* connectors that don't need a connection (e.g. some utility connectors)
|
|
57
70
|
* are added without prompting for one.
|
|
58
71
|
*
|
|
59
|
-
* When `policy` is provided, the action-level
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
72
|
+
* When `policy` is provided, the action-level rules for this connector are
|
|
73
|
+
* passed down to `addConnectorActionAsync`, which filters blocked operations
|
|
74
|
+
* out of the swagger before saving the schema and running codegen. The CLI
|
|
75
|
+
* prints a single info line summarizing what was filtered. If every
|
|
76
|
+
* operation is blocked, the action throws `AllActionsBlockedError` which we
|
|
77
|
+
* translate to a `UsageError`.
|
|
65
78
|
*/
|
|
66
79
|
export declare function runAddActionFlowAsync(args: AddActionFlowArgs): Promise<void>;
|
|
67
80
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddConnectorFlows.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddConnectorFlows.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAGV,GAAG,EACH,4BAA4B,EAG7B,MAAM,iCAAiC,CAAC;AAWzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AddConnectorFlows.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddConnectorFlows.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAGV,GAAG,EACH,4BAA4B,EAG7B,MAAM,iCAAiC,CAAC;AAWzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAa5D;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;;OAIG;IACH,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8GlF;AAyCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAE1D"}
|
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { addConnectorActionAsync, addConnectorTableAsync, AllActionsBlockedError, getConnectorActionPolicy, getPlayerServiceConfig, listDatasetsAsync, listTablesAsync, } from '@microsoft/managed-apps-actions';
|
|
5
5
|
import { getCliLogger, getSettings } from '../CliSettings.js';
|
|
6
|
-
import { promptSelectOrInput } from '../CliUtils.js';
|
|
6
|
+
import { promptConfirm, promptSelectOrInput, promptText } from '../CliUtils.js';
|
|
7
7
|
import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
|
|
8
8
|
import { UsageError } from '../Errors/CliError.js';
|
|
9
9
|
import { printInfo, printSuccess, printTable } from '../Utils/ConsoleOutput.js';
|
|
10
10
|
import { requestCliUserConsentAsync, resolveConnectionInteractivelyAsync, } from './ConnectorHelpers.js';
|
|
11
|
+
const COMMON_DATA_SERVICE_FOR_APPS_API_ID = 'shared_commondataserviceforapps';
|
|
11
12
|
/**
|
|
12
13
|
* Runs the connection → dataset → table → addConnectorTableAsync flow.
|
|
13
|
-
* Caller must have already verified the connector exists, passed
|
|
14
|
-
* supports tabular.
|
|
14
|
+
* Caller must have already verified the connector exists, passed the
|
|
15
|
+
* connector-policy preflight, and supports tabular.
|
|
15
16
|
*/
|
|
16
17
|
export async function runAddTableFlowAsync(args) {
|
|
17
18
|
const { argumentProvider, connector, apiId, connectionIdFlag, datasetFlag, tableFlag, skipCodegen, useV1Codegen, } = args;
|
|
@@ -108,26 +109,27 @@ export async function runAddTableFlowAsync(args) {
|
|
|
108
109
|
};
|
|
109
110
|
await addConnectorTableAsync(context);
|
|
110
111
|
printSuccess(`Table '${tableName}' from connector '${connector.properties.displayName ?? apiId}' added successfully.`);
|
|
111
|
-
printInfo(`Hint: Run '
|
|
112
|
+
printInfo(`Hint: Run '${CLI_BINARY_NAME} dev' to test locally, or '${CLI_BINARY_NAME} push' to deploy.`);
|
|
112
113
|
}
|
|
113
114
|
/**
|
|
114
115
|
* Runs the optional-connection → addConnectorActionAsync flow.
|
|
115
|
-
* Caller must have already verified the connector exists and passed
|
|
116
|
+
* Caller must have already verified the connector exists and passed the
|
|
117
|
+
* connector-policy preflight.
|
|
116
118
|
*
|
|
117
119
|
* A connection is only resolved when the connector requires one (multi-auth
|
|
118
120
|
* connectors, or connectors with `allowSharing` metadata). Pure-action
|
|
119
121
|
* connectors that don't need a connection (e.g. some utility connectors)
|
|
120
122
|
* are added without prompting for one.
|
|
121
123
|
*
|
|
122
|
-
* When `policy` is provided, the action-level
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
124
|
+
* When `policy` is provided, the action-level rules for this connector are
|
|
125
|
+
* passed down to `addConnectorActionAsync`, which filters blocked operations
|
|
126
|
+
* out of the swagger before saving the schema and running codegen. The CLI
|
|
127
|
+
* prints a single info line summarizing what was filtered. If every
|
|
128
|
+
* operation is blocked, the action throws `AllActionsBlockedError` which we
|
|
129
|
+
* translate to a `UsageError`.
|
|
128
130
|
*/
|
|
129
131
|
export async function runAddActionFlowAsync(args) {
|
|
130
|
-
const { argumentProvider, connector, apiId, connectionIdFlag, skipCodegen, useV1Codegen, policy, } = args;
|
|
132
|
+
const { argumentProvider, connector, apiId, connectionIdFlag, skipCodegen, useV1Codegen, policy, dataverseEnvironmentId, dataverseTable, } = args;
|
|
131
133
|
const settings = getSettings();
|
|
132
134
|
const { fileConfig, cliFs } = settings;
|
|
133
135
|
const playerServiceConfig = getPlayerServiceConfig();
|
|
@@ -149,33 +151,48 @@ export async function runAddActionFlowAsync(args) {
|
|
|
149
151
|
if (needsConnection && connectionId) {
|
|
150
152
|
await requestCliUserConsentAsync({ apiId, connectionId });
|
|
151
153
|
}
|
|
152
|
-
// ── Step 3: Compute action-level
|
|
154
|
+
// ── Step 3: Compute action-level policy (no-op when policy absent) ────────
|
|
153
155
|
const actionPolicy = policy
|
|
154
156
|
? getConnectorActionPolicy(policy, connector.name ?? apiId)
|
|
155
157
|
: undefined;
|
|
158
|
+
const normalizedApiId = apiId.toLowerCase();
|
|
159
|
+
const isCommonDataServiceForApps = normalizedApiId === COMMON_DATA_SERVICE_FOR_APPS_API_ID ||
|
|
160
|
+
normalizedApiId.endsWith(`/${COMMON_DATA_SERVICE_FOR_APPS_API_ID}`);
|
|
161
|
+
const initialDataverseParams = await resolveInitialDataverseParamsAsync({
|
|
162
|
+
isCommonDataServiceForApps,
|
|
163
|
+
dataverseEnvironmentId,
|
|
164
|
+
dataverseTable,
|
|
165
|
+
});
|
|
156
166
|
// ── Step 4: Add the connector action ──────────────────────────────────────
|
|
157
|
-
const
|
|
167
|
+
const createContext = (dataverseParams) => ({
|
|
158
168
|
vfs: cliFs,
|
|
159
169
|
authProvider,
|
|
160
170
|
httpClient: argumentProvider.getHttpClient(),
|
|
161
171
|
region: playerServiceConfig.region,
|
|
162
172
|
environmentName: playerServiceConfig.environmentName,
|
|
163
|
-
actionsParams: {
|
|
173
|
+
actionsParams: {
|
|
174
|
+
apiId,
|
|
175
|
+
connectionId,
|
|
176
|
+
skipCodegen,
|
|
177
|
+
useV1Codegen,
|
|
178
|
+
actionPolicy,
|
|
179
|
+
...dataverseParams,
|
|
180
|
+
},
|
|
164
181
|
localFilePaths: {
|
|
165
182
|
appConfigPath: fileConfig.appConfigPath,
|
|
166
183
|
schemaPath: fileConfig.schemaPath,
|
|
167
184
|
codeGenPath: fileConfig.codeGenPath,
|
|
168
185
|
},
|
|
169
186
|
logger,
|
|
170
|
-
};
|
|
187
|
+
});
|
|
171
188
|
let filterResult;
|
|
172
189
|
try {
|
|
173
|
-
filterResult = await addConnectorActionAsync(
|
|
190
|
+
filterResult = await addConnectorActionAsync(createContext(initialDataverseParams));
|
|
174
191
|
}
|
|
175
192
|
catch (err) {
|
|
176
193
|
if (err instanceof AllActionsBlockedError) {
|
|
177
194
|
// Translate the actions-layer error into a CLI-level usage error so the
|
|
178
|
-
// user sees it as a clean
|
|
195
|
+
// user sees it as a clean policy-blocked message rather than a stack.
|
|
179
196
|
throw new UsageError(err.message);
|
|
180
197
|
}
|
|
181
198
|
throw err;
|
|
@@ -183,10 +200,43 @@ export async function runAddActionFlowAsync(args) {
|
|
|
183
200
|
// Surface the filter result to the user (count only — blocked names go to
|
|
184
201
|
// telemetry via AddConnectorAction.DlpFiltered).
|
|
185
202
|
if (filterResult.filteredCount > 0) {
|
|
186
|
-
printInfo(`Skipped ${filterResult.filteredCount} of ${filterResult.totalCount} actions due to
|
|
203
|
+
printInfo(`Skipped ${filterResult.filteredCount} of ${filterResult.totalCount} actions due to your organization's connector policy.`);
|
|
187
204
|
}
|
|
188
205
|
printSuccess(`Connector '${connector.properties.displayName ?? apiId}' added successfully.`);
|
|
189
|
-
|
|
206
|
+
if (isCommonDataServiceForApps && settings.interactive && !initialDataverseParams) {
|
|
207
|
+
const connectTable = await promptConfirm({
|
|
208
|
+
message: 'Connect this to a specific Dataverse table?',
|
|
209
|
+
initialValue: true,
|
|
210
|
+
});
|
|
211
|
+
if (connectTable) {
|
|
212
|
+
await addConnectorActionAsync(createContext(await promptDataverseParamsAsync({})));
|
|
213
|
+
printSuccess('Dataverse table binding added successfully.');
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
printInfo(`Hint: Run '${CLI_BINARY_NAME} dev' to test locally, or '${CLI_BINARY_NAME} push' to deploy.`);
|
|
217
|
+
}
|
|
218
|
+
async function resolveInitialDataverseParamsAsync(input) {
|
|
219
|
+
if (!input.isCommonDataServiceForApps) {
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
const settings = getSettings();
|
|
223
|
+
const hasEnvironmentId = !!input.dataverseEnvironmentId;
|
|
224
|
+
const hasTable = !!input.dataverseTable;
|
|
225
|
+
if (!settings.interactive && (!hasEnvironmentId || !hasTable)) {
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
228
|
+
if (!hasEnvironmentId && !hasTable) {
|
|
229
|
+
return undefined;
|
|
230
|
+
}
|
|
231
|
+
return promptDataverseParamsAsync({
|
|
232
|
+
dataverseEnvironmentId: input.dataverseEnvironmentId,
|
|
233
|
+
dataverseTable: input.dataverseTable,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
async function promptDataverseParamsAsync(input) {
|
|
237
|
+
const dataverseEnvironmentId = input.dataverseEnvironmentId ?? (await promptText({ message: 'Dataverse environment ID:' }));
|
|
238
|
+
const dataverseTable = input.dataverseTable ?? (await promptText({ message: 'Dataverse table logical name:' }));
|
|
239
|
+
return { dataverseEnvironmentId, dataverseTable };
|
|
190
240
|
}
|
|
191
241
|
/**
|
|
192
242
|
* Shared helper to compute whether a connector supports tabular data sources.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddConnectorFlows.js","sourceRoot":"","sources":["../../src/Verbs/AddConnectorFlows.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AddConnectorFlows.js","sourceRoot":"","sources":["../../src/Verbs/AddConnectorFlows.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,11 @@
|
|
|
4
4
|
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
5
|
/**
|
|
6
6
|
* Adds a data source based on the provided environment variables.
|
|
7
|
-
* It supports
|
|
7
|
+
* It supports connector data sources.
|
|
8
8
|
* Expects the following environment variables:
|
|
9
|
-
* -
|
|
9
|
+
* - MS_CLI_CONNECTOR: The connector ID (e.g., shared_office365, shared_commondataserviceforapps)
|
|
10
10
|
* - MS_CLI_CONNECTION_ID?: The ID of the connection (for connector data sources)
|
|
11
|
-
* - MS_CLI_TABLE?: The table name for
|
|
12
|
-
* - MS_CLI_ENV_URL?: The environment URL for Dataverse data sources
|
|
11
|
+
* - MS_CLI_TABLE?: The table name for tabular connector data sources
|
|
13
12
|
* - MS_CLI_DATASET?: The dataset name for tabular/stored proc connector data sources
|
|
14
13
|
* - MS_CLI_SQL_STORED_PROCEDURE?: The name of the SQL stored procedure for connector data sources
|
|
15
14
|
* @param config - Local file paths configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddDataSource.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddDataSource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D
|
|
1
|
+
{"version":3,"file":"AddDataSource.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddDataSource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C1F"}
|