@@ -41,7 +41,17 @@ const {
41
41
teamsUpdateName,
42
42
teamsCreate
43
43
} = require("./teams");
44
- const { projectsUpdate } = require("./projects");
44
+ const {
45
+ projectsUpdate,
46
+ projectsUpdateServiceStatus,
47
+ projectsUpdateAuthStatus,
48
+ projectsUpdateAuthDuration,
49
+ projectsUpdateAuthLimit,
50
+ projectsUpdateAuthSessionsLimit,
51
+ projectsUpdateAuthPasswordDictionary,
52
+ projectsUpdateAuthPasswordHistory,
53
+ projectsUpdatePersonalDataCheck,
54
+ } = require("./projects");
45
55
const { checkDeployConditions } = require('../utils');
46
56
47
57
const STEP_SIZE = 100; // Resources
@@ -258,11 +268,56 @@ const pushResources = async ({ all, yes } = {}) => {
258
268
259
269
const pushProject = async () => {
260
270
try {
271
+ const projectId = localConfig.getProject().projectId;
272
+ const projectName = localConfig.getProject().projectName;
273
+
274
+ log(`Updating project ${projectName} ( ${projectId} )`);
275
+
261
276
await projectsUpdate({
262
- projectId: localConfig.getProject().projectId ,
263
- name: localConfig.getProject(). projectName,
277
+ projectId,
278
+ name: projectName,
264
279
parseOutput: false
265
- })
280
+ });
281
+
282
+ const settings = localConfig.getProject().projectSettings;
283
+
284
+ if (settings.services) {
285
+ log('Updating service statuses');
286
+ for (let [service, status] of Object.entries(settings.services)) {
287
+ await projectsUpdateServiceStatus({
288
+ projectId,
289
+ service,
290
+ status,
291
+ parseOutput: false
292
+ });
293
+ }
294
+ }
295
+
296
+ if (settings.auth) {
297
+ if (settings.auth.security) {
298
+ log('Updating auth security settings');
299
+ await projectsUpdateAuthDuration({ projectId, duration: settings.auth.security.duration, parseOutput: false });
300
+ await projectsUpdateAuthLimit({ projectId, limit: settings.auth.security.limit, parseOutput: false });
301
+ await projectsUpdateAuthSessionsLimit({ projectId, limit: settings.auth.security.sessionsLimit, parseOutput: false });
302
+ await projectsUpdateAuthPasswordDictionary({ projectId, enabled: settings.auth.security.passwordDictionary, parseOutput: false });
303
+ await projectsUpdateAuthPasswordHistory({ projectId, limit: settings.auth.security.passwordHistory, parseOutput: false });
304
+ await projectsUpdatePersonalDataCheck({ projectId, enabled: settings.auth.security.personalDataCheck, parseOutput: false });
305
+ }
306
+
307
+ if (settings.auth.methods) {
308
+ log('Updating auth login methods');
309
+
310
+ for (let [method, status] of Object.entries(settings.auth.methods)) {
311
+ await projectsUpdateAuthStatus({
312
+ projectId,
313
+ method,
314
+ status,
315
+ parseOutput: false
316
+ });
317
+ }
318
+ }
319
+ }
320
+
266
321
success();
267
322
} catch (e) {
268
323
throw e;
@@ -1131,7 +1186,7 @@ push
1131
1186
1132
1187
push
1133
1188
.command("project")
1134
- .description("Push project name. ")
1189
+ .description("Push project name, services and auth settings ")
1135
1190
.action(actionRunner(pushProject));
1136
1191
1137
1192
push
0 commit comments