@companyhelm/cli 0.4.1 → 0.4.3
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/cli_io_interface.d.ts +12 -0
- package/dist/cli_io_interface.js +2 -0
- package/dist/cli_io_interface.js.map +1 -0
- package/dist/companyhelm_cli.d.ts +21 -0
- package/dist/companyhelm_cli.js +90 -0
- package/dist/companyhelm_cli.js.map +1 -0
- package/dist/console_io.d.ts +10 -0
- package/dist/console_io.js +24 -0
- package/dist/console_io.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/provider/login_client.d.ts +34 -0
- package/dist/provider/login_client.js +41 -0
- package/dist/provider/login_client.js.map +1 -0
- package/dist/provider/login_command.d.ts +19 -0
- package/dist/provider/login_command.js +35 -0
- package/dist/provider/login_command.js.map +1 -0
- package/dist/provider/oauth_login_runner.d.ts +12 -0
- package/dist/provider/oauth_login_runner.js +37 -0
- package/dist/provider/oauth_login_runner.js.map +1 -0
- package/package.json +21 -29
- package/LICENSE +0 -21
- package/README.md +0 -66
- package/dist/cli.d.ts +0 -2
- package/dist/cli.js +0 -39
- package/dist/commands/dependencies.d.ts +0 -28
- package/dist/commands/dependencies.js +0 -292
- package/dist/commands/down.d.ts +0 -3
- package/dist/commands/down.js +0 -5
- package/dist/commands/interactive.d.ts +0 -7
- package/dist/commands/interactive.js +0 -25
- package/dist/commands/logs.d.ts +0 -3
- package/dist/commands/logs.js +0 -14
- package/dist/commands/register-commands.d.ts +0 -3
- package/dist/commands/register-commands.js +0 -23
- package/dist/commands/reset.d.ts +0 -7
- package/dist/commands/reset.js +0 -51
- package/dist/commands/set-image-version.d.ts +0 -31
- package/dist/commands/set-image-version.js +0 -87
- package/dist/commands/setup-github-app.d.ts +0 -13
- package/dist/commands/setup-github-app.js +0 -233
- package/dist/commands/startup-preferences.d.ts +0 -3
- package/dist/commands/startup-preferences.js +0 -39
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.js +0 -7
- package/dist/commands/up.d.ts +0 -3
- package/dist/commands/up.js +0 -39
- package/dist/config/image_config.d.ts +0 -4
- package/dist/config/image_config.js +0 -4
- package/dist/core/bootstrap/DeploymentBootstrapper.d.ts +0 -15
- package/dist/core/bootstrap/DeploymentBootstrapper.js +0 -118
- package/dist/core/bootstrap/SeedSqlRenderer.d.ts +0 -12
- package/dist/core/bootstrap/SeedSqlRenderer.js +0 -44
- package/dist/core/config/ApiEnvFileWriter.d.ts +0 -8
- package/dist/core/config/ApiEnvFileWriter.js +0 -33
- package/dist/core/config/GithubAppConfig.d.ts +0 -6
- package/dist/core/config/GithubAppConfig.js +0 -26
- package/dist/core/config/GithubAppConfigStore.d.ts +0 -11
- package/dist/core/config/GithubAppConfigStore.js +0 -57
- package/dist/core/docker/ComposeTemplateRenderer.d.ts +0 -22
- package/dist/core/docker/ComposeTemplateRenderer.js +0 -66
- package/dist/core/docker/DockerStackManager.d.ts +0 -29
- package/dist/core/docker/DockerStackManager.js +0 -163
- package/dist/core/local/ApiLocalService.d.ts +0 -22
- package/dist/core/local/ApiLocalService.js +0 -65
- package/dist/core/local/LocalRepoSourceResolver.d.ts +0 -24
- package/dist/core/local/LocalRepoSourceResolver.js +0 -33
- package/dist/core/local/LocalServiceProcessManager.d.ts +0 -18
- package/dist/core/local/LocalServiceProcessManager.js +0 -83
- package/dist/core/local/WebLocalService.d.ts +0 -23
- package/dist/core/local/WebLocalService.js +0 -101
- package/dist/core/logs/LogsService.d.ts +0 -6
- package/dist/core/logs/LogsService.js +0 -14
- package/dist/core/process/CommandRunner.d.ts +0 -4
- package/dist/core/process/CommandRunner.js +0 -51
- package/dist/core/runner/RunnerSupervisor.d.ts +0 -29
- package/dist/core/runner/RunnerSupervisor.js +0 -90
- package/dist/core/runner/runner-bootstrap.d.ts +0 -2
- package/dist/core/runner/runner-bootstrap.js +0 -48
- package/dist/core/runtime/CliPackageMetadata.d.ts +0 -3
- package/dist/core/runtime/CliPackageMetadata.js +0 -8
- package/dist/core/runtime/CliRoot.d.ts +0 -2
- package/dist/core/runtime/CliRoot.js +0 -23
- package/dist/core/runtime/ImageCatalog.d.ts +0 -11
- package/dist/core/runtime/ImageCatalog.js +0 -16
- package/dist/core/runtime/ImageConfigStore.d.ts +0 -15
- package/dist/core/runtime/ImageConfigStore.js +0 -51
- package/dist/core/runtime/LocalConfigStore.d.ts +0 -16
- package/dist/core/runtime/LocalConfigStore.js +0 -50
- package/dist/core/runtime/ManagedImages.d.ts +0 -10
- package/dist/core/runtime/ManagedImages.js +0 -27
- package/dist/core/runtime/PortAllocator.d.ts +0 -9
- package/dist/core/runtime/PortAllocator.js +0 -20
- package/dist/core/runtime/PublicImageTagRegistry.d.ts +0 -17
- package/dist/core/runtime/PublicImageTagRegistry.js +0 -168
- package/dist/core/runtime/RuntimePaths.d.ts +0 -16
- package/dist/core/runtime/RuntimePaths.js +0 -43
- package/dist/core/runtime/RuntimeState.d.ts +0 -38
- package/dist/core/runtime/RuntimeState.js +0 -1
- package/dist/core/runtime/RuntimeStateStore.d.ts +0 -11
- package/dist/core/runtime/RuntimeStateStore.js +0 -81
- package/dist/core/runtime/Secrets.d.ts +0 -10
- package/dist/core/runtime/Secrets.js +0 -26
- package/dist/core/runtime/VersionCatalog.d.ts +0 -10
- package/dist/core/runtime/VersionCatalog.js +0 -21
- package/dist/core/services/ManagedServiceNames.d.ts +0 -5
- package/dist/core/services/ManagedServiceNames.js +0 -12
- package/dist/core/status/StatusService.d.ts +0 -19
- package/dist/core/status/StatusService.js +0 -30
- package/dist/core/ui/TerminalRenderer.d.ts +0 -17
- package/dist/core/ui/TerminalRenderer.js +0 -71
- package/dist/preflight/ApiPortPreflightCheck.d.ts +0 -6
- package/dist/preflight/ApiPortPreflightCheck.js +0 -10
- package/dist/preflight/DockerInstalledPreflightCheck.d.ts +0 -7
- package/dist/preflight/DockerInstalledPreflightCheck.js +0 -15
- package/dist/preflight/PortAvailabilityPreflightCheck.d.ts +0 -7
- package/dist/preflight/PortAvailabilityPreflightCheck.js +0 -31
- package/dist/preflight/PostgresPortPreflightCheck.d.ts +0 -6
- package/dist/preflight/PostgresPortPreflightCheck.js +0 -10
- package/dist/preflight/PreflightCheck.d.ts +0 -3
- package/dist/preflight/PreflightCheck.js +0 -1
- package/dist/preflight/WebPortPreflightCheck.d.ts +0 -6
- package/dist/preflight/WebPortPreflightCheck.js +0 -10
- package/dist/preflight/runStartupPreflightChecks.d.ts +0 -18
- package/dist/preflight/runStartupPreflightChecks.js +0 -42
- package/dist/templates/api.env.tpl +0 -3
- package/dist/templates/docker-compose.yaml.tpl +0 -24
- package/dist/templates/seed.sql.tpl +0 -76
- package/src/config/image_config.ts +0 -4
- package/src/templates/api.env.tpl +0 -3
- package/src/templates/docker-compose.yaml.tpl +0 -24
- package/src/templates/seed.sql.tpl +0 -76
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import net from "node:net";
|
|
2
|
-
export class PortAvailabilityPreflightCheck {
|
|
3
|
-
serviceName;
|
|
4
|
-
port;
|
|
5
|
-
constructor(serviceName, port) {
|
|
6
|
-
this.serviceName = serviceName;
|
|
7
|
-
this.port = port;
|
|
8
|
-
}
|
|
9
|
-
async run() {
|
|
10
|
-
await new Promise((resolve, reject) => {
|
|
11
|
-
const server = net.createServer();
|
|
12
|
-
server.once("error", (error) => {
|
|
13
|
-
if (error.code === "EADDRINUSE") {
|
|
14
|
-
reject(new Error(`${this.serviceName} cannot start because port ${this.port} is already in use.`));
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
reject(new Error(`${this.serviceName} cannot verify port ${this.port}: ${error.message}`));
|
|
18
|
-
});
|
|
19
|
-
server.once("listening", () => {
|
|
20
|
-
server.close((closeError) => {
|
|
21
|
-
if (closeError) {
|
|
22
|
-
reject(closeError);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
resolve();
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
server.listen(this.port, "0.0.0.0");
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { PortAvailabilityPreflightCheck } from "./PortAvailabilityPreflightCheck.js";
|
|
2
|
-
export class PostgresPortPreflightCheck {
|
|
3
|
-
delegate;
|
|
4
|
-
constructor(port = 5432) {
|
|
5
|
-
this.delegate = new PortAvailabilityPreflightCheck("Postgres", port);
|
|
6
|
-
}
|
|
7
|
-
run() {
|
|
8
|
-
return this.delegate.run();
|
|
9
|
-
}
|
|
10
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { PortAvailabilityPreflightCheck } from "./PortAvailabilityPreflightCheck.js";
|
|
2
|
-
export class WebPortPreflightCheck {
|
|
3
|
-
delegate;
|
|
4
|
-
constructor(port) {
|
|
5
|
-
this.delegate = new PortAvailabilityPreflightCheck("companyhelm-web", port);
|
|
6
|
-
}
|
|
7
|
-
run() {
|
|
8
|
-
return this.delegate.run();
|
|
9
|
-
}
|
|
10
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { ResolvedServiceSources } from "../core/local/LocalRepoSourceResolver.js";
|
|
2
|
-
import type { CommandRunner } from "../core/process/CommandRunner.js";
|
|
3
|
-
import type { RuntimePorts, RuntimeState } from "../core/runtime/RuntimeState.js";
|
|
4
|
-
import type { ManagedServiceStatus } from "../core/status/StatusService.js";
|
|
5
|
-
interface StartupStatusSnapshot {
|
|
6
|
-
postgres: ManagedServiceStatus;
|
|
7
|
-
api: ManagedServiceStatus;
|
|
8
|
-
frontend: ManagedServiceStatus;
|
|
9
|
-
}
|
|
10
|
-
interface StartupPreflightOptions {
|
|
11
|
-
commandRunner: CommandRunner;
|
|
12
|
-
currentState: RuntimeState | null;
|
|
13
|
-
desiredSources: ResolvedServiceSources;
|
|
14
|
-
ports: RuntimePorts;
|
|
15
|
-
readStatus: () => Promise<StartupStatusSnapshot>;
|
|
16
|
-
}
|
|
17
|
-
export declare function runStartupPreflightChecks(options: StartupPreflightOptions): Promise<void>;
|
|
18
|
-
export {};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { DockerInstalledPreflightCheck } from "./DockerInstalledPreflightCheck.js";
|
|
2
|
-
import { ApiPortPreflightCheck } from "./ApiPortPreflightCheck.js";
|
|
3
|
-
import { PostgresPortPreflightCheck } from "./PostgresPortPreflightCheck.js";
|
|
4
|
-
import { WebPortPreflightCheck } from "./WebPortPreflightCheck.js";
|
|
5
|
-
export async function runStartupPreflightChecks(options) {
|
|
6
|
-
await new DockerInstalledPreflightCheck(options.commandRunner).run();
|
|
7
|
-
const currentStatus = await options.readStatus();
|
|
8
|
-
if (shouldCheckApiPort(options, currentStatus)) {
|
|
9
|
-
await new ApiPortPreflightCheck(options.ports.apiHttp).run();
|
|
10
|
-
}
|
|
11
|
-
if (shouldCheckWebPort(options, currentStatus)) {
|
|
12
|
-
await new WebPortPreflightCheck(options.ports.ui).run();
|
|
13
|
-
}
|
|
14
|
-
if (shouldCheckPostgresPort(options, currentStatus)) {
|
|
15
|
-
await new PostgresPortPreflightCheck().run();
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function shouldCheckApiPort(options, currentStatus) {
|
|
19
|
-
return shouldCheckServicePort("api", options.currentState, currentStatus.api, options.desiredSources.api.source);
|
|
20
|
-
}
|
|
21
|
-
function shouldCheckWebPort(options, currentStatus) {
|
|
22
|
-
return shouldCheckServicePort("frontend", options.currentState, currentStatus.frontend, options.desiredSources.frontend.source);
|
|
23
|
-
}
|
|
24
|
-
function shouldCheckPostgresPort(options, currentStatus) {
|
|
25
|
-
if (options.desiredSources.api.source !== "local") {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
return currentStatus.postgres !== "running";
|
|
29
|
-
}
|
|
30
|
-
function shouldCheckServicePort(service, currentState, currentStatus, desiredSource) {
|
|
31
|
-
if (currentStatus !== "running") {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
const currentService = currentState?.services[service];
|
|
35
|
-
if (!currentService) {
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
if (currentService.source === "docker") {
|
|
39
|
-
return desiredSource !== "docker";
|
|
40
|
-
}
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
services:
|
|
2
|
-
postgres:
|
|
3
|
-
image: {{POSTGRES_IMAGE}}
|
|
4
|
-
environment:
|
|
5
|
-
POSTGRES_USER: postgres
|
|
6
|
-
POSTGRES_PASSWORD: postgres
|
|
7
|
-
POSTGRES_DB: companyhelm
|
|
8
|
-
{{POSTGRES_PORTS_BLOCK}}
|
|
9
|
-
volumes:
|
|
10
|
-
- companyhelm_postgres_data:/var/lib/postgresql/data
|
|
11
|
-
- "{{SEED_FILE_PATH}}:/run/companyhelm/seed.sql:ro"
|
|
12
|
-
networks:
|
|
13
|
-
- companyhelm
|
|
14
|
-
|
|
15
|
-
{{API_SERVICE_BLOCK}}
|
|
16
|
-
|
|
17
|
-
{{FRONTEND_SERVICE_BLOCK}}
|
|
18
|
-
|
|
19
|
-
networks:
|
|
20
|
-
companyhelm:
|
|
21
|
-
driver: bridge
|
|
22
|
-
|
|
23
|
-
volumes:
|
|
24
|
-
companyhelm_postgres_data:
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
BEGIN;
|
|
2
|
-
|
|
3
|
-
INSERT INTO companies (id, name)
|
|
4
|
-
VALUES ('{{COMPANY_ID}}', '{{COMPANY_NAME}}')
|
|
5
|
-
ON CONFLICT (id) DO UPDATE
|
|
6
|
-
SET name = EXCLUDED.name;
|
|
7
|
-
|
|
8
|
-
UPDATE users
|
|
9
|
-
SET first_name = '{{USER_FIRST_NAME}}',
|
|
10
|
-
last_name = NULL,
|
|
11
|
-
email = '{{USER_EMAIL}}',
|
|
12
|
-
auth_provider = 'companyhelm',
|
|
13
|
-
updated_at = NOW()
|
|
14
|
-
WHERE id = '{{USER_ID}}'
|
|
15
|
-
OR email = '{{USER_EMAIL}}';
|
|
16
|
-
|
|
17
|
-
INSERT INTO users (id, first_name, last_name, email, auth_provider, created_at, updated_at)
|
|
18
|
-
SELECT
|
|
19
|
-
'{{USER_ID}}',
|
|
20
|
-
'{{USER_FIRST_NAME}}',
|
|
21
|
-
NULL,
|
|
22
|
-
'{{USER_EMAIL}}',
|
|
23
|
-
'companyhelm',
|
|
24
|
-
NOW(),
|
|
25
|
-
NOW()
|
|
26
|
-
WHERE NOT EXISTS (
|
|
27
|
-
SELECT 1
|
|
28
|
-
FROM users
|
|
29
|
-
WHERE id = '{{USER_ID}}'
|
|
30
|
-
OR email = '{{USER_EMAIL}}'
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
UPDATE user_auths
|
|
34
|
-
SET user_id = '{{USER_ID}}',
|
|
35
|
-
email = '{{USER_EMAIL}}',
|
|
36
|
-
password_salt = '{{PASSWORD_SALT}}',
|
|
37
|
-
password_hash = '{{PASSWORD_HASH}}',
|
|
38
|
-
updated_at = NOW()
|
|
39
|
-
WHERE user_id = '{{USER_ID}}'
|
|
40
|
-
OR email = '{{USER_EMAIL}}';
|
|
41
|
-
|
|
42
|
-
INSERT INTO user_auths (id, user_id, email, password_salt, password_hash, created_at, updated_at)
|
|
43
|
-
SELECT
|
|
44
|
-
'{{USER_AUTH_ID}}',
|
|
45
|
-
'{{USER_ID}}',
|
|
46
|
-
'{{USER_EMAIL}}',
|
|
47
|
-
'{{PASSWORD_SALT}}',
|
|
48
|
-
'{{PASSWORD_HASH}}',
|
|
49
|
-
NOW(),
|
|
50
|
-
NOW()
|
|
51
|
-
WHERE NOT EXISTS (
|
|
52
|
-
SELECT 1
|
|
53
|
-
FROM user_auths
|
|
54
|
-
WHERE user_id = '{{USER_ID}}'
|
|
55
|
-
OR email = '{{USER_EMAIL}}'
|
|
56
|
-
);
|
|
57
|
-
|
|
58
|
-
INSERT INTO company_members (company_id, user_id)
|
|
59
|
-
VALUES ('{{COMPANY_ID}}', '{{USER_ID}}')
|
|
60
|
-
ON CONFLICT (company_id, user_id) DO NOTHING;
|
|
61
|
-
|
|
62
|
-
INSERT INTO agent_runners (id, company_id, secret_hash, status, name)
|
|
63
|
-
VALUES (
|
|
64
|
-
'{{RUNNER_ID}}',
|
|
65
|
-
'{{COMPANY_ID}}',
|
|
66
|
-
'{{RUNNER_SECRET_HASH}}',
|
|
67
|
-
'ready',
|
|
68
|
-
'{{RUNNER_NAME}}'
|
|
69
|
-
)
|
|
70
|
-
ON CONFLICT (id) DO UPDATE
|
|
71
|
-
SET company_id = EXCLUDED.company_id,
|
|
72
|
-
secret_hash = EXCLUDED.secret_hash,
|
|
73
|
-
status = EXCLUDED.status,
|
|
74
|
-
name = EXCLUDED.name;
|
|
75
|
-
|
|
76
|
-
COMMIT;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
services:
|
|
2
|
-
postgres:
|
|
3
|
-
image: {{POSTGRES_IMAGE}}
|
|
4
|
-
environment:
|
|
5
|
-
POSTGRES_USER: postgres
|
|
6
|
-
POSTGRES_PASSWORD: postgres
|
|
7
|
-
POSTGRES_DB: companyhelm
|
|
8
|
-
{{POSTGRES_PORTS_BLOCK}}
|
|
9
|
-
volumes:
|
|
10
|
-
- companyhelm_postgres_data:/var/lib/postgresql/data
|
|
11
|
-
- "{{SEED_FILE_PATH}}:/run/companyhelm/seed.sql:ro"
|
|
12
|
-
networks:
|
|
13
|
-
- companyhelm
|
|
14
|
-
|
|
15
|
-
{{API_SERVICE_BLOCK}}
|
|
16
|
-
|
|
17
|
-
{{FRONTEND_SERVICE_BLOCK}}
|
|
18
|
-
|
|
19
|
-
networks:
|
|
20
|
-
companyhelm:
|
|
21
|
-
driver: bridge
|
|
22
|
-
|
|
23
|
-
volumes:
|
|
24
|
-
companyhelm_postgres_data:
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
BEGIN;
|
|
2
|
-
|
|
3
|
-
INSERT INTO companies (id, name)
|
|
4
|
-
VALUES ('{{COMPANY_ID}}', '{{COMPANY_NAME}}')
|
|
5
|
-
ON CONFLICT (id) DO UPDATE
|
|
6
|
-
SET name = EXCLUDED.name;
|
|
7
|
-
|
|
8
|
-
UPDATE users
|
|
9
|
-
SET first_name = '{{USER_FIRST_NAME}}',
|
|
10
|
-
last_name = NULL,
|
|
11
|
-
email = '{{USER_EMAIL}}',
|
|
12
|
-
auth_provider = 'companyhelm',
|
|
13
|
-
updated_at = NOW()
|
|
14
|
-
WHERE id = '{{USER_ID}}'
|
|
15
|
-
OR email = '{{USER_EMAIL}}';
|
|
16
|
-
|
|
17
|
-
INSERT INTO users (id, first_name, last_name, email, auth_provider, created_at, updated_at)
|
|
18
|
-
SELECT
|
|
19
|
-
'{{USER_ID}}',
|
|
20
|
-
'{{USER_FIRST_NAME}}',
|
|
21
|
-
NULL,
|
|
22
|
-
'{{USER_EMAIL}}',
|
|
23
|
-
'companyhelm',
|
|
24
|
-
NOW(),
|
|
25
|
-
NOW()
|
|
26
|
-
WHERE NOT EXISTS (
|
|
27
|
-
SELECT 1
|
|
28
|
-
FROM users
|
|
29
|
-
WHERE id = '{{USER_ID}}'
|
|
30
|
-
OR email = '{{USER_EMAIL}}'
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
UPDATE user_auths
|
|
34
|
-
SET user_id = '{{USER_ID}}',
|
|
35
|
-
email = '{{USER_EMAIL}}',
|
|
36
|
-
password_salt = '{{PASSWORD_SALT}}',
|
|
37
|
-
password_hash = '{{PASSWORD_HASH}}',
|
|
38
|
-
updated_at = NOW()
|
|
39
|
-
WHERE user_id = '{{USER_ID}}'
|
|
40
|
-
OR email = '{{USER_EMAIL}}';
|
|
41
|
-
|
|
42
|
-
INSERT INTO user_auths (id, user_id, email, password_salt, password_hash, created_at, updated_at)
|
|
43
|
-
SELECT
|
|
44
|
-
'{{USER_AUTH_ID}}',
|
|
45
|
-
'{{USER_ID}}',
|
|
46
|
-
'{{USER_EMAIL}}',
|
|
47
|
-
'{{PASSWORD_SALT}}',
|
|
48
|
-
'{{PASSWORD_HASH}}',
|
|
49
|
-
NOW(),
|
|
50
|
-
NOW()
|
|
51
|
-
WHERE NOT EXISTS (
|
|
52
|
-
SELECT 1
|
|
53
|
-
FROM user_auths
|
|
54
|
-
WHERE user_id = '{{USER_ID}}'
|
|
55
|
-
OR email = '{{USER_EMAIL}}'
|
|
56
|
-
);
|
|
57
|
-
|
|
58
|
-
INSERT INTO company_members (company_id, user_id)
|
|
59
|
-
VALUES ('{{COMPANY_ID}}', '{{USER_ID}}')
|
|
60
|
-
ON CONFLICT (company_id, user_id) DO NOTHING;
|
|
61
|
-
|
|
62
|
-
INSERT INTO agent_runners (id, company_id, secret_hash, status, name)
|
|
63
|
-
VALUES (
|
|
64
|
-
'{{RUNNER_ID}}',
|
|
65
|
-
'{{COMPANY_ID}}',
|
|
66
|
-
'{{RUNNER_SECRET_HASH}}',
|
|
67
|
-
'ready',
|
|
68
|
-
'{{RUNNER_NAME}}'
|
|
69
|
-
)
|
|
70
|
-
ON CONFLICT (id) DO UPDATE
|
|
71
|
-
SET company_id = EXCLUDED.company_id,
|
|
72
|
-
secret_hash = EXCLUDED.secret_hash,
|
|
73
|
-
status = EXCLUDED.status,
|
|
74
|
-
name = EXCLUDED.name;
|
|
75
|
-
|
|
76
|
-
COMMIT;
|