@microsoft/managed-apps-cli 0.14.0 → 0.16.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 +1 -1
- package/dist/Authentication/NoOpAuthenticationProvider.d.ts +25 -0
- package/dist/Authentication/NoOpAuthenticationProvider.d.ts.map +1 -0
- package/dist/Authentication/NoOpAuthenticationProvider.js +31 -0
- package/dist/Authentication/NoOpAuthenticationProvider.js.map +1 -0
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +14 -0
- package/dist/Cli.js.map +1 -1
- package/dist/CliSettings.js +1 -1
- package/dist/CliSettings.js.map +1 -1
- package/dist/Constants/CommandRegistry.d.ts.map +1 -1
- package/dist/Constants/CommandRegistry.js +13 -5
- package/dist/Constants/CommandRegistry.js.map +1 -1
- package/dist/Constants/HelpStrings.d.ts +12 -0
- package/dist/Constants/HelpStrings.d.ts.map +1 -1
- package/dist/Constants/HelpStrings.js +27 -9
- package/dist/Constants/HelpStrings.js.map +1 -1
- package/dist/Constants.d.ts +1 -0
- package/dist/Constants.d.ts.map +1 -1
- package/dist/Constants.js +4 -0
- package/dist/Constants.js.map +1 -1
- package/dist/HttpClient/CliHttpClient.d.ts.map +1 -1
- package/dist/HttpClient/CliHttpClient.js +27 -1
- package/dist/HttpClient/CliHttpClient.js.map +1 -1
- package/dist/Logger/CliLogger.d.ts +1 -1
- package/dist/Logger/CliLogger.d.ts.map +1 -1
- package/dist/Logger/CliLogger.js +9 -4
- package/dist/Logger/CliLogger.js.map +1 -1
- package/dist/Logger/OneDSWriter.d.ts +0 -1
- package/dist/Logger/OneDSWriter.d.ts.map +1 -1
- package/dist/Logger/OneDSWriter.js +1 -3
- package/dist/Logger/OneDSWriter.js.map +1 -1
- package/dist/Testing/MockFetch.d.ts +23 -0
- package/dist/Testing/MockFetch.d.ts.map +1 -0
- package/dist/Testing/MockFetch.js +177 -0
- package/dist/Testing/MockFetch.js.map +1 -0
- package/dist/Testing/MockRoutes.d.ts +34 -0
- package/dist/Testing/MockRoutes.d.ts.map +1 -0
- package/dist/Testing/MockRoutes.js +226 -0
- package/dist/Testing/MockRoutes.js.map +1 -0
- package/dist/Testing/fixtures/connectors/commondataserviceforapps.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/commondataserviceforapps.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/commondataserviceforapps.js +25 -0
- package/dist/Testing/fixtures/connectors/commondataserviceforapps.js.map +1 -0
- package/dist/Testing/fixtures/connectors/dataverseContactEntity.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/dataverseContactEntity.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/dataverseContactEntity.js +55 -0
- package/dist/Testing/fixtures/connectors/dataverseContactEntity.js.map +1 -0
- package/dist/Testing/fixtures/connectors/excelonlinebusiness.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/excelonlinebusiness.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/excelonlinebusiness.js +1970 -0
- package/dist/Testing/fixtures/connectors/excelonlinebusiness.js.map +1 -0
- package/dist/Testing/fixtures/connectors/kusto.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/kusto.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/kusto.js +1333 -0
- package/dist/Testing/fixtures/connectors/kusto.js.map +1 -0
- package/dist/Testing/fixtures/connectors/msnweather.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/msnweather.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/msnweather.js +917 -0
- package/dist/Testing/fixtures/connectors/msnweather.js.map +1 -0
- package/dist/Testing/fixtures/connectors/office365groups.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/office365groups.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/office365groups.js +2144 -0
- package/dist/Testing/fixtures/connectors/office365groups.js.map +1 -0
- package/dist/Testing/fixtures/connectors/office365users.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/office365users.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/office365users.js +1969 -0
- package/dist/Testing/fixtures/connectors/office365users.js.map +1 -0
- package/dist/Testing/fixtures/connectors/onedriveforbusiness.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/onedriveforbusiness.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/onedriveforbusiness.js +4873 -0
- package/dist/Testing/fixtures/connectors/onedriveforbusiness.js.map +1 -0
- package/dist/Testing/fixtures/connectors/powerappsforappmakers.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/powerappsforappmakers.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/powerappsforappmakers.js +4682 -0
- package/dist/Testing/fixtures/connectors/powerappsforappmakers.js.map +1 -0
- package/dist/Testing/fixtures/connectors/sharepointTestListMetadata.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/sharepointTestListMetadata.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/sharepointTestListMetadata.js +1078 -0
- package/dist/Testing/fixtures/connectors/sharepointTestListMetadata.js.map +1 -0
- package/dist/Testing/fixtures/connectors/sharepointonline.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/sharepointonline.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/sharepointonline.js +28 -0
- package/dist/Testing/fixtures/connectors/sharepointonline.js.map +1 -0
- package/dist/Testing/fixtures/connectors/teams.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/teams.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/teams.js +9987 -0
- package/dist/Testing/fixtures/connectors/teams.js.map +1 -0
- package/dist/Testing/fixtures/connectors/translatorv2.d.ts +6 -0
- package/dist/Testing/fixtures/connectors/translatorv2.d.ts.map +1 -0
- package/dist/Testing/fixtures/connectors/translatorv2.js +307 -0
- package/dist/Testing/fixtures/connectors/translatorv2.js.map +1 -0
- package/dist/Testing/fixtures/index.d.ts +23 -0
- package/dist/Testing/fixtures/index.d.ts.map +1 -0
- package/dist/Testing/fixtures/index.js +96 -0
- package/dist/Testing/fixtures/index.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/MaafAppConfig.d.ts +2 -0
- package/dist/Utils/MaafAppConfig.d.ts.map +1 -1
- package/dist/Utils/MaafAppConfig.js +6 -0
- package/dist/Utils/MaafAppConfig.js.map +1 -1
- package/dist/Utils/RepoOption.d.ts +1 -0
- package/dist/Utils/RepoOption.d.ts.map +1 -1
- package/dist/Utils/RepoOption.js +14 -0
- package/dist/Utils/RepoOption.js.map +1 -1
- package/dist/Utils/ShareAccessRouting.d.ts +78 -0
- package/dist/Utils/ShareAccessRouting.d.ts.map +1 -0
- package/dist/Utils/ShareAccessRouting.js +93 -0
- package/dist/Utils/ShareAccessRouting.js.map +1 -0
- package/dist/Verbs/AddConnector.d.ts +6 -6
- package/dist/Verbs/AddConnector.d.ts.map +1 -1
- package/dist/Verbs/AddConnector.js +45 -29
- package/dist/Verbs/AddConnector.js.map +1 -1
- package/dist/Verbs/AddConnectorFlows.d.ts +9 -2
- package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -1
- package/dist/Verbs/AddConnectorFlows.js +26 -7
- package/dist/Verbs/AddConnectorFlows.js.map +1 -1
- package/dist/Verbs/CreateMaafApp.d.ts +8 -16
- package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
- package/dist/Verbs/CreateMaafApp.js +217 -90
- package/dist/Verbs/CreateMaafApp.js.map +1 -1
- package/dist/Verbs/DeleteMaafApp.d.ts +13 -9
- package/dist/Verbs/DeleteMaafApp.d.ts.map +1 -1
- package/dist/Verbs/DeleteMaafApp.js +41 -21
- package/dist/Verbs/DeleteMaafApp.js.map +1 -1
- package/dist/Verbs/GetMaafApp.d.ts.map +1 -1
- package/dist/Verbs/GetMaafApp.js +18 -6
- package/dist/Verbs/GetMaafApp.js.map +1 -1
- package/dist/Verbs/Init.d.ts.map +1 -1
- package/dist/Verbs/Init.js +53 -1
- package/dist/Verbs/Init.js.map +1 -1
- package/dist/Verbs/MaafAppPermissions.d.ts +8 -17
- package/dist/Verbs/MaafAppPermissions.d.ts.map +1 -1
- package/dist/Verbs/MaafAppPermissions.js +84 -91
- package/dist/Verbs/MaafAppPermissions.js.map +1 -1
- package/dist/Verbs/Pack.d.ts +1 -1
- package/dist/Verbs/Pack.d.ts.map +1 -1
- package/dist/Verbs/Pack.js +109 -1
- package/dist/Verbs/Pack.js.map +1 -1
- package/dist/Verbs/RefreshDataSource.d.ts +10 -9
- package/dist/Verbs/RefreshDataSource.d.ts.map +1 -1
- package/dist/Verbs/RefreshDataSource.js +24 -23
- package/dist/Verbs/RefreshDataSource.js.map +1 -1
- package/dist/Verbs/RemoveDataSource.d.ts.map +1 -1
- package/dist/Verbs/RemoveDataSource.js +17 -3
- package/dist/Verbs/RemoveDataSource.js.map +1 -1
- package/dist/Verbs/ShareList.d.ts +10 -0
- package/dist/Verbs/ShareList.d.ts.map +1 -0
- package/dist/Verbs/ShareList.js +254 -0
- package/dist/Verbs/ShareList.js.map +1 -0
- package/dist/Verbs/VerbConstants.d.ts +41 -0
- package/dist/Verbs/VerbConstants.d.ts.map +1 -1
- package/dist/Verbs/VerbConstants.js +25 -0
- package/dist/Verbs/VerbConstants.js.map +1 -1
- package/dist/Verbs/index.d.ts +1 -0
- package/dist/Verbs/index.d.ts.map +1 -1
- package/dist/Verbs/index.js +1 -0
- package/dist/Verbs/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { MaafAppDefinition } from '@microsoft/managed-apps-actions';
|
|
5
|
+
import type { RepoType } from '@microsoft/managed-apps-common/config';
|
|
6
|
+
/**
|
|
7
|
+
* Selects which access level the caller wants to grant/revoke/list:
|
|
8
|
+
*
|
|
9
|
+
* - `play` — read-only access to the MAAF app itself, granted at the app scope
|
|
10
|
+
* via PowerApps RP (`MicrosoftAppReader` role).
|
|
11
|
+
* - `edit` — read + write access to the app's code. The concrete scope depends
|
|
12
|
+
* on `repoType`: for `native` repositories the `RepositoryContributor` role
|
|
13
|
+
* lives at the GRS repo scope; for `none` / `github` repositories the
|
|
14
|
+
* `MicrosoftAppContributor` role lives at the MAAF app scope instead (since
|
|
15
|
+
* there is no platform-managed repository to attach a role to).
|
|
16
|
+
*/
|
|
17
|
+
export type MaafAppAccessLevel = 'play' | 'edit';
|
|
18
|
+
export declare const noRepositoryLinkedMessage: string;
|
|
19
|
+
export declare const externalRepositoryWarning: string;
|
|
20
|
+
/**
|
|
21
|
+
* The all-zero GUID the platform writes as a "no repository" placeholder. A
|
|
22
|
+
* config or app definition carrying this value must be treated as having no
|
|
23
|
+
* repo-scope id (i.e. never used to address a GRS repo endpoint).
|
|
24
|
+
*/
|
|
25
|
+
export declare const EmptyRepositoryId = "00000000-0000-0000-0000-000000000000";
|
|
26
|
+
/**
|
|
27
|
+
* True when a `repositoryId` is present and is a real id — i.e. non-empty and
|
|
28
|
+
* not the {@link EmptyRepositoryId} sentinel. Use this everywhere a
|
|
29
|
+
* `repositoryId` is about to drive a repo-scope read so the zero-GUID
|
|
30
|
+
* placeholder is consistently treated as "no repo".
|
|
31
|
+
*/
|
|
32
|
+
export declare function hasMeaningfulRepositoryId(repositoryId: string | undefined): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Parses the `--access` flag value. Defaults to `'play'` when omitted so
|
|
35
|
+
* `share`/`unshare` keep their pre-flag behaviour for callers that haven't
|
|
36
|
+
* migrated. Throws a `UsageError` on any other value — Commander.js doesn't
|
|
37
|
+
* enforce enum membership by default and we want a precise error message.
|
|
38
|
+
*
|
|
39
|
+
* `play` and `edit` are the only externally visible levels. The role and scope
|
|
40
|
+
* the level resolves to are decided downstream (see {@link MaafAppAccessLevel}).
|
|
41
|
+
*/
|
|
42
|
+
export declare function parseAccessLevel(raw: string | undefined): MaafAppAccessLevel;
|
|
43
|
+
/**
|
|
44
|
+
* Resolves the effective {@link RepoType} from an `AppConfig`.
|
|
45
|
+
*
|
|
46
|
+
* Hard rule: if `repoType` is missing AND the config carries a (non-empty,
|
|
47
|
+
* non-zero-GUID) `repositoryId`, refuse to guess - the user must re-run
|
|
48
|
+
* `app init` to migrate the config. When both are missing we treat it as
|
|
49
|
+
* `'none'`: there is no repo-scope to act on, and the app-scope fallback in
|
|
50
|
+
* the share/unshare/list routing handles edit correctly.
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveRepoType(appConfig: {
|
|
53
|
+
repoType?: RepoType;
|
|
54
|
+
repositoryId?: string;
|
|
55
|
+
}): RepoType;
|
|
56
|
+
/**
|
|
57
|
+
* Fetches the app definition via the info action. Performs no `repositoryId`
|
|
58
|
+
* validation — use this when the caller only needs app metadata (e.g. to
|
|
59
|
+
* classify the {@link RepoType} for routing). Callers that require a repo-scope
|
|
60
|
+
* id must validate it themselves (see {@link resolveAppForEditAsync}).
|
|
61
|
+
*/
|
|
62
|
+
export declare function fetchAppDefinitionAsync(args: {
|
|
63
|
+
tenantId: string;
|
|
64
|
+
environmentId: string;
|
|
65
|
+
appName: string;
|
|
66
|
+
}): Promise<MaafAppDefinition>;
|
|
67
|
+
/**
|
|
68
|
+
* Fetches the app definition and validates it carries a `repositoryId`. Used by
|
|
69
|
+
* the `edit` access paths that drive the GRS repo-scope endpoints; the returned
|
|
70
|
+
* definition is also reused to surface the post-share repository details
|
|
71
|
+
* (avoiding a second GET on the native path).
|
|
72
|
+
*/
|
|
73
|
+
export declare function resolveAppForEditAsync(args: {
|
|
74
|
+
tenantId: string;
|
|
75
|
+
environmentId: string;
|
|
76
|
+
appName: string;
|
|
77
|
+
}): Promise<MaafAppDefinition>;
|
|
78
|
+
//# sourceMappingURL=ShareAccessRouting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareAccessRouting.d.ts","sourceRoot":"","sources":["../../src/Utils/ShareAccessRouting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAOtE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,eAAO,MAAM,yBAAyB,QAIkB,CAAC;AAEzD,eAAO,MAAM,yBAAyB,QAE8B,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,CAQ5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,QAAQ,CAYX;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAO7B;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAM7B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { infoAsync } from '@microsoft/managed-apps-actions';
|
|
5
|
+
import { AppConfigFileName } from '@microsoft/managed-apps-common/config';
|
|
6
|
+
import { getCliLogger } from '../CliSettings.js';
|
|
7
|
+
import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
|
|
8
|
+
import { UsageError } from '../Errors/CliError.js';
|
|
9
|
+
export const noRepositoryLinkedMessage = 'Cannot share source code — no repository linked.\n\n' +
|
|
10
|
+
"This app has no linked repository, so source code isn't stored on the platform. " +
|
|
11
|
+
"To collaborate on code, run 'ms app init' to create an app instance with a repo, " +
|
|
12
|
+
'or share the source with your collaborator directly.';
|
|
13
|
+
export const externalRepositoryWarning = 'This app is not backed by a platform managed repo. ' +
|
|
14
|
+
'Repository access must be configured in the external repository.';
|
|
15
|
+
/**
|
|
16
|
+
* The all-zero GUID the platform writes as a "no repository" placeholder. A
|
|
17
|
+
* config or app definition carrying this value must be treated as having no
|
|
18
|
+
* repo-scope id (i.e. never used to address a GRS repo endpoint).
|
|
19
|
+
*/
|
|
20
|
+
export const EmptyRepositoryId = '00000000-0000-0000-0000-000000000000';
|
|
21
|
+
/**
|
|
22
|
+
* True when a `repositoryId` is present and is a real id — i.e. non-empty and
|
|
23
|
+
* not the {@link EmptyRepositoryId} sentinel. Use this everywhere a
|
|
24
|
+
* `repositoryId` is about to drive a repo-scope read so the zero-GUID
|
|
25
|
+
* placeholder is consistently treated as "no repo".
|
|
26
|
+
*/
|
|
27
|
+
export function hasMeaningfulRepositoryId(repositoryId) {
|
|
28
|
+
return !!repositoryId && repositoryId !== EmptyRepositoryId;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parses the `--access` flag value. Defaults to `'play'` when omitted so
|
|
32
|
+
* `share`/`unshare` keep their pre-flag behaviour for callers that haven't
|
|
33
|
+
* migrated. Throws a `UsageError` on any other value — Commander.js doesn't
|
|
34
|
+
* enforce enum membership by default and we want a precise error message.
|
|
35
|
+
*
|
|
36
|
+
* `play` and `edit` are the only externally visible levels. The role and scope
|
|
37
|
+
* the level resolves to are decided downstream (see {@link MaafAppAccessLevel}).
|
|
38
|
+
*/
|
|
39
|
+
export function parseAccessLevel(raw) {
|
|
40
|
+
const value = (raw ?? 'play').trim().toLowerCase();
|
|
41
|
+
if (value === 'play' || value === 'edit') {
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
throw new UsageError(`Unknown --access value '${raw}'. Use 'play' (default — app access) or 'edit' (edit access).`);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolves the effective {@link RepoType} from an `AppConfig`.
|
|
48
|
+
*
|
|
49
|
+
* Hard rule: if `repoType` is missing AND the config carries a (non-empty,
|
|
50
|
+
* non-zero-GUID) `repositoryId`, refuse to guess - the user must re-run
|
|
51
|
+
* `app init` to migrate the config. When both are missing we treat it as
|
|
52
|
+
* `'none'`: there is no repo-scope to act on, and the app-scope fallback in
|
|
53
|
+
* the share/unshare/list routing handles edit correctly.
|
|
54
|
+
*/
|
|
55
|
+
export function resolveRepoType(appConfig) {
|
|
56
|
+
if (appConfig.repoType) {
|
|
57
|
+
return appConfig.repoType;
|
|
58
|
+
}
|
|
59
|
+
if (hasMeaningfulRepositoryId(appConfig.repositoryId)) {
|
|
60
|
+
throw new UsageError(`${AppConfigFileName} is missing the 'repoType' field but has a 'repositoryId' set. ` +
|
|
61
|
+
`This usually means the file was written by an older CLI. ` +
|
|
62
|
+
`Re-run "${CLI_BINARY_NAME} app init" to migrate the config, then retry.`);
|
|
63
|
+
}
|
|
64
|
+
return 'none';
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Fetches the app definition via the info action. Performs no `repositoryId`
|
|
68
|
+
* validation — use this when the caller only needs app metadata (e.g. to
|
|
69
|
+
* classify the {@link RepoType} for routing). Callers that require a repo-scope
|
|
70
|
+
* id must validate it themselves (see {@link resolveAppForEditAsync}).
|
|
71
|
+
*/
|
|
72
|
+
export async function fetchAppDefinitionAsync(args) {
|
|
73
|
+
return infoAsync({
|
|
74
|
+
tenantId: args.tenantId,
|
|
75
|
+
environmentId: args.environmentId,
|
|
76
|
+
logger: getCliLogger(),
|
|
77
|
+
actionsParams: { appName: args.appName },
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Fetches the app definition and validates it carries a `repositoryId`. Used by
|
|
82
|
+
* the `edit` access paths that drive the GRS repo-scope endpoints; the returned
|
|
83
|
+
* definition is also reused to surface the post-share repository details
|
|
84
|
+
* (avoiding a second GET on the native path).
|
|
85
|
+
*/
|
|
86
|
+
export async function resolveAppForEditAsync(args) {
|
|
87
|
+
const app = await fetchAppDefinitionAsync(args);
|
|
88
|
+
if (!hasMeaningfulRepositoryId(app.repositoryId)) {
|
|
89
|
+
throw new UsageError(`App '${args.appName}' has no associated repository.`);
|
|
90
|
+
}
|
|
91
|
+
return app;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=ShareAccessRouting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareAccessRouting.js","sourceRoot":"","sources":["../../src/Utils/ShareAccessRouting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAehD,MAAM,CAAC,MAAM,yBAAyB,GACpC,sDAAsD;IACtD,kFAAkF;IAClF,mFAAmF;IACnF,sDAAsD,CAAC;AAEzD,MAAM,CAAC,MAAM,yBAAyB,GACpC,qDAAqD;IACrD,kEAAkE,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAAgC;IACxE,OAAO,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,iBAAiB,CAAC;AAC9D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAuB;IACtD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,2BAA2B,GAAG,+DAA+D,CAC9F,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,SAG/B;IACC,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC5B,CAAC;IACD,IAAI,yBAAyB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,UAAU,CAClB,GAAG,iBAAiB,iEAAiE;YACnF,2DAA2D;YAC3D,WAAW,eAAe,+CAA+C,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAI7C;IACC,OAAO,SAAS,CAAC;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,MAAM,EAAE,YAAY,EAAE;QACtB,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;KACzC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAI5C;IACC,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAAC,QAAQ,IAAI,CAAC,OAAO,iCAAiC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -9,17 +9,17 @@ import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
|
9
9
|
*
|
|
10
10
|
* Decision matrix:
|
|
11
11
|
* 1. Run connector-policy preflight (single source of truth for policy enforcement).
|
|
12
|
-
* 2.
|
|
13
|
-
*
|
|
12
|
+
* 2. Common Data Service for Apps (Dataverse) connector → always the action flow
|
|
13
|
+
* with an optional Dataverse table binding. `--table` carries the entity logical
|
|
14
|
+
* name; `--dataverse-environment-id` is optional (defaults to the app environment);
|
|
15
|
+
* `--as table` requests a table binding; `--dataset` is rejected.
|
|
16
|
+
* 3. Otherwise determine `isTabular` from connector capabilities and resolve mode:
|
|
14
17
|
* - Non-tabular + `--as table` → UsageError
|
|
15
18
|
* - Non-tabular → mode = action
|
|
16
19
|
* - Tabular + `--as` given → mode = flag value
|
|
17
20
|
* - Tabular + interactive (no `--as`) → promptConfirm yes/no
|
|
18
21
|
* - Tabular + non-interactive + no `--as` → UsageError
|
|
19
|
-
* 4. Reject `--dataset` / `--table` if mode resolved to action
|
|
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`).
|
|
22
|
+
* 4. Reject `--dataset` / `--table` if mode resolved to action (non-CDS).
|
|
23
23
|
* 5. Delegate to the appropriate shared flow helper.
|
|
24
24
|
*/
|
|
25
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;AAgB5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HzF"}
|
|
@@ -9,7 +9,6 @@ import { isCdsConnectorId } from '../Utils/ConnectorIds.js';
|
|
|
9
9
|
import { isTabularConnector, runAddActionFlowAsync, runAddTableFlowAsync, } from './AddConnectorFlows.js';
|
|
10
10
|
import { resolveConnectorIdAsync, runConnectorDlpPreflightAsync } from './ConnectorHelpers.js';
|
|
11
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.';
|
|
13
12
|
/**
|
|
14
13
|
* `ms app add data-source` — a single entry point that adds a connector to
|
|
15
14
|
* the app and picks the right shape (table or action) based on the
|
|
@@ -17,17 +16,17 @@ const DATAVERSE_PAIR_ERROR = '--dataverse-environment-id and --table must be spe
|
|
|
17
16
|
*
|
|
18
17
|
* Decision matrix:
|
|
19
18
|
* 1. Run connector-policy preflight (single source of truth for policy enforcement).
|
|
20
|
-
* 2.
|
|
21
|
-
*
|
|
19
|
+
* 2. Common Data Service for Apps (Dataverse) connector → always the action flow
|
|
20
|
+
* with an optional Dataverse table binding. `--table` carries the entity logical
|
|
21
|
+
* name; `--dataverse-environment-id` is optional (defaults to the app environment);
|
|
22
|
+
* `--as table` requests a table binding; `--dataset` is rejected.
|
|
23
|
+
* 3. Otherwise determine `isTabular` from connector capabilities and resolve mode:
|
|
22
24
|
* - Non-tabular + `--as table` → UsageError
|
|
23
25
|
* - Non-tabular → mode = action
|
|
24
26
|
* - Tabular + `--as` given → mode = flag value
|
|
25
27
|
* - Tabular + interactive (no `--as`) → promptConfirm yes/no
|
|
26
28
|
* - Tabular + non-interactive + no `--as` → UsageError
|
|
27
|
-
* 4. Reject `--dataset` / `--table` if mode resolved to action
|
|
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`).
|
|
29
|
+
* 4. Reject `--dataset` / `--table` if mode resolved to action (non-CDS).
|
|
31
30
|
* 5. Delegate to the appropriate shared flow helper.
|
|
32
31
|
*/
|
|
33
32
|
export async function addConnectorAsync(argumentProvider) {
|
|
@@ -57,34 +56,53 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
57
56
|
const { connector, policy } = await runConnectorDlpPreflightAsync(argumentProvider, resolvedApiId);
|
|
58
57
|
const connectorLabel = connector.properties.displayName ?? resolvedApiId;
|
|
59
58
|
const isTabular = isTabularConnector(connector);
|
|
60
|
-
// ── Decide mode ───────────────────────────────────────────────────────────
|
|
61
|
-
const mode = await resolveModeAsync({
|
|
62
|
-
isTabular,
|
|
63
|
-
asFlag,
|
|
64
|
-
connectorLabel,
|
|
65
|
-
});
|
|
66
59
|
const isCommonDataServiceForApps = isCdsConnectorId(resolvedApiId);
|
|
67
|
-
// ──
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
60
|
+
// ── Common Data Service for Apps (Dataverse) connector ────────────────────
|
|
61
|
+
// Dataverse is added through the action flow (it exposes Dataverse operations),
|
|
62
|
+
// with an OPTIONAL table binding — it does not use the generic tabular
|
|
63
|
+
// dataset/table flow (Dataverse has no dataset concept). The standard `--table`
|
|
64
|
+
// flag carries the Dataverse entity logical name; `--dataverse-environment-id`
|
|
65
|
+
// is optional and defaults to the app's environment. `--as table` is accepted
|
|
66
|
+
// and signals that the user wants a table binding.
|
|
67
|
+
if (isCommonDataServiceForApps) {
|
|
74
68
|
if (datasetFlag) {
|
|
75
69
|
throw new UsageError('--dataset is not used with the Common Data Service for Apps connector. Use --table to specify a Dataverse logical name.');
|
|
76
70
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
71
|
+
const wantsTableBinding = asFlag === 'table';
|
|
72
|
+
const nonInteractive = !getSettings().interactive;
|
|
73
|
+
// A table logical name is required to bind a table. In non-interactive mode,
|
|
74
|
+
// reject `--as table` or a bare `--dataverse-environment-id` without `--table`
|
|
75
|
+
// instead of silently ignoring them.
|
|
76
|
+
if (nonInteractive && (wantsTableBinding || dataverseEnvironmentIdFlag) && !tableFlag) {
|
|
77
|
+
throw new UsageError('Adding a Dataverse table requires --table <logical-name> for the Common Data Service for Apps connector. --dataverse-environment-id is optional and defaults to the app environment.');
|
|
81
78
|
}
|
|
79
|
+
await runAddActionFlowAsync({
|
|
80
|
+
argumentProvider,
|
|
81
|
+
connector,
|
|
82
|
+
apiId: resolvedApiId,
|
|
83
|
+
connectionIdFlag,
|
|
84
|
+
skipCodegen,
|
|
85
|
+
useV1Codegen,
|
|
86
|
+
useSso,
|
|
87
|
+
policy,
|
|
88
|
+
dataverseEnvironmentId: dataverseEnvironmentIdFlag,
|
|
89
|
+
dataverseTable: tableFlag,
|
|
90
|
+
forceTableBinding: wantsTableBinding,
|
|
91
|
+
});
|
|
92
|
+
return;
|
|
82
93
|
}
|
|
83
|
-
|
|
94
|
+
// ── Non-CDS connectors ────────────────────────────────────────────────────
|
|
95
|
+
if (dataverseEnvironmentIdFlag) {
|
|
84
96
|
throw new UsageError('--dataverse-environment-id can only be used with the Common Data Service for Apps connector (--connector shared_commondataserviceforapps or --connector commondataserviceforapps).');
|
|
85
97
|
}
|
|
86
|
-
// ──
|
|
87
|
-
|
|
98
|
+
// ── Decide mode ───────────────────────────────────────────────────────────
|
|
99
|
+
const mode = await resolveModeAsync({
|
|
100
|
+
isTabular,
|
|
101
|
+
asFlag,
|
|
102
|
+
connectorLabel,
|
|
103
|
+
});
|
|
104
|
+
// ── Reject contradictory flags when adding actions ────────────────────────
|
|
105
|
+
if (mode === 'action' && (datasetFlag || tableFlag)) {
|
|
88
106
|
throw new UsageError(`--dataset and --table cannot be used with --as action. Re-run with --as table, or omit those flags.`);
|
|
89
107
|
}
|
|
90
108
|
// ── Dispatch ──────────────────────────────────────────────────────────────
|
|
@@ -111,8 +129,6 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
111
129
|
useV1Codegen,
|
|
112
130
|
useSso,
|
|
113
131
|
policy,
|
|
114
|
-
dataverseEnvironmentId,
|
|
115
|
-
dataverseTable,
|
|
116
132
|
});
|
|
117
133
|
}
|
|
118
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddConnector.js","sourceRoot":"","sources":["../../src/Verbs/AddConnector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,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,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,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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"}
|
|
@@ -44,15 +44,22 @@ export interface AddActionFlowArgs extends AddFlowBaseArgs {
|
|
|
44
44
|
policy?: EffectiveConnectorDataPolicy;
|
|
45
45
|
/**
|
|
46
46
|
* For the Common Data Service for Apps connector only: the target Dataverse
|
|
47
|
-
* environment GUID.
|
|
47
|
+
* environment GUID (`--dataverse-environment-id`). Optional — when omitted the
|
|
48
|
+
* app's environment is used.
|
|
48
49
|
*/
|
|
49
50
|
dataverseEnvironmentId?: string;
|
|
50
51
|
/**
|
|
51
52
|
* For the Common Data Service for Apps connector only: the Dataverse entity
|
|
52
53
|
* logical name (carried by the standard `--table` flag at the CLI surface).
|
|
53
|
-
* Pairs with `dataverseEnvironmentId`.
|
|
54
54
|
*/
|
|
55
55
|
dataverseTable?: string;
|
|
56
|
+
/**
|
|
57
|
+
* For the Common Data Service for Apps connector only: when true (`--as table`),
|
|
58
|
+
* the caller explicitly requested a Dataverse table binding. In interactive mode
|
|
59
|
+
* this skips the "Connect a table?" confirmation and prompts for the table name
|
|
60
|
+
* directly.
|
|
61
|
+
*/
|
|
62
|
+
forceTableBinding?: boolean;
|
|
56
63
|
}
|
|
57
64
|
export interface AddTableFlowArgs extends AddFlowBaseArgs {
|
|
58
65
|
datasetFlag?: string;
|
|
@@ -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;AA6B5D;;;;;;;;;;;;;;;;;;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;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;;OAIG;IACH,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC
|
|
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;AA6B5D;;;;;;;;;;;;;;;;;;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;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;;OAIG;IACH,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;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,CAgJhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+HlF;AAwDD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAE1D"}
|
|
@@ -153,7 +153,7 @@ export async function runAddTableFlowAsync(args) {
|
|
|
153
153
|
* translate to a `UsageError`.
|
|
154
154
|
*/
|
|
155
155
|
export async function runAddActionFlowAsync(args) {
|
|
156
|
-
const { argumentProvider, connector, apiId, connectionIdFlag, skipCodegen, useV1Codegen, useSso, policy, dataverseEnvironmentId, dataverseTable, } = args;
|
|
156
|
+
const { argumentProvider, connector, apiId, connectionIdFlag, skipCodegen, useV1Codegen, useSso, policy, dataverseEnvironmentId, dataverseTable, forceTableBinding, } = args;
|
|
157
157
|
const settings = getSettings();
|
|
158
158
|
const { fileConfig, cliFs } = settings;
|
|
159
159
|
const playerServiceConfig = getPlayerServiceConfig();
|
|
@@ -184,6 +184,7 @@ export async function runAddActionFlowAsync(args) {
|
|
|
184
184
|
const isCommonDataServiceForApps = isCdsConnectorId(apiId);
|
|
185
185
|
const initialDataverseParams = await resolveInitialDataverseParamsAsync({
|
|
186
186
|
isCommonDataServiceForApps,
|
|
187
|
+
forceTableBinding: !!forceTableBinding,
|
|
187
188
|
dataverseEnvironmentId,
|
|
188
189
|
dataverseTable,
|
|
189
190
|
});
|
|
@@ -230,6 +231,12 @@ export async function runAddActionFlowAsync(args) {
|
|
|
230
231
|
// because their underlying CDS *WithOrganization operation was blocked by ACP/DLP.
|
|
231
232
|
printSkippedMethodsWarning(actionResult.skippedDataverseMethods);
|
|
232
233
|
printSuccess(`Data source '${actionResult.dataSourceName}' added successfully (connector '${connector.properties.displayName ?? apiId}').`);
|
|
234
|
+
// When a Dataverse table was requested up front (via --table / --as table), the binding is
|
|
235
|
+
// added as part of the connector-add call above. Confirm it explicitly so the flag-driven
|
|
236
|
+
// path matches the interactive path's feedback.
|
|
237
|
+
if (initialDataverseParams?.dataverseTable) {
|
|
238
|
+
printSuccess(`Dataverse table '${initialDataverseParams.dataverseTable}' bound successfully.`);
|
|
239
|
+
}
|
|
233
240
|
if (isCommonDataServiceForApps && settings.interactive && !initialDataverseParams) {
|
|
234
241
|
const connectTable = await promptConfirm({
|
|
235
242
|
message: 'Connect this to a specific Dataverse table?',
|
|
@@ -248,12 +255,23 @@ async function resolveInitialDataverseParamsAsync(input) {
|
|
|
248
255
|
return undefined;
|
|
249
256
|
}
|
|
250
257
|
const settings = getSettings();
|
|
251
|
-
const hasEnvironmentId = !!input.dataverseEnvironmentId;
|
|
252
258
|
const hasTable = !!input.dataverseTable;
|
|
253
|
-
if (!settings.interactive
|
|
254
|
-
|
|
259
|
+
if (!settings.interactive) {
|
|
260
|
+
// Non-interactive: bind a table only when a logical name is provided. The
|
|
261
|
+
// environment id is optional (defaults to the app's environment downstream).
|
|
262
|
+
// The CLI verb has already rejected env-without-table, so we don't re-validate here.
|
|
263
|
+
if (!hasTable) {
|
|
264
|
+
return undefined;
|
|
265
|
+
}
|
|
266
|
+
return {
|
|
267
|
+
dataverseEnvironmentId: input.dataverseEnvironmentId,
|
|
268
|
+
dataverseTable: input.dataverseTable,
|
|
269
|
+
};
|
|
255
270
|
}
|
|
256
|
-
|
|
271
|
+
// Interactive: prompt for the table when the caller supplied one, or when
|
|
272
|
+
// `--as table` explicitly asked for a binding. Otherwise defer to the
|
|
273
|
+
// post-add "Connect a table?" confirmation.
|
|
274
|
+
if (!hasTable && !input.forceTableBinding) {
|
|
257
275
|
return undefined;
|
|
258
276
|
}
|
|
259
277
|
return promptDataverseParamsAsync({
|
|
@@ -262,9 +280,10 @@ async function resolveInitialDataverseParamsAsync(input) {
|
|
|
262
280
|
});
|
|
263
281
|
}
|
|
264
282
|
async function promptDataverseParamsAsync(input) {
|
|
265
|
-
|
|
283
|
+
// The environment id is not prompted — it is optional and defaults to the
|
|
284
|
+
// app's environment. Only the table logical name is required.
|
|
266
285
|
const dataverseTable = input.dataverseTable ?? (await promptText({ message: 'Dataverse table logical name:' }));
|
|
267
|
-
return { dataverseEnvironmentId, dataverseTable };
|
|
286
|
+
return { dataverseEnvironmentId: input.dataverseEnvironmentId, dataverseTable };
|
|
268
287
|
}
|
|
269
288
|
/**
|
|
270
289
|
* 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,aAAa,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,mCAAmC,GACpC,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,SAAS,0BAA0B,CAAC,OAAsD;IACxF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,YAAY,CACV,wGAAwG;QACtG,iGAAiG;QACjG,OAAO;aACJ,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,OAAO,WAAW,gBAAgB,UAAU,KAAK,CAAC;aACvF,IAAI,CAAC,IAAI,CAAC,CAChB,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"AddConnectorFlows.js","sourceRoot":"","sources":["../../src/Verbs/AddConnectorFlows.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*/
|
|
4
4
|
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
|
-
import type { GitClassifyContext } from '../Utils/GitErrorClassifier.js';
|
|
6
5
|
/**
|
|
7
6
|
* Result of `commitAndPushScaffoldAsync`. Carried into the `--json` success
|
|
8
7
|
* envelope (as the `push` field) so automation can distinguish three states:
|
|
@@ -38,17 +37,16 @@ export declare function createMaafAppAsync(argumentProvider: ArgumentProvider):
|
|
|
38
37
|
* progress prose stays out of our pretty output). Stderr handling follows the
|
|
39
38
|
* runGit policy: the un-classified `add`/`commit` steps re-emit git's stderr on
|
|
40
39
|
* failure, and the `push` step either streams stderr live (un-classified github
|
|
41
|
-
* flow, `network: true`) or pipes it for classification (native flow
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* only shapes the warning text and the `--json` error payload.
|
|
40
|
+
* flow, `network: true`) or pipes it for classification (native flow) — either
|
|
41
|
+
* way git's own error context reaches the user alongside our warning. A
|
|
42
|
+
* classified push error is caught here, so its exit code never propagates;
|
|
43
|
+
* classification only shapes the warning text and the `--json` error payload.
|
|
46
44
|
*
|
|
47
45
|
* Commit identity (user.name / user.email) is read by git itself from
|
|
48
46
|
* local-then-global config — we pass nothing. Missing identity surfaces as
|
|
49
47
|
* git's own descriptive commit error via runGit's stderr handling.
|
|
50
48
|
*/
|
|
51
|
-
export declare function commitAndPushScaffoldAsync(appDir: string, jsonMode: boolean,
|
|
49
|
+
export declare function commitAndPushScaffoldAsync(appDir: string, jsonMode: boolean, nativeGitUrl?: string): Promise<PushOutcome>;
|
|
52
50
|
interface CloneRepoOptions {
|
|
53
51
|
directory: string;
|
|
54
52
|
repoUrl: string;
|
|
@@ -74,14 +72,8 @@ interface InitLocalRepoOptions {
|
|
|
74
72
|
gitUrl: string;
|
|
75
73
|
loginAuthority: string;
|
|
76
74
|
authResource: string;
|
|
77
|
-
/**
|
|
78
|
-
* Suppresses the human-readable authentication notice that prints before the
|
|
79
|
-
* first `git fetch`. Callers emitting a `--json` envelope set this to keep
|
|
80
|
-
* stdout free of prose ahead of the envelope. Defaults to false.
|
|
81
|
-
*/
|
|
82
|
-
jsonMode?: boolean;
|
|
83
75
|
}
|
|
84
|
-
export declare function initLocalRepo({ directory, gitUrl, loginAuthority, authResource,
|
|
76
|
+
export declare function initLocalRepo({ directory, gitUrl, loginAuthority, authResource, }: InitLocalRepoOptions): void;
|
|
85
77
|
export declare function buildOrphanedAppRecoveryHint(serverAppId: string, environmentId: string): string;
|
|
86
78
|
export declare function ensureTemplateSourceValid(source: string): void;
|
|
87
79
|
export declare function ensureTargetDirectoryEmpty(appDir: string): void;
|
|
@@ -97,13 +89,13 @@ export declare function ensureRepoTargetDirectoryEmpty(appDir: string): void;
|
|
|
97
89
|
*
|
|
98
90
|
* Failure semantics:
|
|
99
91
|
* - Non-empty tree at HEAD → throws `UsageError` with the "is not empty" /
|
|
100
|
-
* "ms app init" actionable lead, BEFORE createAsync.
|
|
92
|
+
* "ms app init" actionable lead, BEFORE createAsync. Nothing created.
|
|
101
93
|
* - Empty tree (incl. the cleaned-up-repo edge case: commit1 add, commit2
|
|
102
94
|
* delete all) → ls-tree returns no lines → returns without throwing.
|
|
103
95
|
* - Clone fails with a recognizable access/auth signature (private repo
|
|
104
96
|
* hidden as "not found", missing local credentials, 403, …) → throws
|
|
105
97
|
* `ConfigurationError` BEFORE createAsync so we never create a server-side
|
|
106
|
-
* app the user can't clone
|
|
98
|
+
* app the user can't clone.
|
|
107
99
|
* - Any other git error (network blip, server doesn't support --filter,
|
|
108
100
|
* temp-fs hiccup, …) → swallow and return (fail OPEN). The subsequent
|
|
109
101
|
* cloneRepo surfaces the friendlier message for the user-facing failure;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateMaafApp.d.ts","sourceRoot":"","sources":["../../src/Verbs/CreateMaafApp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateMaafApp.d.ts","sourceRoot":"","sources":["../../src/Verbs/CreateMaafApp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAwC5D;;;;;GAKG;AACH,UAAU,WAAW;IACnB,OAAO,EAAE,OAAO,CAAC;IAKjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwb1F;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC,CA2DtB;AAuDD,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAwED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAuBxE;AAED,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,MAAM,EACN,cAAc,EACd,YAAY,GACb,EAAE,oBAAoB,GAAG,IAAI,CAM7B;AA2GD,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAM/F;AAkGD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAO9D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAc/D;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAanE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CA+D/D;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA8BlE"}
|