@spica/cli 0.18.16 → 0.18.18-pre
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/index.js +3516 -38
- package/package.json +56 -31
- package/index.d.ts +0 -2
- package/index.js.map +0 -1
- package/src/commands/asset/apply.d.ts +0 -2
- package/src/commands/asset/apply.js +0 -56
- package/src/commands/asset/apply.js.map +0 -1
- package/src/commands/asset/delete.d.ts +0 -2
- package/src/commands/asset/delete.js +0 -35
- package/src/commands/asset/delete.js.map +0 -1
- package/src/commands/bucket/orm.d.ts +0 -45
- package/src/commands/bucket/orm.js +0 -478
- package/src/commands/bucket/orm.js.map +0 -1
- package/src/commands/context/ls.d.ts +0 -2
- package/src/commands/context/ls.js +0 -23
- package/src/commands/context/ls.js.map +0 -1
- package/src/commands/context/remove.d.ts +0 -2
- package/src/commands/context/remove.js +0 -16
- package/src/commands/context/remove.js.map +0 -1
- package/src/commands/context/set.d.ts +0 -2
- package/src/commands/context/set.js +0 -39
- package/src/commands/context/set.js.map +0 -1
- package/src/commands/context/switch.d.ts +0 -2
- package/src/commands/context/switch.js +0 -22
- package/src/commands/context/switch.js.map +0 -1
- package/src/commands/function/orm.d.ts +0 -2
- package/src/commands/function/orm.js +0 -63
- package/src/commands/function/orm.js.map +0 -1
- package/src/commands/project/ls.d.ts +0 -2
- package/src/commands/project/ls.js +0 -55
- package/src/commands/project/ls.js.map +0 -1
- package/src/commands/project/remove.d.ts +0 -2
- package/src/commands/project/remove.js +0 -82
- package/src/commands/project/remove.js.map +0 -1
- package/src/commands/project/start.d.ts +0 -2
- package/src/commands/project/start.js +0 -443
- package/src/commands/project/start.js.map +0 -1
- package/src/commands/project/sync.d.ts +0 -201
- package/src/commands/project/sync.js +0 -785
- package/src/commands/project/sync.js.map +0 -1
- package/src/commands/project/upgrade.d.ts +0 -2
- package/src/commands/project/upgrade.js +0 -174
- package/src/commands/project/upgrade.js.map +0 -1
- package/src/compile.d.ts +0 -22
- package/src/compile.js +0 -115
- package/src/compile.js.map +0 -1
- package/src/config.d.ts +0 -9
- package/src/config.js +0 -53
- package/src/config.js.map +0 -1
- package/src/console.d.ts +0 -14
- package/src/console.js +0 -47
- package/src/console.js.map +0 -1
- package/src/context.d.ts +0 -17
- package/src/context.js +0 -54
- package/src/context.js.map +0 -1
- package/src/function/helpers.d.ts +0 -2
- package/src/function/helpers.js +0 -12
- package/src/function/helpers.js.map +0 -1
- package/src/function/index.d.ts +0 -2
- package/src/function/index.js +0 -3
- package/src/function/index.js.map +0 -1
- package/src/function/interface.d.ts +0 -28
- package/src/function/interface.js +0 -3
- package/src/function/interface.js.map +0 -1
- package/src/function/modifier.d.ts +0 -41
- package/src/function/modifier.js +0 -64
- package/src/function/modifier.js.map +0 -1
- package/src/function/triggers/http/index.d.ts +0 -7
- package/src/function/triggers/http/index.js +0 -8
- package/src/function/triggers/http/index.js.map +0 -1
- package/src/function/triggers/http/services/axios.d.ts +0 -46
- package/src/function/triggers/http/services/axios.js +0 -163
- package/src/function/triggers/http/services/axios.js.map +0 -1
- package/src/function/triggers/http/services/index.d.ts +0 -3
- package/src/function/triggers/http/services/index.js +0 -4
- package/src/function/triggers/http/services/index.js.map +0 -1
- package/src/function/triggers/http/transformer.d.ts +0 -16
- package/src/function/triggers/http/transformer.js +0 -49
- package/src/function/triggers/http/transformer.js.map +0 -1
- package/src/function/triggers/index.d.ts +0 -4
- package/src/function/triggers/index.js +0 -6
- package/src/function/triggers/index.js.map +0 -1
- package/src/http.d.ts +0 -11
- package/src/http.js +0 -30
- package/src/http.js.map +0 -1
- package/src/project.d.ts +0 -11
- package/src/project.js +0 -63
- package/src/project.js.map +0 -1
- package/src/range.d.ts +0 -1
- package/src/range.js +0 -13
- package/src/range.js.map +0 -1
- package/src/representative.d.ts +0 -13
- package/src/representative.js +0 -120
- package/src/representative.js.map +0 -1
- package/src/status.d.ts +0 -19
- package/src/status.js +0 -39
- package/src/status.js.map +0 -1
- package/src/validator.d.ts +0 -7
- package/src/validator.js +0 -52
- package/src/validator.js.map +0 -1
- package/tsconfig.app.tsbuildinfo +0 -1
|
@@ -1,443 +0,0 @@
|
|
|
1
|
-
import caporalCore from "@caporal/core";
|
|
2
|
-
const { CaporalValidator } = caporalCore;
|
|
3
|
-
import getport from "get-port";
|
|
4
|
-
import open from "open";
|
|
5
|
-
import { spin } from "../../console.js";
|
|
6
|
-
import { projectLocalResourceFolder, projectName } from "../../validator.js";
|
|
7
|
-
import path from "path";
|
|
8
|
-
import fs from "fs";
|
|
9
|
-
import { DockerMachine } from "../../project.js";
|
|
10
|
-
function streamToBuffer(stream) {
|
|
11
|
-
return new Promise(resolve => {
|
|
12
|
-
const response = [];
|
|
13
|
-
if (process.platform.includes("win")) {
|
|
14
|
-
stream.once("resume", () => {
|
|
15
|
-
setTimeout(() => {
|
|
16
|
-
resolve(Buffer.concat(response));
|
|
17
|
-
}, 2000);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
stream.on("data", chunk => response.push(chunk));
|
|
21
|
-
stream.on("end", () => resolve(Buffer.concat(response)));
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
async function create({ args: cmdArgs, options }) {
|
|
25
|
-
const { name } = cmdArgs;
|
|
26
|
-
const { localResourceFolder } = options;
|
|
27
|
-
const machine = new DockerMachine();
|
|
28
|
-
const networkName = `${name}-network`, databaseName = `${name}-db`, port = await getport({ port: options.port }), publicHost = `http://localhost:${port}`, apiUrl = `${publicHost}/api`, functionApiUrl = apiUrl.replace("localhost", "host.docker.internal");
|
|
29
|
-
if (options.port.toString() != port.toString() && options.port != 4500) {
|
|
30
|
-
console.info(`Port ${options.port} already in use, the port ${port} will be used instead.`);
|
|
31
|
-
}
|
|
32
|
-
let identifier = "spica";
|
|
33
|
-
let password = "spica";
|
|
34
|
-
let args = [];
|
|
35
|
-
if (options.apiOptions) {
|
|
36
|
-
const filename = path.resolve(options.apiOptions);
|
|
37
|
-
const rawFile = fs.readFileSync(filename, { encoding: "utf8" });
|
|
38
|
-
let apiOptions = {};
|
|
39
|
-
try {
|
|
40
|
-
apiOptions = JSON.parse(rawFile);
|
|
41
|
-
identifier = apiOptions["passport-default-identity-identifier"] || identifier;
|
|
42
|
-
password = apiOptions["passport-default-identity-password"] || password;
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
throw Error(`Error while parsing api-options file. ${error}`);
|
|
46
|
-
}
|
|
47
|
-
for (const [key, value] of Object.entries(apiOptions)) {
|
|
48
|
-
args.push(`--${key}=${value}`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
const persistentPath = "/var/data";
|
|
52
|
-
args = [
|
|
53
|
-
...args,
|
|
54
|
-
`--database-name=${name}`,
|
|
55
|
-
`--database-replica-set=${name}`,
|
|
56
|
-
`--database-uri="mongodb://${databaseName}-0,${databaseName}-1,${databaseName}-2"`,
|
|
57
|
-
`--public-url=${apiUrl}`,
|
|
58
|
-
`--function-api-url=${functionApiUrl}`,
|
|
59
|
-
`--master-key=${name}`,
|
|
60
|
-
`--persistent-path=${persistentPath}`
|
|
61
|
-
];
|
|
62
|
-
const foundNetworks = await machine.listNetworks({
|
|
63
|
-
filters: JSON.stringify({ label: [`namespace=${name}`] })
|
|
64
|
-
});
|
|
65
|
-
const foundContainers = await machine.listContainers({
|
|
66
|
-
all: true,
|
|
67
|
-
filters: JSON.stringify({ label: [`namespace=${name}`] })
|
|
68
|
-
});
|
|
69
|
-
if ((foundNetworks.length || foundContainers.length) && !options.force) {
|
|
70
|
-
console.warn(`There is a instance with name ${name} already exists.\nUse --force to delete existing one.`);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
if (options.force && (foundNetworks.length || foundContainers.length)) {
|
|
74
|
-
await spin({
|
|
75
|
-
text: `Shutting down and removing the previous containers, networks${!options.retainVolumes ? ", and volumes" : ""}.`,
|
|
76
|
-
op: async () => {
|
|
77
|
-
await Promise.all(foundContainers.map(async (containerInfo) => {
|
|
78
|
-
const container = await machine.getContainer(containerInfo.Id);
|
|
79
|
-
await container.remove({
|
|
80
|
-
v: true,
|
|
81
|
-
force: true
|
|
82
|
-
});
|
|
83
|
-
return new Promise(resolve => setTimeout(resolve, 1000));
|
|
84
|
-
}));
|
|
85
|
-
await Promise.all(foundNetworks.map(network => machine.getNetwork(network.Id).remove()));
|
|
86
|
-
if (!options.retainVolumes) {
|
|
87
|
-
const foundVolumes = (await machine.listVolumes({
|
|
88
|
-
filters: JSON.stringify({ label: [`namespace=${name}`] })
|
|
89
|
-
})).Volumes;
|
|
90
|
-
await Promise.all(foundVolumes.map(volume => machine.getVolume(volume.Name).remove()));
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
await spin({
|
|
96
|
-
text: `Pulling images.`,
|
|
97
|
-
op: async (spinner) => {
|
|
98
|
-
const images = [
|
|
99
|
-
{
|
|
100
|
-
image: "spicaengine/api",
|
|
101
|
-
tag: options.imageVersion.toString()
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
image: "spicaengine/spica",
|
|
105
|
-
tag: options.imageVersion.toString()
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
image: "mongo",
|
|
109
|
-
tag: options.mongoVersion.toString()
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
image: "nginx",
|
|
113
|
-
tag: "latest"
|
|
114
|
-
}
|
|
115
|
-
];
|
|
116
|
-
const imagesToPull = [];
|
|
117
|
-
for (const image of images) {
|
|
118
|
-
const exists = await machine.doesImageExist(image.image, image.tag);
|
|
119
|
-
if (exists && options.imagePullPolicy == "if-not-present") {
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
imagesToPull.push(image);
|
|
123
|
-
}
|
|
124
|
-
let pulled = 0;
|
|
125
|
-
function increasePulledCount() {
|
|
126
|
-
pulled++;
|
|
127
|
-
spinner.text = `Pulling images (${pulled}/${imagesToPull.length})`;
|
|
128
|
-
}
|
|
129
|
-
return Promise.all(imagesToPull.map(image => machine.pullImage(image.image, image.tag).then(() => increasePulledCount())));
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
const network = await spin({
|
|
133
|
-
text: `Creating a network named ${networkName}.`,
|
|
134
|
-
op: machine.createNetwork({
|
|
135
|
-
Name: networkName,
|
|
136
|
-
Labels: { namespace: name }
|
|
137
|
-
})
|
|
138
|
-
});
|
|
139
|
-
async function createMongoDB(instanceIndex) {
|
|
140
|
-
const container = await machine.createContainer({
|
|
141
|
-
Image: `mongo:${options.mongoVersion.toString()}`,
|
|
142
|
-
name: `${databaseName}-${instanceIndex}`,
|
|
143
|
-
Cmd: ["--replSet", name, "--bind_ip_all"],
|
|
144
|
-
Labels: { namespace: name },
|
|
145
|
-
HostConfig: {
|
|
146
|
-
RestartPolicy: {
|
|
147
|
-
Name: options.restart ? "unless-stopped" : "no"
|
|
148
|
-
},
|
|
149
|
-
Mounts: [
|
|
150
|
-
{
|
|
151
|
-
Source: `${name}-db-${instanceIndex}`,
|
|
152
|
-
Type: "volume",
|
|
153
|
-
Target: "/data/db",
|
|
154
|
-
VolumeOptions: {
|
|
155
|
-
DriverConfig: {
|
|
156
|
-
Name: "local",
|
|
157
|
-
Options: {}
|
|
158
|
-
},
|
|
159
|
-
NoCopy: false,
|
|
160
|
-
Labels: { namespace: name }
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
]
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
await network.connect({ Container: container.id });
|
|
167
|
-
return container.start();
|
|
168
|
-
}
|
|
169
|
-
const databaseReplicas = Number(options.databaseReplicas);
|
|
170
|
-
let shell = "mongo";
|
|
171
|
-
async function detectShell(container) {
|
|
172
|
-
const probe = await container.exec({
|
|
173
|
-
Cmd: ["sh", "-c", "command -v mongosh || command -v mongo || true"],
|
|
174
|
-
AttachStdout: true,
|
|
175
|
-
AttachStderr: true
|
|
176
|
-
});
|
|
177
|
-
const res = await probe.start({});
|
|
178
|
-
const out = (await streamToBuffer(res)).toString().trim();
|
|
179
|
-
if (!out)
|
|
180
|
-
throw new Error("no mongo shell available in container");
|
|
181
|
-
return out.split("/").pop();
|
|
182
|
-
}
|
|
183
|
-
await spin({
|
|
184
|
-
text: `Creating database containers (1/${databaseReplicas})`,
|
|
185
|
-
op: async (spinner) => {
|
|
186
|
-
for (let index = 0; index < databaseReplicas; index++) {
|
|
187
|
-
await createMongoDB(index);
|
|
188
|
-
spinner.text = `Creating database containers (${index + 1}/${databaseReplicas})`;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
await spin({
|
|
193
|
-
text: "Waiting the database containers to become ready.",
|
|
194
|
-
op: async (spinner) => {
|
|
195
|
-
const replSetConfig = JSON.stringify({
|
|
196
|
-
_id: name,
|
|
197
|
-
members: new Array(databaseReplicas).fill(0).map((_, index) => {
|
|
198
|
-
return { _id: index, host: `${databaseName}-${index}` };
|
|
199
|
-
})
|
|
200
|
-
});
|
|
201
|
-
const firstContainer = machine.getContainer(`${databaseName}-0`);
|
|
202
|
-
const detected = await detectShell(firstContainer);
|
|
203
|
-
if (detected)
|
|
204
|
-
shell = detected;
|
|
205
|
-
const initiateReplication = async (reconfig = false) => {
|
|
206
|
-
spinner.text = "Initiating replication between database containers.";
|
|
207
|
-
const exec = await firstContainer.exec({
|
|
208
|
-
Cmd: [
|
|
209
|
-
shell,
|
|
210
|
-
"admin",
|
|
211
|
-
"--eval",
|
|
212
|
-
reconfig
|
|
213
|
-
? `rs.reconfig(${replSetConfig}, { force: true })`
|
|
214
|
-
: `rs.initiate(${replSetConfig})`
|
|
215
|
-
],
|
|
216
|
-
AttachStderr: true,
|
|
217
|
-
AttachStdout: true
|
|
218
|
-
});
|
|
219
|
-
const result = await exec.start({});
|
|
220
|
-
const buffer = await streamToBuffer(result);
|
|
221
|
-
return buffer.toString();
|
|
222
|
-
};
|
|
223
|
-
let output = await initiateReplication();
|
|
224
|
-
let retry = 0, maxRetries = 5, wait = 1000;
|
|
225
|
-
while (retry < maxRetries) {
|
|
226
|
-
retry++;
|
|
227
|
-
if (output.indexOf("ECONNREFUSED") != -1) {
|
|
228
|
-
output = await initiateReplication();
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
break;
|
|
232
|
-
}
|
|
233
|
-
await new Promise(resolve => setTimeout(resolve, wait));
|
|
234
|
-
spinner.text = `Initiating replication between database containers. Retrying ${retry}`;
|
|
235
|
-
}
|
|
236
|
-
if (output.indexOf("already initialized") != -1) {
|
|
237
|
-
output = await initiateReplication(true);
|
|
238
|
-
}
|
|
239
|
-
if (output.indexOf("ok: 1") == -1) {
|
|
240
|
-
return Promise.reject(output);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
await spin({
|
|
245
|
-
text: "Waiting for the replica set to become ready.",
|
|
246
|
-
op: async () => {
|
|
247
|
-
const firstContainer = machine.getContainer(`${databaseName}-0`);
|
|
248
|
-
for (let i = 0; i < 15; i++) {
|
|
249
|
-
const exec = await firstContainer.exec({
|
|
250
|
-
Cmd: [shell, "admin", "--eval", "rs.status()"],
|
|
251
|
-
AttachStderr: true,
|
|
252
|
-
AttachStdout: true
|
|
253
|
-
});
|
|
254
|
-
const output = await exec.start({});
|
|
255
|
-
const response = await streamToBuffer(output);
|
|
256
|
-
const responseText = response.toString("utf-8");
|
|
257
|
-
if (responseText.indexOf("ok: 1") > -1 &&
|
|
258
|
-
responseText.indexOf("stateStr: 'PRIMARY'") > -1) {
|
|
259
|
-
return Promise.resolve();
|
|
260
|
-
}
|
|
261
|
-
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
262
|
-
}
|
|
263
|
-
return Promise.reject("Replica Set did not become ready in 30 seconds.");
|
|
264
|
-
}
|
|
265
|
-
});
|
|
266
|
-
let binds = [];
|
|
267
|
-
if (localResourceFolder) {
|
|
268
|
-
fs.mkdirSync(localResourceFolder, { recursive: true });
|
|
269
|
-
binds = [`${localResourceFolder}:${persistentPath}/representatives`];
|
|
270
|
-
}
|
|
271
|
-
await spin({
|
|
272
|
-
text: `Creating spica containers (0/2)`,
|
|
273
|
-
op: async (spinner) => {
|
|
274
|
-
const client = await machine.createContainer({
|
|
275
|
-
Image: `spicaengine/spica:${options.imageVersion}`,
|
|
276
|
-
name: `${name}-spica`,
|
|
277
|
-
Env: ["BASE_URL=/"],
|
|
278
|
-
Labels: { namespace: name },
|
|
279
|
-
HostConfig: {
|
|
280
|
-
RestartPolicy: {
|
|
281
|
-
Name: options.restart ? "unless-stopped" : "no"
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
await network.connect({ Container: client.id });
|
|
286
|
-
await client.start();
|
|
287
|
-
spinner.text = `Creating spica containers (1/2)`;
|
|
288
|
-
const api = await machine.createContainer({
|
|
289
|
-
Image: `spicaengine/api:${options.imageVersion}`,
|
|
290
|
-
name: `${name}-api`,
|
|
291
|
-
Cmd: args,
|
|
292
|
-
Labels: { namespace: name },
|
|
293
|
-
ExposedPorts: { "80/tcp": {} },
|
|
294
|
-
HostConfig: {
|
|
295
|
-
RestartPolicy: {
|
|
296
|
-
Name: options.restart ? "unless-stopped" : "no"
|
|
297
|
-
},
|
|
298
|
-
Mounts: [
|
|
299
|
-
{
|
|
300
|
-
Target: persistentPath,
|
|
301
|
-
Source: `${name}-api`,
|
|
302
|
-
Type: "volume",
|
|
303
|
-
VolumeOptions: {
|
|
304
|
-
NoCopy: false,
|
|
305
|
-
Labels: { namespace: name },
|
|
306
|
-
DriverConfig: {
|
|
307
|
-
Name: "local",
|
|
308
|
-
Options: {}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
],
|
|
313
|
-
Binds: binds
|
|
314
|
-
}
|
|
315
|
-
});
|
|
316
|
-
await network.connect({ Container: api.id });
|
|
317
|
-
await api.start();
|
|
318
|
-
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
319
|
-
spinner.text = `Creating spica containers (2/2)`;
|
|
320
|
-
}
|
|
321
|
-
});
|
|
322
|
-
await spin({
|
|
323
|
-
text: `Creating an ingress to route traffic.`,
|
|
324
|
-
op: async () => {
|
|
325
|
-
const proxy = await machine.createContainer({
|
|
326
|
-
Image: `nginx:latest`,
|
|
327
|
-
name: `${name}-ingress`,
|
|
328
|
-
HostConfig: {
|
|
329
|
-
PortBindings: { "80/tcp": [{ HostPort: port.toString() }] },
|
|
330
|
-
RestartPolicy: {
|
|
331
|
-
Name: options.restart ? "unless-stopped" : "no"
|
|
332
|
-
}
|
|
333
|
-
},
|
|
334
|
-
Labels: { namespace: name }
|
|
335
|
-
});
|
|
336
|
-
await network.connect({ Container: proxy.id });
|
|
337
|
-
await proxy.start();
|
|
338
|
-
const nginxConfig = `
|
|
339
|
-
upstream ${name}-api {
|
|
340
|
-
server ${name}-api;
|
|
341
|
-
}
|
|
342
|
-
upstream ${name}-spica {
|
|
343
|
-
server ${name}-spica;
|
|
344
|
-
}
|
|
345
|
-
server {
|
|
346
|
-
listen 80;
|
|
347
|
-
server_name localhost;
|
|
348
|
-
|
|
349
|
-
location ~ ^/api/?(.*) {
|
|
350
|
-
proxy_pass http://${name}-api/$1$is_args$args;
|
|
351
|
-
proxy_set_header Host $host;
|
|
352
|
-
proxy_set_header X-Forwarded-Proto $scheme;
|
|
353
|
-
proxy_set_header X-Forwarded-Port $server_port;
|
|
354
|
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
355
|
-
proxy_http_version 1.1;
|
|
356
|
-
proxy_set_header Upgrade $http_upgrade;
|
|
357
|
-
proxy_set_header Connection "Upgrade";
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
location ~ ^/?(.*) {
|
|
361
|
-
proxy_pass http://${name}-spica/$1$is_args$args;
|
|
362
|
-
proxy_set_header Host $host;
|
|
363
|
-
proxy_set_header X-Forwarded-Proto $scheme;
|
|
364
|
-
proxy_set_header X-Forwarded-Port $server_port;
|
|
365
|
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
366
|
-
proxy_http_version 1.1;
|
|
367
|
-
proxy_set_header Upgrade $http_upgrade;
|
|
368
|
-
proxy_set_header Connection "Upgrade";
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
`;
|
|
372
|
-
const exec = await proxy.exec({
|
|
373
|
-
Cmd: ["bash", "-c", `echo '${nginxConfig}' > /etc/nginx/conf.d/default.conf`],
|
|
374
|
-
AttachStderr: true,
|
|
375
|
-
AttachStdout: true
|
|
376
|
-
});
|
|
377
|
-
const output = await exec.start({});
|
|
378
|
-
await streamToBuffer(output);
|
|
379
|
-
await proxy.restart();
|
|
380
|
-
}
|
|
381
|
-
});
|
|
382
|
-
console.info(`
|
|
383
|
-
Spica ${name} is serving on ${publicHost}.
|
|
384
|
-
Open your browser on ${publicHost} to login.
|
|
385
|
-
|
|
386
|
-
Identitifer: ${identifier}
|
|
387
|
-
Password: ${password}
|
|
388
|
-
`);
|
|
389
|
-
if (options.open) {
|
|
390
|
-
await open(`${publicHost}/spica`);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
export default function (program) {
|
|
394
|
-
return program
|
|
395
|
-
.command("project start", "Start a project on your local machine.")
|
|
396
|
-
.argument("<name>", "Name of the project.", { validator: projectName })
|
|
397
|
-
.option("-p, --port", "Port that ingress will serve on. If not specified an open port will be used.", {
|
|
398
|
-
default: "4500",
|
|
399
|
-
required: true,
|
|
400
|
-
validator: CaporalValidator.NUMBER
|
|
401
|
-
})
|
|
402
|
-
.option("--image-version", "Version of the spica to run.", {
|
|
403
|
-
default: "latest",
|
|
404
|
-
validator: CaporalValidator.STRING
|
|
405
|
-
})
|
|
406
|
-
.option("--mongo-version", "Version of the MongoDB image to run.", {
|
|
407
|
-
default: "8.0",
|
|
408
|
-
validator: CaporalValidator.STRING
|
|
409
|
-
})
|
|
410
|
-
.option("-o, --open", "Open project authorization page after creation.", {
|
|
411
|
-
validator: CaporalValidator.BOOLEAN
|
|
412
|
-
})
|
|
413
|
-
.option("-f, --force", "Remove the existing project if exists with same name.", {
|
|
414
|
-
validator: CaporalValidator.BOOLEAN
|
|
415
|
-
})
|
|
416
|
-
.option("--retain-volumes", "When false, the existing data will be removed.", {
|
|
417
|
-
default: true,
|
|
418
|
-
validator: CaporalValidator.BOOLEAN
|
|
419
|
-
})
|
|
420
|
-
.option("--restart", "Restart failed containers if exits unexpectedly.", {
|
|
421
|
-
default: true,
|
|
422
|
-
validator: CaporalValidator.BOOLEAN
|
|
423
|
-
})
|
|
424
|
-
.option("--image-pull-policy", "Image pull policy. when 'if-not-present' images won't be pulled in if already present on the docker.", {
|
|
425
|
-
default: "if-not-present",
|
|
426
|
-
validator: ["if-not-present", "default"]
|
|
427
|
-
})
|
|
428
|
-
.option("--database-replicas", "Number of database nodes.", {
|
|
429
|
-
default: "1",
|
|
430
|
-
validator: CaporalValidator.NUMBER
|
|
431
|
-
})
|
|
432
|
-
.option("--api-options", "Absolute file path that contains api key options as key value in JSON format.", {
|
|
433
|
-
validator: CaporalValidator.STRING
|
|
434
|
-
})
|
|
435
|
-
.option("--local-resource-folder", `Absolute local folder path to sync resources from and to Spica.
|
|
436
|
-
WARNING: During container startup, the initial synchronization from Spica to the local folder will remove local files (bucket, function, etc.) and insert Spica ones.
|
|
437
|
-
Files that aren't managed by Spica will remain(.git, .gitignore etc.).
|
|
438
|
-
Backup or commit necessary files before starting.`, {
|
|
439
|
-
validator: projectLocalResourceFolder
|
|
440
|
-
})
|
|
441
|
-
.action(create);
|
|
442
|
-
}
|
|
443
|
-
//# sourceMappingURL=start.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../../../apps/cli/src/commands/project/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import { Program, Command } from "@caporal/core";
|
|
2
|
-
import { httpService } from "../../http";
|
|
3
|
-
export default function (program: Program): Command;
|
|
4
|
-
export declare class ResourceGroupComparisor {
|
|
5
|
-
private sources;
|
|
6
|
-
private targets;
|
|
7
|
-
private uniqueField;
|
|
8
|
-
private ignoredFields;
|
|
9
|
-
private existings;
|
|
10
|
-
private existingIds;
|
|
11
|
-
constructor(sources: any[], targets: any[], uniqueField?: string, ignoredFields?: any[]);
|
|
12
|
-
updations(): any[];
|
|
13
|
-
insertions(): any[];
|
|
14
|
-
deletions(): any[];
|
|
15
|
-
}
|
|
16
|
-
interface ModuleSynchronizer {
|
|
17
|
-
moduleName: string;
|
|
18
|
-
subModuleName?: string;
|
|
19
|
-
primaryField: string;
|
|
20
|
-
insertions: any[];
|
|
21
|
-
updations: any[];
|
|
22
|
-
deletions: any[];
|
|
23
|
-
initialize(): Promise<ModuleSynchronizer[]>;
|
|
24
|
-
analyze(): Promise<{
|
|
25
|
-
insertions: any[];
|
|
26
|
-
updations: any[];
|
|
27
|
-
deletions: any[];
|
|
28
|
-
}>;
|
|
29
|
-
synchronize(): Promise<any>;
|
|
30
|
-
getDisplayableModuleName(): string;
|
|
31
|
-
}
|
|
32
|
-
export declare class FunctionSynchronizer implements ModuleSynchronizer {
|
|
33
|
-
private sourceService;
|
|
34
|
-
private targetService;
|
|
35
|
-
private options;
|
|
36
|
-
moduleName: string;
|
|
37
|
-
primaryField: string;
|
|
38
|
-
insertions: any[];
|
|
39
|
-
updations: any[];
|
|
40
|
-
deletions: any[];
|
|
41
|
-
constructor(sourceService: httpService.Client, targetService: httpService.Client, options: {
|
|
42
|
-
functionIds: any;
|
|
43
|
-
});
|
|
44
|
-
initialize(): Promise<any[]>;
|
|
45
|
-
analyze(): Promise<{
|
|
46
|
-
insertions: any[];
|
|
47
|
-
updations: any[];
|
|
48
|
-
deletions: any[];
|
|
49
|
-
}>;
|
|
50
|
-
synchronize(): Promise<void>;
|
|
51
|
-
getDisplayableModuleName(): string;
|
|
52
|
-
}
|
|
53
|
-
export declare class FunctionDependencySynchronizer implements ModuleSynchronizer {
|
|
54
|
-
private sourceService;
|
|
55
|
-
private targetService;
|
|
56
|
-
private fn;
|
|
57
|
-
moduleName: string;
|
|
58
|
-
subModuleName: string;
|
|
59
|
-
primaryField: string;
|
|
60
|
-
insertions: any[];
|
|
61
|
-
updations: any[];
|
|
62
|
-
deletions: any[];
|
|
63
|
-
constructor(sourceService: httpService.Client, targetService: httpService.Client, fn: any);
|
|
64
|
-
initialize(): Promise<any[]>;
|
|
65
|
-
analyze(): Promise<{
|
|
66
|
-
insertions: any[];
|
|
67
|
-
updations: any[];
|
|
68
|
-
deletions: any[];
|
|
69
|
-
}>;
|
|
70
|
-
synchronize(): Promise<void>;
|
|
71
|
-
getDisplayableModuleName(): string;
|
|
72
|
-
}
|
|
73
|
-
export declare class FunctionIndexSynchronizer implements ModuleSynchronizer {
|
|
74
|
-
private sourceService;
|
|
75
|
-
private targetService;
|
|
76
|
-
moduleName: string;
|
|
77
|
-
subModuleName: string;
|
|
78
|
-
primaryField: string;
|
|
79
|
-
insertions: any[];
|
|
80
|
-
updations: any[];
|
|
81
|
-
deletions: any[];
|
|
82
|
-
constructor(sourceService: httpService.Client, targetService: httpService.Client);
|
|
83
|
-
initialize(): Promise<any[]>;
|
|
84
|
-
analyze(): Promise<{
|
|
85
|
-
insertions: any[];
|
|
86
|
-
updations: any[];
|
|
87
|
-
deletions: any[];
|
|
88
|
-
}>;
|
|
89
|
-
synchronize(): Promise<void>;
|
|
90
|
-
getDisplayableModuleName(): string;
|
|
91
|
-
}
|
|
92
|
-
export declare class BucketDataSynchronizer implements ModuleSynchronizer {
|
|
93
|
-
private sourceService;
|
|
94
|
-
private targetService;
|
|
95
|
-
private bucket;
|
|
96
|
-
moduleName: string;
|
|
97
|
-
primaryField: any;
|
|
98
|
-
insertions: any[];
|
|
99
|
-
updations: any[];
|
|
100
|
-
deletions: any[];
|
|
101
|
-
constructor(sourceService: httpService.Client, targetService: httpService.Client, bucket: any);
|
|
102
|
-
initialize(): Promise<ModuleSynchronizer[]>;
|
|
103
|
-
analyze(): Promise<{
|
|
104
|
-
insertions: any[];
|
|
105
|
-
updations: any[];
|
|
106
|
-
deletions: any[];
|
|
107
|
-
}>;
|
|
108
|
-
synchronize(): Promise<any>;
|
|
109
|
-
getDisplayableModuleName(): string;
|
|
110
|
-
}
|
|
111
|
-
export declare class BucketSynchronizer implements ModuleSynchronizer {
|
|
112
|
-
private sourceService;
|
|
113
|
-
private targetService;
|
|
114
|
-
private options;
|
|
115
|
-
moduleName: string;
|
|
116
|
-
primaryField: string;
|
|
117
|
-
insertions: any[];
|
|
118
|
-
updations: any[];
|
|
119
|
-
deletions: any[];
|
|
120
|
-
constructor(sourceService: httpService.Client, targetService: httpService.Client, options: {
|
|
121
|
-
bucketIds: any;
|
|
122
|
-
});
|
|
123
|
-
initialize(): Promise<any[]>;
|
|
124
|
-
analyze(): Promise<{
|
|
125
|
-
insertions: any[];
|
|
126
|
-
updations: any[];
|
|
127
|
-
deletions: any[];
|
|
128
|
-
}>;
|
|
129
|
-
synchronize(): Promise<void>;
|
|
130
|
-
getDisplayableModuleName(): string;
|
|
131
|
-
}
|
|
132
|
-
export declare class ApikeySynchronizer implements ModuleSynchronizer {
|
|
133
|
-
private sourceService;
|
|
134
|
-
private targetService;
|
|
135
|
-
private options;
|
|
136
|
-
moduleName: string;
|
|
137
|
-
primaryField: string;
|
|
138
|
-
insertions: any[];
|
|
139
|
-
updations: any[];
|
|
140
|
-
deletions: any[];
|
|
141
|
-
constructor(sourceService: httpService.Client, targetService: httpService.Client, options: {
|
|
142
|
-
apikeyIds: any;
|
|
143
|
-
});
|
|
144
|
-
initialize(): Promise<any[]>;
|
|
145
|
-
analyze(): Promise<{
|
|
146
|
-
insertions: any[];
|
|
147
|
-
updations: any[];
|
|
148
|
-
deletions: any[];
|
|
149
|
-
}>;
|
|
150
|
-
synchronize(): Promise<void>;
|
|
151
|
-
getDisplayableModuleName(): string;
|
|
152
|
-
}
|
|
153
|
-
export declare class PolicySynchronizer implements ModuleSynchronizer {
|
|
154
|
-
private sourceService;
|
|
155
|
-
private targetService;
|
|
156
|
-
private options;
|
|
157
|
-
moduleName: string;
|
|
158
|
-
primaryField: string;
|
|
159
|
-
insertions: any[];
|
|
160
|
-
updations: any[];
|
|
161
|
-
deletions: any[];
|
|
162
|
-
constructor(sourceService: httpService.Client, targetService: httpService.Client, options: {
|
|
163
|
-
policyIds: any;
|
|
164
|
-
});
|
|
165
|
-
initialize(): Promise<any[]>;
|
|
166
|
-
analyze(): Promise<{
|
|
167
|
-
insertions: any[];
|
|
168
|
-
updations: any[];
|
|
169
|
-
deletions: any[];
|
|
170
|
-
}>;
|
|
171
|
-
synchronize(): Promise<void>;
|
|
172
|
-
getDisplayableModuleName(): string;
|
|
173
|
-
}
|
|
174
|
-
export declare class EnvironmentVariableSynchronizer implements ModuleSynchronizer {
|
|
175
|
-
private sourceService;
|
|
176
|
-
private targetService;
|
|
177
|
-
private options;
|
|
178
|
-
moduleName: string;
|
|
179
|
-
primaryField: string;
|
|
180
|
-
insertions: any[];
|
|
181
|
-
updations: any[];
|
|
182
|
-
deletions: any[];
|
|
183
|
-
constructor(sourceService: httpService.Client, targetService: httpService.Client, options: {
|
|
184
|
-
envVarIds: any;
|
|
185
|
-
});
|
|
186
|
-
initialize(): Promise<any[]>;
|
|
187
|
-
analyze(): Promise<{
|
|
188
|
-
insertions: any[];
|
|
189
|
-
updations: any[];
|
|
190
|
-
deletions: any[];
|
|
191
|
-
}>;
|
|
192
|
-
synchronize(): Promise<void>;
|
|
193
|
-
getDisplayableModuleName(): string;
|
|
194
|
-
}
|
|
195
|
-
export declare enum SendingPromiseStrategy {
|
|
196
|
-
All = 0,
|
|
197
|
-
OneByOne = 1,
|
|
198
|
-
Batch = 2,
|
|
199
|
-
Retry = 3
|
|
200
|
-
}
|
|
201
|
-
export {};
|