@catladder/cli 0.0.0-refactor-gcloud-api-d53966a5 → 0.0.0-refactor-gcloud-api-ee7f86ef
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/dist/bundles/catenv/index.js +1 -1
- package/dist/bundles/cli/index.js +57 -43
- package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.js +1 -1
- package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.js.map +1 -1
- package/dist/gcloud/enableServices.js +21 -11
- package/dist/gcloud/enableServices.js.map +1 -1
- package/dist/gcloud/serviceAccounts.js +34 -30
- package/dist/gcloud/serviceAccounts.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/gcloud/cloudRun/getCloudRunDomainSuffix.ts +1 -1
- package/src/gcloud/enableServices.ts +6 -0
- package/src/gcloud/serviceAccounts.ts +7 -6
|
@@ -40074,7 +40074,7 @@ exports.readConfigSync = readConfigSync;
|
|
|
40074
40074
|
|
|
40075
40075
|
exports.__esModule = true;
|
|
40076
40076
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
40077
|
-
exports.PIPELINE_IMAGE_TAG = "refactor-gcloud-api-
|
|
40077
|
+
exports.PIPELINE_IMAGE_TAG = "refactor-gcloud-api-ee7f86ef" || 0;
|
|
40078
40078
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
|
|
40079
40079
|
|
|
40080
40080
|
/***/ }),
|
|
@@ -6483,7 +6483,7 @@ var getCloudRunDomainSuffix = function (config) { return __awaiter(void 0, void
|
|
|
6483
6483
|
return [4 /*yield*/, runClient.listServices({ parent: parent, pageSize: 1 }, { autoPaginate: false })];
|
|
6484
6484
|
case 1:
|
|
6485
6485
|
existingService = (_a.sent())[0];
|
|
6486
|
-
if (existingService) {
|
|
6486
|
+
if (existingService.length > 0) {
|
|
6487
6487
|
return [2 /*return*/, getSuffixFromService(existingService)];
|
|
6488
6488
|
}
|
|
6489
6489
|
return [4 /*yield*/, runClient.createService({
|
|
@@ -6632,25 +6632,35 @@ exports.__esModule = true;
|
|
|
6632
6632
|
exports.enableGCloudServices = void 0;
|
|
6633
6633
|
var googleapis_1 = __nccwpck_require__(71581);
|
|
6634
6634
|
var enableGCloudServices = function (services, config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6635
|
-
var _i, services_1, service;
|
|
6636
|
-
|
|
6637
|
-
|
|
6635
|
+
var gcloudAuth, _a, _b, _i, services_1, service;
|
|
6636
|
+
var _c;
|
|
6637
|
+
return __generator(this, function (_d) {
|
|
6638
|
+
switch (_d.label) {
|
|
6638
6639
|
case 0:
|
|
6639
|
-
|
|
6640
|
-
|
|
6640
|
+
gcloudAuth = new googleapis_1.google.auth.GoogleAuth({
|
|
6641
|
+
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
|
|
6642
|
+
projectId: config.projectId
|
|
6643
|
+
});
|
|
6644
|
+
_b = (_a = googleapis_1.google).options;
|
|
6645
|
+
_c = {};
|
|
6646
|
+
return [4 /*yield*/, gcloudAuth.getClient()];
|
|
6641
6647
|
case 1:
|
|
6642
|
-
|
|
6648
|
+
_b.apply(_a, [(_c.auth = _d.sent(), _c)]);
|
|
6649
|
+
_i = 0, services_1 = services;
|
|
6650
|
+
_d.label = 2;
|
|
6651
|
+
case 2:
|
|
6652
|
+
if (!(_i < services_1.length)) return [3 /*break*/, 5];
|
|
6643
6653
|
service = services_1[_i];
|
|
6644
6654
|
return [4 /*yield*/, googleapis_1.google.serviceusage({ version: 'v1' }).services.enable({
|
|
6645
6655
|
name: "projects/".concat(config.projectId, "/services/").concat(service)
|
|
6646
6656
|
})];
|
|
6647
|
-
case 2:
|
|
6648
|
-
_a.sent();
|
|
6649
|
-
_a.label = 3;
|
|
6650
6657
|
case 3:
|
|
6658
|
+
_d.sent();
|
|
6659
|
+
_d.label = 4;
|
|
6660
|
+
case 4:
|
|
6651
6661
|
_i++;
|
|
6652
|
-
return [3 /*break*/,
|
|
6653
|
-
case
|
|
6662
|
+
return [3 /*break*/, 2];
|
|
6663
|
+
case 5: return [2 /*return*/];
|
|
6654
6664
|
}
|
|
6655
6665
|
});
|
|
6656
6666
|
}); };
|
|
@@ -6784,6 +6794,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
6784
6794
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
6785
6795
|
}
|
|
6786
6796
|
};
|
|
6797
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
6798
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
6799
|
+
if (ar || !(i in from)) {
|
|
6800
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6801
|
+
ar[i] = from[i];
|
|
6802
|
+
}
|
|
6803
|
+
}
|
|
6804
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
6805
|
+
};
|
|
6787
6806
|
exports.__esModule = true;
|
|
6788
6807
|
exports.upsertGcloudServiceAccountAndSaveSecret = exports.accountExists = void 0;
|
|
6789
6808
|
var googleapis_1 = __nccwpck_require__(71581);
|
|
@@ -6809,10 +6828,11 @@ var accountExists = function (client, projectId, fullPath) { return __awaiter(vo
|
|
|
6809
6828
|
}); };
|
|
6810
6829
|
exports.accountExists = accountExists;
|
|
6811
6830
|
var upsertGcloudServiceAccount = function (context, account) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6812
|
-
var projectId, name, displayName, roles, description, namePrefix, nameSuffix, nameMiddleLength, nameMiddle, middle, fullName, fullDisplayName, fullIdentifier, fullPath, gcloudIamClient, gcloudProjectsClient, gcloudAuth, _a, _b, existing, memberName, projectIamPolicy, currentBindings, bindings, keylist,
|
|
6813
|
-
var
|
|
6814
|
-
|
|
6815
|
-
|
|
6831
|
+
var projectId, name, displayName, roles, description, namePrefix, nameSuffix, nameMiddleLength, nameMiddle, middle, fullName, fullDisplayName, fullIdentifier, fullPath, gcloudIamClient, gcloudProjectsClient, gcloudAuth, _a, _b, existing, memberName, projectIamPolicy, currentBindings, bindings, keylist, key;
|
|
6832
|
+
var _c;
|
|
6833
|
+
var _d, _e;
|
|
6834
|
+
return __generator(this, function (_f) {
|
|
6835
|
+
switch (_f.label) {
|
|
6816
6836
|
case 0:
|
|
6817
6837
|
projectId = account.projectId, name = account.name, displayName = account.displayName, roles = account.roles, description = account.description;
|
|
6818
6838
|
namePrefix = "".concat(name, "-");
|
|
@@ -6831,13 +6851,13 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
|
|
|
6831
6851
|
projectId: projectId
|
|
6832
6852
|
});
|
|
6833
6853
|
_b = (_a = googleapis_1.google).options;
|
|
6834
|
-
|
|
6854
|
+
_c = {};
|
|
6835
6855
|
return [4 /*yield*/, gcloudAuth.getClient()];
|
|
6836
6856
|
case 1:
|
|
6837
|
-
_b.apply(_a, [(
|
|
6857
|
+
_b.apply(_a, [(_c.auth = _f.sent(), _c)]);
|
|
6838
6858
|
return [4 /*yield*/, (0, exports.accountExists)(gcloudIamClient, projectId, fullPath)];
|
|
6839
6859
|
case 2:
|
|
6840
|
-
existing =
|
|
6860
|
+
existing = _f.sent();
|
|
6841
6861
|
if (!!existing) return [3 /*break*/, 4];
|
|
6842
6862
|
return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.create({
|
|
6843
6863
|
name: gcloudProjectsClient.projectPath(projectId),
|
|
@@ -6850,23 +6870,23 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
|
|
|
6850
6870
|
}
|
|
6851
6871
|
})];
|
|
6852
6872
|
case 3:
|
|
6853
|
-
|
|
6854
|
-
|
|
6873
|
+
_f.sent();
|
|
6874
|
+
_f.label = 4;
|
|
6855
6875
|
case 4:
|
|
6856
6876
|
memberName = "serviceAccount:".concat(fullIdentifier);
|
|
6857
6877
|
return [4 /*yield*/, gcloudProjectsClient.getIamPolicy({ resource: gcloudProjectsClient.projectPath(projectId) })];
|
|
6858
6878
|
case 5:
|
|
6859
|
-
projectIamPolicy = (
|
|
6879
|
+
projectIamPolicy = (_f.sent())[0];
|
|
6860
6880
|
currentBindings = projectIamPolicy.bindings;
|
|
6861
6881
|
bindings = currentBindings.map(function (binding) {
|
|
6862
|
-
|
|
6863
|
-
|
|
6864
|
-
? __assign(__assign({}, binding), { members: binding.members.concat([memberName]) }) : binding;
|
|
6882
|
+
return (roles.includes(binding.role) && !binding.members.includes(memberName))
|
|
6883
|
+
? __assign(__assign({}, binding), { members: __spreadArray(__spreadArray([], binding.members, true), [memberName], false) }) : binding;
|
|
6865
6884
|
}).concat(roles.filter(function (r) { return !currentBindings.map(function (b) { return b.role; }).includes(r); }).map(function (newRole) { return ({
|
|
6866
6885
|
role: newRole,
|
|
6867
6886
|
members: [memberName]
|
|
6868
6887
|
}); }));
|
|
6869
6888
|
return [4 /*yield*/, gcloudProjectsClient.setIamPolicy({
|
|
6889
|
+
resource: gcloudProjectsClient.projectPath(projectId),
|
|
6870
6890
|
policy: {
|
|
6871
6891
|
bindings: bindings,
|
|
6872
6892
|
etag: projectIamPolicy.etag
|
|
@@ -6876,29 +6896,23 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
|
|
|
6876
6896
|
// delete first all keys
|
|
6877
6897
|
];
|
|
6878
6898
|
case 6:
|
|
6879
|
-
|
|
6899
|
+
_f.sent();
|
|
6880
6900
|
return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.list({
|
|
6881
6901
|
name: fullPath,
|
|
6882
6902
|
keyTypes: ['USER_MANAGED']
|
|
6883
6903
|
})];
|
|
6884
6904
|
case 7:
|
|
6885
|
-
keylist =
|
|
6886
|
-
|
|
6887
|
-
|
|
6905
|
+
keylist = _f.sent();
|
|
6906
|
+
(_e = (_d = keylist.data) === null || _d === void 0 ? void 0 : _d.keys) === null || _e === void 0 ? void 0 : _e.map(function (key) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
6907
|
+
switch (_a.label) {
|
|
6908
|
+
case 0: return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys["delete"]({ name: key.name })];
|
|
6909
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
6910
|
+
}
|
|
6911
|
+
}); }); });
|
|
6912
|
+
return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.create({ name: fullPath })];
|
|
6888
6913
|
case 8:
|
|
6889
|
-
|
|
6890
|
-
|
|
6891
|
-
return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys["delete"]({ name: key_1.name })];
|
|
6892
|
-
case 9:
|
|
6893
|
-
_e.sent();
|
|
6894
|
-
_e.label = 10;
|
|
6895
|
-
case 10:
|
|
6896
|
-
_i++;
|
|
6897
|
-
return [3 /*break*/, 8];
|
|
6898
|
-
case 11: return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.create({ name: fullPath })];
|
|
6899
|
-
case 12:
|
|
6900
|
-
key = _e.sent();
|
|
6901
|
-
return [2 /*return*/, key.data.privateKeyData];
|
|
6914
|
+
key = _f.sent();
|
|
6915
|
+
return [2 /*return*/, Buffer.from(key.data.privateKeyData, "base64").toString("utf-8")];
|
|
6902
6916
|
}
|
|
6903
6917
|
});
|
|
6904
6918
|
}); };
|
|
@@ -1118254,7 +1118268,7 @@ exports.readConfigSync = readConfigSync;
|
|
|
1118254
1118268
|
|
|
1118255
1118269
|
exports.__esModule = true;
|
|
1118256
1118270
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
1118257
|
-
exports.PIPELINE_IMAGE_TAG = "refactor-gcloud-api-
|
|
1118271
|
+
exports.PIPELINE_IMAGE_TAG = "refactor-gcloud-api-ee7f86ef" || 0;
|
|
1118258
1118272
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
|
|
1118259
1118273
|
|
|
1118260
1118274
|
/***/ }),
|
|
@@ -54,7 +54,7 @@ var getCloudRunDomainSuffix = function (config) { return __awaiter(void 0, void
|
|
|
54
54
|
return [4 /*yield*/, runClient.listServices({ parent: parent, pageSize: 1 }, { autoPaginate: false })];
|
|
55
55
|
case 1:
|
|
56
56
|
existingService = (_a.sent())[0];
|
|
57
|
-
if (existingService) {
|
|
57
|
+
if (existingService.length > 0) {
|
|
58
58
|
return [2 /*return*/, getSuffixFromService(existingService)];
|
|
59
59
|
}
|
|
60
60
|
return [4 /*yield*/, runClient.createService({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCloudRunDomainSuffix.js","sourceRoot":"","sources":["../../../src/gcloud/cloudRun/getCloudRunDomainSuffix.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAmD;AAEnD,IAAM,oBAAoB,GAAG,UAAC,OAAY;IACxC,IAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAE3C,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC;AACK,IAAM,uBAAuB,GAAG,UAAO,MAA4B;;;;;gBAUlE,gBAAgB,GAAG,4BAA4B,CAAC;gBAEhD,SAAS,GAAG,IAAI,oBAAc,EAAE,CAAA;gBAChC,MAAM,GAAG,mBAAY,MAAM,CAAC,SAAS,wBAAc,MAAM,CAAC,MAAM,CAAE,CAAA;gBAE9C,qBAAM,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,QAAA,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAA;;gBAAjG,eAAe,GAAI,CAAA,SAA8E,CAAA,GAAlF;gBAEtB,IAAI,eAAe,EAAE;
|
|
1
|
+
{"version":3,"file":"getCloudRunDomainSuffix.js","sourceRoot":"","sources":["../../../src/gcloud/cloudRun/getCloudRunDomainSuffix.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAmD;AAEnD,IAAM,oBAAoB,GAAG,UAAC,OAAY;IACxC,IAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAE3C,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC;AACK,IAAM,uBAAuB,GAAG,UAAO,MAA4B;;;;;gBAUlE,gBAAgB,GAAG,4BAA4B,CAAC;gBAEhD,SAAS,GAAG,IAAI,oBAAc,EAAE,CAAA;gBAChC,MAAM,GAAG,mBAAY,MAAM,CAAC,SAAS,wBAAc,MAAM,CAAC,MAAM,CAAE,CAAA;gBAE9C,qBAAM,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,QAAA,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAA;;gBAAjG,eAAe,GAAI,CAAA,SAA8E,CAAA,GAAlF;gBAEtB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9B,sBAAO,oBAAoB,CAAC,eAAe,CAAC,EAAC;iBAC9C;gBAE+B,qBAAM,SAAS,CAAC,aAAa,CAAC;wBAC5D,MAAM,QAAA;wBACN,SAAS,EAAE,gBAAgB;wBAC3B,OAAO,EAAE;4BACP,QAAQ,EAAE;gCACR,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;6BACtE;yBACF;qBACF,CAAC,EAAA;;gBARK,qBAAqB,GAAI,CAAA,SAQ9B,CAAA,GAR0B;gBASL,qBAAM,qBAAqB,CAAC,OAAO,EAAE,EAAA;;gBAArD,YAAY,GAAI,CAAA,SAAqC,CAAA,GAAzC;gBAEO,qBAAM,SAAS,CAAC,aAAa,CAAC;wBACtD,IAAI,EAAE,YAAY,CAAC,IAAI;qBACxB,CAAC,EAAA;;gBAFK,eAAe,GAAI,CAAA,SAExB,CAAA,GAFoB;gBAGtB,qBAAM,eAAe,CAAC,OAAO,EAAE,EAAA;;gBAA/B,SAA+B,CAAA;gBAExB,qBAAM,oBAAoB,CAAC,YAAY,CAAC,EAAA;oBAA/C,sBAAO,SAAwC,EAAC;;;KACjD,CAAC;AAtCW,QAAA,uBAAuB,2BAsClC"}
|
|
@@ -39,25 +39,35 @@ exports.__esModule = true;
|
|
|
39
39
|
exports.enableGCloudServices = void 0;
|
|
40
40
|
var googleapis_1 = require("googleapis");
|
|
41
41
|
var enableGCloudServices = function (services, config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
42
|
-
var _i, services_1, service;
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
var gcloudAuth, _a, _b, _i, services_1, service;
|
|
43
|
+
var _c;
|
|
44
|
+
return __generator(this, function (_d) {
|
|
45
|
+
switch (_d.label) {
|
|
45
46
|
case 0:
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
gcloudAuth = new googleapis_1.google.auth.GoogleAuth({
|
|
48
|
+
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
|
|
49
|
+
projectId: config.projectId
|
|
50
|
+
});
|
|
51
|
+
_b = (_a = googleapis_1.google).options;
|
|
52
|
+
_c = {};
|
|
53
|
+
return [4 /*yield*/, gcloudAuth.getClient()];
|
|
48
54
|
case 1:
|
|
49
|
-
|
|
55
|
+
_b.apply(_a, [(_c.auth = _d.sent(), _c)]);
|
|
56
|
+
_i = 0, services_1 = services;
|
|
57
|
+
_d.label = 2;
|
|
58
|
+
case 2:
|
|
59
|
+
if (!(_i < services_1.length)) return [3 /*break*/, 5];
|
|
50
60
|
service = services_1[_i];
|
|
51
61
|
return [4 /*yield*/, googleapis_1.google.serviceusage({ version: 'v1' }).services.enable({
|
|
52
62
|
name: "projects/".concat(config.projectId, "/services/").concat(service)
|
|
53
63
|
})];
|
|
54
|
-
case 2:
|
|
55
|
-
_a.sent();
|
|
56
|
-
_a.label = 3;
|
|
57
64
|
case 3:
|
|
65
|
+
_d.sent();
|
|
66
|
+
_d.label = 4;
|
|
67
|
+
case 4:
|
|
58
68
|
_i++;
|
|
59
|
-
return [3 /*break*/,
|
|
60
|
-
case
|
|
69
|
+
return [3 /*break*/, 2];
|
|
70
|
+
case 5: return [2 /*return*/];
|
|
61
71
|
}
|
|
62
72
|
});
|
|
63
73
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableServices.js","sourceRoot":"","sources":["../../src/gcloud/enableServices.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AAE7B,IAAM,oBAAoB,GAAG,UAClC,QAAkB,EAClB,MAEC
|
|
1
|
+
{"version":3,"file":"enableServices.js","sourceRoot":"","sources":["../../src/gcloud/enableServices.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AAE7B,IAAM,oBAAoB,GAAG,UAClC,QAAkB,EAClB,MAEC;;;;;;gBAEK,UAAU,GAAG,IAAI,mBAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC5C,MAAM,EAAE,CAAC,gDAAgD,CAAC;oBAC1D,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;gBACH,KAAA,CAAA,KAAA,mBAAM,CAAA,CAAC,OAAO,CAAA;;gBAAS,qBAAM,UAAU,CAAC,SAAS,EAAE,EAAA;;gBAAnD,eAAiB,OAAI,GAAE,SAA4B,OAAG,CAAA;sBAExB,EAAR,qBAAQ;;;qBAAR,CAAA,sBAAQ,CAAA;gBAAnB,OAAO;gBAChB,qBAAM,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC3D,IAAI,EAAE,mBAAY,MAAM,CAAC,SAAS,uBAAa,OAAO,CAAE;qBACzD,CAAC,EAAA;;gBAFF,SAEE,CAAA;;;gBAHkB,IAAQ,CAAA;;;;;KAK/B,CAAC;AAjBW,QAAA,oBAAoB,wBAiB/B"}
|
|
@@ -46,6 +46,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
50
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
51
|
+
if (ar || !(i in from)) {
|
|
52
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
53
|
+
ar[i] = from[i];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
57
|
+
};
|
|
49
58
|
exports.__esModule = true;
|
|
50
59
|
exports.upsertGcloudServiceAccountAndSaveSecret = exports.accountExists = void 0;
|
|
51
60
|
var googleapis_1 = require("googleapis");
|
|
@@ -71,10 +80,11 @@ var accountExists = function (client, projectId, fullPath) { return __awaiter(vo
|
|
|
71
80
|
}); };
|
|
72
81
|
exports.accountExists = accountExists;
|
|
73
82
|
var upsertGcloudServiceAccount = function (context, account) { return __awaiter(void 0, void 0, void 0, function () {
|
|
74
|
-
var projectId, name, displayName, roles, description, namePrefix, nameSuffix, nameMiddleLength, nameMiddle, middle, fullName, fullDisplayName, fullIdentifier, fullPath, gcloudIamClient, gcloudProjectsClient, gcloudAuth, _a, _b, existing, memberName, projectIamPolicy, currentBindings, bindings, keylist,
|
|
75
|
-
var
|
|
76
|
-
|
|
77
|
-
|
|
83
|
+
var projectId, name, displayName, roles, description, namePrefix, nameSuffix, nameMiddleLength, nameMiddle, middle, fullName, fullDisplayName, fullIdentifier, fullPath, gcloudIamClient, gcloudProjectsClient, gcloudAuth, _a, _b, existing, memberName, projectIamPolicy, currentBindings, bindings, keylist, key;
|
|
84
|
+
var _c;
|
|
85
|
+
var _d, _e;
|
|
86
|
+
return __generator(this, function (_f) {
|
|
87
|
+
switch (_f.label) {
|
|
78
88
|
case 0:
|
|
79
89
|
projectId = account.projectId, name = account.name, displayName = account.displayName, roles = account.roles, description = account.description;
|
|
80
90
|
namePrefix = "".concat(name, "-");
|
|
@@ -93,13 +103,13 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
|
|
|
93
103
|
projectId: projectId
|
|
94
104
|
});
|
|
95
105
|
_b = (_a = googleapis_1.google).options;
|
|
96
|
-
|
|
106
|
+
_c = {};
|
|
97
107
|
return [4 /*yield*/, gcloudAuth.getClient()];
|
|
98
108
|
case 1:
|
|
99
|
-
_b.apply(_a, [(
|
|
109
|
+
_b.apply(_a, [(_c.auth = _f.sent(), _c)]);
|
|
100
110
|
return [4 /*yield*/, (0, exports.accountExists)(gcloudIamClient, projectId, fullPath)];
|
|
101
111
|
case 2:
|
|
102
|
-
existing =
|
|
112
|
+
existing = _f.sent();
|
|
103
113
|
if (!!existing) return [3 /*break*/, 4];
|
|
104
114
|
return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.create({
|
|
105
115
|
name: gcloudProjectsClient.projectPath(projectId),
|
|
@@ -112,23 +122,23 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
|
|
|
112
122
|
}
|
|
113
123
|
})];
|
|
114
124
|
case 3:
|
|
115
|
-
|
|
116
|
-
|
|
125
|
+
_f.sent();
|
|
126
|
+
_f.label = 4;
|
|
117
127
|
case 4:
|
|
118
128
|
memberName = "serviceAccount:".concat(fullIdentifier);
|
|
119
129
|
return [4 /*yield*/, gcloudProjectsClient.getIamPolicy({ resource: gcloudProjectsClient.projectPath(projectId) })];
|
|
120
130
|
case 5:
|
|
121
|
-
projectIamPolicy = (
|
|
131
|
+
projectIamPolicy = (_f.sent())[0];
|
|
122
132
|
currentBindings = projectIamPolicy.bindings;
|
|
123
133
|
bindings = currentBindings.map(function (binding) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
? __assign(__assign({}, binding), { members: binding.members.concat([memberName]) }) : binding;
|
|
134
|
+
return (roles.includes(binding.role) && !binding.members.includes(memberName))
|
|
135
|
+
? __assign(__assign({}, binding), { members: __spreadArray(__spreadArray([], binding.members, true), [memberName], false) }) : binding;
|
|
127
136
|
}).concat(roles.filter(function (r) { return !currentBindings.map(function (b) { return b.role; }).includes(r); }).map(function (newRole) { return ({
|
|
128
137
|
role: newRole,
|
|
129
138
|
members: [memberName]
|
|
130
139
|
}); }));
|
|
131
140
|
return [4 /*yield*/, gcloudProjectsClient.setIamPolicy({
|
|
141
|
+
resource: gcloudProjectsClient.projectPath(projectId),
|
|
132
142
|
policy: {
|
|
133
143
|
bindings: bindings,
|
|
134
144
|
etag: projectIamPolicy.etag
|
|
@@ -138,29 +148,23 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
|
|
|
138
148
|
// delete first all keys
|
|
139
149
|
];
|
|
140
150
|
case 6:
|
|
141
|
-
|
|
151
|
+
_f.sent();
|
|
142
152
|
return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.list({
|
|
143
153
|
name: fullPath,
|
|
144
154
|
keyTypes: ['USER_MANAGED']
|
|
145
155
|
})];
|
|
146
156
|
case 7:
|
|
147
|
-
keylist =
|
|
148
|
-
|
|
149
|
-
|
|
157
|
+
keylist = _f.sent();
|
|
158
|
+
(_e = (_d = keylist.data) === null || _d === void 0 ? void 0 : _d.keys) === null || _e === void 0 ? void 0 : _e.map(function (key) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
159
|
+
switch (_a.label) {
|
|
160
|
+
case 0: return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys["delete"]({ name: key.name })];
|
|
161
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
162
|
+
}
|
|
163
|
+
}); }); });
|
|
164
|
+
return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.create({ name: fullPath })];
|
|
150
165
|
case 8:
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys["delete"]({ name: key_1.name })];
|
|
154
|
-
case 9:
|
|
155
|
-
_e.sent();
|
|
156
|
-
_e.label = 10;
|
|
157
|
-
case 10:
|
|
158
|
-
_i++;
|
|
159
|
-
return [3 /*break*/, 8];
|
|
160
|
-
case 11: return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.create({ name: fullPath })];
|
|
161
|
-
case 12:
|
|
162
|
-
key = _e.sent();
|
|
163
|
-
return [2 /*return*/, key.data.privateKeyData];
|
|
166
|
+
key = _f.sent();
|
|
167
|
+
return [2 /*return*/, Buffer.from(key.data.privateKeyData, "base64").toString("utf-8")];
|
|
164
168
|
}
|
|
165
169
|
});
|
|
166
170
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceAccounts.js","sourceRoot":"","sources":["../../src/gcloud/serviceAccounts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serviceAccounts.js","sourceRoot":"","sources":["../../src/gcloud/serviceAccounts.ts"],"names":[],"mappings":"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"}
|