@or-sdk/permissions-cli 1.0.1-beta.3274.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 +27 -0
- package/dist/index.js +97 -0
- package/dist/index.js.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +27 -0
- package/scripts/generate-version.js +8 -0
- package/src/index.ts +57 -0
- package/src/version.ts +1 -0
- package/test.yaml +7 -0
- package/tsconfig.json +7 -0
package/README.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# @or-sdk/permissions-cli
|
|
2
|
+
|
|
3
|
+
CLI tool for managing permissions through permissions API.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
Set required environment variables:
|
|
7
|
+
|
|
8
|
+
```sh
|
|
9
|
+
export TOKEN="your-service-token"
|
|
10
|
+
export PERMISSIONS_API_URL="your-permissions-api-url"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Upload permission schema
|
|
14
|
+
```sh
|
|
15
|
+
npx permissions-cli upsert path/to/your/permissions.yaml
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Example permissions.yaml
|
|
19
|
+
```yaml
|
|
20
|
+
service: customer-portal-ui
|
|
21
|
+
serviceLabel: Customer Care Portal UI
|
|
22
|
+
permissions:
|
|
23
|
+
- name: view
|
|
24
|
+
description: Let user view Customer Care Portal UI
|
|
25
|
+
default_effect: false
|
|
26
|
+
metadata: {}
|
|
27
|
+
```
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
13
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
14
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
15
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
16
|
+
function step(op) {
|
|
17
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
18
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
19
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
20
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
21
|
+
switch (op[0]) {
|
|
22
|
+
case 0: case 1: t = op; break;
|
|
23
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
24
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
25
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
26
|
+
default:
|
|
27
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
28
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
29
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
30
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
31
|
+
if (t[2]) _.ops.pop();
|
|
32
|
+
_.trys.pop(); continue;
|
|
33
|
+
}
|
|
34
|
+
op = body.call(thisArg, _);
|
|
35
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
36
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
var permissions_1 = require("@or-sdk/permissions");
|
|
44
|
+
var commander_1 = require("commander");
|
|
45
|
+
var fs_1 = __importDefault(require("fs"));
|
|
46
|
+
var path_1 = __importDefault(require("path"));
|
|
47
|
+
var yaml_1 = require("yaml");
|
|
48
|
+
var version_1 = require("./version");
|
|
49
|
+
var program = new commander_1.Command();
|
|
50
|
+
function upsertPermissions(schemaPath) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
52
|
+
var config, permissions, yamlPath, yamlContent, data, error_1;
|
|
53
|
+
return __generator(this, function (_a) {
|
|
54
|
+
switch (_a.label) {
|
|
55
|
+
case 0:
|
|
56
|
+
_a.trys.push([0, 2, , 3]);
|
|
57
|
+
console.log('Upserting permissions.');
|
|
58
|
+
config = {
|
|
59
|
+
token: process.env.TOKEN,
|
|
60
|
+
permissionsUrl: process.env.PERMISSIONS_API_URL,
|
|
61
|
+
};
|
|
62
|
+
if (!config.token || !config.permissionsUrl) {
|
|
63
|
+
console.error('Error: Required environment variables are not set');
|
|
64
|
+
console.error('Please provide:');
|
|
65
|
+
console.error('export TOKEN="service-token"');
|
|
66
|
+
console.error('export PERMISSIONS_API_URL="permissions-api-url"');
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
permissions = new permissions_1.Permissions(config);
|
|
70
|
+
yamlPath = path_1.default.resolve(schemaPath);
|
|
71
|
+
yamlContent = fs_1.default.readFileSync(yamlPath, 'utf-8');
|
|
72
|
+
data = (0, yaml_1.parse)(yamlContent);
|
|
73
|
+
return [4, permissions.registerService(data)];
|
|
74
|
+
case 1:
|
|
75
|
+
_a.sent();
|
|
76
|
+
console.log('Permissions upserted.');
|
|
77
|
+
return [3, 3];
|
|
78
|
+
case 2:
|
|
79
|
+
error_1 = _a.sent();
|
|
80
|
+
console.error('Error:', error_1);
|
|
81
|
+
process.exit(1);
|
|
82
|
+
return [3, 3];
|
|
83
|
+
case 3: return [2];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
program
|
|
89
|
+
.name('permissions-cli')
|
|
90
|
+
.description('CLI tool for managing service permissions')
|
|
91
|
+
.version(version_1.VERSION);
|
|
92
|
+
program
|
|
93
|
+
.command('upsert <schemaPath>')
|
|
94
|
+
.description('Upsert permissions scope to permissions-api from YAML schema')
|
|
95
|
+
.action(upsertPermissions);
|
|
96
|
+
program.parse(process.argv);
|
|
97
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,mDAAqE;AACrE,uCAAoC;AACpC,0CAAoB;AACpB,8CAAwB;AACxB,6BAA6B;AAE7B,qCAAoC;AAEpC,IAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,SAAe,iBAAiB,CAAC,UAAkB;;;;;;;oBAG/C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;oBAEhC,MAAM,GAA+B;wBACzC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;wBACxB,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;qBAChD,CAAC;oBAEF,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;wBAC5C,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;wBACnE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;wBACjC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;wBAC9C,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;wBAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAEK,WAAW,GAAG,IAAI,yBAAW,CAAC,MAA2B,CAAC,CAAC;oBAE3D,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBACpC,WAAW,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACjD,IAAI,GAAG,IAAA,YAAK,EAAC,WAAW,CAAC,CAAC;oBAEhC,WAAM,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,EAAA;;oBAAvC,SAAuC,CAAC;oBAGxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;;;;oBAErC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAK,CAAC,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;CAEnB;AAED,OAAO;KACJ,IAAI,CAAC,iBAAiB,CAAC;KACvB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,iBAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE7B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,mBAAmB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@or-sdk/permissions-cli",
|
|
3
|
+
"version": "1.0.1-beta.3274.0",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"bin": {
|
|
6
|
+
"permissions-cli": "./dist/cjs/index.js"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"prebuild": "node scripts/generate-version.js",
|
|
10
|
+
"build": "pnpm clean && tsc --project tsconfig.json",
|
|
11
|
+
"build:watch": "tsc --project tsconfig.json -w",
|
|
12
|
+
"clean": "rm -rf ./dist",
|
|
13
|
+
"dev": "pnpm build:watch"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@or-sdk/permissions": "1.1.1-beta.3270.0",
|
|
17
|
+
"commander": "13.0.0",
|
|
18
|
+
"yaml": "2.7.0"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"concurrently": "9.0.1",
|
|
22
|
+
"typescript": "5.6.2"
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
}
|
|
27
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { Permissions, PermissionsConfig } from '@or-sdk/permissions';
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import fs from 'fs';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import { parse } from 'yaml';
|
|
8
|
+
|
|
9
|
+
import { VERSION } from './version';
|
|
10
|
+
|
|
11
|
+
const program = new Command();
|
|
12
|
+
|
|
13
|
+
async function upsertPermissions(schemaPath: string) {
|
|
14
|
+
try {
|
|
15
|
+
// eslint-disable-next-line no-console
|
|
16
|
+
console.log('Upserting permissions.');
|
|
17
|
+
|
|
18
|
+
const config: Partial<PermissionsConfig> = {
|
|
19
|
+
token: process.env.TOKEN,
|
|
20
|
+
permissionsUrl: process.env.PERMISSIONS_API_URL,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
if (!config.token || !config.permissionsUrl) {
|
|
24
|
+
console.error('Error: Required environment variables are not set');
|
|
25
|
+
console.error('Please provide:');
|
|
26
|
+
console.error('export TOKEN="service-token"');
|
|
27
|
+
console.error('export PERMISSIONS_API_URL="permissions-api-url"');
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const permissions = new Permissions(config as PermissionsConfig);
|
|
32
|
+
|
|
33
|
+
const yamlPath = path.resolve(schemaPath);
|
|
34
|
+
const yamlContent = fs.readFileSync(yamlPath, 'utf-8');
|
|
35
|
+
const data = parse(yamlContent);
|
|
36
|
+
|
|
37
|
+
await permissions.registerService(data);
|
|
38
|
+
|
|
39
|
+
// eslint-disable-next-line no-console
|
|
40
|
+
console.log('Permissions upserted.');
|
|
41
|
+
} catch (error) {
|
|
42
|
+
console.error('Error:', error);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
program
|
|
48
|
+
.name('permissions-cli')
|
|
49
|
+
.description('CLI tool for managing service permissions')
|
|
50
|
+
.version(VERSION);
|
|
51
|
+
|
|
52
|
+
program
|
|
53
|
+
.command('upsert <schemaPath>')
|
|
54
|
+
.description('Upsert permissions scope to permissions-api from YAML schema')
|
|
55
|
+
.action(upsertPermissions);
|
|
56
|
+
|
|
57
|
+
program.parse(process.argv);
|
package/src/version.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const VERSION = '1.0.1-beta.3274.0';
|
package/test.yaml
ADDED