@microsoft/managed-apps-cli 0.9.2 → 0.11.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 +18 -342
- package/dist/ArgumentProvider.d.ts.map +1 -1
- package/dist/ArgumentProvider.js +8 -1
- 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 +15 -3
- package/dist/Cli.js.map +1 -1
- package/dist/Constants/CommandRegistry.d.ts +1 -2
- package/dist/Constants/CommandRegistry.d.ts.map +1 -1
- package/dist/Constants/CommandRegistry.js +26 -45
- package/dist/Constants/CommandRegistry.js.map +1 -1
- package/dist/Constants/HelpStrings.d.ts +12 -8
- package/dist/Constants/HelpStrings.d.ts.map +1 -1
- package/dist/Constants/HelpStrings.js +98 -80
- package/dist/Constants/HelpStrings.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 +189 -147
- package/dist/Errors/GitHubErrorMap.js.map +1 -1
- package/dist/Logger/CliLogger.d.ts +2 -0
- package/dist/Logger/CliLogger.d.ts.map +1 -1
- package/dist/Logger/CliLogger.js +12 -3
- package/dist/Logger/CliLogger.js.map +1 -1
- package/dist/Logger/ConsoleWriter.d.ts +2 -0
- package/dist/Logger/ConsoleWriter.d.ts.map +1 -1
- package/dist/Logger/ConsoleWriter.js +17 -7
- package/dist/Logger/ConsoleWriter.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/Types/Command.types.d.ts +6 -0
- package/dist/Types/Command.types.d.ts.map +1 -1
- package/dist/Types/Command.types.js +8 -0
- package/dist/Types/Command.types.js.map +1 -1
- package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +1 -1
- package/dist/Utils/BuildVerbDescriptionTable.js +6 -2
- package/dist/Utils/BuildVerbDescriptionTable.js.map +1 -1
- package/dist/Utils/ConnectorIds.d.ts +12 -0
- package/dist/Utils/ConnectorIds.d.ts.map +1 -0
- package/dist/Utils/ConnectorIds.js +20 -0
- package/dist/Utils/ConnectorIds.js.map +1 -0
- 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 +161 -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/EnvVars.js.map +1 -1
- package/dist/Utils/EnvironmentRoutingUtils.d.ts +20 -1
- package/dist/Utils/EnvironmentRoutingUtils.d.ts.map +1 -1
- package/dist/Utils/EnvironmentRoutingUtils.js +78 -3
- package/dist/Utils/EnvironmentRoutingUtils.js.map +1 -1
- package/dist/Utils/GitErrorClassifier.d.ts +40 -0
- package/dist/Utils/GitErrorClassifier.d.ts.map +1 -0
- package/dist/Utils/GitErrorClassifier.js +120 -0
- package/dist/Utils/GitErrorClassifier.js.map +1 -0
- package/dist/Utils/GitRunner.d.ts +107 -0
- package/dist/Utils/GitRunner.d.ts.map +1 -0
- package/dist/Utils/GitRunner.js +89 -0
- package/dist/Utils/GitRunner.js.map +1 -0
- package/dist/Utils/GitUtils.d.ts +12 -0
- package/dist/Utils/GitUtils.d.ts.map +1 -1
- package/dist/Utils/GitUtils.js +83 -20
- package/dist/Utils/GitUtils.js.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 +64 -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 +3 -6
- package/dist/Utils/NodeVersionChecker.d.ts.map +1 -1
- package/dist/Utils/NodeVersionChecker.js +9 -26
- package/dist/Utils/NodeVersionChecker.js.map +1 -1
- package/dist/Utils/Paging.d.ts +6 -0
- package/dist/Utils/Paging.d.ts.map +1 -1
- package/dist/Utils/Paging.js +36 -1
- 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/RepoDetails.d.ts +29 -0
- package/dist/Utils/RepoDetails.d.ts.map +1 -0
- package/dist/Utils/RepoDetails.js +37 -0
- package/dist/Utils/RepoDetails.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/ResolveCommand.d.ts.map +1 -1
- package/dist/Utils/ResolveCommand.js +6 -4
- package/dist/Utils/ResolveCommand.js.map +1 -1
- 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 +6 -4
- package/dist/Verbs/AddConnector.d.ts.map +1 -1
- package/dist/Verbs/AddConnector.js +54 -14
- package/dist/Verbs/AddConnector.js.map +1 -1
- package/dist/Verbs/AddConnectorFlows.d.ts +29 -16
- package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -1
- package/dist/Verbs/AddConnectorFlows.js +73 -25
- 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 +7 -7
- 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 +5 -4
- package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
- package/dist/Verbs/ConnectorHelpers.js +14 -9
- package/dist/Verbs/ConnectorHelpers.js.map +1 -1
- package/dist/Verbs/CreateMaafApp.d.ts +25 -42
- package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
- package/dist/Verbs/CreateMaafApp.js +346 -268
- package/dist/Verbs/CreateMaafApp.js.map +1 -1
- package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
- package/dist/Verbs/DeployMaafApp.js +4 -4
- 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/GetMaafApp.d.ts.map +1 -1
- package/dist/Verbs/GetMaafApp.js +10 -0
- package/dist/Verbs/GetMaafApp.js.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.js +52 -3
- 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 +183 -60
- 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.d.ts.map +1 -1
- package/dist/Verbs/ListConnectors.js +3 -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.d.ts.map +1 -1
- package/dist/Verbs/MaafAppPermissions.js +89 -17
- package/dist/Verbs/MaafAppPermissions.js.map +1 -1
- package/dist/Verbs/Pack.d.ts +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/{DeleteDataSource.d.ts → RemoveDataSource.d.ts} +2 -2
- package/dist/Verbs/RemoveDataSource.d.ts.map +1 -0
- package/dist/Verbs/RemoveDataSource.js +158 -0
- package/dist/Verbs/RemoveDataSource.js.map +1 -0
- package/dist/Verbs/SetSetting.js +2 -2
- package/dist/Verbs/SetSetting.js.map +1 -1
- package/dist/Verbs/ShareLinkList.js +1 -1
- package/dist/Verbs/ShareLinkList.js.map +1 -1
- package/dist/Verbs/ShowMaafApp.d.ts +6 -0
- package/dist/Verbs/ShowMaafApp.d.ts.map +1 -1
- package/dist/Verbs/ShowMaafApp.js +10 -2
- package/dist/Verbs/ShowMaafApp.js.map +1 -1
- package/dist/Verbs/VerbConstants.d.ts +20 -23
- package/dist/Verbs/VerbConstants.d.ts.map +1 -1
- package/dist/Verbs/VerbConstants.js +20 -23
- package/dist/Verbs/VerbConstants.js.map +1 -1
- package/dist/Verbs/index.d.ts +1 -1
- package/dist/Verbs/index.d.ts.map +1 -1
- package/dist/Verbs/index.js +1 -1
- package/dist/Verbs/index.js.map +1 -1
- package/package.json +11 -9
- package/dist/Verbs/DeleteDataSource.d.ts.map +0 -1
- package/dist/Verbs/DeleteDataSource.js +0 -105
- package/dist/Verbs/DeleteDataSource.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepoDetails.d.ts","sourceRoot":"","sources":["../../src/Utils/RepoDetails.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE7F,8FAA8F;AAC9F,MAAM,MAAM,WAAW,GAAG;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAa7F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,UAAU,CAAC,GACpD,WAAW,GAAG,SAAS,CAOzB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Maps the raw {@link ManagedAppRepoType} enum returned by the server to a
|
|
6
|
+
* human-friendly label for display. Unknown/forward-compat values fall through
|
|
7
|
+
* to the raw string; `undefined` (legacy apps with no source-control metadata)
|
|
8
|
+
* yields `undefined` so callers can omit the line entirely.
|
|
9
|
+
*/
|
|
10
|
+
export function friendlyRepoType(repoType) {
|
|
11
|
+
switch (repoType) {
|
|
12
|
+
case undefined:
|
|
13
|
+
return undefined;
|
|
14
|
+
case 'Native':
|
|
15
|
+
return 'Platform-managed Git repository';
|
|
16
|
+
case 'ExternallyProvidedBuild':
|
|
17
|
+
return 'Externally provided build (no source)';
|
|
18
|
+
case 'ExternalGitProviderBound':
|
|
19
|
+
return 'External Git provider';
|
|
20
|
+
default:
|
|
21
|
+
return repoType;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Derives the display-ready {@link RepoDetails} from an app definition. Returns
|
|
26
|
+
* `undefined` when the app exposes no source-control metadata at all (no
|
|
27
|
+
* `repoType` and no `cloneUrl`), so callers can omit the lines entirely.
|
|
28
|
+
*/
|
|
29
|
+
export function toRepoDetails(app) {
|
|
30
|
+
const repoType = friendlyRepoType(app.repoType);
|
|
31
|
+
const cloneUrl = app.cloneUrl ?? undefined;
|
|
32
|
+
if (!repoType && !cloneUrl) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return { repoType, cloneUrl };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=RepoDetails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepoDetails.js","sourceRoot":"","sources":["../../src/Utils/RepoDetails.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAwC;IACvE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,iCAAiC,CAAC;QAC3C,KAAK,yBAAyB;YAC5B,OAAO,uCAAuC,CAAC;QACjD,KAAK,0BAA0B;YAC7B,OAAO,uBAAuB,CAAC;QACjC;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAqD;IAErD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { RepoType } from '@microsoft/managed-apps-common/config';
|
|
5
|
+
/**
|
|
6
|
+
* Result of parsing the `--repo` flag value.
|
|
7
|
+
*
|
|
8
|
+
* - `native` (default): MAAF auto-provisions a platform-managed git repo, no remote URL.
|
|
9
|
+
* - `none`: source-control-free; no platform-managed repo, no remote URL.
|
|
10
|
+
* - `github`: bound to an external GitHub Enterprise repo at `remoteUrl`.
|
|
11
|
+
*
|
|
12
|
+
* `remoteUrl` is populated only when `repoType === 'github'`. This is a flat
|
|
13
|
+
* interface (not a discriminated union), so `if (repoType === 'github')` does NOT
|
|
14
|
+
* auto-narrow `remoteUrl` to `string`; github-branch use sites assert `remoteUrl!`.
|
|
15
|
+
*/
|
|
16
|
+
export interface RepoSelection {
|
|
17
|
+
repoType: RepoType;
|
|
18
|
+
remoteUrl: string | undefined;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Maps the raw `--repo` flag value to a `(repoType, remoteUrl)` pair.
|
|
22
|
+
* - omitted / empty → `native` (default GRS-backed flow)
|
|
23
|
+
* - `none` (case-insensitive) → `none` (no GRS, no local setup)
|
|
24
|
+
* - any other non-empty value → `github` (external GHE binding, the trimmed value
|
|
25
|
+
* flows through as `remoteUrl` to the action and the eventual git clone)
|
|
26
|
+
*
|
|
27
|
+
* Runtime invariant: `remoteUrl` is set iff `repoType === 'github'`. Consumers
|
|
28
|
+
* branch on `repoType` and assert `remoteUrl!` at github use sites — see
|
|
29
|
+
* `RepoSelection` for why narrowing is not automatic.
|
|
30
|
+
*
|
|
31
|
+
* Lives in `Utils/` (not `Verbs/CreateMaafApp.ts`) so the lightweight `app init`
|
|
32
|
+
* verb can call it without pulling in `giget`/`child_process` from CreateMaafApp.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseRepoOption(rawRepoValue: string | undefined): RepoSelection;
|
|
35
|
+
//# sourceMappingURL=RepoOption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepoOption.d.ts","sourceRoot":"","sources":["../../src/Utils/RepoOption.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAWtE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAS/E"}
|
|
@@ -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":"ResolveCommand.d.ts","sourceRoot":"","sources":["../../src/Utils/ResolveCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,WAAW,EAEX,OAAO,EACP,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,CAWjG;
|
|
1
|
+
{"version":3,"file":"ResolveCommand.d.ts","sourceRoot":"","sources":["../../src/Utils/ResolveCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,WAAW,EAEX,OAAO,EACP,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,CAWjG;AA0DD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,iGAAiG;IACjG,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,uGAAuG;IACvG,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,WAAW,GAChB,mBAAmB,GAAG,IAAI,CA8B5B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,KAAK,IAAI,OAAO,CAE9E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAK1F"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import { hasParentHandler, isTypedVerbDef } from '../Types/Command.types.js';
|
|
4
|
+
import { getCommandEntry, hasParentHandler, isTypedVerbDef } from '../Types/Command.types.js';
|
|
5
5
|
/**
|
|
6
6
|
* Resolves command-line tokens against the command tree.
|
|
7
7
|
*
|
|
@@ -57,7 +57,7 @@ function walkCommands(commands, tokens, index, path) {
|
|
|
57
57
|
const token = tokens[index];
|
|
58
58
|
if (token.startsWith('-'))
|
|
59
59
|
return null;
|
|
60
|
-
const entry = commands
|
|
60
|
+
const entry = getCommandEntry(commands, token);
|
|
61
61
|
if (!entry)
|
|
62
62
|
return null;
|
|
63
63
|
const nextPath = [...path, token];
|
|
@@ -65,7 +65,9 @@ function walkCommands(commands, tokens, index, path) {
|
|
|
65
65
|
return { path: nextPath, handler: entry.handler, tokensConsumed: index + 1 };
|
|
66
66
|
}
|
|
67
67
|
const next = tokens[index + 1];
|
|
68
|
-
const nextIsKnownSub = next !== undefined &&
|
|
68
|
+
const nextIsKnownSub = next !== undefined &&
|
|
69
|
+
!next.startsWith('-') &&
|
|
70
|
+
getCommandEntry(entry.commands, next) !== undefined;
|
|
69
71
|
if (nextIsKnownSub) {
|
|
70
72
|
return walkCommands(entry.commands, tokens, index + 1, nextPath);
|
|
71
73
|
}
|
|
@@ -104,7 +106,7 @@ export function findIncompleteTypedPath(argv, tree) {
|
|
|
104
106
|
const pathTokens = [noun];
|
|
105
107
|
let inTypedGroup = false;
|
|
106
108
|
for (const token of rest) {
|
|
107
|
-
const entry = commands
|
|
109
|
+
const entry = getCommandEntry(commands, token);
|
|
108
110
|
if (!entry) {
|
|
109
111
|
return inTypedGroup ? { pathTokens, unknownToken: token } : null;
|
|
110
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResolveCommand.js","sourceRoot":"","sources":["../../src/Utils/ResolveCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ResolveCommand.js","sourceRoot":"","sources":["../../src/Utils/ResolveCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE3F;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,IAAuB,EAAE,IAAiB;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,YAAY,CACnB,QAAuD,EACvD,MAAyB,EACzB,KAAa,EACb,IAAuB;IAEvB,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,QAAQ,GAAgB,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC/B,MAAM,cAAc,GAClB,IAAI,KAAK,SAAS;QAClB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACrB,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC;IAEtD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAcD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAuB,EACvB,IAAiB;IAEjB,sEAAsE;IACtE,6EAA6E;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,IAAI,QAAQ,GAAkD,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAClF,MAAM,UAAU,GAAa,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,gEAAgE;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC1B,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,IAAiB;IAC1D,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY,EAAE,IAAiB;IAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,SAAS,KAAK,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;AAC9D,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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"}
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
5
|
/**
|
|
6
|
-
* `ms app add
|
|
6
|
+
* `ms app add data-source` — a single entry point that adds a connector to
|
|
7
7
|
* the app and picks the right shape (table or action) based on the
|
|
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,CA8FzF"}
|
|
@@ -5,16 +5,18 @@ import { getSettings } from '../CliSettings.js';
|
|
|
5
5
|
import { createDefaultStringOption, promptConfirm } from '../CliUtils.js';
|
|
6
6
|
import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
7
7
|
import { UsageError } from '../Errors/CliError.js';
|
|
8
|
+
import { isCdsConnectorId } from '../Utils/ConnectorIds.js';
|
|
8
9
|
import { isTabularConnector, runAddActionFlowAsync, runAddTableFlowAsync, } from './AddConnectorFlows.js';
|
|
9
10
|
import { runConnectorDlpPreflightAsync } from './ConnectorHelpers.js';
|
|
10
11
|
import { AddConnectorArguments, SharedArguments } from './VerbConstants.js';
|
|
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
|
-
* `ms app add
|
|
14
|
+
* `ms app add data-source` — 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,28 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
55
60
|
asFlag,
|
|
56
61
|
connectorLabel,
|
|
57
62
|
});
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
const isCommonDataServiceForApps = isCdsConnectorId(apiId);
|
|
64
|
+
// ── CDS connector special case: reinterpret --table as Dataverse logical name ─
|
|
65
|
+
// For the Common Data Service for Apps connector, `--table` (existing flag) carries
|
|
66
|
+
// the Dataverse entity logical name and pairs with `--dataverse-environment-id`. The
|
|
67
|
+
// connector is non-tabular, so we land here only in action mode.
|
|
68
|
+
let dataverseEnvironmentId;
|
|
69
|
+
let dataverseTable;
|
|
70
|
+
if (isCommonDataServiceForApps && mode === 'action') {
|
|
71
|
+
if (datasetFlag) {
|
|
72
|
+
throw new UsageError('--dataset is not used with the Common Data Service for Apps connector. Use --table to specify a Dataverse logical name.');
|
|
73
|
+
}
|
|
74
|
+
dataverseEnvironmentId = dataverseEnvironmentIdFlag;
|
|
75
|
+
dataverseTable = tableFlag;
|
|
76
|
+
if (!getSettings().interactive && !!dataverseEnvironmentId !== !!dataverseTable) {
|
|
77
|
+
throw new UsageError(DATAVERSE_PAIR_ERROR);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else if (!isCommonDataServiceForApps && dataverseEnvironmentIdFlag) {
|
|
81
|
+
throw new UsageError('--dataverse-environment-id can only be used with the Common Data Service for Apps connector (--connector shared_commondataserviceforapps or --connector commondataserviceforapps).');
|
|
82
|
+
}
|
|
83
|
+
// ── Reject contradictory flags when adding actions (CDS already handled above) ─
|
|
84
|
+
if (mode === 'action' && !isCommonDataServiceForApps && (datasetFlag || tableFlag)) {
|
|
60
85
|
throw new UsageError(`--dataset and --table cannot be used with --as action. Re-run with --as table, or omit those flags.`);
|
|
61
86
|
}
|
|
62
87
|
// ── Dispatch ──────────────────────────────────────────────────────────────
|
|
@@ -81,6 +106,8 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
81
106
|
skipCodegen,
|
|
82
107
|
useV1Codegen,
|
|
83
108
|
policy,
|
|
109
|
+
dataverseEnvironmentId,
|
|
110
|
+
dataverseTable,
|
|
84
111
|
});
|
|
85
112
|
}
|
|
86
113
|
}
|
|
@@ -107,14 +134,21 @@ async function resolveModeAsync(input) {
|
|
|
107
134
|
return addAsTable ? 'table' : 'action';
|
|
108
135
|
}
|
|
109
136
|
function createOptionSchema(argumentProvider) {
|
|
110
|
-
argumentProvider.
|
|
111
|
-
|
|
137
|
+
const invokedAsConnector = argumentProvider.getResolvedCommand()?.path.at(-1) === 'connector';
|
|
138
|
+
if (invokedAsConnector) {
|
|
139
|
+
argumentProvider.setDescription(`${HelpStrings.app.add.connector.deprecation}\n\n${HelpStrings.app.add.connector.description}`);
|
|
140
|
+
argumentProvider.addExamples(HelpStrings.app.add.connector.deprecatedExamples);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
argumentProvider.setDescription(HelpStrings.app.add.connector.description);
|
|
144
|
+
argumentProvider.addExamples(HelpStrings.app.add.connector.examples);
|
|
145
|
+
}
|
|
112
146
|
argumentProvider.addOptions([
|
|
113
147
|
createDefaultStringOption({
|
|
114
|
-
flags: { key: SharedArguments.
|
|
115
|
-
env: SharedArguments.
|
|
116
|
-
message: SharedArguments.
|
|
117
|
-
description: HelpStrings.app.add.connector.options.
|
|
148
|
+
flags: { key: SharedArguments.Connector.name },
|
|
149
|
+
env: SharedArguments.Connector.envVar,
|
|
150
|
+
message: SharedArguments.Connector.promptMessage,
|
|
151
|
+
description: HelpStrings.app.add.connector.options.connector,
|
|
118
152
|
}),
|
|
119
153
|
{
|
|
120
154
|
flags: { key: SharedArguments.ConnectionId.name, alias: SharedArguments.ConnectionId.alias },
|
|
@@ -140,6 +174,12 @@ function createOptionSchema(argumentProvider) {
|
|
|
140
174
|
description: HelpStrings.app.add.connector.options.as,
|
|
141
175
|
optionalInNonInteractive: true,
|
|
142
176
|
},
|
|
177
|
+
{
|
|
178
|
+
flags: { key: AddConnectorArguments.DataverseEnvironmentId.name },
|
|
179
|
+
env: AddConnectorArguments.DataverseEnvironmentId.envVar,
|
|
180
|
+
description: HelpStrings.app.add.connector.options.dataverseEnvironmentId,
|
|
181
|
+
optionalInNonInteractive: true,
|
|
182
|
+
},
|
|
143
183
|
]);
|
|
144
184
|
argumentProvider.addSwitch({
|
|
145
185
|
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":"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,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,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;AAGzE,MAAM,oBAAoB,GACxB,4IAA4I,CAAC;AAE/I;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,gBAAkC;IACxE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,WAAW,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,cAAc,EAAE,IAAI,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,MAAM,0BAA0B,GAAG,MAAM,gBAAgB,CAAC,SAAS,CACjE,wBAAwB,EACxB,IAAI,CACL,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAU,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAU,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAEzF,8EAA8E;IAC9E,IAAI,MAA2B,CAAC;IAChC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,UAAU,CAAC,4BAA4B,SAAS,kCAAkC,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,GAAG,UAAqB,CAAC;IACjC,CAAC;IAED,iFAAiF;IACjF,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,6BAA6B,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC3F,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,IAAI,KAAK,CAAC;IACjE,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAEhD,6EAA6E;IAC7E,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;QAClC,SAAS;QACT,MAAM;QACN,cAAc;KACf,CAAC,CAAC;IACH,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE3D,iFAAiF;IACjF,oFAAoF;IACpF,qFAAqF;IACrF,iEAAiE;IACjE,IAAI,sBAA0C,CAAC;IAC/C,IAAI,cAAkC,CAAC;IACvC,IAAI,0BAA0B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,UAAU,CAClB,yHAAyH,CAC1H,CAAC;QACJ,CAAC;QACD,sBAAsB,GAAG,0BAA0B,CAAC;QACpD,cAAc,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,sBAAsB,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;YAChF,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,0BAA0B,IAAI,0BAA0B,EAAE,CAAC;QACrE,MAAM,IAAI,UAAU,CAClB,oLAAoL,CACrL,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,0BAA0B,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,UAAU,CAClB,qGAAqG,CACtG,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,oBAAoB,CAAC;YACzB,gBAAgB;YAChB,SAAS;YACT,KAAK;YACL,gBAAgB;YAChB,WAAW;YACX,SAAS;YACT,WAAW;YACX,YAAY;SACb,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,qBAAqB,CAAC;YAC1B,gBAAgB;YAChB,SAAS;YACT,KAAK;YACL,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,MAAM;YACN,sBAAsB;YACtB,cAAc;SACf,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAI/B;IACC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACpD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAClB,cAAc,cAAc,0FAA0F,CACvH,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAClB,cAAc,cAAc,wEAAwE,CACrG,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC;QACrC,OAAO,EAAE,cAAc,cAAc,4DAA4D;QACjG,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzC,CAAC;AAED,SAAS,kBAAkB,CAAC,gBAAkC;IAC5D,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC;IAC9F,IAAI,kBAAkB,EAAE,CAAC;QACvB,gBAAgB,CAAC,cAAc,CAC7B,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAC/F,CAAC;QACF,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3E,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IACD,gBAAgB,CAAC,UAAU,CAAC;QAC1B,yBAAyB,CAAC;YACxB,KAAK,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE;YAC9C,GAAG,EAAE,eAAe,CAAC,SAAS,CAAC,MAAM;YACrC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,aAAa;YAChD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS;SAC7D,CAAC;QACF;YACE,KAAK,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE;YAC5F,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,MAAM;YACxC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY;YAC/D,wBAAwB,EAAE,IAAI;SAC/B;QACD;YACE,KAAK,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;YAClF,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM;YACnC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO;YAC1D,wBAAwB,EAAE,IAAI;SAC/B;QACD;YACE,KAAK,EAAE,EAAE,GAAG,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE;YAC1F,GAAG,EAAE,qBAAqB,CAAC,KAAK,CAAC,MAAM;YACvC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;YACxD,wBAAwB,EAAE,IAAI;SAC/B;QACD;YACE,KAAK,EAAE,EAAE,GAAG,EAAE,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE;YAC7C,GAAG,EAAE,qBAAqB,CAAC,EAAE,CAAC,MAAM;YACpC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACrD,wBAAwB,EAAE,IAAI;SAC/B;QACD;YACE,KAAK,EAAE,EAAE,GAAG,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,IAAI,EAAE;YACjE,GAAG,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,MAAM;YACxD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB;YACzE,wBAAwB,EAAE,IAAI;SAC/B;KACF,CAAC,CAAC;IACH,gBAAgB,CAAC,SAAS,CAAC;QACzB,KAAK,EAAE,EAAE,GAAG,EAAE,qBAAqB,CAAC,WAAW,CAAC,IAAI,EAAE;QACtD,GAAG,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAAG;QAC1C,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW;KAC/D,CAAC,CAAC;IACH,gBAAgB,CAAC,SAAS,CAAC;QACzB,KAAK,EAAE,EAAE,GAAG,EAAE,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE;QACvD,GAAG,EAAE,qBAAqB,CAAC,YAAY,CAAC,GAAG;QAC3C,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -7,16 +7,17 @@ import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
|
7
7
|
* Shared helpers for the two "add a connector data source" flows.
|
|
8
8
|
*
|
|
9
9
|
* Both `ms app add table` and `ms app add action` are thin wrappers around
|
|
10
|
-
* these helpers; `ms app add
|
|
10
|
+
* these helpers; `ms app add data-source` calls them after deciding which mode
|
|
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
|
-
* tabular; `ms app add
|
|
20
|
+
* tabular; `ms app add data-source` already branched on capability).
|
|
20
21
|
* - These helpers handle: connection resolution (with interactive prompt or
|
|
21
22
|
* print-and-exit), dataset/table resolution (table flow only), invoking
|
|
22
23
|
* the underlying action, and printing the success message.
|
|
@@ -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;AAY5D;;;;;;;;;;;;;;;;;;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,CA6GlF;AAyCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAE1D"}
|