k2hr3-api 1.0.41 → 2.0.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/config/k2hr3-init.sh.templ +2 -2
- package/dist/.gitkeep +0 -0
- package/dist/src/app.js +262 -0
- package/{bin → dist/src/bin}/run.sh +1 -1
- package/dist/src/bin/watcher.js +113 -0
- package/dist/src/bin/www.js +217 -0
- package/dist/src/lib/basicipcheck.js +392 -0
- package/dist/src/lib/cacerts.js +106 -0
- package/dist/src/lib/dbglogging.js +190 -0
- package/dist/src/lib/dummyuserapi.js +719 -0
- package/dist/src/lib/ipwatch.js +354 -0
- package/dist/src/lib/k2hr3acrutil.js +532 -0
- package/dist/src/lib/k2hr3apiutil.js +1444 -0
- package/dist/src/lib/k2hr3cliutil.js +183 -0
- package/dist/src/lib/k2hr3config.js +832 -0
- package/dist/src/lib/k2hr3cryptutil.js +258 -0
- package/dist/src/lib/k2hr3dkc.js +12121 -0
- package/dist/src/lib/k2hr3extdata.js +198 -0
- package/dist/src/lib/k2hr3keys.js +207 -0
- package/dist/src/lib/k2hr3resutil.js +111 -0
- package/dist/src/lib/k2hr3template.js +6546 -0
- package/dist/src/lib/k2hr3tokens.js +2643 -0
- package/dist/src/lib/k2hr3userdata.js +296 -0
- package/dist/src/lib/k8soidc.js +1000 -0
- package/dist/src/lib/openstackapiv2.js +695 -0
- package/dist/src/lib/openstackapiv3.js +932 -0
- package/dist/src/lib/openstackep.js +667 -0
- package/{tests/auto_common.js → dist/src/lib/types.js} +4 -38
- package/dist/src/routes/acr.js +704 -0
- package/dist/src/routes/debugVerify.js +294 -0
- package/dist/src/routes/extdata.js +219 -0
- package/dist/src/routes/list.js +264 -0
- package/dist/src/routes/policy.js +840 -0
- package/dist/src/routes/resource.js +1489 -0
- package/dist/src/routes/role.js +2627 -0
- package/dist/src/routes/service.js +908 -0
- package/dist/src/routes/tenant.js +1141 -0
- package/dist/src/routes/userTokens.js +482 -0
- package/dist/src/routes/userdata.js +212 -0
- package/dist/src/routes/version.js +103 -0
- package/package.json +152 -121
- package/ChangeLog +0 -372
- package/app.js +0 -292
- package/bin/watcher +0 -122
- package/bin/www +0 -180
- package/eslint.config.mjs +0 -68
- package/lib/basicipcheck.js +0 -376
- package/lib/cacerts.js +0 -71
- package/lib/dbglogging.js +0 -151
- package/lib/dummyuserapi.js +0 -766
- package/lib/ipwatch.js +0 -379
- package/lib/k2hr3acrutil.js +0 -516
- package/lib/k2hr3apiutil.js +0 -1494
- package/lib/k2hr3cliutil.js +0 -191
- package/lib/k2hr3config.js +0 -826
- package/lib/k2hr3cryptutil.js +0 -254
- package/lib/k2hr3dkc.js +0 -12632
- package/lib/k2hr3extdata.js +0 -198
- package/lib/k2hr3keys.js +0 -234
- package/lib/k2hr3resutil.js +0 -100
- package/lib/k2hr3template.js +0 -6925
- package/lib/k2hr3tokens.js +0 -2799
- package/lib/k2hr3userdata.js +0 -312
- package/lib/k8soidc.js +0 -1012
- package/lib/openstackapiv2.js +0 -764
- package/lib/openstackapiv3.js +0 -1032
- package/lib/openstackep.js +0 -553
- package/routes/acr.js +0 -738
- package/routes/debugVerify.js +0 -263
- package/routes/extdata.js +0 -232
- package/routes/list.js +0 -270
- package/routes/policy.js +0 -869
- package/routes/resource.js +0 -1441
- package/routes/role.js +0 -2664
- package/routes/service.js +0 -894
- package/routes/tenant.js +0 -1095
- package/routes/userTokens.js +0 -511
- package/routes/userdata.js +0 -218
- package/routes/version.js +0 -108
- package/templ/Dockerfile.templ +0 -71
- package/tests/auto_acr.js +0 -1101
- package/tests/auto_acr_spec.js +0 -79
- package/tests/auto_all_spec.js +0 -142
- package/tests/auto_control_subprocess.sh +0 -243
- package/tests/auto_extdata.js +0 -220
- package/tests/auto_extdata_spec.js +0 -79
- package/tests/auto_init_config_json.sh +0 -275
- package/tests/auto_k2hdkc_server.ini +0 -109
- package/tests/auto_k2hdkc_slave.ini +0 -83
- package/tests/auto_list.js +0 -439
- package/tests/auto_list_spec.js +0 -79
- package/tests/auto_policy.js +0 -1579
- package/tests/auto_policy_spec.js +0 -79
- package/tests/auto_resource.js +0 -10956
- package/tests/auto_resource_spec.js +0 -79
- package/tests/auto_role.js +0 -6150
- package/tests/auto_role_spec.js +0 -79
- package/tests/auto_service.js +0 -770
- package/tests/auto_service_spec.js +0 -79
- package/tests/auto_subprocesses.js +0 -114
- package/tests/auto_template.sh +0 -126
- package/tests/auto_tenant.js +0 -1100
- package/tests/auto_tenant_spec.js +0 -79
- package/tests/auto_token_util.js +0 -219
- package/tests/auto_userdata.js +0 -292
- package/tests/auto_userdata_spec.js +0 -79
- package/tests/auto_usertokens.js +0 -565
- package/tests/auto_usertokens_spec.js +0 -79
- package/tests/auto_version.js +0 -127
- package/tests/auto_version_spec.js +0 -79
- package/tests/auto_watcher.js +0 -157
- package/tests/auto_watcher_spec.js +0 -79
- package/tests/k2hdkc_test.data +0 -986
- package/tests/k2hdkc_test_load.sh +0 -255
- package/tests/k2hr3template_test.js +0 -187
- package/tests/k2hr3template_test.sh +0 -339
- package/tests/k2hr3template_test_async.js +0 -216
- package/tests/k2hr3template_test_template.result +0 -7117
- package/tests/k2hr3template_test_template.txt +0 -3608
- package/tests/k2hr3template_test_vars.js +0 -194
- package/tests/manual_acr_delete.js +0 -143
- package/tests/manual_acr_get.js +0 -297
- package/tests/manual_acr_postput.js +0 -215
- package/tests/manual_allusertenant_get.js +0 -113
- package/tests/manual_extdata_get.js +0 -191
- package/tests/manual_k2hr3keys_get.js +0 -84
- package/tests/manual_list_gethead.js +0 -230
- package/tests/manual_policy_delete.js +0 -132
- package/tests/manual_policy_gethead.js +0 -275
- package/tests/manual_policy_postput.js +0 -297
- package/tests/manual_resource_delete.js +0 -433
- package/tests/manual_resource_gethead.js +0 -423
- package/tests/manual_resource_postput.js +0 -487
- package/tests/manual_role_delete.js +0 -404
- package/tests/manual_role_gethead.js +0 -547
- package/tests/manual_role_postput.js +0 -544
- package/tests/manual_service_delete.js +0 -153
- package/tests/manual_service_gethead.js +0 -178
- package/tests/manual_service_postput.js +0 -348
- package/tests/manual_tenant_delete.js +0 -186
- package/tests/manual_tenant_gethead.js +0 -268
- package/tests/manual_tenant_postput.js +0 -293
- package/tests/manual_test.sh +0 -352
- package/tests/manual_userdata_get.js +0 -173
- package/tests/manual_usertoken_gethead.js +0 -136
- package/tests/manual_usertoken_postput.js +0 -310
- package/tests/manual_version_get.js +0 -127
- package/tests/run_local_test_k2hdkc.sh +0 -174
- package/tests/test.sh +0 -333
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* K2HR3 REST API
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2017 Yahoo Japan Corporation.
|
|
6
|
+
*
|
|
7
|
+
* K2HR3 is K2hdkc based Resource and Roles and policy Rules, gathers
|
|
8
|
+
* common management information for the cloud.
|
|
9
|
+
* K2HR3 can dynamically manage information as "who", "what", "operate".
|
|
10
|
+
* These are stored as roles, resources, policies in K2hdkc, and the
|
|
11
|
+
* client system can dynamically read and modify these information.
|
|
12
|
+
*
|
|
13
|
+
* For the full copyright and license information, please view
|
|
14
|
+
* the license file that was distributed with this source code.
|
|
15
|
+
*
|
|
16
|
+
* AUTHOR: Takeshi Nakatani
|
|
17
|
+
* CREATE: Wed Jun 8 2017
|
|
18
|
+
* REVISION:
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.k2hr3cliutil = void 0;
|
|
26
|
+
const k2hr3apiutil_1 = __importDefault(require("./k2hr3apiutil"));
|
|
27
|
+
//
|
|
28
|
+
// helper function for input
|
|
29
|
+
//
|
|
30
|
+
const rawGetConsoleInput = (prompt, isecho, ismultiline, callback) => {
|
|
31
|
+
if (!k2hr3apiutil_1.default.isSafeEntity(prompt)) {
|
|
32
|
+
prompt = 'Input: ';
|
|
33
|
+
}
|
|
34
|
+
if (k2hr3apiutil_1.default.isSafeString(prompt)) {
|
|
35
|
+
process.stdout.write(prompt);
|
|
36
|
+
}
|
|
37
|
+
const _callback = callback;
|
|
38
|
+
const stdin = process.stdin;
|
|
39
|
+
stdin.resume();
|
|
40
|
+
stdin.setRawMode(true);
|
|
41
|
+
stdin.resume();
|
|
42
|
+
stdin.setEncoding('utf8');
|
|
43
|
+
let indata = '';
|
|
44
|
+
stdin.on('data', (ch) => {
|
|
45
|
+
switch (ch) {
|
|
46
|
+
case '\n':
|
|
47
|
+
case '\r':
|
|
48
|
+
case '\u0004':
|
|
49
|
+
if (ismultiline) {
|
|
50
|
+
if ('\u0004' !== ch) {
|
|
51
|
+
// not break, now is multi line mode
|
|
52
|
+
process.stdout.write('\n');
|
|
53
|
+
indata += '\n';
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// stop input normally on multi line mode
|
|
57
|
+
stdin.setRawMode(false);
|
|
58
|
+
stdin.pause();
|
|
59
|
+
stdin.removeAllListeners('data');
|
|
60
|
+
_callback(false, indata);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// They've finished typing their indata
|
|
65
|
+
process.stdout.write('\n');
|
|
66
|
+
stdin.setRawMode(false);
|
|
67
|
+
stdin.pause();
|
|
68
|
+
stdin.removeAllListeners('data');
|
|
69
|
+
_callback(false, indata);
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
case '\u0003':
|
|
73
|
+
// Ctrl-C
|
|
74
|
+
stdin.removeAllListeners('data');
|
|
75
|
+
_callback(true);
|
|
76
|
+
break;
|
|
77
|
+
case '\b':
|
|
78
|
+
// Backspace
|
|
79
|
+
if (0 < indata.length) {
|
|
80
|
+
process.stdout.write(ch);
|
|
81
|
+
process.stdout.write(' '); // clear
|
|
82
|
+
process.stdout.write(ch);
|
|
83
|
+
indata = indata.substr(0, indata.length - 1);
|
|
84
|
+
}
|
|
85
|
+
break;
|
|
86
|
+
default:
|
|
87
|
+
// More characters
|
|
88
|
+
if (isecho) {
|
|
89
|
+
process.stdout.write(ch);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
process.stdout.write('*');
|
|
93
|
+
}
|
|
94
|
+
indata += ch;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
//
|
|
100
|
+
// Utility for inputting object data
|
|
101
|
+
//
|
|
102
|
+
const rawInputObjectData = (is_string, callback) => {
|
|
103
|
+
const _callback = callback;
|
|
104
|
+
if (is_string) {
|
|
105
|
+
rawGetConsoleInput(' data(string type is multiline: Ctrl-D for break) : \n', true, true, (isbreak, data) => {
|
|
106
|
+
if (isbreak) {
|
|
107
|
+
_callback(true);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
// [NOTE]
|
|
111
|
+
// if data is string, but the data has CR code = '\n'
|
|
112
|
+
//
|
|
113
|
+
_callback(false, data);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
rawGetConsoleInput(' input object type(json or multiline) : ', true, false, (isbreak, type) => {
|
|
118
|
+
if (isbreak) {
|
|
119
|
+
_callback(true);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (k2hr3apiutil_1.default.compareCaseString('json', type) || k2hr3apiutil_1.default.compareCaseString('object', type)) {
|
|
123
|
+
rawGetConsoleInput(' object json string : ', true, false, (isbreak, data) => {
|
|
124
|
+
if (isbreak) {
|
|
125
|
+
_callback(true);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
_callback(false, data);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
else if (k2hr3apiutil_1.default.compareCaseString('multiline', type)) {
|
|
132
|
+
rawGetConsoleInput(' object multi line like codes : \n', true, true, (isbreak, data) => {
|
|
133
|
+
if (isbreak) {
|
|
134
|
+
_callback(true);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
// [NOTE]
|
|
138
|
+
// data has CR codes, so we need to convert object and to normal JSON.
|
|
139
|
+
//
|
|
140
|
+
const _data = JSON.parse(data ?? '');
|
|
141
|
+
if (!k2hr3apiutil_1.default.isSafeEntity(_data)) {
|
|
142
|
+
console.log('input object multi line data is wrong : ' + JSON.stringify(data));
|
|
143
|
+
_callback(true);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const _strdata = JSON.stringify(_data);
|
|
147
|
+
if (!k2hr3apiutil_1.default.isSafeEntity(_strdata)) {
|
|
148
|
+
console.log('input object multi line data is wrong : ' + JSON.stringify(data));
|
|
149
|
+
_callback(true);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
_callback(false, _strdata);
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
console.log('input object type must be JSON or MULTILINE : ' + type);
|
|
157
|
+
_callback(true);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
//---------------------------------------------------------
|
|
163
|
+
// Exports
|
|
164
|
+
//---------------------------------------------------------
|
|
165
|
+
//
|
|
166
|
+
// Functions
|
|
167
|
+
//
|
|
168
|
+
exports.k2hr3cliutil = {
|
|
169
|
+
getConsoleInput: rawGetConsoleInput,
|
|
170
|
+
inputObjectData: rawInputObjectData
|
|
171
|
+
};
|
|
172
|
+
//
|
|
173
|
+
// Default
|
|
174
|
+
//
|
|
175
|
+
exports.default = exports.k2hr3cliutil;
|
|
176
|
+
/*
|
|
177
|
+
* Local variables:
|
|
178
|
+
* tab-width: 4
|
|
179
|
+
* c-basic-offset: 4
|
|
180
|
+
* End:
|
|
181
|
+
* vim600: noexpandtab sw=4 ts=4 fdm=marker
|
|
182
|
+
* vim<600: noexpandtab sw=4 ts=4
|
|
183
|
+
*/
|