@osaas/cli 4.9.0 → 4.10.1
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/web/cmd.d.ts.map +1 -1
- package/dist/web/cmd.js +62 -0
- package/dist/web/cmd.js.map +1 -1
- package/package.json +5 -5
- package/readme.md +15 -0
- package/src/web/cmd.ts +115 -1
package/dist/web/cmd.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../src/web/cmd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../src/web/cmd.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,MAAM,YA4MrB"}
|
package/dist/web/cmd.js
CHANGED
|
@@ -59,6 +59,68 @@ function cmdWeb() {
|
|
|
59
59
|
console.log(err.message);
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
|
+
web
|
|
63
|
+
.command('config-create')
|
|
64
|
+
.description('Create a configuration service instance')
|
|
65
|
+
.argument('<name>', 'Name of the configuration service instance')
|
|
66
|
+
.action(async (name, options, command) => {
|
|
67
|
+
try {
|
|
68
|
+
const globalOpts = command.optsWithGlobals();
|
|
69
|
+
const environment = globalOpts?.env || 'prod';
|
|
70
|
+
const ctx = new client_core_1.Context({ environment });
|
|
71
|
+
const configToken = await ctx.getServiceAccessToken('eyevinn-app-config-svc');
|
|
72
|
+
let configInstance = await (0, client_core_1.getInstance)(ctx, 'eyevinn-app-config-svc', name, configToken);
|
|
73
|
+
if (!configInstance) {
|
|
74
|
+
const valkeyToken = await ctx.getServiceAccessToken('valkey-io-valkey');
|
|
75
|
+
let valkeyInstance = await (0, client_core_1.getInstance)(ctx, 'valkey-io-valkey', name, valkeyToken);
|
|
76
|
+
if (!valkeyInstance) {
|
|
77
|
+
valkeyInstance = await (0, client_core_1.createInstance)(ctx, 'valkey-io-valkey', valkeyToken, {
|
|
78
|
+
name
|
|
79
|
+
});
|
|
80
|
+
await (0, client_core_1.waitForInstanceReady)('valkey-io-valkey', name, ctx);
|
|
81
|
+
}
|
|
82
|
+
const ports = await (0, client_core_1.getPortsForInstance)(ctx, 'valkey-io-valkey', name, valkeyToken);
|
|
83
|
+
const redisPort = ports.find((port) => port.internalPort == 6379);
|
|
84
|
+
if (!redisPort) {
|
|
85
|
+
throw new Error(`Failed to get redis port for instance ${name}`);
|
|
86
|
+
}
|
|
87
|
+
configInstance = await (0, client_core_1.createInstance)(ctx, 'eyevinn-app-config-svc', configToken, {
|
|
88
|
+
name,
|
|
89
|
+
RedisUrl: `redis://${redisPort.externalIp}:${redisPort.externalPort}`
|
|
90
|
+
});
|
|
91
|
+
await (0, client_core_1.waitForInstanceReady)('eyevinn-app-config-svc', name, ctx);
|
|
92
|
+
}
|
|
93
|
+
console.log(`Configuration service instance available at ${configInstance.url}`);
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
console.log(err.message);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
web
|
|
100
|
+
.command('config-delete')
|
|
101
|
+
.description('Delete a configuration service instance')
|
|
102
|
+
.argument('<name>', 'Name of the configuration service instance')
|
|
103
|
+
.option('--data', 'Delete config data')
|
|
104
|
+
.action(async (name, options, command) => {
|
|
105
|
+
try {
|
|
106
|
+
const globalOpts = command.optsWithGlobals();
|
|
107
|
+
const environment = globalOpts?.env || 'prod';
|
|
108
|
+
const ctx = new client_core_1.Context({ environment });
|
|
109
|
+
const configToken = await ctx.getServiceAccessToken('eyevinn-app-config-svc');
|
|
110
|
+
const configInstance = await (0, client_core_1.getInstance)(ctx, 'eyevinn-app-config-svc', name, configToken);
|
|
111
|
+
if (configInstance) {
|
|
112
|
+
await (0, client_core_1.removeInstance)(ctx, 'eyevinn-app-config-svc', name, configToken);
|
|
113
|
+
if (options.data) {
|
|
114
|
+
console.log('Deleting config data...');
|
|
115
|
+
const valkeyToken = await ctx.getServiceAccessToken('valkey-io-valkey');
|
|
116
|
+
await (0, client_core_1.removeInstance)(ctx, 'valkey-io-valkey', name, valkeyToken);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
console.log(err.message);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
62
124
|
web
|
|
63
125
|
.command('config-to-env')
|
|
64
126
|
.description('Load configuration from Application Config service and set as environment variables')
|
package/dist/web/cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../../src/web/cmd.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../../src/web/cmd.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osaas/cli",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.10.1",
|
|
4
4
|
"description": "Open Source Cloud CLI",
|
|
5
5
|
"author": "Eyevinn Open Source Cloud <osc@eyevinn.se>",
|
|
6
6
|
"homepage": "https://www.osaas.io",
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@osaas/client-ai": "^0.4.3",
|
|
26
26
|
"@osaas/client-core": "^0.15.1",
|
|
27
|
-
"@osaas/client-db": "^0.5.
|
|
27
|
+
"@osaas/client-db": "^0.5.2",
|
|
28
28
|
"@osaas/client-intercom": "^0.2.3",
|
|
29
|
-
"@osaas/client-transcode": "^0.15.
|
|
30
|
-
"@osaas/client-web": "^0.3.
|
|
29
|
+
"@osaas/client-transcode": "^0.15.5",
|
|
30
|
+
"@osaas/client-web": "^0.3.7",
|
|
31
31
|
"@types/promptly": "^3.0.5",
|
|
32
32
|
"chalk": "4.1.2",
|
|
33
33
|
"commander": "^12.1.0",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "b8f1735b11176f069e983c2bff2449269beb410d"
|
|
42
42
|
}
|
package/readme.md
CHANGED
|
@@ -153,6 +153,21 @@ PAT_SECRET=<pat-secret> osc admin list-instances eyevinn channel-engine
|
|
|
153
153
|
PAT_SECRET=<pat-secret> osc --env dev admin remove-instance asdasd channel-engine mychannel
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
+
### Create application configuration service instance
|
|
157
|
+
|
|
158
|
+
To manage configuration values for an application we can create an instance of an Application Config Service.
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
% osc web config-create jonastest
|
|
162
|
+
Configuration service instance available at https://eyevinnlab-jonastest.eyevinn-app-config-svc.auto.prod.osaas.io
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
And to remove it (with the data)
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
% osc web config-delete --data jonastest
|
|
169
|
+
```
|
|
170
|
+
|
|
156
171
|
### Store application configuration values as environment variables
|
|
157
172
|
|
|
158
173
|
Configuration values managed by the Application Config Service can be stored as environment variable using this commmand.
|
package/src/web/cmd.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Context,
|
|
3
|
+
createInstance,
|
|
4
|
+
getInstance,
|
|
5
|
+
getPortsForInstance,
|
|
6
|
+
removeInstance,
|
|
7
|
+
waitForInstanceReady
|
|
8
|
+
} from '@osaas/client-core';
|
|
2
9
|
import { createCloudfrontDistribution, publish } from '@osaas/client-web';
|
|
3
10
|
import { Command } from 'commander';
|
|
4
11
|
|
|
@@ -70,6 +77,113 @@ export function cmdWeb() {
|
|
|
70
77
|
}
|
|
71
78
|
});
|
|
72
79
|
|
|
80
|
+
web
|
|
81
|
+
.command('config-create')
|
|
82
|
+
.description('Create a configuration service instance')
|
|
83
|
+
.argument('<name>', 'Name of the configuration service instance')
|
|
84
|
+
.action(async (name, options, command) => {
|
|
85
|
+
try {
|
|
86
|
+
const globalOpts = command.optsWithGlobals();
|
|
87
|
+
const environment = globalOpts?.env || 'prod';
|
|
88
|
+
const ctx = new Context({ environment });
|
|
89
|
+
const configToken = await ctx.getServiceAccessToken(
|
|
90
|
+
'eyevinn-app-config-svc'
|
|
91
|
+
);
|
|
92
|
+
let configInstance = await getInstance(
|
|
93
|
+
ctx,
|
|
94
|
+
'eyevinn-app-config-svc',
|
|
95
|
+
name,
|
|
96
|
+
configToken
|
|
97
|
+
);
|
|
98
|
+
if (!configInstance) {
|
|
99
|
+
const valkeyToken = await ctx.getServiceAccessToken(
|
|
100
|
+
'valkey-io-valkey'
|
|
101
|
+
);
|
|
102
|
+
let valkeyInstance = await getInstance(
|
|
103
|
+
ctx,
|
|
104
|
+
'valkey-io-valkey',
|
|
105
|
+
name,
|
|
106
|
+
valkeyToken
|
|
107
|
+
);
|
|
108
|
+
if (!valkeyInstance) {
|
|
109
|
+
valkeyInstance = await createInstance(
|
|
110
|
+
ctx,
|
|
111
|
+
'valkey-io-valkey',
|
|
112
|
+
valkeyToken,
|
|
113
|
+
{
|
|
114
|
+
name
|
|
115
|
+
}
|
|
116
|
+
);
|
|
117
|
+
await waitForInstanceReady('valkey-io-valkey', name, ctx);
|
|
118
|
+
}
|
|
119
|
+
const ports = await getPortsForInstance(
|
|
120
|
+
ctx,
|
|
121
|
+
'valkey-io-valkey',
|
|
122
|
+
name,
|
|
123
|
+
valkeyToken
|
|
124
|
+
);
|
|
125
|
+
const redisPort = ports.find((port) => port.internalPort == 6379);
|
|
126
|
+
if (!redisPort) {
|
|
127
|
+
throw new Error(`Failed to get redis port for instance ${name}`);
|
|
128
|
+
}
|
|
129
|
+
configInstance = await createInstance(
|
|
130
|
+
ctx,
|
|
131
|
+
'eyevinn-app-config-svc',
|
|
132
|
+
configToken,
|
|
133
|
+
{
|
|
134
|
+
name,
|
|
135
|
+
RedisUrl: `redis://${redisPort.externalIp}:${redisPort.externalPort}`
|
|
136
|
+
}
|
|
137
|
+
);
|
|
138
|
+
await waitForInstanceReady('eyevinn-app-config-svc', name, ctx);
|
|
139
|
+
}
|
|
140
|
+
console.log(
|
|
141
|
+
`Configuration service instance available at ${configInstance.url}`
|
|
142
|
+
);
|
|
143
|
+
} catch (err) {
|
|
144
|
+
console.log((err as Error).message);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
web
|
|
149
|
+
.command('config-delete')
|
|
150
|
+
.description('Delete a configuration service instance')
|
|
151
|
+
.argument('<name>', 'Name of the configuration service instance')
|
|
152
|
+
.option('--data', 'Delete config data')
|
|
153
|
+
.action(async (name, options, command) => {
|
|
154
|
+
try {
|
|
155
|
+
const globalOpts = command.optsWithGlobals();
|
|
156
|
+
const environment = globalOpts?.env || 'prod';
|
|
157
|
+
const ctx = new Context({ environment });
|
|
158
|
+
const configToken = await ctx.getServiceAccessToken(
|
|
159
|
+
'eyevinn-app-config-svc'
|
|
160
|
+
);
|
|
161
|
+
const configInstance = await getInstance(
|
|
162
|
+
ctx,
|
|
163
|
+
'eyevinn-app-config-svc',
|
|
164
|
+
name,
|
|
165
|
+
configToken
|
|
166
|
+
);
|
|
167
|
+
if (configInstance) {
|
|
168
|
+
await removeInstance(
|
|
169
|
+
ctx,
|
|
170
|
+
'eyevinn-app-config-svc',
|
|
171
|
+
name,
|
|
172
|
+
configToken
|
|
173
|
+
);
|
|
174
|
+
if (options.data) {
|
|
175
|
+
console.log('Deleting config data...');
|
|
176
|
+
const valkeyToken = await ctx.getServiceAccessToken(
|
|
177
|
+
'valkey-io-valkey'
|
|
178
|
+
);
|
|
179
|
+
await removeInstance(ctx, 'valkey-io-valkey', name, valkeyToken);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
} catch (err) {
|
|
183
|
+
console.log((err as Error).message);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
|
|
73
187
|
web
|
|
74
188
|
.command('config-to-env')
|
|
75
189
|
.description(
|