@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,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import { GrsRepositoryContributorRoleName, infoAsync, MaafAppReaderRoleName, modifyGrsRoleAssignmentsAsync, modifyMaafRoleAssignmentsAsync, resolvePrincipalByEmailAsync, unshareGrsRepoByPrincipalsAsync, unshareMaafAppByPrincipalsAsync, } from '@microsoft/managed-apps-actions';
|
|
4
|
+
import { GrsRepositoryContributorRoleName, infoAsync, MaafAppContributorRoleName, MaafAppReaderRoleName, modifyGrsRoleAssignmentsAsync, modifyMaafRoleAssignmentsAsync, resolvePrincipalByEmailAsync, unshareGrsRepoByPrincipalsAsync, unshareMaafAppByPrincipalsAsync, } from '@microsoft/managed-apps-actions';
|
|
5
5
|
import { AppConfigFileName } from '@microsoft/managed-apps-common/config';
|
|
6
6
|
import { HttpClientError } from '@microsoft/managed-apps-common/services';
|
|
7
7
|
import { getCliLogger, getSettings } from '../CliSettings.js';
|
|
@@ -27,8 +27,11 @@ import { ShareMaafAppArguments, UnshareMaafAppArguments } from './VerbConstants.
|
|
|
27
27
|
* to AAD object ids via Graph, pass GUID-shaped inputs through unchanged.
|
|
28
28
|
* 5. Dispatch to the matching share/unshare path:
|
|
29
29
|
* - `play` → MAAF `modifyRoleAssignments` (`MicrosoftAppReader` at app scope).
|
|
30
|
-
* - `edit` → fetch the app's `repositoryId` then
|
|
31
|
-
* (`RepositoryContributor` at repo scope).
|
|
30
|
+
* - `edit` + `repoType === 'native'` → fetch the app's `repositoryId` then
|
|
31
|
+
* GRS `modifyRoleAssignments` (`RepositoryContributor` at repo scope).
|
|
32
|
+
* - `edit` + `repoType === 'none' | 'github'` → MAAF `modifyRoleAssignments`
|
|
33
|
+
* (`MicrosoftAppContributor` at app scope); GRS is skipped because the
|
|
34
|
+
* platform does not manage the repository.
|
|
32
35
|
* For unshare, paginate the matching list endpoint and pass through the
|
|
33
36
|
* full `RoleAssignment[]` records on `delete` (the strict wire contract
|
|
34
37
|
* requires `roleAssignmentId`, which only the list endpoint provides).
|
|
@@ -50,72 +53,144 @@ export async function executeMaafAppPermissionsAsync(argumentProvider, mode) {
|
|
|
50
53
|
}
|
|
51
54
|
const appName = await resolveAppNameAsync(argumentProvider);
|
|
52
55
|
const access = parseAccessLevel(await argumentProvider.getOption('access'));
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
// `repoType` only affects edit routing. For play we should never fail on the
|
|
57
|
+
// strict migration check for legacy config shape.
|
|
58
|
+
const repoType = access === 'edit'
|
|
59
|
+
? resolveRepoType(cliSettings.appConfig)
|
|
60
|
+
: (cliSettings.appConfig.repoType ?? 'none');
|
|
57
61
|
const inputs = parseInputs(argumentProvider.getPositionalArg(0));
|
|
58
62
|
if (inputs.length === 0) {
|
|
59
63
|
throw new UsageError('Provide at least one principal as a comma-separated list (AAD object IDs or email addresses).');
|
|
60
64
|
}
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
65
|
+
// Top-level scenario that ties together every server call the verb makes:
|
|
66
|
+
// Graph principal resolution (`ResolvePrincipalByEmail` per email), optional
|
|
67
|
+
// app-info fetch (`GetMaafApp`) when the edit path needs the `repositoryId`,
|
|
68
|
+
// and the final modify call (one of `ModifyMaafRoleAssignments`,
|
|
69
|
+
// `ModifyGrsRepositoryRoleAssignments`, `UnshareMaafAppByPrincipals`, or
|
|
70
|
+
// `UnshareGrsRepoByPrincipals`). Each of those actions already emits its own
|
|
71
|
+
// wire-scoped scenario; this scenario captures the verb-level outcome plus
|
|
72
|
+
// the routing decision (scope/role) so we can correlate. All properties are
|
|
73
|
+
// PII-safe — counts and routing flags only, no emails / GUIDs / app names.
|
|
74
|
+
const logger = getCliLogger();
|
|
75
|
+
const scenario = logger.trackScenario('MaafApp.SharePermissions', {
|
|
76
|
+
mode,
|
|
77
|
+
access,
|
|
78
|
+
repoType,
|
|
79
|
+
inputCount: inputs.length,
|
|
80
|
+
});
|
|
81
|
+
try {
|
|
82
|
+
// Failures (bad shape, no Graph match, transport error) are collected here so
|
|
83
|
+
// we can warn the user but still proceed with the entries that resolved.
|
|
84
|
+
const failures = [];
|
|
85
|
+
const refs = await resolveAllAsync(inputs, failures);
|
|
86
|
+
// Verb-level summary of the Graph fan-out. Each underlying lookup also
|
|
87
|
+
// emits a `ResolvePrincipalByEmail` scenario; this event makes the
|
|
88
|
+
// aggregate result queryable per share/unshare invocation.
|
|
89
|
+
logger.trackActivityEvent('MaafApp.SharePermissions.PrincipalResolution', {
|
|
90
|
+
mode,
|
|
91
|
+
inputCount: inputs.length,
|
|
92
|
+
resolvedCount: refs.length,
|
|
93
|
+
failedCount: failures.length,
|
|
94
|
+
});
|
|
95
|
+
// If nothing resolved, the operation has no inputs to apply — abort with a
|
|
96
|
+
// single error listing every failure rather than calling the RP with an empty
|
|
97
|
+
// array.
|
|
98
|
+
if (refs.length === 0) {
|
|
99
|
+
throw new UsageError(formatFailures(failures));
|
|
100
|
+
}
|
|
101
|
+
// Otherwise warn about the unresolved entries up front (so they're visible
|
|
102
|
+
// before the success line), then proceed with the resolved subset.
|
|
103
|
+
if (failures.length > 0) {
|
|
104
|
+
printWarning(formatFailures(failures));
|
|
105
|
+
}
|
|
106
|
+
const dispatch = mode === 'share' ? shareDispatchAsync : unshareDispatchAsync;
|
|
107
|
+
const outcome = await dispatch({
|
|
108
|
+
tenantId,
|
|
109
|
+
environmentId,
|
|
110
|
+
appName,
|
|
92
111
|
access,
|
|
93
|
-
|
|
94
|
-
|
|
112
|
+
refs,
|
|
113
|
+
repoType,
|
|
114
|
+
jsonMode: argumentProvider.isJsonMode(),
|
|
115
|
+
});
|
|
116
|
+
scenario.complete({
|
|
117
|
+
resolvedCount: refs.length,
|
|
118
|
+
failedResolutionCount: failures.length,
|
|
119
|
+
scope: outcome.scope,
|
|
120
|
+
role: outcome.role,
|
|
121
|
+
// App-scope contributor fallback for `edit` is the noteworthy routing
|
|
122
|
+
// case introduced for non-native `repoType`. Tagged here so it's a
|
|
123
|
+
// simple boolean filter on the success event.
|
|
124
|
+
appScopeContributorFallback: access === 'edit' && outcome.scope === 'app',
|
|
95
125
|
...(mode === 'unshare' && {
|
|
96
126
|
revokedCount: outcome.revokedCount ?? 0,
|
|
97
127
|
revokedPrincipalCount: outcome.revokedPrincipalCount ?? 0,
|
|
98
|
-
|
|
99
|
-
|
|
128
|
+
notFoundCount: outcome.notFound?.length ?? 0,
|
|
129
|
+
skippedCount: outcome.skipped?.length ?? 0,
|
|
100
130
|
}),
|
|
101
|
-
warnings: failures,
|
|
102
131
|
});
|
|
132
|
+
if (argumentProvider.isJsonMode()) {
|
|
133
|
+
// Envelope semantics for this verb: `success: true` means the modify call
|
|
134
|
+
// reached the RP and returned. When some inputs failed to resolve before
|
|
135
|
+
// the modify, `partialFailure` is `true` and `warnings` lists the
|
|
136
|
+
// unresolved entries. Consumers requiring full success must check both
|
|
137
|
+
// `success === true && partialFailure === false`. `warnings` is always
|
|
138
|
+
// present (empty array on full success) so consumers can treat its
|
|
139
|
+
// length uniformly. The server response is spread flat into the envelope
|
|
140
|
+
// (matching every other verb that emits JSON) instead of nested under a
|
|
141
|
+
// `result` key. For unshare we also include the action-layer bookkeeping
|
|
142
|
+
// (`revokedCount`, `revokedPrincipalCount`, `notFound`, `skipped`) that
|
|
143
|
+
// would otherwise only appear in the human summary — so automation gets
|
|
144
|
+
// the same fidelity as text mode.
|
|
145
|
+
printJsonSuccess({
|
|
146
|
+
access,
|
|
147
|
+
partialFailure: failures.length > 0,
|
|
148
|
+
...outcome.result,
|
|
149
|
+
...(mode === 'unshare' && {
|
|
150
|
+
revokedCount: outcome.revokedCount ?? 0,
|
|
151
|
+
revokedPrincipalCount: outcome.revokedPrincipalCount ?? 0,
|
|
152
|
+
notFound: (outcome.notFound ?? []).map(toJsonRef),
|
|
153
|
+
skipped: (outcome.skipped ?? []).map(toJsonRef),
|
|
154
|
+
}),
|
|
155
|
+
warnings: failures,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
printSummary({ appName, mode, access, inputCount: refs.length, outcome });
|
|
160
|
+
}
|
|
103
161
|
}
|
|
104
|
-
|
|
105
|
-
|
|
162
|
+
catch (error) {
|
|
163
|
+
scenario.failure(error);
|
|
164
|
+
throw error;
|
|
106
165
|
}
|
|
107
166
|
}
|
|
108
167
|
async function shareDispatchAsync(inputs) {
|
|
109
|
-
const { tenantId, environmentId, appName, access, refs } = inputs;
|
|
168
|
+
const { tenantId, environmentId, appName, access, refs, repoType, jsonMode } = inputs;
|
|
110
169
|
if (access === 'play') {
|
|
111
|
-
const entries = refs.map(toMaafPermissionEntry);
|
|
170
|
+
const entries = refs.map((r) => toMaafPermissionEntry(r, MaafAppReaderRoleName));
|
|
171
|
+
const result = await modifyMaafRoleAssignmentsAsync({
|
|
172
|
+
tenantId,
|
|
173
|
+
environmentId,
|
|
174
|
+
logger: getCliLogger(),
|
|
175
|
+
actionsParams: { appName, put: entries, delete: [] },
|
|
176
|
+
});
|
|
177
|
+
return { result, scope: 'app', role: MaafAppReaderRoleName };
|
|
178
|
+
}
|
|
179
|
+
// access === 'edit': route by repoType.
|
|
180
|
+
if (repoType !== 'native') {
|
|
181
|
+
// The app has no platform-managed repository, so grant contributor access
|
|
182
|
+
// at the app scope instead of going through GRS.
|
|
183
|
+
if (!jsonMode) {
|
|
184
|
+
printInfo(`App '${appName}' has no platform-managed repository, so granting contributor access at the app scope instead of repository scope.`);
|
|
185
|
+
}
|
|
186
|
+
const entries = refs.map((r) => toMaafPermissionEntry(r, MaafAppContributorRoleName));
|
|
112
187
|
const result = await modifyMaafRoleAssignmentsAsync({
|
|
113
188
|
tenantId,
|
|
114
189
|
environmentId,
|
|
115
190
|
logger: getCliLogger(),
|
|
116
191
|
actionsParams: { appName, put: entries, delete: [] },
|
|
117
192
|
});
|
|
118
|
-
return { result };
|
|
193
|
+
return { result, scope: 'app', role: MaafAppContributorRoleName };
|
|
119
194
|
}
|
|
120
195
|
const repoId = await resolveRepositoryIdAsync({ tenantId, environmentId, appName });
|
|
121
196
|
const entries = refs.map(toGrsPermissionEntry);
|
|
@@ -125,30 +200,49 @@ async function shareDispatchAsync(inputs) {
|
|
|
125
200
|
logger: getCliLogger(),
|
|
126
201
|
actionsParams: { repoId, put: entries, delete: [] },
|
|
127
202
|
});
|
|
128
|
-
return { result };
|
|
203
|
+
return { result, scope: 'repo', role: GrsRepositoryContributorRoleName };
|
|
129
204
|
}
|
|
130
205
|
async function unshareDispatchAsync(inputs) {
|
|
131
|
-
const { tenantId, environmentId, appName, access, refs } = inputs;
|
|
206
|
+
const { tenantId, environmentId, appName, access, refs, repoType, jsonMode } = inputs;
|
|
132
207
|
const principalIds = refs.map((r) => r.id);
|
|
133
208
|
const refsByPrincipalId = new Map(refs.map((r) => [r.id, r]));
|
|
134
|
-
const
|
|
135
|
-
|
|
209
|
+
const useAppScope = access === 'play' || repoType !== 'native';
|
|
210
|
+
const role = useAppScope
|
|
211
|
+
? access === 'play'
|
|
212
|
+
? MaafAppReaderRoleName
|
|
213
|
+
: MaafAppContributorRoleName
|
|
214
|
+
: GrsRepositoryContributorRoleName;
|
|
215
|
+
let actionResult;
|
|
216
|
+
if (useAppScope) {
|
|
217
|
+
if (access === 'edit') {
|
|
218
|
+
if (!jsonMode) {
|
|
219
|
+
printInfo(`App '${appName}' has no platform-managed repository, so revoking contributor access at the app scope instead of repository scope.`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
actionResult = await unshareMaafAppByPrincipalsAsync({
|
|
136
223
|
tenantId,
|
|
137
224
|
environmentId,
|
|
138
225
|
logger: getCliLogger(),
|
|
139
|
-
actionsParams: {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
226
|
+
actionsParams: {
|
|
227
|
+
appName,
|
|
228
|
+
principalIds,
|
|
229
|
+
roleDefinitionName: role,
|
|
230
|
+
},
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
const repoId = await resolveRepositoryIdAsync({ tenantId, environmentId, appName });
|
|
235
|
+
actionResult = await unshareGrsRepoByPrincipalsAsync({
|
|
236
|
+
tenantId,
|
|
237
|
+
environmentId,
|
|
238
|
+
logger: getCliLogger(),
|
|
239
|
+
actionsParams: { repoId, principalIds },
|
|
240
|
+
});
|
|
241
|
+
}
|
|
150
242
|
return {
|
|
151
243
|
result: actionResult.result,
|
|
244
|
+
scope: useAppScope ? 'app' : 'repo',
|
|
245
|
+
role,
|
|
152
246
|
revokedCount: actionResult.revokedCount,
|
|
153
247
|
revokedPrincipalCount: actionResult.revokedPrincipalCount,
|
|
154
248
|
notFound: actionResult.notFoundPrincipalIds.map((id) => refsByPrincipalId.get(id) ?? { id, input: id }),
|
|
@@ -156,6 +250,27 @@ async function unshareDispatchAsync(inputs) {
|
|
|
156
250
|
{ id: s.principalObjectId, input: s.principalObjectId }),
|
|
157
251
|
};
|
|
158
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Resolves the effective {@link RepoType} from an `AppConfig`.
|
|
255
|
+
*
|
|
256
|
+
* Hard rule: if `repoType` is missing AND the config carries a (non-empty,
|
|
257
|
+
* non-zero-GUID) `repositoryId`, refuse to guess - the user must re-run
|
|
258
|
+
* `app init` to migrate the config. When both are missing we treat it as
|
|
259
|
+
* `'none'`: there is no repo-scope to act on, and the app-scope fallback in
|
|
260
|
+
* the share/unshare dispatchers handles edit correctly.
|
|
261
|
+
*/
|
|
262
|
+
function resolveRepoType(appConfig) {
|
|
263
|
+
if (appConfig.repoType) {
|
|
264
|
+
return appConfig.repoType;
|
|
265
|
+
}
|
|
266
|
+
const hasRepoId = !!appConfig.repositoryId && appConfig.repositoryId !== '00000000-0000-0000-0000-000000000000';
|
|
267
|
+
if (hasRepoId) {
|
|
268
|
+
throw new UsageError(`${AppConfigFileName} is missing the 'repoType' field but has a 'repositoryId' set. ` +
|
|
269
|
+
`This usually means the file was written by an older CLI. ` +
|
|
270
|
+
`Re-run "npx ${CLI_BINARY_NAME} app init" to migrate the config, then retry.`);
|
|
271
|
+
}
|
|
272
|
+
return 'none';
|
|
273
|
+
}
|
|
159
274
|
/**
|
|
160
275
|
* Fetches the app's `repositoryId` via the info action. Used by the `edit`
|
|
161
276
|
* access paths to drive the GRS repo-scope share/unshare endpoints.
|
|
@@ -177,13 +292,16 @@ async function resolveRepositoryIdAsync(args) {
|
|
|
177
292
|
* verb keeps its pre-flag behaviour for callers that haven't migrated. Throws
|
|
178
293
|
* a `UsageError` on any other value — Commander.js doesn't enforce enum
|
|
179
294
|
* membership by default and we want a precise error message.
|
|
295
|
+
*
|
|
296
|
+
* `play` and `edit` are the only externally visible levels. The role and scope
|
|
297
|
+
* the level resolves to are decided downstream (see {@link MaafAppAccessLevel}).
|
|
180
298
|
*/
|
|
181
299
|
function parseAccessLevel(raw) {
|
|
182
300
|
const value = (raw ?? 'play').trim().toLowerCase();
|
|
183
301
|
if (value === 'play' || value === 'edit') {
|
|
184
302
|
return value;
|
|
185
303
|
}
|
|
186
|
-
throw new UsageError(`Unknown --access value '${raw}'. Use 'play' (default — app access) or 'edit' (
|
|
304
|
+
throw new UsageError(`Unknown --access value '${raw}'. Use 'play' (default — app access) or 'edit' (edit access).`);
|
|
187
305
|
}
|
|
188
306
|
/**
|
|
189
307
|
* Splits a comma-separated string into a deduplicated, trimmed list of inputs.
|
|
@@ -289,6 +407,15 @@ function formatFailures(failures) {
|
|
|
289
407
|
*/
|
|
290
408
|
function extractGraphErrorMessage(error) {
|
|
291
409
|
if (error instanceof HttpClientError) {
|
|
410
|
+
// A 403 from Graph is a consent/permission problem with the caller's
|
|
411
|
+
// sign-in, not a bad principal. Echoing Graph's opaque "Insufficient
|
|
412
|
+
// privileges to complete the operation" under the "Could not resolve
|
|
413
|
+
// <email>" heading misleads users into thinking the email is wrong, so we
|
|
414
|
+
// replace it with an actionable message naming the real cause and the
|
|
415
|
+
// ways forward. See {@link formatGraphPermissionError}.
|
|
416
|
+
if (error.status === 403) {
|
|
417
|
+
return formatGraphPermissionError(error.status);
|
|
418
|
+
}
|
|
292
419
|
const message = extractGraphMessageFromBody(error.body);
|
|
293
420
|
if (message !== undefined) {
|
|
294
421
|
return `Graph ${error.status}: ${message}`;
|
|
@@ -297,6 +424,21 @@ function extractGraphErrorMessage(error) {
|
|
|
297
424
|
}
|
|
298
425
|
return error instanceof Error ? error.message : String(error);
|
|
299
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* Builds the actionable reason for a Graph 403 hit during principal resolution.
|
|
429
|
+
* The email→object-id lookup needs the `User.ReadBasic.All` and
|
|
430
|
+
* `Group.Read.All` delegated Graph permissions; a 403 means the active
|
|
431
|
+
* account's token doesn't carry them in this tenant (consent was never
|
|
432
|
+
* granted). Rather than surface Graph's opaque "Insufficient privileges", we
|
|
433
|
+
* name the cause and the two ways forward: get those permissions consented, or
|
|
434
|
+
* skip the lookup entirely by passing the AAD object ID (GUID) instead of an
|
|
435
|
+
* email.
|
|
436
|
+
*/
|
|
437
|
+
function formatGraphPermissionError(status) {
|
|
438
|
+
return (`Graph ${status}: your sign-in lacks permission to look up accounts by email. ` +
|
|
439
|
+
`Pass the AAD object ID (GUID) instead, or have an admin grant the ` +
|
|
440
|
+
`User.ReadBasic.All and Group.Read.All Graph permissions.`);
|
|
441
|
+
}
|
|
300
442
|
/**
|
|
301
443
|
* Parses a Graph error body string and returns the inner `error.message`. Returns
|
|
302
444
|
* `undefined` if the body is missing, not valid JSON, or doesn't carry the
|
|
@@ -331,11 +473,11 @@ function looksLikeEmail(input) {
|
|
|
331
473
|
* (when the user supplied one) keeps the wire payload self-describing for server
|
|
332
474
|
* logs even though the response strips it.
|
|
333
475
|
*/
|
|
334
|
-
function toMaafPermissionEntry(ref) {
|
|
476
|
+
function toMaafPermissionEntry(ref, role) {
|
|
335
477
|
return {
|
|
336
478
|
name: ref.displayName ?? ref.input,
|
|
337
479
|
properties: {
|
|
338
|
-
roleName:
|
|
480
|
+
roleName: role,
|
|
339
481
|
principal: ref.email ? { id: ref.id, email: ref.email } : { id: ref.id },
|
|
340
482
|
},
|
|
341
483
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaafAppPermissions.js","sourceRoot":"","sources":["../../src/Verbs/MaafAppPermissions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MaafAppPermissions.js","sourceRoot":"","sources":["../../src/Verbs/MaafAppPermissions.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
|
+
type PlayMode = 'live' | 'preview';
|
|
6
|
+
/**
|
|
7
|
+
* Implements `ms app play` — opens a Microsoft App in the browser and prints
|
|
8
|
+
* the launch URL.
|
|
9
|
+
*
|
|
10
|
+
* Modes:
|
|
11
|
+
* - `live` (default): fetches the deployed app via `infoAsync` and opens
|
|
12
|
+
* `appPlayUri`. Warns that the live build is a snapshot — users must run
|
|
13
|
+
* `ms app deploy` to update it. If no `appPlayUri` exists yet, surfaces a
|
|
14
|
+
* `UsageError` directing the user to deploy first.
|
|
15
|
+
* - `preview`: opens the returned `appPlayUri` with a preview route suffix:
|
|
16
|
+
* `/branch/main` by default, or `/commit/:commitId` when `--commit` is
|
|
17
|
+
* supplied.
|
|
18
|
+
*/
|
|
19
|
+
export declare function playMaafAppAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
20
|
+
export declare function buildPlayUrl(appPlayUri: string | null | undefined, mode: PlayMode, commitId?: string, branchName?: string): string | undefined;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=PlayMaafApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayMaafApp.d.ts","sourceRoot":"","sources":["../../src/Verbs/PlayMaafApp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D,KAAK,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnC;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCxF;AAkDD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACrC,IAAI,EAAE,QAAQ,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,SAAS,GAClB,MAAM,GAAG,SAAS,CAapB"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { infoAsync } from '@microsoft/managed-apps-actions';
|
|
5
|
+
import open from 'open';
|
|
6
|
+
import { getCliLogger } from '../CliSettings.js';
|
|
7
|
+
import { resolveAppNameAsync, resolveEnvironmentId } from '../CliUtils.js';
|
|
8
|
+
import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
9
|
+
import { UsageError } from '../Errors/CliError.js';
|
|
10
|
+
import { printInfo, printJsonSuccess, printSuccess, printWarning } from '../Utils/ConsoleOutput.js';
|
|
11
|
+
import { PlayMaafAppArguments } from './VerbConstants.js';
|
|
12
|
+
/**
|
|
13
|
+
* Implements `ms app play` — opens a Microsoft App in the browser and prints
|
|
14
|
+
* the launch URL.
|
|
15
|
+
*
|
|
16
|
+
* Modes:
|
|
17
|
+
* - `live` (default): fetches the deployed app via `infoAsync` and opens
|
|
18
|
+
* `appPlayUri`. Warns that the live build is a snapshot — users must run
|
|
19
|
+
* `ms app deploy` to update it. If no `appPlayUri` exists yet, surfaces a
|
|
20
|
+
* `UsageError` directing the user to deploy first.
|
|
21
|
+
* - `preview`: opens the returned `appPlayUri` with a preview route suffix:
|
|
22
|
+
* `/branch/main` by default, or `/commit/:commitId` when `--commit` is
|
|
23
|
+
* supplied.
|
|
24
|
+
*/
|
|
25
|
+
export async function playMaafAppAsync(argumentProvider) {
|
|
26
|
+
configureOptionSchema(argumentProvider);
|
|
27
|
+
await argumentProvider.runVerb();
|
|
28
|
+
const appName = await resolveAppNameAsync(argumentProvider);
|
|
29
|
+
const environmentId = await resolveEnvironmentId(argumentProvider);
|
|
30
|
+
const tenantId = await argumentProvider.getTenantIdAsync();
|
|
31
|
+
if (!tenantId) {
|
|
32
|
+
throw new UsageError('Unable to determine tenant ID. Ensure you are logged in.');
|
|
33
|
+
}
|
|
34
|
+
const mode = await resolveMode(argumentProvider);
|
|
35
|
+
const noBrowser = (await argumentProvider.getOption('noBrowser', /* ignorePrompt */ true)) === true;
|
|
36
|
+
const isJson = argumentProvider.isJsonMode();
|
|
37
|
+
const commitId = await argumentProvider.getOption(PlayMaafAppArguments.CommitSha.name,
|
|
38
|
+
/* ignorePrompt */ true);
|
|
39
|
+
if (mode === 'live' && commitId) {
|
|
40
|
+
throw new UsageError(`--commit is only valid with --mode preview.`);
|
|
41
|
+
}
|
|
42
|
+
await playAsync({
|
|
43
|
+
appName,
|
|
44
|
+
environmentId,
|
|
45
|
+
tenantId,
|
|
46
|
+
noBrowser,
|
|
47
|
+
isJson,
|
|
48
|
+
mode,
|
|
49
|
+
commitId,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async function playAsync(ctx) {
|
|
53
|
+
const { appName, environmentId, tenantId, noBrowser, isJson, mode, commitId } = ctx;
|
|
54
|
+
const app = await infoAsync({
|
|
55
|
+
tenantId,
|
|
56
|
+
environmentId,
|
|
57
|
+
logger: getCliLogger(),
|
|
58
|
+
actionsParams: { appName },
|
|
59
|
+
});
|
|
60
|
+
const url = buildPlayUrl(app.appPlayUri, mode, commitId);
|
|
61
|
+
if (!url) {
|
|
62
|
+
throw new UsageError(mode === 'live'
|
|
63
|
+
? `No live build is available for app '${appName}' yet. Run 'ms app deploy' to deploy one, then re-run 'ms app play'.`
|
|
64
|
+
: `No appPlayUri is available for app '${appName}' in environment '${environmentId}'.`);
|
|
65
|
+
}
|
|
66
|
+
if (isJson) {
|
|
67
|
+
printJsonSuccess({ appName, mode, url, commitHash: app.commitHash ?? null });
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
printSuccess(`${mode === 'live' ? 'Live' : 'Preview'} URL for '${app.displayName ?? appName}': ${url}`);
|
|
71
|
+
if (mode === 'live') {
|
|
72
|
+
printWarning("Live does not auto-update. Run 'ms app deploy' to publish a new version to the live URL.");
|
|
73
|
+
}
|
|
74
|
+
await openBrowserAsync(url, noBrowser);
|
|
75
|
+
}
|
|
76
|
+
// Mirrors the player routes in apps/maaf-player/src/App.tsx:
|
|
77
|
+
// /appframework/e/:envId/app/:appId, /branch/:branch, and /commit/:commit.
|
|
78
|
+
// Branch values are URL-encoded so names containing `/` remain a single route segment.
|
|
79
|
+
export function buildPlayUrl(appPlayUri, mode, commitId, branchName = 'main') {
|
|
80
|
+
if (!appPlayUri) {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
if (mode === 'live') {
|
|
84
|
+
return appPlayUri;
|
|
85
|
+
}
|
|
86
|
+
const baseUrl = appPlayUri.replace(/\/$/, '');
|
|
87
|
+
return commitId
|
|
88
|
+
? `${baseUrl}/commit/${commitId}`
|
|
89
|
+
: `${baseUrl}/branch/${encodeURIComponent(branchName)}`;
|
|
90
|
+
}
|
|
91
|
+
async function openBrowserAsync(url, noBrowser) {
|
|
92
|
+
if (noBrowser) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
printInfo(`Opening browser at ${url}`);
|
|
96
|
+
try {
|
|
97
|
+
await open(url, { wait: false });
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
printInfo(`Could not open browser automatically. Please navigate to:\n ${url}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async function resolveMode(argumentProvider) {
|
|
104
|
+
const raw = await argumentProvider.getOption(PlayMaafAppArguments.Mode.name,
|
|
105
|
+
/* ignorePrompt */ true);
|
|
106
|
+
const value = (raw ?? PlayMaafAppArguments.Mode.defaultValue).trim().toLowerCase();
|
|
107
|
+
if (value !== 'live' && value !== 'preview') {
|
|
108
|
+
throw new UsageError(`Invalid --mode value '${raw}'. Expected 'live' or 'preview'.`);
|
|
109
|
+
}
|
|
110
|
+
return value;
|
|
111
|
+
}
|
|
112
|
+
function configureOptionSchema(argumentProvider) {
|
|
113
|
+
argumentProvider.setDescription(HelpStrings.app.play.description);
|
|
114
|
+
argumentProvider.addExamples(HelpStrings.app.play.examples);
|
|
115
|
+
argumentProvider.addSwitch({
|
|
116
|
+
flags: { key: PlayMaafAppArguments.NoBrowser.name },
|
|
117
|
+
description: HelpStrings.app.play.options.noBrowser,
|
|
118
|
+
});
|
|
119
|
+
argumentProvider.addOptions([
|
|
120
|
+
{
|
|
121
|
+
flags: { key: PlayMaafAppArguments.AppName.name },
|
|
122
|
+
env: PlayMaafAppArguments.AppName.envVar,
|
|
123
|
+
description: HelpStrings.app.play.options.app,
|
|
124
|
+
optionalInNonInteractive: true,
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
flags: {
|
|
128
|
+
key: PlayMaafAppArguments.Mode.name,
|
|
129
|
+
alias: PlayMaafAppArguments.Mode.alias,
|
|
130
|
+
},
|
|
131
|
+
env: PlayMaafAppArguments.Mode.envVar,
|
|
132
|
+
default: PlayMaafAppArguments.Mode.defaultValue,
|
|
133
|
+
description: HelpStrings.app.play.options.mode,
|
|
134
|
+
optionalInNonInteractive: true,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
flags: {
|
|
138
|
+
key: PlayMaafAppArguments.CommitSha.name,
|
|
139
|
+
alias: PlayMaafAppArguments.CommitSha.alias,
|
|
140
|
+
},
|
|
141
|
+
env: PlayMaafAppArguments.CommitSha.envVar,
|
|
142
|
+
description: HelpStrings.app.play.options.commit,
|
|
143
|
+
optionalInNonInteractive: true,
|
|
144
|
+
},
|
|
145
|
+
]);
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=PlayMaafApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayMaafApp.js","sourceRoot":"","sources":["../../src/Verbs/PlayMaafApp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshDataSource.d.ts","sourceRoot":"","sources":["../../src/Verbs/RefreshDataSource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D,wBAAsB,sBAAsB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"RefreshDataSource.d.ts","sourceRoot":"","sources":["../../src/Verbs/RefreshDataSource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D,wBAAsB,sBAAsB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C9F"}
|