@microsoft/managed-apps-cli 0.7.0 → 0.9.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 +42 -6
- package/dist/ArgumentProvider.d.ts +11 -0
- package/dist/ArgumentProvider.d.ts.map +1 -1
- package/dist/ArgumentProvider.js +61 -19
- package/dist/ArgumentProvider.js.map +1 -1
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts +16 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -1
- package/dist/Authentication/NodeMsalAuthenticationProvider.js +58 -6
- package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +23 -7
- package/dist/Cli.js.map +1 -1
- package/dist/CliSettings.d.ts +2 -2
- package/dist/CliSettings.d.ts.map +1 -1
- package/dist/CliSettings.js +3 -4
- package/dist/CliSettings.js.map +1 -1
- package/dist/CliUtils.d.ts +25 -8
- package/dist/CliUtils.d.ts.map +1 -1
- package/dist/CliUtils.js +19 -23
- package/dist/CliUtils.js.map +1 -1
- package/dist/Constants/CommandRegistry.d.ts.map +1 -1
- package/dist/Constants/CommandRegistry.js +28 -1
- package/dist/Constants/CommandRegistry.js.map +1 -1
- package/dist/Constants/HelpStrings.d.ts +55 -5
- package/dist/Constants/HelpStrings.d.ts.map +1 -1
- package/dist/Constants/HelpStrings.js +113 -42
- package/dist/Constants/HelpStrings.js.map +1 -1
- package/dist/Constants.d.ts +1 -1
- package/dist/Constants.d.ts.map +1 -1
- package/dist/Constants.js +5 -2
- package/dist/Constants.js.map +1 -1
- package/dist/Errors/GitHubErrorMap.d.ts.map +1 -1
- package/dist/Errors/GitHubErrorMap.js +18 -11
- package/dist/Errors/GitHubErrorMap.js.map +1 -1
- package/dist/FS/CliFs.d.ts.map +1 -1
- package/dist/FS/CliFs.js.map +1 -1
- package/dist/HttpClient/CliHttpClient.d.ts +30 -0
- package/dist/HttpClient/CliHttpClient.d.ts.map +1 -1
- package/dist/HttpClient/CliHttpClient.js +136 -1
- package/dist/HttpClient/CliHttpClient.js.map +1 -1
- package/dist/Logger/CliLogger.d.ts +50 -8
- package/dist/Logger/CliLogger.d.ts.map +1 -1
- package/dist/Logger/CliLogger.js +92 -37
- package/dist/Logger/CliLogger.js.map +1 -1
- package/dist/Logger/ConsoleWriter.d.ts +5 -0
- package/dist/Logger/ConsoleWriter.d.ts.map +1 -1
- package/dist/Logger/ConsoleWriter.js +22 -14
- package/dist/Logger/ConsoleWriter.js.map +1 -1
- package/dist/Middletier/FunctionsBundler.js +5 -1
- package/dist/Middletier/FunctionsBundler.js.map +1 -1
- package/dist/Middletier/PackFunctions.d.ts +5 -4
- package/dist/Middletier/PackFunctions.d.ts.map +1 -1
- package/dist/Middletier/PackFunctions.js +8 -7
- package/dist/Middletier/PackFunctions.js.map +1 -1
- package/dist/Types/Cli.types.d.ts +1 -1
- package/dist/Types/Cli.types.d.ts.map +1 -1
- package/dist/Types/Command.types.d.ts +14 -3
- package/dist/Types/Command.types.d.ts.map +1 -1
- package/dist/Types/Command.types.js +4 -0
- package/dist/Types/Command.types.js.map +1 -1
- package/dist/Utils/BuildPolling.d.ts +18 -0
- package/dist/Utils/BuildPolling.d.ts.map +1 -0
- package/dist/Utils/BuildPolling.js +63 -0
- package/dist/Utils/BuildPolling.js.map +1 -0
- package/dist/Utils/BuildVerbDescriptionTable.d.ts +11 -1
- package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +1 -1
- package/dist/Utils/BuildVerbDescriptionTable.js +73 -17
- package/dist/Utils/BuildVerbDescriptionTable.js.map +1 -1
- package/dist/Utils/DcfRecovery.d.ts +84 -0
- package/dist/Utils/DcfRecovery.d.ts.map +1 -0
- package/dist/Utils/DcfRecovery.js +266 -0
- package/dist/Utils/DcfRecovery.js.map +1 -0
- package/dist/Utils/EnhanceNetworkError.d.ts.map +1 -1
- package/dist/Utils/EnhanceNetworkError.js +2 -0
- package/dist/Utils/EnhanceNetworkError.js.map +1 -1
- 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/RepoUrl.d.ts +11 -6
- package/dist/Utils/RepoUrl.d.ts.map +1 -1
- package/dist/Utils/RepoUrl.js +1 -1
- package/dist/Utils/RepoUrl.js.map +1 -1
- package/dist/Utils/ResolveCommand.d.ts +37 -1
- package/dist/Utils/ResolveCommand.d.ts.map +1 -1
- package/dist/Utils/ResolveCommand.js +97 -20
- package/dist/Utils/ResolveCommand.js.map +1 -1
- package/dist/Verbs/AddConnector.d.ts.map +1 -1
- package/dist/Verbs/AddConnector.js.map +1 -1
- package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -1
- package/dist/Verbs/AddConnectorFlows.js +2 -2
- package/dist/Verbs/AddConnectorFlows.js.map +1 -1
- package/dist/Verbs/BuildMaafApp.d.ts.map +1 -1
- package/dist/Verbs/BuildMaafApp.js +98 -22
- package/dist/Verbs/BuildMaafApp.js.map +1 -1
- package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
- package/dist/Verbs/ConnectorHelpers.js.map +1 -1
- package/dist/Verbs/CreateMaafApp.d.ts +54 -5
- package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
- package/dist/Verbs/CreateMaafApp.js +238 -238
- package/dist/Verbs/CreateMaafApp.js.map +1 -1
- package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
- package/dist/Verbs/DeployMaafApp.js +48 -20
- package/dist/Verbs/DeployMaafApp.js.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.js +66 -17
- package/dist/Verbs/GetMaafBuildStatus.js.map +1 -1
- package/dist/Verbs/GetSettings.d.ts.map +1 -1
- package/dist/Verbs/GetSettings.js +9 -18
- package/dist/Verbs/GetSettings.js.map +1 -1
- package/dist/Verbs/Init.d.ts.map +1 -1
- package/dist/Verbs/Init.js +63 -46
- package/dist/Verbs/Init.js.map +1 -1
- package/dist/Verbs/ListFlows.d.ts.map +1 -1
- package/dist/Verbs/ListFlows.js +1 -2
- package/dist/Verbs/ListFlows.js.map +1 -1
- package/dist/Verbs/MaafAppPermissions.d.ts +12 -6
- package/dist/Verbs/MaafAppPermissions.d.ts.map +1 -1
- package/dist/Verbs/MaafAppPermissions.js +208 -66
- package/dist/Verbs/MaafAppPermissions.js.map +1 -1
- package/dist/Verbs/PlayMaafApp.d.ts +22 -0
- package/dist/Verbs/PlayMaafApp.d.ts.map +1 -0
- package/dist/Verbs/PlayMaafApp.js +147 -0
- package/dist/Verbs/PlayMaafApp.js.map +1 -0
- package/dist/Verbs/RefreshDataSource.d.ts.map +1 -1
- package/dist/Verbs/RefreshDataSource.js.map +1 -1
- package/dist/Verbs/RefreshGitAuth.d.ts.map +1 -1
- package/dist/Verbs/RefreshGitAuth.js +31 -16
- package/dist/Verbs/RefreshGitAuth.js.map +1 -1
- package/dist/Verbs/SetSetting.d.ts.map +1 -1
- package/dist/Verbs/SetSetting.js +39 -49
- package/dist/Verbs/SetSetting.js.map +1 -1
- package/dist/Verbs/ShareLinkCreate.d.ts +23 -0
- package/dist/Verbs/ShareLinkCreate.d.ts.map +1 -0
- package/dist/Verbs/ShareLinkCreate.js +73 -0
- package/dist/Verbs/ShareLinkCreate.js.map +1 -0
- package/dist/Verbs/ShareLinkList.d.ts +16 -0
- package/dist/Verbs/ShareLinkList.d.ts.map +1 -0
- package/dist/Verbs/ShareLinkList.js +84 -0
- package/dist/Verbs/ShareLinkList.js.map +1 -0
- package/dist/Verbs/ShareLinkRevoke.d.ts +22 -0
- package/dist/Verbs/ShareLinkRevoke.d.ts.map +1 -0
- package/dist/Verbs/ShareLinkRevoke.js +137 -0
- package/dist/Verbs/ShareLinkRevoke.js.map +1 -0
- package/dist/Verbs/VerbConstants.d.ts +113 -16
- package/dist/Verbs/VerbConstants.d.ts.map +1 -1
- package/dist/Verbs/VerbConstants.js +102 -24
- package/dist/Verbs/VerbConstants.js.map +1 -1
- package/dist/Verbs/index.d.ts +4 -0
- package/dist/Verbs/index.d.ts.map +1 -1
- package/dist/Verbs/index.js +4 -0
- package/dist/Verbs/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshDataSource.js","sourceRoot":"","sources":["../../src/Verbs/RefreshDataSource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,sBAAsB,EACtB,sBAAsB,IAAI,6BAA6B,GACxD,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,gBAAkC;IAC7E,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IACvC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;IACrD,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,yBAAyB,EAAE,CAAC;IAE5E,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,gBAAgB,CAAC,CAAC;IACrF,MAAM,cAAc,GAAG,iBAAiB,IAAI,SAAS,CAAC;IAEtD,MAAM,MAAM,GAA6B;QACvC,GAAG,EAAE,KAAK;QACV,YAAY,EAAE,sBAAsB;QACpC,UAAU,EAAE,gBAAgB,CAAC,aAAa,EAAE;QAC5C,MAAM,EAAE,mBAAmB,CAAC,MAAM;QAClC,eAAe,EAAE,mBAAmB,CAAC,eAAe;QACpD,cAAc,EAAE;YACd,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC;QACD,MAAM,EAAE,YAAY,EAAE;QACtB,aAAa,EAAE;YACb,cAAc;SACf;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,MAAM,CAAC,CAAC;IAE3D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACtC,YAAY,CAAC,IAAI,MAAM,2BAA2B,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,UAAU,CAAC,sBAAsB,OAAO,CAAC,cAAc,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,SAAS,
|
|
1
|
+
{"version":3,"file":"RefreshDataSource.js","sourceRoot":"","sources":["../../src/Verbs/RefreshDataSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshGitAuth.d.ts","sourceRoot":"","sources":["../../src/Verbs/RefreshGitAuth.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"RefreshGitAuth.d.ts","sourceRoot":"","sources":["../../src/Verbs/RefreshGitAuth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAW5D,wBAAsB,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0H3F"}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* `git auth refresh` verb: bind the caller's GitHub identity to a
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* launching policy, and error
|
|
9
|
-
* (`authenticateForRepoAsync`) owns the DCF state
|
|
5
|
+
* `git auth refresh` verb: bind the caller's GitHub identity to a GitHub repo
|
|
6
|
+
* (a `*.ghe.com` tenant URL or `github.com`) by running the GitHub Device Code
|
|
7
|
+
* Flow through the Managed Apps GitHub App. The verb owns argument parsing,
|
|
8
|
+
* display selection (console vs NDJSON), browser launching policy, and error
|
|
9
|
+
* mapping; the action layer (`authenticateForRepoAsync`) owns the DCF state
|
|
10
|
+
* machine itself.
|
|
10
11
|
*/
|
|
11
12
|
import { authenticateForRepoAsync, GrsServerError, } from '@microsoft/managed-apps-actions';
|
|
12
13
|
import { computeRepoHash } from '@microsoft/managed-apps-common/utils/RepoHash';
|
|
@@ -16,8 +17,8 @@ import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
|
16
17
|
import { UsageError } from '../Errors/CliError.js';
|
|
17
18
|
import { mapGitHubServerErrorToCliError } from '../Errors/GitHubErrorMap.js';
|
|
18
19
|
import { printJsonSuccess, printSuccess } from '../Utils/ConsoleOutput.js';
|
|
19
|
-
import { ConsoleGitHubDcfDisplay, JsonGitHubDcfDisplay
|
|
20
|
-
import {
|
|
20
|
+
import { ConsoleGitHubDcfDisplay, JsonGitHubDcfDisplay } from '../Utils/GitHubDcfFlow.js';
|
|
21
|
+
import { parseRemoteUrl } from '../Utils/RepoUrl.js';
|
|
21
22
|
import { GitAuthRefreshArguments } from './VerbConstants.js';
|
|
22
23
|
export async function refreshGitAuthAsync(argumentProvider) {
|
|
23
24
|
createOptionSchema(argumentProvider);
|
|
@@ -43,14 +44,22 @@ export async function refreshGitAuthAsync(argumentProvider) {
|
|
|
43
44
|
const repoUrl = await argumentProvider.getOption(GitAuthRefreshArguments.Repo.name);
|
|
44
45
|
if (!repoUrl) {
|
|
45
46
|
throw new UsageError('Argument repo is required. Use --repo or -r to specify the GitHub repository ' +
|
|
46
|
-
'(e.g. --repo contoso.ghe.com/contoso/my-app).');
|
|
47
|
+
'(e.g. --repo https://contoso.ghe.com/contoso/my-app).');
|
|
47
48
|
}
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
|
|
49
|
+
// Best-effort generic URL split: used only for PII-safe telemetry shaping
|
|
50
|
+
// (host + repoHash) and to normalize the URL we forward to the actions
|
|
51
|
+
// layer. The CLI no longer performs scheme/host/shape validation — the
|
|
52
|
+
// server is the sole authoritative validator, and the actions layer also
|
|
53
|
+
// forwards untouched URLs (it only requires a non-empty host so it can
|
|
54
|
+
// compose an OAuth base URI). On parse failure we still emit
|
|
55
|
+
// Git.Auth.Refresh.Start with empty repoHost/repoHash (preserving the
|
|
56
|
+
// property keys for downstream Kusto consumers) and forward the unmodified
|
|
57
|
+
// URL to the actions layer.
|
|
58
|
+
const { host, owner, repo } = parseRemoteUrl(repoUrl);
|
|
59
|
+
const repoHash = owner && repo ? computeRepoHash(owner, repo) : '';
|
|
60
|
+
// Emit Git.Auth.Refresh.Start. Properties are PII-safe (host is the parsed
|
|
61
|
+
// string and repoHash is a truncated SHA256 — see computeRepoHash). When the
|
|
62
|
+
// URL fails to parse, both fields are emitted as empty strings.
|
|
54
63
|
getCliLogger().trackActivityEvent('Git.Auth.Refresh.Start', {
|
|
55
64
|
repoHost: host,
|
|
56
65
|
repoHash,
|
|
@@ -70,9 +79,15 @@ export async function refreshGitAuthAsync(argumentProvider) {
|
|
|
70
79
|
controller.abort();
|
|
71
80
|
};
|
|
72
81
|
process.once('SIGINT', onSigint);
|
|
82
|
+
// When parse succeeded, normalize the URL to a canonical https://host/owner/repo
|
|
83
|
+
// shape; otherwise pass the user-supplied URL through to the server unchanged.
|
|
84
|
+
const normalizedRemoteUrl = host && owner && repo ? `https://${host}/${owner}/${repo}` : repoUrl;
|
|
85
|
+
// Likewise, the success message uses owner/repo when known and falls back
|
|
86
|
+
// to the raw URL otherwise.
|
|
87
|
+
const repoLabel = owner && repo ? `${owner}/${repo}` : repoUrl;
|
|
73
88
|
try {
|
|
74
89
|
const result = await authenticateForRepoAsync({
|
|
75
|
-
remoteUrl:
|
|
90
|
+
remoteUrl: normalizedRemoteUrl,
|
|
76
91
|
tenantId,
|
|
77
92
|
logger: getCliLogger(),
|
|
78
93
|
display,
|
|
@@ -90,7 +105,7 @@ export async function refreshGitAuthAsync(argumentProvider) {
|
|
|
90
105
|
else {
|
|
91
106
|
// "expires around" wording (vs. "valid until") signals that the timestamp
|
|
92
107
|
// is approximate — the server may revise it via TTL config changes (D16).
|
|
93
|
-
printSuccess(`Authenticated as ${result.githubLogin} for ${
|
|
108
|
+
printSuccess(`Authenticated as ${result.githubLogin} for ${repoLabel}.`);
|
|
94
109
|
printSuccess(`Mapping established; expires around ${result.mappingExpiresAt}.`);
|
|
95
110
|
}
|
|
96
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshGitAuth.js","sourceRoot":"","sources":["../../src/Verbs/RefreshGitAuth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"RefreshGitAuth.js","sourceRoot":"","sources":["../../src/Verbs/RefreshGitAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetSetting.d.ts","sourceRoot":"","sources":["../../src/Verbs/SetSetting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAgD5D;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"SetSetting.d.ts","sourceRoot":"","sources":["../../src/Verbs/SetSetting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAgD5D;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0EvF"}
|
package/dist/Verbs/SetSetting.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { APP_SETTINGS_DEFINITIONS, readRepoConfig, settingNameToOptionKey, writeRepoConfig, } from '@microsoft/managed-apps-actions';
|
|
5
5
|
import { AppConfigFileName } from '@microsoft/managed-apps-common/config';
|
|
6
|
-
import {
|
|
6
|
+
import { getSettings } from '../CliSettings.js';
|
|
7
7
|
import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
|
|
8
8
|
import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
9
9
|
import { UsageError } from '../Errors/CliError.js';
|
|
@@ -68,60 +68,50 @@ export async function setSettingAsync(argumentProvider) {
|
|
|
68
68
|
}
|
|
69
69
|
createOptionSchema(argumentProvider);
|
|
70
70
|
await argumentProvider.runVerb();
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
71
|
+
// Collect and validate all provided settings before writing anything (atomic).
|
|
72
|
+
const updates = {};
|
|
73
|
+
const invalidSettings = [];
|
|
74
|
+
for (const def of APP_SETTINGS_DEFINITIONS) {
|
|
75
|
+
const optionKey = settingNameToOptionKey(def.name);
|
|
76
|
+
// ignorePrompt = true: settings are never prompted for interactively
|
|
77
|
+
const rawValue = await argumentProvider.getOption(optionKey, true);
|
|
78
|
+
if (rawValue === undefined) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (def.type === 'boolean') {
|
|
82
|
+
if (rawValue !== 'true' && rawValue !== 'false') {
|
|
83
|
+
invalidSettings.push(def.name);
|
|
83
84
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
invalidSettings.push(def.name);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
updates[def.configKey] = rawValue === 'true';
|
|
90
|
-
}
|
|
85
|
+
else {
|
|
86
|
+
updates[def.configKey] = rawValue === 'true';
|
|
91
87
|
}
|
|
92
88
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
printInfo(`${def.name} = ${value}`);
|
|
117
|
-
}
|
|
89
|
+
}
|
|
90
|
+
if (invalidSettings.length > 0) {
|
|
91
|
+
throw new UsageError(ERR_INVALID);
|
|
92
|
+
}
|
|
93
|
+
if (Object.keys(updates).length === 0) {
|
|
94
|
+
printInfo(`No settings provided. Use --<setting> <value> to update a setting, e.g. --show-header false.`);
|
|
95
|
+
printInfo(`Run "npx ${CLI_BINARY_NAME} app get-settings" to see available settings.`);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// Read config fresh, merge updates, write back atomically.
|
|
99
|
+
const config = await readRepoConfig(cliSettings.fileConfig.appConfigPath);
|
|
100
|
+
config.appSettings = { ...(config.appSettings ?? {}), ...updates };
|
|
101
|
+
await writeRepoConfig(cliSettings.fileConfig.appConfigPath, config);
|
|
102
|
+
// Print confirmation summary.
|
|
103
|
+
const jsonMode = argumentProvider.isJsonMode();
|
|
104
|
+
if (jsonMode) {
|
|
105
|
+
printJsonSuccess({ settings: updates });
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
for (const def of APP_SETTINGS_DEFINITIONS) {
|
|
109
|
+
const value = updates[def.configKey];
|
|
110
|
+
if (value !== undefined) {
|
|
111
|
+
printInfo(`${def.name} = ${value}`);
|
|
118
112
|
}
|
|
119
113
|
}
|
|
120
114
|
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
scenario.failure({ error: error instanceof Error ? error.message : String(error) });
|
|
123
|
-
throw error;
|
|
124
|
-
}
|
|
125
115
|
}
|
|
126
116
|
// Values must be valid CliEnvVarName members — TypeScript enforces this at compile time.
|
|
127
117
|
// When a new entry is added to APP_SETTINGS_DEFINITIONS, add a corresponding entry here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetSetting.js","sourceRoot":"","sources":["../../src/Verbs/SetSetting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,wBAAwB,EAExB,cAAc,EACd,sBAAsB,EACtB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SetSetting.js","sourceRoot":"","sources":["../../src/Verbs/SetSetting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,wBAAwB,EAExB,cAAc,EACd,sBAAsB,EACtB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGrE;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,gBAAkC;IAChE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAC3C,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB;IAC/B,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;QAChE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8BAA8B;AAC9B,MAAM,WAAW,GACf,uFAAuF,CAAC;AAC1F,MAAM,aAAa,GACjB,+EAA+E,CAAC;AAElF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,gBAAkC;IACtE,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAElC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAClB,MAAM,iBAAiB,6CAA6C,eAAe,mBAAmB,CACvG,CAAC;IACJ,CAAC;IAED,0FAA0F;IAC1F,MAAM,WAAW,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAC7D,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAC;IACjD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,+EAA+E;IAC/E,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,qEAAqE;QACrE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,SAAS,EAAE,IAAI,CAAC,CAAC;QAE3E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAChD,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACL,OAAmC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ,KAAK,MAAM,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,SAAS,CACP,8FAA8F,CAC/F,CAAC;QACF,SAAS,CAAC,YAAY,eAAe,+CAA+C,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IAED,2DAA2D;IAC3D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IACnE,MAAM,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAEpE,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC;IAC/C,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAI,OAAmC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,yFAAyF;AACzF,MAAM,gBAAgB,GAAkC;IACtD,aAAa,EAAE,iBAAiB;CACjC,CAAC;AAEF,SAAS,kBAAkB,CAAC,gBAAkC;IAC5D,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5E,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,OAE7C,CAAC;IACd,gBAAgB,CAAC,UAAU,CACzB,wBAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;QACxB,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,WAAW,EAAE,kBAAkB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW;KAC/D,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
|
+
/**
|
|
6
|
+
* Implements `ms app share link create` — creates a tenant-wide share link for
|
|
7
|
+
* the current MAAF app.
|
|
8
|
+
*
|
|
9
|
+
* Pipeline:
|
|
10
|
+
* 1. Register option schema and run the verb (so `--help` works without a project).
|
|
11
|
+
* 2. Resolve `environmentId` (`--environment-id` flag wins; otherwise config)
|
|
12
|
+
* and `tenantId` from auth.
|
|
13
|
+
* 3. Resolve `appName` (config-first, `--app` override).
|
|
14
|
+
* 4. Call the action and emit either a JSON envelope or a human-readable success
|
|
15
|
+
* with the share link URL on its own line so it copies cleanly.
|
|
16
|
+
*
|
|
17
|
+
* `resolveEnvironmentId` and `resolveAppNameAsync` each throw a config-pointing
|
|
18
|
+
* `UsageError` when neither the corresponding flag nor `ms.config.json` is
|
|
19
|
+
* present, so the verb runs cleanly from a directory without config when both
|
|
20
|
+
* `--app` and `--environment-id` are supplied explicitly.
|
|
21
|
+
*/
|
|
22
|
+
export declare function shareLinkCreateAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=ShareLinkCreate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareLinkCreate.d.ts","sourceRoot":"","sources":["../../src/Verbs/ShareLinkCreate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B5F"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { createShareLinkAsync } from '@microsoft/managed-apps-actions';
|
|
5
|
+
import { getCliLogger } from '../CliSettings.js';
|
|
6
|
+
import { resolveAppNameAsync, resolveEnvironmentId } from '../CliUtils.js';
|
|
7
|
+
import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
8
|
+
import { UsageError } from '../Errors/CliError.js';
|
|
9
|
+
import { printInfo, printJsonSuccess, printSuccess } from '../Utils/ConsoleOutput.js';
|
|
10
|
+
import { ShareLinkCreateArguments } from './VerbConstants.js';
|
|
11
|
+
/**
|
|
12
|
+
* Implements `ms app share link create` — creates a tenant-wide share link for
|
|
13
|
+
* the current MAAF app.
|
|
14
|
+
*
|
|
15
|
+
* Pipeline:
|
|
16
|
+
* 1. Register option schema and run the verb (so `--help` works without a project).
|
|
17
|
+
* 2. Resolve `environmentId` (`--environment-id` flag wins; otherwise config)
|
|
18
|
+
* and `tenantId` from auth.
|
|
19
|
+
* 3. Resolve `appName` (config-first, `--app` override).
|
|
20
|
+
* 4. Call the action and emit either a JSON envelope or a human-readable success
|
|
21
|
+
* with the share link URL on its own line so it copies cleanly.
|
|
22
|
+
*
|
|
23
|
+
* `resolveEnvironmentId` and `resolveAppNameAsync` each throw a config-pointing
|
|
24
|
+
* `UsageError` when neither the corresponding flag nor `ms.config.json` is
|
|
25
|
+
* present, so the verb runs cleanly from a directory without config when both
|
|
26
|
+
* `--app` and `--environment-id` are supplied explicitly.
|
|
27
|
+
*/
|
|
28
|
+
export async function shareLinkCreateAsync(argumentProvider) {
|
|
29
|
+
configureOptionSchema(argumentProvider);
|
|
30
|
+
await argumentProvider.runVerb();
|
|
31
|
+
const environmentId = await resolveEnvironmentId(argumentProvider);
|
|
32
|
+
const tenantId = await argumentProvider.getTenantIdAsync();
|
|
33
|
+
if (!tenantId) {
|
|
34
|
+
throw new UsageError('Unable to determine tenant ID. Ensure you are logged in.');
|
|
35
|
+
}
|
|
36
|
+
const appName = await resolveAppNameAsync(argumentProvider);
|
|
37
|
+
const result = await createShareLinkAsync({
|
|
38
|
+
tenantId,
|
|
39
|
+
environmentId,
|
|
40
|
+
logger: getCliLogger(),
|
|
41
|
+
actionsParams: { appName },
|
|
42
|
+
});
|
|
43
|
+
if (argumentProvider.isJsonMode()) {
|
|
44
|
+
printJsonSuccess({ appName, ...result });
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
printSuccess(`Share link created for '${appName}' (id: ${result.appShareLinkId}). Anyone in your tenant who opens this link will be granted Microsoft App Reader access. Share URL:`);
|
|
48
|
+
printInfo(result.shareLinkUrl);
|
|
49
|
+
}
|
|
50
|
+
function configureOptionSchema(argumentProvider) {
|
|
51
|
+
argumentProvider.setDescription(HelpStrings.app.shareLink.create.description);
|
|
52
|
+
argumentProvider.addExamples(HelpStrings.app.shareLink.create.examples);
|
|
53
|
+
argumentProvider.addOptions([
|
|
54
|
+
{
|
|
55
|
+
flags: {
|
|
56
|
+
key: ShareLinkCreateArguments.AppName.name,
|
|
57
|
+
},
|
|
58
|
+
env: ShareLinkCreateArguments.AppName.envVar,
|
|
59
|
+
description: HelpStrings.app.shareLink.create.options.app,
|
|
60
|
+
optionalInNonInteractive: true,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
flags: {
|
|
64
|
+
key: ShareLinkCreateArguments.EnvironmentId.name,
|
|
65
|
+
alias: ShareLinkCreateArguments.EnvironmentId.alias,
|
|
66
|
+
},
|
|
67
|
+
env: ShareLinkCreateArguments.EnvironmentId.envVar,
|
|
68
|
+
description: HelpStrings.app.shareLink.create.options.environmentId,
|
|
69
|
+
optionalInNonInteractive: true,
|
|
70
|
+
},
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=ShareLinkCreate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareLinkCreate.js","sourceRoot":"","sources":["../../src/Verbs/ShareLinkCreate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,gBAAkC;IAC3E,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACxC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,UAAU,CAAC,0DAA0D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;QACxC,QAAQ;QACR,aAAa;QACb,MAAM,EAAE,YAAY,EAAE;QACtB,aAAa,EAAE,EAAE,OAAO,EAAE;KAC3B,CAAC,CAAC;IAEH,IAAI,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;QAClC,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,YAAY,CACV,2BAA2B,OAAO,UAAU,MAAM,CAAC,cAAc,sGAAsG,CACxK,CAAC;IACF,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,qBAAqB,CAAC,gBAAkC;IAC/D,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9E,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxE,gBAAgB,CAAC,UAAU,CAAC;QAC1B;YACE,KAAK,EAAE;gBACL,GAAG,EAAE,wBAAwB,CAAC,OAAO,CAAC,IAAI;aAC3C;YACD,GAAG,EAAE,wBAAwB,CAAC,OAAO,CAAC,MAAM;YAC5C,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;YACzD,wBAAwB,EAAE,IAAI;SAC/B;QACD;YACE,KAAK,EAAE;gBACL,GAAG,EAAE,wBAAwB,CAAC,aAAa,CAAC,IAAI;gBAChD,KAAK,EAAE,wBAAwB,CAAC,aAAa,CAAC,KAAK;aACpD;YACD,GAAG,EAAE,wBAAwB,CAAC,aAAa,CAAC,MAAM;YAClD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa;YACnE,wBAAwB,EAAE,IAAI;SAC/B;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
|
+
/**
|
|
6
|
+
* Implements `ms app share link list` — lists every share link issued for the
|
|
7
|
+
* current MAAF app. The server emits no pagination cursor today, so `value` is
|
|
8
|
+
* the complete set.
|
|
9
|
+
*
|
|
10
|
+
* `resolveEnvironmentId` and `resolveAppNameAsync` each throw a config-pointing
|
|
11
|
+
* `UsageError` when neither the corresponding flag nor `ms.config.json` is
|
|
12
|
+
* present, so the verb runs cleanly from a directory without config when both
|
|
13
|
+
* `--app` and `--environment-id` are supplied explicitly.
|
|
14
|
+
*/
|
|
15
|
+
export declare function shareLinkListAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=ShareLinkList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareLinkList.d.ts","sourceRoot":"","sources":["../../src/Verbs/ShareLinkList.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C1F"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { listShareLinksAsync } from '@microsoft/managed-apps-actions';
|
|
5
|
+
import { getCliLogger } from '../CliSettings.js';
|
|
6
|
+
import { resolveAppNameAsync, resolveEnvironmentId } from '../CliUtils.js';
|
|
7
|
+
import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
8
|
+
import { UsageError } from '../Errors/CliError.js';
|
|
9
|
+
import { printJsonSuccess, printTable } from '../Utils/ConsoleOutput.js';
|
|
10
|
+
import { ShareLinkListArguments } from './VerbConstants.js';
|
|
11
|
+
/**
|
|
12
|
+
* Implements `ms app share link list` — lists every share link issued for the
|
|
13
|
+
* current MAAF app. The server emits no pagination cursor today, so `value` is
|
|
14
|
+
* the complete set.
|
|
15
|
+
*
|
|
16
|
+
* `resolveEnvironmentId` and `resolveAppNameAsync` each throw a config-pointing
|
|
17
|
+
* `UsageError` when neither the corresponding flag nor `ms.config.json` is
|
|
18
|
+
* present, so the verb runs cleanly from a directory without config when both
|
|
19
|
+
* `--app` and `--environment-id` are supplied explicitly.
|
|
20
|
+
*/
|
|
21
|
+
export async function shareLinkListAsync(argumentProvider) {
|
|
22
|
+
configureOptionSchema(argumentProvider);
|
|
23
|
+
await argumentProvider.runVerb();
|
|
24
|
+
const environmentId = await resolveEnvironmentId(argumentProvider);
|
|
25
|
+
const tenantId = await argumentProvider.getTenantIdAsync();
|
|
26
|
+
if (!tenantId) {
|
|
27
|
+
throw new UsageError('Unable to determine tenant ID. Ensure you are logged in.');
|
|
28
|
+
}
|
|
29
|
+
const appName = await resolveAppNameAsync(argumentProvider);
|
|
30
|
+
const result = await listShareLinksAsync({
|
|
31
|
+
tenantId,
|
|
32
|
+
environmentId,
|
|
33
|
+
logger: getCliLogger(),
|
|
34
|
+
actionsParams: { appName },
|
|
35
|
+
});
|
|
36
|
+
if (argumentProvider.isJsonMode()) {
|
|
37
|
+
printJsonSuccess({ appName, ...result });
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// URL is intentionally omitted from the human-readable table — M365 deep
|
|
41
|
+
// links can exceed 100 chars and wrap ugly. Users who need the URL can run
|
|
42
|
+
// `--json` (returns every field) or re-`create` the link.
|
|
43
|
+
printTable({
|
|
44
|
+
title: `Share links for '${appName}'`,
|
|
45
|
+
columns: [
|
|
46
|
+
{ header: 'LINK ID' },
|
|
47
|
+
{ header: 'ROLE' },
|
|
48
|
+
{ header: 'REDEEMERS' },
|
|
49
|
+
{ header: 'CREATED BY', maxWidth: 36 },
|
|
50
|
+
],
|
|
51
|
+
rows: result.value.map((link) => [
|
|
52
|
+
link.appShareLinkId,
|
|
53
|
+
link.maafAppRoleName,
|
|
54
|
+
String(link.redeemedPrincipalIds.length),
|
|
55
|
+
link.createdByObjectId,
|
|
56
|
+
]),
|
|
57
|
+
emptyMessage: `No share links issued for '${appName}'.`,
|
|
58
|
+
totalLabel: 'link(s)',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function configureOptionSchema(argumentProvider) {
|
|
62
|
+
argumentProvider.setDescription(HelpStrings.app.shareLink.list.description);
|
|
63
|
+
argumentProvider.addExamples(HelpStrings.app.shareLink.list.examples);
|
|
64
|
+
argumentProvider.addOptions([
|
|
65
|
+
{
|
|
66
|
+
flags: {
|
|
67
|
+
key: ShareLinkListArguments.AppName.name,
|
|
68
|
+
},
|
|
69
|
+
env: ShareLinkListArguments.AppName.envVar,
|
|
70
|
+
description: HelpStrings.app.shareLink.list.options.app,
|
|
71
|
+
optionalInNonInteractive: true,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
flags: {
|
|
75
|
+
key: ShareLinkListArguments.EnvironmentId.name,
|
|
76
|
+
alias: ShareLinkListArguments.EnvironmentId.alias,
|
|
77
|
+
},
|
|
78
|
+
env: ShareLinkListArguments.EnvironmentId.envVar,
|
|
79
|
+
description: HelpStrings.app.shareLink.list.options.environmentId,
|
|
80
|
+
optionalInNonInteractive: true,
|
|
81
|
+
},
|
|
82
|
+
]);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=ShareLinkList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareLinkList.js","sourceRoot":"","sources":["../../src/Verbs/ShareLinkList.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
|
+
/**
|
|
6
|
+
* Implements `ms app share link revoke` — revokes a previously-issued share
|
|
7
|
+
* link by id. The server attempts to remove the `MicrosoftAppReader` role for
|
|
8
|
+
* every prior redeemer before tearing down the link record; individual revoke
|
|
9
|
+
* failures are logged server-side but do not block the link's deletion.
|
|
10
|
+
*
|
|
11
|
+
* `404 AppShareLinkNotFound` is surfaced as a clean warning rather than an
|
|
12
|
+
* error — mirrors `ms app delete`'s "did not exist" handling. Any other 404
|
|
13
|
+
* (wrong route, wrong app, wrong environment) propagates so the caller sees
|
|
14
|
+
* the real failure.
|
|
15
|
+
*
|
|
16
|
+
* `resolveEnvironmentId` and `resolveAppNameAsync` each throw a config-pointing
|
|
17
|
+
* `UsageError` when neither the corresponding flag nor `ms.config.json` is
|
|
18
|
+
* present, so the verb runs cleanly from a directory without config when both
|
|
19
|
+
* `--app` and `--environment-id` are supplied explicitly.
|
|
20
|
+
*/
|
|
21
|
+
export declare function shareLinkRevokeAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=ShareLinkRevoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareLinkRevoke.d.ts","sourceRoot":"","sources":["../../src/Verbs/ShareLinkRevoke.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5F"}
|